tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: netbsd-5 deadlocks when memory is low
On Mon, Sep 05, 2011 at 07:37:08AM +0000, Emmanuel Dreyfus wrote:
> On Fri, Sep 02, 2011 at 06:54:55AM +0200, Emmanuel Dreyfus wrote:
> > A common case of deadlocks is ioflush waiting for the filesystem and the
> > filesystem waiting for memory.
>
> I made some progress in my understanding of the issue: the filesystem
> server (perfused) gets swaped out and this is why all attemps to sync
> PUFFS vnode deadlock.
>
> We need a way of avoiding that situation. A first idea would be that
> PUFFS could detect the filesystem server and tag it so that it does not
> get swapped, but that will not work with perfused, since it is just a
> relay to a FUSE filesystem server (here glusterfsd). The FUSE filesystem
> server needs to be unswappable as well.
>
> So it seems we need a way for a process to tell the kernel that it
> should not be swapped out. What about a sysctl proc.*.wired, accessible
> only by root and defaulting to 0?
You have mlock(2) for this. I think ntpd uses it, you can have a look here.
Of course you don't want to mlock a big process ...
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index