bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tmpfs replacement


From: Marco Gerards
Subject: Re: tmpfs replacement
Date: 13 Aug 2003 22:37:37 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Roland McGrath <roland@frob.com> writes:

> > I'm not sure, but it seems to work. There are two bugs in the default
> > pager (or GNUMach, I'm not sure about this) that make tmpfs unusable.
> 
> We should figure out what these really are.

Right. I hope you can have a look at these backtraces. Please notice
I've commented out all default_pager_object_set_size callers because
that made tmpfs hang. I also changed tmpfs_dirent like Marcus
suggested a while ago. (I know it isn't a perfect solution, but it is
good enough for now...)

I think I said in another mail that tmpfs crashes, that is not
true. My test program crashes, tmpfs doesn't crash because exceptions
are caught ( I think). 

What I said about the crashing filesystem wasn't true either (I was
really sleepy yesterday...). That crashing filesystem wasn't caused by
tmpfs, but by my test program. The filesystem that crashes in the
filesystem that the executable was stored on. I'm really sorry for
this confusion...

I think we can better ignore the test program I wrote for now.

Here are the commands I used and the backtraces. Especially backtrace
4 is interesting.

If something is not clear or more info is required just ask me.

Thanks,
Marco


cd /tmp
settrans -ac foo /hurd/tmpfs 4M
(it gets PID 393)
cd foo
echo a>a
(Now tmpfs hangs)

Other console:

gdb /hurd/tmpfs 393
(gdb) i thr
  4 thread 393.4  0x01140dd3 in memcpy () from /lib/libc.so.0.3
  3 thread 393.3  0x010c28dc in evc_wait () from /lib/libc.so.0.3
  2 thread 393.2  0x010c28dc in evc_wait () from /lib/libc.so.0.3
* 1 thread 393.1  0x010c28dc in evc_wait () from /lib/libc.so.0.3
(gdb) thr 1
[Switching to thread 1 (thread 393.1)]#0  0x010c28dc in evc_wait ()
   from /lib/libc.so.0.3
(gdb) bt full

#0  0x010c28dc in evc_wait () from /lib/libc.so.0.3
No symbol table info available.
#1  0x010c2f39 in mach_msg () from /lib/libc.so.0.3
No symbol table info available.
#2  0x0109158c in cproc_block ()
    at /home/marco/src/hurdcvs/hurd/libthreads/cprocs.c:645
        msg = {msgh_bits = 19267136, msgh_size = 40176,
  msgh_remote_port = 17386064, msgh_local_port = 17366584,
  msgh_seqno = 17365640, msgh_id = 17385964}
        waiter = 0xd
        new = 0x1090804
        p = 0x804e820
        __unlocked = 268451845
#3  0x01091759 in condition_wait (c=0x0, m=0x1094ba8)
    at /home/marco/src/hurdcvs/hurd/libthreads/cprocs.c:787
        p = 0x804e820
#4  0x010929f8 in cthread_exit (result=0x0)
    at /home/marco/src/hurdcvs/hurd/libthreads/cthreads.c:399
        t = 0x1094bec
#5  0x0804a1d1 in main (argc=2, argv=0x125ff90) at ../../hurd/tmpfs/tmpfs.c:373
        err = 0
        bootstrap = 11
        realnode = 268451845
        host_priv = 20
---Type <return> to continue, or q <return> to quit---

        st = {st_fstype = 23, st_fsid = 494294901194752,
  st_ino = 4556155900926099456, st_gen = 1060812711, st_rdev = 0,
  st_mode = 4227492, st_nlink = 1, st_uid = 0, st_gid = 0,
  st_size = 4556155900926099456, st_atime = 1060812711,
  st_atime_usec = 900000, st_mtime = 1060812711, st_mtime_usec = 900000,
  st_ctime = 1060812711, st_ctime_usec = 900000, st_blksize = 8192,
  st_blocks = 0, st_author = 0, st_flags = 0, st_spare = {0, 0, 0, 0, 0, 0, 0,
    0}}
#6  0x010e55bf in __libc_start_main () from /lib/libc.so.0.3
No symbol table info available.
(gdb) thr 2
[Switching to thread 2 (thread 393.2)]#0  0x010c28dc in evc_wait ()
   from /lib/libc.so.0.3
(gdb) bt full
#0  0x010c28dc in evc_wait () from /lib/libc.so.0.3
No symbol table info available.
#1  0x010c2f39 in mach_msg () from /lib/libc.so.0.3
No symbol table info available.
#2  0x010c3514 in mach_msg_server_timeout () from /lib/libc.so.0.3
No symbol table info available.
#3  0x010c3584 in mach_msg_server () from /lib/libc.so.0.3
No symbol table info available.
#4  0x010cf9b6 in get_privileged_ports () from /lib/libc.so.0.3
No symbol table info available.
#5  0x010926d8 in cthread_body (self=0x804e8e0)
    at /home/marco/src/hurdcvs/hurd/libthreads/cthreads.c:306
        t = 0x804e868
