[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 08/22] x86/mm: avoid passing a domain parameter to L4 init function
On Mon, Jul 29, 2024 at 02:36:39PM +0100, Alejandro Vallejo wrote: > On Fri Jul 26, 2024 at 4:21 PM BST, Roger Pau Monne wrote: > > In preparation for the function being called from contexts where no domain > > is > > present. > > > > No functional change intended. > > > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > --- > > xen/arch/x86/include/asm/mm.h | 4 +++- > > xen/arch/x86/mm.c | 24 +++++++++++++----------- > > xen/arch/x86/mm/hap/hap.c | 3 ++- > > xen/arch/x86/mm/shadow/hvm.c | 3 ++- > > xen/arch/x86/mm/shadow/multi.c | 7 +++++-- > > xen/arch/x86/pv/dom0_build.c | 3 ++- > > xen/arch/x86/pv/domain.c | 3 ++- > > 7 files changed, 29 insertions(+), 18 deletions(-) > > > > diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h > > index b3853ae734fa..076e7009dc99 100644 > > --- a/xen/arch/x86/include/asm/mm.h > > +++ b/xen/arch/x86/include/asm/mm.h > > @@ -375,7 +375,9 @@ int devalidate_page(struct page_info *page, unsigned > > long type, > > > > void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d); > > void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn, > > - const struct domain *d, mfn_t sl4mfn, bool ro_mpt); > > + mfn_t sl4mfn, const struct page_info *perdomain_l3, > > + bool ro_mpt, bool maybe_compat, bool > > short_directmap); > > + > > The comment currently in the .c file should probably be here instead, and > updated for the new arguments. That said, I'm skeptical 3 booleans is > something > desirable. It induces a lot of complexity at the call sites (which of the 8 > forms of init_xen_l4_slots() do I need here?) and a lot of cognitive overload. > > I can't propose a solution because I'm still wrapping my head around how the > layout (esp. compat layout) fits together. Maybe the booleans can be mapped to > an enum? It would also help interpret the callsites as it'd no longer be a > sequence of contextless booleans, but a readable identifier. We have the following possible combinations: RO MPT COMPAT XLAT SHORT DMAP PV64 ? N Y PV32 N Y Y HVM N Y N So we would need: enum l4_domain_type { PV64, PV64_RO_MPT, PV32, HVM }; I can see about replacing those last 3 booleans with the proposed enum. Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |