system freeze on objcache_get

Matthew Dillon dillon at apollo.backplane.com
Mon Jul 30 07:32:09 PDT 2007


:More details on that:  It just happened again.
:
:This time I managed to get into kgdb.  Details follow:
:
:...
:    at /usr/src/src/sys/kern/kern_objcache.c:432
:#4  0xc02de60b in exec_copyin_args (args=0xed6edc50, 
:    fname=0x2810a000 <Error reading address 0x2810a000: Bad address>, segflg=PATH_USERSPACE, 
:    argv=0x28101af0, envv=0x28105700) at /usr/src/src/sys/kern/kern_exec.c:734
:#5  0xc02de0b5 in sys_execve (uap=0xed6edcf8) at /usr/src/src/sys/kern/kern_exec.c:525
:#6  0xc05265c9 in syscall2 (frame=0xed6edd40) at /usr/src/src/sys/platform/pc32/i386/trap.c:1340
:#7  0xc050e025 in Xint0x80_syscall () at /usr/src/src/sys/platform/pc32/i386/exception.s:872
:
:First issue:  Why is magcapacity == 2?  Why are there no empty magazines?

    Those are very large buffers and we don't want to keep too many of
    them cached.   Each cpu will have at least two active magazines
    plus there is a slop of one more (so there are always some free
    magazines in the pool), so we wind up with four buffers per cpu with
    another four in the common pool.  This is plenty for exec.

:Seems the magazines are indeed just 2 rounds long.  However, the loaded magazine has a round in, so why didn't the process get woken up?
:
:I'll look into the exec path, there might be a leak as well.
:
:cheers
:  simon

    That is a very a good question, and it looks like you tracked it
    down in a later email!  Your patch looks good, commit it!

    Don't worry about committing to the release branch, I'll synchronize
    most of the work in HEAD to RELEASE later on today.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Bugs mailing list