Re: [PATCH v5 6/6] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping
From: Borislav Petkov <bp@alien8.de>
Date: 2015-05-19 11:44:49
Also in:
lkml
From: Borislav Petkov <bp@alien8.de>
Date: 2015-05-19 11:44:49
Also in:
lkml
On Mon, May 18, 2015 at 03:53:14PM -0600, Toshi Kani wrote:
On Mon, 2015-05-18 at 22:51 +0200, Borislav Petkov wrote:quoted
On Mon, May 18, 2015 at 02:21:08PM -0600, Toshi Kani wrote:quoted
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.
Ok, now *this* should be in the form of a comment over the KVA helpers,
not the MTRR aspect. Callers of those functions would have to know that
- they shouldn't care about MTRR setup.
The MTRR aspect with the 3 conditions should be only over
mtrr_type_lookup().
I'll integrate it into the patch.
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
--