On Thu, Dec 18, 2025 at 11:02:40AM -0500, Stewart Hildebrand wrote: > On 12/18/25 05:45, Jan Beulich wrote: > > Calling a function with 10 arguments is inefficient on many architectures: > > x86-64 allows for up to 6 register parameters, Arm64 for up to 8. > > Everything else needs passing on the stack, i.e. forcing the compiler to > > emit stack manipulation insns at every call site. > > > > Shrinks generated code on x86 (with gcc15) by over 250 bytes. The gains on > > Arm64 are a little less. > > > > Signed-off-by: Jan Beulich <[email protected]> > > Reviewed-by: Stewart Hildebrand <[email protected]>
Acked-by: Roger Pau Monné <[email protected]> > > --- > > Why is it, btw, that the declarations live in xen/vpci.h? These functions > > aren't supposed to be called from outside xen/drivers/vpci/, are they? In > > which case their decls may better live in a private header? > > You have a good point, they could very well live in a private header IMO. In fact most of vpci.h could become private. vpci_{,de}assign_device() must obviously be public, plus a couple more to satisfy calls from external sites: vpci_{read,write}(), vpci_dump_msi(), vpci_process_pending() and vpci_reset_device(). Maybe something else I'm missing, but not a lot more. Thanks, Roger.
