|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] x86/shadow: Correct guest behaviour when creating PTEs above maxphysaddr
At 16:04 +0000 on 14 Feb (1487088291), Andrew Cooper wrote:
> Hmm ok. With the other bugfix of not dropping the first line, this hunk
> is now simply:
>
> @@ -504,7 +505,7 @@ void recalculate_cpuid_policy(struct domain *d)
>
> p->extd.maxphysaddr = min(p->extd.maxphysaddr, max->extd.maxphysaddr);
> p->extd.maxphysaddr = min_t(uint8_t, p->extd.maxphysaddr,
> - d->arch.paging.gfn_bits + PAGE_SHIFT);
> + paging_max_paddr_bits(d));
> p->extd.maxphysaddr = max_t(uint8_t, p->extd.maxphysaddr,
> (p->basic.pae || p->basic.pse36) ? 36 :
> 32);
That looks good to me. Reviewed-by: Tim Deegan <tim@xxxxxxx>
> >> @@ -360,6 +361,21 @@ void paging_dump_vcpu_info(struct vcpu *v);
> >> int paging_set_allocation(struct domain *d, unsigned int pages,
> >> bool *preempted);
> >>
> >> +/* Maxphysaddr supportable by the paging infrastructure. */
> >> +static inline unsigned int paging_max_paddr_bits(const struct domain *d)
> >> +{
> >> + unsigned int bits = paging_mode_hap(d) ? hap_paddr_bits : paddr_bits;
> >> +
> >> + if ( !IS_ENABLED(BIGMEM) && paging_mode_shadow(d) &&
> >> + (!is_pv_domain(d) || opt_allow_superpage) )
> >> + {
> >> + /* Shadowed superpages store GFNs in 32-bit page_info fields. */
> >> + bits = min(bits, 32U + PAGE_SHIFT);
> >> + }
> >> +
> >> + return bits;
> >> +}
> > Does this really need to be an inline function? With the overall goal
> > of not including every header everywhere, I particularly dislike the
> > need to include xen/kconfig.h here for things to build.
>
> It is not on a critically path, but it seems wasteful to force something
> this small to be out of line.
It could be a macro, too. FWIW I agree with you that a static inline
is best.
Cheers,
Tim.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |