Hello, 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