On 9 Mar 2026 20:11, Michael Kelly <[email protected]> wrote:
The fundamental problem is that ext2fs, being unprivileged, cannot
allocate memory in order to allow other memory to be released. This is
well known, I believe, but we need to do something to reduce the
likelihood of this scenario as there could be cases that would result in
the system not recovering. For example, if internal memory usage was
dominant and a large write quickly used the remaining pages (before
unprivileged allocation is suspended) and before sync could process the
written pages, there might be too few pages available to page out at all.
I've read parts of the paper written regarding porting Hurd to L4 and the proposal to split user memory into guaranteed and pageable portions.
I'd be interested in prototyping a simple variant of this in gnumach whereby a process would be guaranteed a configurable minimum of physical memory at all times. I can imagine that there might be security and policy issues to consider but as a first step it would be interesting to see how something simple worked out.
Might it make the resident set for rumpdisk smaller too if parts of that code don't actually get used by Hurd?
Mike.
