Cc: David Chinner <dgc@...>, <xfs@...>, Xen-devel <xen-devel@...>, Linux Kernel Mailing List <linux-kernel@...>, Mark Williamson <mark.williamson@...>, Morten <xen-users@...>, <xfs-masters@...>
On Monday 15 October 2007 09:12, Jeremy Fitzhardinge wrote:
Yes, as Dave said, vmap (more specifically: vunmap) is very expensive
because it generally has to invalidate TLBs on all CPUs.
I'm looking at some more general solutions to this (already have some
batching / lazy unmapping that replaces the XFS specific one), however
they are still likely going to leave vmap mappings around after freeing
the page.
We _could_ hold on to the pages as well, but that's pretty inefficient.
The memory cost of keeping the mappings around tends to be well under
1% the cost of the page itself. OTOH we could also avoid lazy flushes
on architectures where it is not costly. Either way, it probably would
require an arch hook or even a couple of ifdefs in mm/vmalloc.c for
Xen. Although... it would be nice if Xen could take advantage of some
of these optimisations as well.
What's the actual problem for Xen? Anything that can be changed?
-