Hello,
На 6.04.2013 21:20, Thomas Schwinge написа:
> On Sat, 6 Apr 2013 18:23:24 +0200, Richard Braun <[email protected]> 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