Messages in this thread | | | Subject | Re: [PATCH v4 7/7] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping | From | Toshi Kani <> | Date | Tue, 12 May 2015 10:57:09 -0600 |
| |
On Tue, 2015-05-12 at 18:31 +0200, Borislav Petkov wrote: > On Tue, May 12, 2015 at 08:30:30AM -0600, Toshi Kani wrote: > > MTRR_TYPE_INVALID means MTRRs disabled. So, the caller checking with > > this value is the same as checking with mtrr_enabled() you suggested. > > So then you don't have to set *uniform = 1 on entry to > mtrr_type_lookup(). And change the retval test > > if ((!uniform) && (mtrr != MTRR_TYPE_WRBACK)) > > to > if ((mtrr != MTRR_TYPE_INVALID) && (!uniform) && (mtrr != MTRR_TYPE_WRBACK))
Yes, that's what I was thinking as well. Will do.
> You can put the MTRR_TYPE_INVALID first so that it shortcuts. > > You need the distinction between MTRRs *disabled* and an MTRR region > being {non-,}uniform. > > If MTRRs are disabled, uniform doesn't *mean* *anything* because it is > undefined. When MTRRs are disabled, the range is *not* covered by MTRRs > because, well, them MTRRs are disabled. > > And it might be fine for *your* use case to set *uniform even when MTRRs > are disabled but it might matter in the future. So we better design it > correct from the beginning.
I think it is a matter of how "uniform" is defined, but your point is taken and I will change it accordingly.
Thanks, -Toshi
| |