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

Reply via email to