I'm currently working on the VM cache as implemented by GNU Mach, and
more specifically on the maximum cached objects limit, the goal being
to remove it and let memory pressure be the only flush trigger.

But when removing the limit, I experience far more ext2fs stability
issues than usual. After digging a bit into the problem, I've traced it
to pager_sync (called from diskfs_sync_everything). There doesn't seem
to be any obvious locking issue there, and the completion function looks
right too. What happens between these two functions ?

In addition, this problem may be related to the libpager deadlock issue
reported some years ago [1] [2], although it happens with both the
Debian hurd package and the upstream Hurd code. I regularly get
segmentation faults, but also deadlocks or infinite loops (which makes
me think of stack corruptions). If someone with more experience with
this part of the Hurd would take a look, it would be appreciated.

Richard Braun

[1] http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00127.html
[2] http://lists.gnu.org/archive/html/bug-hurd/2010-04/msg00012.html

Reply via email to