Messages in this thread | | | Subject | Re: [PATCH v5 6/6] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping | From | Toshi Kani <> | Date | Mon, 18 May 2015 15:53:14 -0600 |
| |
On Mon, 2015-05-18 at 22:51 +0200, Borislav Petkov wrote: > On Mon, May 18, 2015 at 02:21:08PM -0600, Toshi Kani wrote: > > The caller is the one who makes the condition checks necessary to create > > a huge page mapping. > > How? It would go and change MTRRs configuration and ranges and their > memory types so that a huge mapping succeeds? > > Or go and try a different range?
Try with a smaller page size.
The callers, pud_set_huge() and pmd_set_huge(), check if the given range is safe with MTRRs for creating a huge page mapping. If not, they fail the request, which leads their callers, ioremap_pud_range() and ioremap_pmd_range(), to retry with a smaller page size, i.e. 1GB -> 2MB -> 4KB. 4KB may not have overlap with MTRRs (hence no checking is necessary), which will succeed as before.
Thanks, -Toshi
| |