Re: [PATCH] [Request for inclusion] Filesystem in Userspace
From: Avi Kivity
Date: Tue Nov 30 2004 - 15:12:33 EST
Miklos Szeredi wrote:
And I firmly believe that this can be done without having to special
case filesystem serving processes.
I firmly believe the opposite. When a userspace process calls the kernel
which (directly or indirectly) calls the userspace filesystem, the
filesystem must have elevated priviledges, or it can deadlock when
calling back in.
No.
Just by making the filesystem not contribute to the dirty counters
(like ramfs), the deadlock problem can be solved. In this case you
simply could not get a deadlock, because all those dirty pages
produced by the filesystem look just like normal allocations, which
simply cannot be touched when the userspace filesystem wants to
allocate more memory.
In this case the allocation would just fail. Deadlock doesn't happen,
though the filesystem wasn't given any elevated privileges.
Of course this isn't a good situation: the memory is filled in with
dirty data of the filesystem which it cannot write back. All sorts of
you're describing the deadlock here: all memory is full, no process
which allocates memory can make any progress. This is not a true oom
situation: there can be plenty of memory in dirty pagecache which we
could reclaim if we had that tiny bit of reserve memory.
I looked at ramfs, it isn't even limited. You can easily crash your
system just by filling it up with data, but no deadlock will happen.
Right. But ramfs doesn't call a userspace process which calls the kernel
right back.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/