Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Apr 2004 18:02:21 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        Stephan Uphoff <ups@tree.com>
Subject:   Re: how to flush out cache.? 
Message-ID:  <200404220102.i3M12Lrl097316@apollo.backplane.com>
References:  <Pine.BSF.4.21.0404211451540.31770-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:> 
:> mmap() and msync(..MS_INVALIDATE..) should work.
:
:hmmm that is rather interesting..
:I wonder if it would work....
:Maybe a vm guru could confirm this.. (under 4.x)
:

    Huh.  If I hadn't looked at the code I would have said that
    MS_INVALIDATE doesn't work in FreeBSD, but when I look at the code
    it sure looks like it ought to work!

    But, alas, it does not.  The invalidation request goes all the way
    through to the vnode pager but it looks like the vnode pager ignores
    it.

    MS_INVALIDATE -> OBJPC_INVAL -> VM_PAGER_PUT_INVAL -> IO_INVAL -> (ignored)

    IO_INVAL is defined to be 'invalidate after I/O completes', 
    not 'throw away the dirty data', but the only place it appears to be 
    implemented is in the NFS code.

						-Matt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404220102.i3M12Lrl097316>