On 04.03.2025 00:29, Andrew Cooper wrote: > struct domain is always a page aligned allocation. Update it's type to > reflect this, so we can safely reuse the lower bits in the pointer for > auxiliary information. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> > --- > CC: Anthony PERARD <anthony.per...@vates.tech> > CC: Michal Orzel <michal.or...@amd.com> > CC: Jan Beulich <jbeul...@suse.com> > CC: Julien Grall <jul...@xen.org> > CC: Roger Pau Monné <roger....@citrix.com> > CC: Stefano Stabellini <sstabell...@kernel.org> > CC: Dario Faggioli <dfaggi...@suse.com> > CC: Juergen Gross <jgr...@suse.com> > CC: George Dunlap <g...@xenproject.org> > > v2: > * New > > Interestingly this does cause two changes in the resulting binary, both caused > by GCC electing to use a more complicated addressing mode to save one ADD > instruction.
That's on x86, I suppose? > --- a/xen/include/xen/sched.h > +++ b/xen/include/xen/sched.h > @@ -645,7 +645,7 @@ struct domain > unsigned int num_llc_colors; > const unsigned int *llc_colors; > #endif > -}; > +} __aligned(PAGE_SIZE); > > static inline struct page_list_head *page_to_list( > struct domain *d, const struct page_info *pg) I understand struct domain is where you need the annotation right away, but is there a reason not to do the same for struct vcpu right away? Jan