Message ID | 1470224194-15412-1-git-send-email-pbonzini@redhat.com |
---|---|
State | Superseded |
Headers | show |
Paolo Bonzini <pbonzini@redhat.com> writes: > hmi.c functions are unused unless sibling_subcore_state is nonzero, and > that in turn happens only if KVM is in use. So move the code to > arch/powerpc/kvm/, putting it under CONFIG_KVM_BOOK3S_64_HANDLER > rather than CONFIG_PPC_BOOK3S_64. The sibling_subcore_state is also > included in struct paca_struct only if KVM is supported by the kernel. Ok. Initially I was concerned because there are a bunch of non-KVM related HMI causes (e.g. the CAPP will raise an HMI if it loses the link to the CAPI card.) https://github.com/open-power/skiboot/blob/master/core/hmi.c lists lots of HMIs created by hardware events. Having said that, you're right that this particular file is KVM specific. Reviewed-by: Daniel Axtens <dja@axtens.net> Mahesh: is there a way to cause the TB to desynchronise and then test if this resynchronisation works? Regards, Daniel > > Cc: Paul Mackerras <paulus@samba.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > Cc: linuxppc-dev@lists.ozlabs.org > Cc: kvm-ppc@vger.kernel.org > Cc: kvm@vger.kernel.org > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > It would be nice to have this in 4.8, to minimize any 4.9 conflicts. > Build-tested only, with and without KVM enabled. > > arch/powerpc/include/asm/hmi.h | 2 +- > arch/powerpc/include/asm/paca.h | 10 +++++----- > arch/powerpc/kernel/Makefile | 2 +- > arch/powerpc/kvm/Makefile | 1 + > arch/powerpc/{kernel/hmi.c => kvm/book3s_hv_hmi.c} | 0 > 5 files changed, 8 insertions(+), 7 deletions(-) > rename arch/powerpc/{kernel/hmi.c => kvm/book3s_hv_hmi.c} (100%) > > diff --git a/arch/powerpc/include/asm/hmi.h b/arch/powerpc/include/asm/hmi.h > index 88b4901ac4ee..d3b6ad6e137c 100644 > --- a/arch/powerpc/include/asm/hmi.h > +++ b/arch/powerpc/include/asm/hmi.h > @@ -21,7 +21,7 @@ > #ifndef __ASM_PPC64_HMI_H__ > #define __ASM_PPC64_HMI_H__ > > -#ifdef CONFIG_PPC_BOOK3S_64 > +#ifdef CONFIG_KVM_BOOK3S_64_HANDLER > > #define CORE_TB_RESYNC_REQ_BIT 63 > #define MAX_SUBCORE_PER_CORE 4 > diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h > index 148303e7771f..625321e7e581 100644 > --- a/arch/powerpc/include/asm/paca.h > +++ b/arch/powerpc/include/asm/paca.h > @@ -183,11 +183,6 @@ struct paca_struct { > */ > u16 in_mce; > u8 hmi_event_available; /* HMI event is available */ > - /* > - * Bitmap for sibling subcore status. See kvm/book3s_hv_ras.c for > - * more details > - */ > - struct sibling_subcore_state *sibling_subcore_state; > #endif > > /* Stuff for accurate time accounting */ > @@ -202,6 +197,11 @@ struct paca_struct { > struct kvmppc_book3s_shadow_vcpu shadow_vcpu; > #endif > struct kvmppc_host_state kvm_hstate; > + /* > + * Bitmap for sibling subcore status. See kvm/book3s_hv_ras.c for > + * more details > + */ > + struct sibling_subcore_state *sibling_subcore_state; > #endif > }; > > diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile > index b2027a5cf508..fe4c075bcf50 100644 > --- a/arch/powerpc/kernel/Makefile > +++ b/arch/powerpc/kernel/Makefile > @@ -41,7 +41,7 @@ obj-$(CONFIG_VDSO32) += vdso32/ > obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o > obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o > obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o > -obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o hmi.o > +obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o > obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_book3e.o > obj-$(CONFIG_PPC64) += vdso64/ > obj-$(CONFIG_ALTIVEC) += vecemu.o > diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile > index 1f9e5529e692..855d4b95d752 100644 > --- a/arch/powerpc/kvm/Makefile > +++ b/arch/powerpc/kvm/Makefile > @@ -78,6 +78,7 @@ kvm-book3s_64-builtin-xics-objs-$(CONFIG_KVM_XICS) := \ > > ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE > kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ > + book3s_hv_hmi.o \ > book3s_hv_rmhandlers.o \ > book3s_hv_rm_mmu.o \ > book3s_hv_ras.o \ > diff --git a/arch/powerpc/kernel/hmi.c b/arch/powerpc/kvm/book3s_hv_hmi.c > similarity index 100% > rename from arch/powerpc/kernel/hmi.c > rename to arch/powerpc/kvm/book3s_hv_hmi.c > -- > 1.8.3.1 > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev
2016-08-03 13:36+0200, Paolo Bonzini: > hmi.c functions are unused unless sibling_subcore_state is nonzero, and > that in turn happens only if KVM is in use. So move the code to > arch/powerpc/kvm/, putting it under CONFIG_KVM_BOOK3S_64_HANDLER > rather than CONFIG_PPC_BOOK3S_64. The sibling_subcore_state is also > included in struct paca_struct only if KVM is supported by the kernel. > > Cc: Paul Mackerras <paulus@samba.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > Cc: linuxppc-dev@lists.ozlabs.org > Cc: kvm-ppc@vger.kernel.org > Cc: kvm@vger.kernel.org > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > It would be nice to have this in 4.8, to minimize any 4.9 conflicts. > Build-tested only, with and without KVM enabled. If you agree with the change, would you prefer to have this patch merged through the PowerPC tree? (There are no expected conflicts with -rc2 KVM tree.) Thanks. -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Radim Krčmář <rkrcmar@redhat.com> writes: > 2016-08-03 13:36+0200, Paolo Bonzini: >> hmi.c functions are unused unless sibling_subcore_state is nonzero, and >> that in turn happens only if KVM is in use. So move the code to >> arch/powerpc/kvm/, putting it under CONFIG_KVM_BOOK3S_64_HANDLER >> rather than CONFIG_PPC_BOOK3S_64. The sibling_subcore_state is also >> included in struct paca_struct only if KVM is supported by the kernel. >> >> Cc: Paul Mackerras <paulus@samba.org> >> Cc: Michael Ellerman <mpe@ellerman.id.au> >> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> >> Cc: linuxppc-dev@lists.ozlabs.org >> Cc: kvm-ppc@vger.kernel.org >> Cc: kvm@vger.kernel.org >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- >> It would be nice to have this in 4.8, to minimize any 4.9 conflicts. >> Build-tested only, with and without KVM enabled. > > If you agree with the change, would you prefer to have this patch merged > through the PowerPC tree? Yeah I'll pull it into my fixes branch. cheers -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Michael Ellerman <mpe@ellerman.id.au> writes: > Radim Krčmář <rkrcmar@redhat.com> writes: > >> 2016-08-03 13:36+0200, Paolo Bonzini: >>> hmi.c functions are unused unless sibling_subcore_state is nonzero, and >>> that in turn happens only if KVM is in use. So move the code to >>> arch/powerpc/kvm/, putting it under CONFIG_KVM_BOOK3S_64_HANDLER >>> rather than CONFIG_PPC_BOOK3S_64. The sibling_subcore_state is also >>> included in struct paca_struct only if KVM is supported by the kernel. >>> >>> Cc: Paul Mackerras <paulus@samba.org> >>> Cc: Michael Ellerman <mpe@ellerman.id.au> >>> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> >>> Cc: linuxppc-dev@lists.ozlabs.org >>> Cc: kvm-ppc@vger.kernel.org >>> Cc: kvm@vger.kernel.org >>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >>> --- >>> It would be nice to have this in 4.8, to minimize any 4.9 conflicts. >>> Build-tested only, with and without KVM enabled. >> >> If you agree with the change, would you prefer to have this patch merged >> through the PowerPC tree? > > Yeah I'll pull it into my fixes branch. And then I pulled it out again: (.text+0x157fc): undefined reference to `.wait_for_subcore_guest_exit' (.text+0x15834): undefined reference to `.wait_for_tb_resync' make[1]: *** [vmlinux] Error 1 http://kisskb.ellerman.id.au/kisskb/buildresult/12775422/ cheers -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/powerpc/include/asm/hmi.h b/arch/powerpc/include/asm/hmi.h index 88b4901ac4ee..d3b6ad6e137c 100644 --- a/arch/powerpc/include/asm/hmi.h +++ b/arch/powerpc/include/asm/hmi.h @@ -21,7 +21,7 @@ #ifndef __ASM_PPC64_HMI_H__ #define __ASM_PPC64_HMI_H__ -#ifdef CONFIG_PPC_BOOK3S_64 +#ifdef CONFIG_KVM_BOOK3S_64_HANDLER #define CORE_TB_RESYNC_REQ_BIT 63 #define MAX_SUBCORE_PER_CORE 4 diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h index 148303e7771f..625321e7e581 100644 --- a/arch/powerpc/include/asm/paca.h +++ b/arch/powerpc/include/asm/paca.h @@ -183,11 +183,6 @@ struct paca_struct { */ u16 in_mce; u8 hmi_event_available; /* HMI event is available */ - /* - * Bitmap for sibling subcore status. See kvm/book3s_hv_ras.c for - * more details - */ - struct sibling_subcore_state *sibling_subcore_state; #endif /* Stuff for accurate time accounting */ @@ -202,6 +197,11 @@ struct paca_struct { struct kvmppc_book3s_shadow_vcpu shadow_vcpu; #endif struct kvmppc_host_state kvm_hstate; + /* + * Bitmap for sibling subcore status. See kvm/book3s_hv_ras.c for + * more details + */ + struct sibling_subcore_state *sibling_subcore_state; #endif }; diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index b2027a5cf508..fe4c075bcf50 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@ -41,7 +41,7 @@ obj-$(CONFIG_VDSO32) += vdso32/ obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o -obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o hmi.o +obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_book3e.o obj-$(CONFIG_PPC64) += vdso64/ obj-$(CONFIG_ALTIVEC) += vecemu.o diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile index 1f9e5529e692..855d4b95d752 100644 --- a/arch/powerpc/kvm/Makefile +++ b/arch/powerpc/kvm/Makefile @@ -78,6 +78,7 @@ kvm-book3s_64-builtin-xics-objs-$(CONFIG_KVM_XICS) := \ ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) += \ + book3s_hv_hmi.o \ book3s_hv_rmhandlers.o \ book3s_hv_rm_mmu.o \ book3s_hv_ras.o \ diff --git a/arch/powerpc/kernel/hmi.c b/arch/powerpc/kvm/book3s_hv_hmi.c similarity index 100% rename from arch/powerpc/kernel/hmi.c rename to arch/powerpc/kvm/book3s_hv_hmi.c
hmi.c functions are unused unless sibling_subcore_state is nonzero, and that in turn happens only if KVM is in use. So move the code to arch/powerpc/kvm/, putting it under CONFIG_KVM_BOOK3S_64_HANDLER rather than CONFIG_PPC_BOOK3S_64. The sibling_subcore_state is also included in struct paca_struct only if KVM is supported by the kernel. Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Cc: kvm-ppc@vger.kernel.org Cc: kvm@vger.kernel.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- It would be nice to have this in 4.8, to minimize any 4.9 conflicts. Build-tested only, with and without KVM enabled. arch/powerpc/include/asm/hmi.h | 2 +- arch/powerpc/include/asm/paca.h | 10 +++++----- arch/powerpc/kernel/Makefile | 2 +- arch/powerpc/kvm/Makefile | 1 + arch/powerpc/{kernel/hmi.c => kvm/book3s_hv_hmi.c} | 0 5 files changed, 8 insertions(+), 7 deletions(-) rename arch/powerpc/{kernel/hmi.c => kvm/book3s_hv_hmi.c} (100%)