[parisc-linux] rmap: parisc __flush_dcache_page

Hugh Dickins hugh at veritas.com
Thu Apr 8 08:16:39 MDT 2004


On 8 Apr 2004, James Bottomley wrote:
> On Thu, 2004-04-08 at 08:41, Hugh Dickins wrote:
> > Something to notice about that parisc __flush_dcache_page I sent you:
> > there's no locking around searching the tree for vmas; there was never
> > any locking around searching the list for vmas.  arm is similar, but
> > at least has no CONFIG_SMP, just a preemption issue.  Any ideas?
> 
> I don't think you sent it to the parisc list?

That's right, at present it's just something in Andrea's -aa tree
and Martin's -mjb tree.  Will try to remember to copy maintainers
when sending to Andrew.  But the problem was there before the patch.

> I'm afraid we've just been pretty heavily updating flush_dcache_page
> recently to fill a number of holes in the implementation.

Don't be afraid, that's good!  Is it still going vertically down
i_mmap_shared and i_mmap?  Whereas it's only interested in vmas of
the one mm, so could go horizontally along it.  Just an option to
play with, but I don't believe it solves anything, just as unsafe
when threaded.

> As far as list traversal goes...we don't require the list to freeze:
> acidentally flushing dead vmas would be harmless and added ones wouldn't
> need flushing,

Yes.

> so all we need would probably be a safe traversal and a
> reference to prevent the vma being deallocated.

Which we're not giving you at all at present.  I guess another layer
of spinlocking/nopreemption, for parisc and arm, dissolving to nothing
on other arches.

Hugh



More information about the parisc-linux mailing list