[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/2] x86/hvm: simplify 'mmio_direct' check in epte_get_entry_emt()
On 31.07.2020 15:43, Paul Durrant wrote: >> -----Original Message----- >> From: Jan Beulich <jbeulich@xxxxxxxx> >> Sent: 31 July 2020 14:41 >> To: paul@xxxxxxx >> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; 'Paul Durrant' <pdurrant@xxxxxxxxxx>; >> 'Andrew Cooper' >> <andrew.cooper3@xxxxxxxxxx>; 'Wei Liu' <wl@xxxxxxx>; 'Roger Pau Monné' >> <roger.pau@xxxxxxxxxx> >> Subject: Re: [PATCH v2 2/2] x86/hvm: simplify 'mmio_direct' check in >> epte_get_entry_emt() >> >> On 31.07.2020 15:07, Paul Durrant wrote: >>>> -----Original Message----- >>>> From: Jan Beulich <jbeulich@xxxxxxxx> >>>> Sent: 31 July 2020 13:58 >>>> To: Paul Durrant <paul@xxxxxxx> >>>> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Paul Durrant <pdurrant@xxxxxxxxxx>; >>>> Andrew Cooper >>>> <andrew.cooper3@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Roger Pau Monné >>>> <roger.pau@xxxxxxxxxx> >>>> Subject: Re: [PATCH v2 2/2] x86/hvm: simplify 'mmio_direct' check in >>>> epte_get_entry_emt() >>>> >>>> On 31.07.2020 14:39, Paul Durrant wrote: >>>>> From: Paul Durrant <pdurrant@xxxxxxxxxx> >>>>> >>>>> Re-factor the code to take advantage of the fact that the APIC access >>>>> page is >>>>> a 'special' page. >>>> >>>> Hmm, that's going quite as far as I was thinking to go: In >>>> particular, you leave in place the set_mmio_p2m_entry() use >>>> in vmx_alloc_vlapic_mapping(). With that replaced, the >>>> re-ordering in epte_get_entry_emt() that you do shouldn't >>>> be necessary; you'd simple drop the checking of the >>>> specific MFN. >>> >>> Ok, it still needs to go in the p2m though so are you suggesting >>> just calling p2m_set_entry() directly? >> >> Yes, if this works. The main question really is whether there are >> any hidden assumptions elsewhere that this page gets mapped as an >> MMIO one. >> > > Actually, it occurs to me that logdirty is going to be an issue if I > use p2m_ram_rw. If I'm not going to use p2m_mmio_direct then do you > have another suggestion? p2m_ram_rw is also not good because of allowing execution. If we don't want to create a new type, how about (ab)using p2m_grant_map_rw (in the sense of Xen granting the domain access to this page)? Possible problems with this are - replace_grant_p2m_mapping() - hvm_translate_get_page() All other uses of p2m_grant_map_rw and p2m_is_grant() look to be compatible with this approach. For replace_grant_p2m_mapping() I think there's no issue because the grant table code won't find a suitable active entry. For hvm_translate_get_page() the question is why it checks for the two grant types in the first place; iow I wonder whether that check couldn't be dropped. Independent of this, btw, you may need to call set_gpfn_from_mfn() alongside p2m_set_entry(). Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |