This is what I'd like to do for POWER9 doorbells, which reworks the existing code a bit. I guess it won't work on DD1 with OPAL until darn is fixed (only tested on POWER9 using mambo).
Nicholas Piggin (5): powerpc/pseries: do not use msgsndp doorbells on POWER9 guests powerpc: change the doorbell IPI calling convention powerpc: Introduce msgsnd/doorbell barrier primitives powerpc/64s: avoid branch for ppc_msgsnd powerpc/powernv: POWER9 support for msgsnd/doorbell IPI arch/powerpc/include/asm/dbell.h | 45 ++++++++++++++++++------ arch/powerpc/include/asm/feature-fixups.h | 20 +++++++++++ arch/powerpc/include/asm/ppc-opcode.h | 6 ++++ arch/powerpc/include/asm/ppc_asm.h | 15 ++++++++ arch/powerpc/include/asm/smp.h | 4 +-- arch/powerpc/include/asm/xics.h | 2 +- arch/powerpc/kernel/dbell.c | 58 +++++++++++++++++++++++++++---- arch/powerpc/kernel/smp.c | 27 +++++++------- arch/powerpc/platforms/85xx/smp.c | 11 ++---- arch/powerpc/platforms/powermac/smp.c | 2 +- arch/powerpc/platforms/powernv/smp.c | 33 +++++++++++++----- arch/powerpc/platforms/pseries/smp.c | 33 ++++++++---------- arch/powerpc/sysdev/xics/icp-hv.c | 2 +- arch/powerpc/sysdev/xics/icp-native.c | 12 +------ arch/powerpc/sysdev/xics/icp-opal.c | 2 +- arch/powerpc/sysdev/xics/xics-common.c | 3 -- 16 files changed, 189 insertions(+), 86 deletions(-) -- 2.11.0