Date: Sun, 26 Dec 2004 13:17:38 -0500 From: Bosko Milekic <bmilekic@technokratis.com> To: Peter Holm <peter@holm.cc> Cc: current@freebsd.org Subject: Re: panic: uma_zone_slab is looping Message-ID: <20041226181738.GA21533@technokratis.com> In-Reply-To: <20041226161153.GA74592@peter.osted.lan> References: <20041209144233.GA46928@peter.osted.lan> <20041220234103.GA59225@technokratis.com> <20041222210553.GA28108@peter.osted.lan> <20041222221540.GA70052@technokratis.com> <20041226161153.GA74592@peter.osted.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 26, 2004 at 05:11:53PM +0100, Peter Holm wrote: > > Yes, I think that I have verified your exelent analysis of the > problem: http://www.holm.cc/stress/log/freeze04.html > > So, do have any fix suggenstons? :-) Not yet, because the problem is non-obvious from the trace. I need to know exactly when the UMA RCntSlabs zone recurses _first_, and I need to confirm that it is an actual recursion. I've looked at the VM code and I don't see how/why recursion on the RCntSlabs zone would happen. Please modify the printf code to look exactly like this: if (keg->uk_flags & UMA_ZFLAG_INTERNAL && keg->uk_recurse != 0) { if ((zone == slabzone) || (zone == slabrefzone)) panic("Zone %s forced to fail due to recurse non-null: %d\n", zone->uz_name, keg->uk_recurse); return (NULL); } (You don't need to check any global counter -- the counter is imperfect anyway -- because even a single recursion on slabzone or slabrefzone should be illegal). I'd like to see the trace from the above panic, if possible. Also, from your current crash dump, see if you can print the value of keg->uk_recurse (from frame 11, pid 74804). It appears that the other KASSERT being triggered from propagate_priority() is due to some weird side-effect of process 74804 looping with the UMA RCntSlabs zone lock held (without it ever being dropped). We'll have to see. The point is: the trace is useless unless it shows where/when the recursion on slabrefzone _begins_ to happen (not that it has already happened, that part is obvious now). Happy holidays, -- Bosko Milekic bmilekic@technokratis.com bmilekic@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041226181738.GA21533>