[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] open-coded page list manipulation in shadow code
>>> On 30.01.15 at 11:20, <tim@xxxxxxx> wrote: > At 08:36 +0000 on 30 Jan (1422603387), Jan Beulich wrote: >> >>> On 29.01.15 at 18:30, <tim@xxxxxxx> wrote: >> > --- a/xen/arch/x86/mm/shadow/private.h >> > +++ b/xen/arch/x86/mm/shadow/private.h >> > @@ -318,6 +318,33 @@ static inline int mfn_oos_may_write(mfn_t gmfn) >> > } >> > #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) */ >> > >> > +/* Figure out the size (in pages) of a given shadow type */ >> > +static inline u32 >> > +shadow_size(unsigned int shadow_type) >> > +{ >> > + static const u32 type_to_size[SH_type_unused] = { >> > + 1, /* SH_type_none */ >> > + 2, /* SH_type_l1_32_shadow */ >> > + 2, /* SH_type_fl1_32_shadow */ >> > + 4, /* SH_type_l2_32_shadow */ >> > + 1, /* SH_type_l1_pae_shadow */ >> > + 1, /* SH_type_fl1_pae_shadow */ >> > + 1, /* SH_type_l2_pae_shadow */ >> > + 1, /* SH_type_l2h_pae_shadow */ >> > + 1, /* SH_type_l1_64_shadow */ >> > + 1, /* SH_type_fl1_64_shadow */ >> > + 1, /* SH_type_l2_64_shadow */ >> > + 1, /* SH_type_l2h_64_shadow */ >> > + 1, /* SH_type_l3_64_shadow */ >> > + 1, /* SH_type_l4_64_shadow */ >> > + 1, /* SH_type_p2m_table */ >> > + 1, /* SH_type_monitor_table */ >> > + 1 /* SH_type_oos_snapshot */ >> > + }; >> > + ASSERT(shadow_type < SH_type_unused); >> > + return type_to_size[shadow_type]; >> > +} >> >> Isn't this going to lead to multiple instances of that static array? > > Urgh, maybe. I'd have thought this would end up as a common symbol > (if that's the term I mean - one where the linker will merge identical > copies) but I didn't check what actually happens. That's C++ behavior you have in mind. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |