* [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/
@ 2016-08-03 11:36 Paolo Bonzini
2016-08-04 2:17 ` Daniel Axtens
2016-08-10 18:41 ` Radim Krčmář
0 siblings, 2 replies; 5+ messages in thread
From: Paolo Bonzini @ 2016-08-03 11:36 UTC (permalink / raw)
To: linux-kernel, kvm
Cc: Paul Mackerras, Michael Ellerman, Mahesh Salgaonkar, linuxppc-dev,
kvm-ppc
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%)
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/
2016-08-03 11:36 [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/ Paolo Bonzini
@ 2016-08-04 2:17 ` Daniel Axtens
2016-08-10 18:41 ` Radim Krčmář
1 sibling, 0 replies; 5+ messages in thread
From: Daniel Axtens @ 2016-08-04 2:17 UTC (permalink / raw)
To: Paolo Bonzini, linux-kernel, kvm
Cc: Paul Mackerras, linuxppc-dev, kvm-ppc, Mahesh Salgaonkar
[-- Attachment #1: Type: text/plain, Size: 4684 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 859 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/
2016-08-03 11:36 [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/ Paolo Bonzini
2016-08-04 2:17 ` Daniel Axtens
@ 2016-08-10 18:41 ` Radim Krčmář
2016-08-11 2:03 ` Michael Ellerman
1 sibling, 1 reply; 5+ messages in thread
From: Radim Krčmář @ 2016-08-10 18:41 UTC (permalink / raw)
To: Paolo Bonzini
Cc: linux-kernel, kvm, Paul Mackerras, Michael Ellerman,
Mahesh Salgaonkar, linuxppc-dev, kvm-ppc
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.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/
2016-08-10 18:41 ` Radim Krčmář
@ 2016-08-11 2:03 ` Michael Ellerman
2016-08-11 11:07 ` Michael Ellerman
0 siblings, 1 reply; 5+ messages in thread
From: Michael Ellerman @ 2016-08-11 2:03 UTC (permalink / raw)
To: Radim Krčmář, Paolo Bonzini
Cc: linux-kernel, kvm, Paul Mackerras, Mahesh Salgaonkar,
linuxppc-dev, kvm-ppc
Radim Kr=C4=8Dm=C3=A1=C5=99 <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.
>>=20
>> 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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/
2016-08-11 2:03 ` Michael Ellerman
@ 2016-08-11 11:07 ` Michael Ellerman
0 siblings, 0 replies; 5+ messages in thread
From: Michael Ellerman @ 2016-08-11 11:07 UTC (permalink / raw)
To: Radim Krčmář, Paolo Bonzini
Cc: kvm, Mahesh Salgaonkar, linux-kernel, kvm-ppc, Paul Mackerras,
linuxppc-dev
Michael Ellerman <mpe@ellerman.id.au> writes:
> Radim Kr=C4=8Dm=C3=A1=C5=99 <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.
>>>=20
>>> 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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-08-11 11:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-03 11:36 [PATCH] powerpc: move hmi.c to arch/powerpc/kvm/ Paolo Bonzini
2016-08-04 2:17 ` Daniel Axtens
2016-08-10 18:41 ` Radim Krčmář
2016-08-11 2:03 ` Michael Ellerman
2016-08-11 11:07 ` Michael Ellerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).