Hello, На 6.04.2013 21:20, Thomas Schwinge написа: > On Sat, 6 Apr 2013 18:23:24 +0200, Richard Braun <rbr...@sceen.net> wrote: >> +static void >> +disk_cache_return_unused (void) >> +{ >> + int index; >> + >> + /* XXX: Touch all pages. It seems that sometimes GNU Mach "forgets" >> + to notify us about evicted pages. Disk cache must be >> + unlocked. */ >> + for (vm_offset_t i = 0; i < disk_cache_size; i += vm_page_size) >> + *(volatile char *)(disk_cache + i); > > Uh. Open Issue (for later) for GNU Mach?
Yes, it's true. GNU Mach ("at my time") was totally unreliable with the page-in and eviction stuff and I was forced have these hacks. Most of the time in creating this patch was wondering why GNU Mach wasn't behaving as documented and things started to get fixed since when I made assumption that I can't rely on GNU Mach and have to programmatically double-check everything. If I recall correctly, my additional GNU Mach hacks were mandatory and not random, that is - if some of them are removed, it destabilizes ext2fs. It's worth checking if removing these hacks (one by one) changes stability. In summary, for really stable ext2fs there are 2 subsystems that should be fixed: 1. GNU Mach page handling. libpager in itself didn't have problems. 2. libdiskfs, having problems like those in https://savannah.gnu.org/patch/?1839 Regards, Ognyan Kulev