I think that you imply explicit msync() calls still flush data to disk. Is
that the case?

Jason Young
accessUS Chief Network Engineer

On Wed, 8 Dec 1999, Matthew Dillon wrote:

> :I'd like to see this happen, go for it! :)
> :
> :Don't forget how getnewbuf refils the buffers though, it will need to
> :somehow to communicate to the syncer to disregard MAP_NOSYNC during a
> :shortage... ? :)
> :
> :-Alfred
> 
>     No, I don't bother with that.  If there is a filesystem buffer associated
>     with a dirty page the NOSYNC is ignored.  The only time a filesystem
>     buffer can be associated with a NOSYNC page is if you write().  In that
>     case we allow the normal filesystem mechanisms to handle it.
> 
>     The tie-in is really trivial -- there is essentially one procedure which
>     the object code calls to synchronize a range and it is comprised of two
>     parts:  Collecting dirty pages and constructing filesystem buffers 
>     for them, and flushing out filesystem buffers.
> 
>     NOSYNC simply prevents the first part from occuring for normal 
>     asynchronous flushes.  The second part thus nevers sees the pages unless
>     some other command indirectly associates them with a buffer -- like write()
>     does for example.
> 
>     For low-memory situations we let the pagedaemon handle things.  The 
>     pagedaemon ignores the NOSYNC flag.  That is, NOSYNC space is treated
>     just the same as swap-backed memory is treated - pageed only when 
>     necessary.
> 
>                                       -Matt
>                                       Matthew Dillon 
>                                       <[EMAIL PROTECTED]>
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
> 



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

Reply via email to