Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 May 2002 11:07:19 -0700 (PDT)
From:      Archie Cobbs <archie@dellroad.org>
To:        freebsd-net@freebsd.org
Cc:        freebsd-hackers@freebsd.org
Subject:   splimp() during panic?
Message-ID:  <200205241807.g4OI7Ja70244@arch20m.dellroad.org>

next in thread | raw e-mail | index | archive | help
Hi,

I'm trying to debug a mbuf corruption bug in the kernel. I've added
an mbuf sanity check routine which calls panic() if anything is amiss
with the mbuf free list, etc. This function runs at splimp() and if/when
it calls panic() the cpl is still at splimp().

My question is: does this guarantee that the mbuf free lists, etc. will
not be modified between the time panic() is called and the time a core
file is generated? For example, if an incoming packet causes a networking
interrupt after panic() has been called but before the core file is
written, will that interrupt be blocked when it calls splimp()?

I've been working under this assumption but it seems to not be
valid, because I seem to be seeing panics for situations that are
not true in the core file.

If this is not a valid assumption, is there an easy way to 'freeze'
the mbuf free lists long enough to generate the core file when an
inconsistency is found (other than adding the obvious hack)?

Thanks,
-Archie

__________________________________________________________________________
Archie Cobbs     *     Packet Design     *     http://www.packetdesign.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200205241807.g4OI7Ja70244>