On Wed, Aug 24, 2022 at 12:50 AM Christophe Leroy <christophe.leroy@xxxxxxxxxx> wrote: > > > > Le 23/08/2022 à 10:47, Christophe Leroy a écrit : > > > > > > Le 23/08/2022 à 10:33, Michael Ellerman a écrit : > >> Zhouyi Zhou <zhouzhouyi@xxxxxxxxx> writes: > >> > >> My worry is that this will force irq_soft_mask_set() out of line, which > >> we would rather avoid. It's meant to be a fast path. > >> > >> In fact with this applied I see nearly 300 out-of-line copies of the > >> function when building a defconfig, and ~1700 calls to it. > >> > >> Normally it is inlined at every call site. > >> > >> > >> So I think I'm inclined to revert ef5b570d3700 ("powerpc/irq: Don't open > >> code irq_soft_mask helpers"). > > > > Could you revert it only partially ? In extenso, revert the > > READ/WRITE_ONCE and bring back the inline asm in irq_soft_mask_return() > > and irq_soft_mask_set(), but keep other changes. > > I sent a patch doing that. Thank Christophe for the fix. I am very glad to be of benefit to the community ;-) Also thank Michael and Paul for your constant encouragement and guidance, I learned to use objdump to count the number of failed inline function calls today ;-) By the way, from my experiments, both gcc-11 and clang-14 behave the same as Michael has described. Cheers Zhouyi > > Christophe