Messages in this thread | | | Subject | Re: [PATCH 5/8] x86/clear_page: add clear_page_uncached() | From | Ankur Arora <> | Date | Thu, 15 Oct 2020 14:40:06 -0700 |
| |
On 2020-10-15 3:40 a.m., Borislav Petkov wrote: > On Wed, Oct 14, 2020 at 08:21:57PM -0700, Ankur Arora wrote: >> Also, if we did extend clear_page() to take the page-size as parameter >> we still might not have enough information (ex. a 4K or a 2MB page that >> clear_page() sees could be part of a GUP of a much larger extent) to >> decide whether to go uncached or not. > > clear_page* assumes 4K. All of the lowlevel asm variants do. So adding > the size there won't bring you a whole lot. > > So you'd need to devise this whole thing differently. Perhaps have a > clear_pages() helper which decides based on size what to do: uncached > clearing or the clear_page() as is now in a loop.
I think that'll work well for GB pages, where the clear_pages() helper has enough information to make a decision.
But, unless I'm missing something, I'm not sure how that would work for say, a 1GB mm_populate() using 4K pages. The clear_page() (or clear_pages()) in that case would only see the 4K size.
But let me think about this more (and look at the callsites as you suggest.)
> > Looking at the callsites would give you a better idea I'd say. Thanks, yeah that's a good idea. Let me go do that.
Ankur
> > Thx. >
| |