On Tue, Apr 13, 2021 at 02:03:52PM +0200, Jan Beulich wrote:
> On 13.04.2021 12:18, Roger Pau Monné wrote:
> > On Tue, Apr 13, 2021 at 11:24:09AM +0200, Jan Beulich wrote:
> >> On 12.04.2021 17:31, Roger Pau Monné wrote:
> >>> On Mon, Apr 12, 2021 at 12:40:48PM +0200, Jan Beulich wrote:
> >>>> + {
> >>>> + const struct page_info *pg = mfn_to_page(mfn);
> >>>> +
> >>>> + if ( !page_get_owner(pg) && (pg->count_info & PGC_extra) )
> >>>> + {
> >>>> + ASSERT(type == p2m_mmio_direct);
> >>>> + return 0;
> >>>
> >>> Are there any other pages that could pass this check? I don't think
> >>> so, but wanted to assert.
> >>
> >> "Normal" extra pages have an owner, so no, there aren't any others.
> >> If and when any appear, this may need further customizing, albeit
> >> generally I'd hope further pages matching this pattern would also
> >> want similar treatment.
> >
> > I wonder whether we want to add an assert here to make sure only the
> > APIC access page receives this special handling by the shadow code,
> > but maybe that's a bit too much?
>
> I think so, yes: It would require either a separate function or
> making the variable global. Both feel like a layering violation.
Right, with the INVALID_MFN change and the shadow mfn_valid style
adjustment:
Reviewed-by: Roger Pau Monné <[email protected]>
Thanks, Roger.