On 08.04.2016 17:54, Thomas Huth wrote: > The SIAR register is available twice, one time as SPR 780 (unprivileged, > but read-only), and one time as SPR 796 (privileged, but read and write). > The Linux kernel code currently uses SPR 780 - and while this is OK for > reading, writing to that register of course does not work. > Since the KVM code tries to write to this register, too (see the mtspr > in book3s_hv_rmhandlers.S), the contents of this register sometimes get > lost for the guests, e.g. during migration of a VM. > To fix this issue, simply switch to the other SPR numer 796 instead. > > Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx> > --- > Note: The perf code in core-book3s.c also seems to write to the SIAR > SPR, so that might be affected by this issue, too - but I did > not test the perf code, so I'm not sure about that part. > > arch/powerpc/include/asm/reg.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h > index f5f4c66..6630420 100644 > --- a/arch/powerpc/include/asm/reg.h > +++ b/arch/powerpc/include/asm/reg.h > @@ -752,13 +752,13 @@ > #define SPRN_PMC6 792 > #define SPRN_PMC7 793 > #define SPRN_PMC8 794 > -#define SPRN_SIAR 780 > #define SPRN_SDAR 781 > #define SPRN_SIER 784 > #define SIER_SIPR 0x2000000 /* Sampled MSR_PR */ > #define SIER_SIHV 0x1000000 /* Sampled MSR_HV */ > #define SIER_SIAR_VALID 0x0400000 /* SIAR contents valid */ > #define SIER_SDAR_VALID 0x0200000 /* SDAR contents valid */ > +#define SPRN_SIAR 796 > #define SPRN_TACR 888 > #define SPRN_TCSCR 889 > #define SPRN_CSIGR 890 Ping! Anybody any comments? Thomas -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html