(gdb) thr 3
[Switching to thread 3 (thread 393.3)]#0  0x010c28dc in evc_wait ()
   from /lib/libc.so.0.3
(gdb) bt full
#0  0x010c28dc in evc_wait () from /lib/libc.so.0.3
No symbol table info available.
#1  0x010c2f39 in mach_msg () from /lib/libc.so.0.3
No symbol table info available.
#2  0x010c3514 in mach_msg_server_timeout () from /lib/libc.so.0.3
No symbol table info available.
#3  0x01097f50 in thread_function.1 ()
    at /home/marco/src/hurdcvs/hurd/libports/manage-multithread.c:136
No locals.
#4  0x0109805d in ports_manage_port_operations_multithread ()
    at /home/marco/src/hurdcvs/hurd/libports/manage-multithread.c:164
No locals.
#5  0x01033233 in master_thread_function (demuxer=0x8049bac)
    at ../../hurd/libdiskfs/init-first.c:37
        err = EMACH_RCV_INTERRUPTED
#6  0x010926d8 in cthread_body (self=0x804ec40)
    at /home/marco/src/hurdcvs/hurd/libthreads/cthreads.c:306
        t = 0x804ebc8
(gdb) thr 4
[Switching to thread 4 (thread 393.4)]#0  0x01140dd3 in memcpy ()
   from /lib/libc.so.0.3
(gdb) bt full
#0  0x01140dd3 in memcpy () from /lib/libc.so.0.3
No symbol table info available.
#1  0x01042f14 in do_memcpy.2 ()
    at /home/marco/src/hurdcvs/hurd/libpager/pager-memcpy.c:125
        buf = {{__jmpbuf = {19446804, 40608, 0, 118784, 19447164, 19447132},
    __mask_was_saved = 19446804, __saved_mask = 17051412}}
        _pager_class = (struct port_class *) 0x804e928
#2  0x01042fb4 in do_copy.1 ()
    at /home/marco/src/hurdcvs/hurd/libpager/pager-memcpy.c:166
        buf = {{__jmpbuf = {4096, 19447164, 19447120, 2, 0, 19446840},
    __mask_was_saved = 19446840, __saved_mask = 17061048}}
        _pager_class = (struct port_class *) 0x804e928
#3  0x010d9643 in hurd_catch_signal () from /lib/libc.so.0.3
No symbol table info available.
#4  0x010431cf in pager_memcpy ()
    at /home/marco/src/hurdcvs/hurd/libpager/pager-memcpy.c:207
No locals.
#5  0x01039127 in _diskfs_rdwr_internal (np=0x80550f8,
    data=0x128bf60 "a\n\001", offset=0, amt=0x128df60, dir=1, notime=0)
    at ../../hurd/libdiskfs/rdwr-internal.c:61
        memobj = 41
        prot = 3
        err = EKERN_NO_SPACE
#6  0x0103554c in diskfs_S_io_write (cred=0x804ef28, data=0x128bf60 "a\n\001",
---Type <return> to continue, or q <return> to quit---
    datalen=2, offset=-1, amt=0x128df60) at ../../hurd/libdiskfs/io-write.c:80
        np = (struct node *) 0x80550f8
        err = 0
        off = 0
#7  0x01035808 in _Xio_write (InHeadP=0x128bf3c, OutHeadP=0x128df3c)
    at ioServer.c:131
        In1P = (Request *) 0x128b740
        msgh_size = 118784
        msgh_size_delta = 2
        offsetCheck = {msgt_name = 11, msgt_size = 64, msgt_number = 1,
  msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        amountType = {msgt_name = 2, msgt_size = 32, msgt_number = 1,
  msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        io_object = 0x804ef28
#8  0x01035705 in diskfs_io_server (InHeadP=0x128bf3c, OutHeadP=0x1d000)
    at ioServer.c:1999
        RetCodeType = {msgt_name = 2, msgt_size = 32, msgt_number = 1,
  msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        routine = 0x2
#9  0x01027da1 in diskfs_demuxer (inp=0x128bf3c, outp=0x128df3c)
    at ../../hurd/libdiskfs/demuxer.c:32
No locals.
#10 0x01097e51 in internal_demuxer.0 ()
    at /home/marco/src/hurdcvs/hurd/libports/manage-multithread.c:101
---Type <return> to continue, or q <return> to quit---
No locals.
#11 0x010c3490 in mach_msg_server_timeout () from /lib/libc.so.0.3
No symbol table info available.
#12 0x01097f50 in thread_function.1 ()
    at /home/marco/src/hurdcvs/hurd/libports/manage-multithread.c:136
No locals.
#13 0x010926d8 in cthread_body (self=0x804edf0)
    at /home/marco/src/hurdcvs/hurd/libthreads/cthreads.c:306
        t = 0x804ed78
(gdb)







reply via email to

[Prev in Thread] Current Thread [Next in Thread]