Re: [PATCH] [1/1] CPA: Flush the caches when setting pages not present v2

From: Andi Kleen
Date: Mon Feb 11 2008 - 12:36:34 EST



> This is suboptimal though, as it will trigger a wbinvd() everytime
> when we hit a non present pte in a range, whether we did set the entry
> in question to not present or not.

Do you think that's common? I considered this while writing the code,
but figured it was just a oddball case not worth caring about.

DEBUG_PAGEALLOC does not call this normally anyways and people
should not call this for unallocated mappings anyways.

> The gart code unmapping is a special case. This only happens during
> boot, so adding a wbinvd() to the gart code is solving this issue
> without imposing it on other use cases.
>
> Another solution for this would be to change the mapping to uncached
> before unmapping, so we could avoid the wbinvd() completely.

That will work for pci-gart, but not for some future users of set_memory_np()
I plan to submit (they run potentially with multiple CPUs online and doing callbacks
there would be quite ugly). So I would prefer if you kept some variant of my original patch.

-Andi

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/