Thanks for the explanation. I'm trying to understand what consequences
for performance can be expected.

[EMAIL PROTECTED] (Thomas Bushnell, BSG) writes:

> There are cases (as noted before) where the following sequence arises:
> 
> write block A
> write block B
> write block A again
> 
> and where the writes *must* occur in that sequence.  (This often
> happens when block A contains two inodes, and block B must be written
> *after* the update of the first, and *before* the update of the
> second.)

Does anybody have any idea how often this case occurs with typical
activities like compilation?

>   while (table contains "block B must be written before block A"
>       [TRANSITIVELY, even if not identically])
>     mark table "waiting for block A to be written"
>     ask kernel to pageout block A
>     wait for condition
>   mark table "block A must be written before block B"

With the current code, dependent modifications of A, B, A, results in

  modify(A); sync
  modify(B); sync
  modify(A); synced sometime later

The new scheme would change that to

  modify(A);
  modify(B); noting dependency
  sync(A);
  modify(A); note new dependency

all assuming that so spontaneous syncing occurs between the
modifications. So in this case we save one sync. Did I get this right?

Regards,
/Niels

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to