ARM cacheflush syscall with range that spans multiple vma

Will Deacon will.deacon at arm.com
Mon Jun 10 05:09:47 EDT 2013


On Mon, Jun 10, 2013 at 09:59:48AM +0100, Russell King - ARM Linux wrote:
> On Sun, Jun 09, 2013 at 05:05:24PM -0700, John Reiser wrote:
> > Why does the ARM cacheflush syscall stop after the lowest vma
> > which intersects the user-requested range?  The range could
> > span more than one vma having contiguous addresses, such as
> > two files MAP_SHARED into adjacent pages; or even a region
> > that contains holes (pages not present.)
> 
> Because you're not supposed to use it on large ranges because it's
> an expensive operation.

I posted some patches to address this recently. Obviously it's still
expensive, but it makes the syscall restartable so that you can't DoS the
system.

  git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git cacheflush

There's WIP code there for a new iovec-based syscall too.

Will



More information about the linux-arm-kernel mailing list