:>     Wait a sec... softupdates does not depend on write ordering.
:>     Softupdates issues all non-conflicting writes in parallel and
:>     doesn't care what order they are written to the disk.  When
:>     those complete, softupdates will then followup with all the
:>     writes that depend on the original set.
:Hmm.  Maybe I've misunderstood, then.  It was my understanding that
:soft updates writes metadata with WRITE_ORDERED set, and thus avoids
:having to explicitly wait for completion.  It's the WRITE_ORDERED that
:Vinum doesn't handle correctly.  On a single disk, it's just a
:question of not sorting around a WRITE_ORDERED request.  Vinum will
:keep the WRITE_ORDERED on a single disk, but it won't ensure that a
:request for the same volume, but which is destined for a different
:disk, will not be written until after all components of a prior
:WRITE_ORDERED request for that volume.

    Softupdates does not use bowrite().  In fact, the only place anyone
    uses bowrite() is in the UFS directory code, and if softupdates is 
    turned on even those few bowrite()s are turned *OFF*.

    Softupdates is very strict in how it issues I/O.  There are two cases.
    In the normal case softupdates does not issue dependant I/O 
    until the I/O associated with the dependancy itself completes.  In the 
    second case, where the kernel forces a buffer to be flushed, softupdates
    will issue I/O on a non-dependant version of the buffer and then
    redirty the buffer with the dependant data.

                                        Matthew Dillon 
                                        <[EMAIL PROTECTED]>

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to