multiple pending filesystem requests for the same block ?

Scott Long scottl at samsco.org
Tue Jul 26 15:34:07 GMT 2005


Luigi Rizzo wrote:
> (context: SoC work on pluggable disk schedulers,
> 	http://wikitest.freebsd.org/moin.cgi/Hybrid
> 
> 
> The doubt we have is the following:
> 
> 	can the filesystem code have multiple pending write requests for
> 	the same disk block ?
> 
> the current (elevator) disk scheduler should have no problem with
> this, because even if disksort reorders requests, two requests
> for the same block retain the issue ordering.
> 
> However we wonder if this feature is actually expected by
> the filesystem code, or it does not matter because it
> never issues a new request before the previous one on the
> same area is complete.
> 
> 	thanks
> 	luigi

A write can either be direct through a strategy routine (and bypass the 
bufcache), or it can be synchronous via bwrite(), or it can be 
asynchronous via bawrite() and  bdwrite().  For the synchronous cases 
there is no guarantee of ordering.  For the async case (which most 
writes in the FS are), the bufcache will coelsce multiple writes to the 
same block.  Softupdate intercepts metadata writes and ensures that they
get coelesced and ordered correctly.  Data writes happen on a first
come first serve basis, and it's up to the application to use file locks
to ensure proper ordering between competing processes or threads.

Scott


More information about the freebsd-current mailing list