Subject: Re: pool problems, TAILQ, and more...
To: Todd Whitesel , Manuel Bouyer <firstname.lastname@example.org>
From: Brian C. Grayson <email@example.com>
Date: 03/26/2000 04:15:23
On Sun, Mar 26, 2000 at 01:30:27AM -0800, Todd Whitesel wrote:
> > > Question #1: Does anyone else use swap-on-file-only, and see
> > > panics under pressure?
> > I have a diskless vax which swaps on a file. Never paniced.
> Same here, except that it has panic'd due to stuff other than file swapping.
I've got a little more info on my panics. It looks like
something is modifying the region after the pool_put.
For example, after the put, but before returning from
pool_put(), the item at 0xc06ab080 has distinct prev and next
pointers. At the next pool_get() call, at the time of entry, the
prev pointer for that item points to _itself_. Since it was on
the free list, no one should have been modifying it between the
put and get, of course. Thus, in TAILQ_REMOVE(), when it
updates the prev pointer, it's twiddling itself, and not the
head. So since the head still points at it, the next call to
TAILQ_REMOVE() returns the same region.
Is there any difference between swapping to an FFS file versus
an NFS file, as far as the functions called in uvm_swap, etc?
I'll keep digging...