On 01/10/2019 09:38, Jan Beulich wrote:
> On 30.09.2019 21:16, Andrew Cooper wrote:
>> Clang in particular has a habit of out-of-lining these and creating multiple
>> local copies of _mfn() and mfn_x(), etc.  Override this behaviour.
> Is special casing the typesafe helpers then the right approach? The
> fundamental idea after all is to let the compiler decide. I certainly
> agree that not inlining such trivial functions despite the inline
> keyword looks far from optimal, but if there's such a general issue
> with clang, shouldn't we make "inline" expand to "always_inline"
> uniformly?

Inline handing is a mess.

We currently define inline to __inline__.  Undoing this results in build
failures.

Linux currently defines inline to always_inline and they are desperately
trying to undo this (mis)behaviour.

There are a few uses of always_inline for safety purposes (the
speculative helpers).  Most uses of always_inline look to be workarounds
for the size-of-asm bug/(mis)feature.

In an ideal world, we wouldn't need it at all, but I definitely don't
think that taking the Linux approach is a clever move.  We definitely
have some static inlines which would better not being inline.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to