linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Remove unused macros from asm-offset
@ 2022-09-16 10:57 Disha Goel
  2022-09-16 10:57 ` [PATCH v2 1/2] powerpc/kvm: " Disha Goel
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Disha Goel @ 2022-09-16 10:57 UTC (permalink / raw)
  To: mpe; +Cc: atrajeev, kjain, npiggin, maddy, disgoel, linuxppc-dev

The kvm code was refactored to convert some of kvm assembly routines to C.
This includes commits which moved code path for the kvm guest entry/exit
for p7/8 from aseembly to C. As part of the code changes, usage of some of
the macros were removed. But definitions still exist in the assembly files.
Commits are listed below:

Commit 2e1ae9cd56f8 ("KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU")
Commit 9769a7fd79b6 ("KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path")
Commit fae5c9f3664b ("KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path")
Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")

Many of the asm-offset macro definitions were missed to remove. This patchset
fixes by removing the unused macro definitions.

Patch1 removes a set of unused kvm vcpu and hstate macros from the
asm-offset.c

Patch2 removes unused host_mmcr references for MMCR3/SIER2/SIER3

Changelog:
v1 -> v2:
Merge all the macro removal part from asm-offset.c file into a single patch
as suggested by Christophe Leroy.

Link to patchset v1:
http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220913074025.132160-2-disgoel@linux.vnet.ibm.com/

Link to the script used to get unused macro:
https://github.com/maddy-kerneldev/scripts/blob/master/check_asm-offset.sh

Link to linux-ci job result:
https://github.com/disgoel/linux-ci/actions?query=branch%3Akvmmacro.v2

Disha Goel (1):
  powerpc/kvm: Remove unused macros from asm-offset

Kajol Jain (1):
  powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers

 arch/powerpc/include/asm/kvm_book3s_asm.h |  2 +-
 arch/powerpc/kernel/asm-offsets.c         | 25 -----------------------
 2 files changed, 1 insertion(+), 26 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/2] powerpc/kvm: Remove unused macros from asm-offset
  2022-09-16 10:57 [PATCH v2 0/2] Remove unused macros from asm-offset Disha Goel
@ 2022-09-16 10:57 ` Disha Goel
  2022-09-20  8:11   ` Nicholas Piggin
  2022-09-16 10:57 ` [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers Disha Goel
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Disha Goel @ 2022-09-16 10:57 UTC (permalink / raw)
  To: mpe; +Cc: atrajeev, kjain, npiggin, maddy, disgoel, linuxppc-dev

The kvm code was refactored to convert some of kvm assembly routines to C.
This includes commits which moved code path for the kvm guest entry/exit
for p7/8 from aseembly to C. As part of the code changes, usage of some of
the macros were removed. But definitions still exist in the assembly files.
Commits are listed below:

Commit 2e1ae9cd56f8 ("KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU")
Commit 9769a7fd79b6 ("KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path")
Commit fae5c9f3664b ("KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path")
Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")

Many of the asm-offset macro definitions were missed to remove. Patch
fixes by removing the unused macros.

Signed-off-by: Disha Goel <disgoel@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/asm-offsets.c | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 8c10f536e478..95744e7c056d 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -418,21 +418,18 @@ int main(void)
 
 	/* book3s */
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
-	OFFSET(KVM_TLB_SETS, kvm, arch.tlb_sets);
 	OFFSET(KVM_SDR1, kvm, arch.sdr1);
 	OFFSET(KVM_HOST_LPID, kvm, arch.host_lpid);
 	OFFSET(KVM_HOST_LPCR, kvm, arch.host_lpcr);
 	OFFSET(KVM_HOST_SDR1, kvm, arch.host_sdr1);
 	OFFSET(KVM_ENABLED_HCALLS, kvm, arch.enabled_hcalls);
 	OFFSET(KVM_VRMA_SLB_V, kvm, arch.vrma_slb_v);
-	OFFSET(KVM_RADIX, kvm, arch.radix);
 	OFFSET(KVM_SECURE_GUEST, kvm, arch.secure_guest);
 	OFFSET(VCPU_DSISR, kvm_vcpu, arch.shregs.dsisr);
 	OFFSET(VCPU_DAR, kvm_vcpu, arch.shregs.dar);
 	OFFSET(VCPU_VPA, kvm_vcpu, arch.vpa.pinned_addr);
 	OFFSET(VCPU_VPA_DIRTY, kvm_vcpu, arch.vpa.dirty);
 	OFFSET(VCPU_HEIR, kvm_vcpu, arch.emul_inst);
-	OFFSET(VCPU_NESTED, kvm_vcpu, arch.nested);
 	OFFSET(VCPU_CPU, kvm_vcpu, cpu);
 	OFFSET(VCPU_THREAD_CPU, kvm_vcpu, arch.thread_cpu);
 #endif
@@ -449,16 +446,12 @@ int main(void)
 	OFFSET(VCPU_DABRX, kvm_vcpu, arch.dabrx);
 	OFFSET(VCPU_DAWR0, kvm_vcpu, arch.dawr0);
 	OFFSET(VCPU_DAWRX0, kvm_vcpu, arch.dawrx0);
-	OFFSET(VCPU_DAWR1, kvm_vcpu, arch.dawr1);
-	OFFSET(VCPU_DAWRX1, kvm_vcpu, arch.dawrx1);
 	OFFSET(VCPU_CIABR, kvm_vcpu, arch.ciabr);
 	OFFSET(VCPU_HFLAGS, kvm_vcpu, arch.hflags);
 	OFFSET(VCPU_DEC_EXPIRES, kvm_vcpu, arch.dec_expires);
 	OFFSET(VCPU_PENDING_EXC, kvm_vcpu, arch.pending_exceptions);
 	OFFSET(VCPU_CEDED, kvm_vcpu, arch.ceded);
 	OFFSET(VCPU_PRODDED, kvm_vcpu, arch.prodded);
-	OFFSET(VCPU_IRQ_PENDING, kvm_vcpu, arch.irq_pending);
-	OFFSET(VCPU_DBELL_REQ, kvm_vcpu, arch.doorbell_request);
 	OFFSET(VCPU_MMCR, kvm_vcpu, arch.mmcr);
 	OFFSET(VCPU_MMCRA, kvm_vcpu, arch.mmcra);
 	OFFSET(VCPU_MMCRS, kvm_vcpu, arch.mmcrs);
@@ -486,8 +479,6 @@ int main(void)
 	OFFSET(VCPU_TCSCR, kvm_vcpu, arch.tcscr);
 	OFFSET(VCPU_ACOP, kvm_vcpu, arch.acop);
 	OFFSET(VCPU_WORT, kvm_vcpu, arch.wort);
-	OFFSET(VCPU_TID, kvm_vcpu, arch.tid);
-	OFFSET(VCPU_PSSCR, kvm_vcpu, arch.psscr);
 	OFFSET(VCPU_HFSCR, kvm_vcpu, arch.hfscr);
 	OFFSET(VCORE_ENTRY_EXIT, kvmppc_vcore, entry_exit_map);
 	OFFSET(VCORE_IN_GUEST, kvmppc_vcore, in_guest);
@@ -582,8 +573,6 @@ int main(void)
 	HSTATE_FIELD(HSTATE_HWTHREAD_STATE, hwthread_state);
 	HSTATE_FIELD(HSTATE_KVM_VCPU, kvm_vcpu);
 	HSTATE_FIELD(HSTATE_KVM_VCORE, kvm_vcore);
-	HSTATE_FIELD(HSTATE_XIVE_TIMA_PHYS, xive_tima_phys);
-	HSTATE_FIELD(HSTATE_XIVE_TIMA_VIRT, xive_tima_virt);
 	HSTATE_FIELD(HSTATE_HOST_IPI, host_ipi);
 	HSTATE_FIELD(HSTATE_PTID, ptid);
 	HSTATE_FIELD(HSTATE_FAKE_SUSPEND, fake_suspend);
@@ -594,9 +583,6 @@ int main(void)
 	HSTATE_FIELD(HSTATE_SDAR, host_mmcr[4]);
 	HSTATE_FIELD(HSTATE_MMCR2, host_mmcr[5]);
 	HSTATE_FIELD(HSTATE_SIER, host_mmcr[6]);
-	HSTATE_FIELD(HSTATE_MMCR3, host_mmcr[7]);
-	HSTATE_FIELD(HSTATE_SIER2, host_mmcr[8]);
-	HSTATE_FIELD(HSTATE_SIER3, host_mmcr[9]);
 	HSTATE_FIELD(HSTATE_PMC1, host_pmc[0]);
 	HSTATE_FIELD(HSTATE_PMC2, host_pmc[1]);
 	HSTATE_FIELD(HSTATE_PMC3, host_pmc[2]);
@@ -672,17 +658,6 @@ int main(void)
 	OFFSET(VCPU_HOST_MAS6, kvm_vcpu, arch.host_mas6);
 #endif
 
-#ifdef CONFIG_KVM_XICS
-	DEFINE(VCPU_XIVE_SAVED_STATE, offsetof(struct kvm_vcpu,
-					       arch.xive_saved_state));
-	DEFINE(VCPU_XIVE_CAM_WORD, offsetof(struct kvm_vcpu,
-					    arch.xive_cam_word));
-	DEFINE(VCPU_XIVE_PUSHED, offsetof(struct kvm_vcpu, arch.xive_pushed));
-	DEFINE(VCPU_XIVE_ESC_ON, offsetof(struct kvm_vcpu, arch.xive_esc_on));
-	DEFINE(VCPU_XIVE_ESC_RADDR, offsetof(struct kvm_vcpu, arch.xive_esc_raddr));
-	DEFINE(VCPU_XIVE_ESC_VADDR, offsetof(struct kvm_vcpu, arch.xive_esc_vaddr));
-#endif
-
 #ifdef CONFIG_KVM_EXIT_TIMING
 	OFFSET(VCPU_TIMING_EXIT_TBU, kvm_vcpu, arch.timing_exit.tv32.tbu);
 	OFFSET(VCPU_TIMING_EXIT_TBL, kvm_vcpu, arch.timing_exit.tv32.tbl);
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers
  2022-09-16 10:57 [PATCH v2 0/2] Remove unused macros from asm-offset Disha Goel
  2022-09-16 10:57 ` [PATCH v2 1/2] powerpc/kvm: " Disha Goel
@ 2022-09-16 10:57 ` Disha Goel
  2022-09-20  8:15   ` Nicholas Piggin
  2022-10-17  5:56 ` [PATCH v2 0/2] Remove unused macros from asm-offset Athira Rajeev
  2022-11-30  9:23 ` Michael Ellerman
  3 siblings, 1 reply; 7+ messages in thread
From: Disha Goel @ 2022-09-16 10:57 UTC (permalink / raw)
  To: mpe; +Cc: atrajeev, kjain, npiggin, maddy, disgoel, linuxppc-dev

From: Kajol Jain" <kjain@linux.ibm.com>

Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore
in C") removed the PMU save/restore functions from assembly code and
implemented these functions in C, for power9 and later platforms.

After the code refactoring, Performance Monitoring Unit (PMU) registers
became part of "p9_host_os_sprs" structure and now this structure is
used to save/restore pmu host registers, for power9 and later platfroms.
But we still have old unused registers references. Patch removes unused
host_mmcr references for Monitor Mode Control Register 3 (MMCR3)/
Sampled Instruction Event Register 2 (SIER2)/ SIER3 registers from
"struct kvmppc_host_state".

Fixes: 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
---
 arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/kvm_book3s_asm.h b/arch/powerpc/include/asm/kvm_book3s_asm.h
index c8882d9b86c2..a36797938620 100644
--- a/arch/powerpc/include/asm/kvm_book3s_asm.h
+++ b/arch/powerpc/include/asm/kvm_book3s_asm.h
@@ -105,7 +105,7 @@ struct kvmppc_host_state {
 	void __iomem *xive_tima_virt;
 	u32 saved_xirr;
 	u64 dabr;
-	u64 host_mmcr[10];	/* MMCR 0,1,A, SIAR, SDAR, MMCR2, SIER, MMCR3, SIER2/3 */
+	u64 host_mmcr[7];	/* MMCR 0,1,A, SIAR, SDAR, MMCR2, SIER */
 	u32 host_pmc[8];
 	u64 host_purr;
 	u64 host_spurr;
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] powerpc/kvm: Remove unused macros from asm-offset
  2022-09-16 10:57 ` [PATCH v2 1/2] powerpc/kvm: " Disha Goel
@ 2022-09-20  8:11   ` Nicholas Piggin
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas Piggin @ 2022-09-20  8:11 UTC (permalink / raw)
  To: Disha Goel, mpe; +Cc: kjain, atrajeev, maddy, linuxppc-dev

On Fri Sep 16, 2022 at 8:57 PM AEST, Disha Goel wrote:
> The kvm code was refactored to convert some of kvm assembly routines to C.
> This includes commits which moved code path for the kvm guest entry/exit
> for p7/8 from aseembly to C. As part of the code changes, usage of some of
> the macros were removed. But definitions still exist in the assembly files.
> Commits are listed below:
>
> Commit 2e1ae9cd56f8 ("KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU")
> Commit 9769a7fd79b6 ("KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path")
> Commit fae5c9f3664b ("KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path")
> Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")
>
> Many of the asm-offset macro definitions were missed to remove. Patch
> fixes by removing the unused macros.
>
> Signed-off-by: Disha Goel <disgoel@linux.vnet.ibm.com>

Thanks, good cleanup.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> ---
>  arch/powerpc/kernel/asm-offsets.c | 25 -------------------------
>  1 file changed, 25 deletions(-)
>
> diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
> index 8c10f536e478..95744e7c056d 100644
> --- a/arch/powerpc/kernel/asm-offsets.c
> +++ b/arch/powerpc/kernel/asm-offsets.c
> @@ -418,21 +418,18 @@ int main(void)
>  
>  	/* book3s */
>  #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
> -	OFFSET(KVM_TLB_SETS, kvm, arch.tlb_sets);
>  	OFFSET(KVM_SDR1, kvm, arch.sdr1);
>  	OFFSET(KVM_HOST_LPID, kvm, arch.host_lpid);
>  	OFFSET(KVM_HOST_LPCR, kvm, arch.host_lpcr);
>  	OFFSET(KVM_HOST_SDR1, kvm, arch.host_sdr1);
>  	OFFSET(KVM_ENABLED_HCALLS, kvm, arch.enabled_hcalls);
>  	OFFSET(KVM_VRMA_SLB_V, kvm, arch.vrma_slb_v);
> -	OFFSET(KVM_RADIX, kvm, arch.radix);
>  	OFFSET(KVM_SECURE_GUEST, kvm, arch.secure_guest);
>  	OFFSET(VCPU_DSISR, kvm_vcpu, arch.shregs.dsisr);
>  	OFFSET(VCPU_DAR, kvm_vcpu, arch.shregs.dar);
>  	OFFSET(VCPU_VPA, kvm_vcpu, arch.vpa.pinned_addr);
>  	OFFSET(VCPU_VPA_DIRTY, kvm_vcpu, arch.vpa.dirty);
>  	OFFSET(VCPU_HEIR, kvm_vcpu, arch.emul_inst);
> -	OFFSET(VCPU_NESTED, kvm_vcpu, arch.nested);
>  	OFFSET(VCPU_CPU, kvm_vcpu, cpu);
>  	OFFSET(VCPU_THREAD_CPU, kvm_vcpu, arch.thread_cpu);
>  #endif
> @@ -449,16 +446,12 @@ int main(void)
>  	OFFSET(VCPU_DABRX, kvm_vcpu, arch.dabrx);
>  	OFFSET(VCPU_DAWR0, kvm_vcpu, arch.dawr0);
>  	OFFSET(VCPU_DAWRX0, kvm_vcpu, arch.dawrx0);
> -	OFFSET(VCPU_DAWR1, kvm_vcpu, arch.dawr1);
> -	OFFSET(VCPU_DAWRX1, kvm_vcpu, arch.dawrx1);
>  	OFFSET(VCPU_CIABR, kvm_vcpu, arch.ciabr);
>  	OFFSET(VCPU_HFLAGS, kvm_vcpu, arch.hflags);
>  	OFFSET(VCPU_DEC_EXPIRES, kvm_vcpu, arch.dec_expires);
>  	OFFSET(VCPU_PENDING_EXC, kvm_vcpu, arch.pending_exceptions);
>  	OFFSET(VCPU_CEDED, kvm_vcpu, arch.ceded);
>  	OFFSET(VCPU_PRODDED, kvm_vcpu, arch.prodded);
> -	OFFSET(VCPU_IRQ_PENDING, kvm_vcpu, arch.irq_pending);
> -	OFFSET(VCPU_DBELL_REQ, kvm_vcpu, arch.doorbell_request);
>  	OFFSET(VCPU_MMCR, kvm_vcpu, arch.mmcr);
>  	OFFSET(VCPU_MMCRA, kvm_vcpu, arch.mmcra);
>  	OFFSET(VCPU_MMCRS, kvm_vcpu, arch.mmcrs);
> @@ -486,8 +479,6 @@ int main(void)
>  	OFFSET(VCPU_TCSCR, kvm_vcpu, arch.tcscr);
>  	OFFSET(VCPU_ACOP, kvm_vcpu, arch.acop);
>  	OFFSET(VCPU_WORT, kvm_vcpu, arch.wort);
> -	OFFSET(VCPU_TID, kvm_vcpu, arch.tid);
> -	OFFSET(VCPU_PSSCR, kvm_vcpu, arch.psscr);
>  	OFFSET(VCPU_HFSCR, kvm_vcpu, arch.hfscr);
>  	OFFSET(VCORE_ENTRY_EXIT, kvmppc_vcore, entry_exit_map);
>  	OFFSET(VCORE_IN_GUEST, kvmppc_vcore, in_guest);
> @@ -582,8 +573,6 @@ int main(void)
>  	HSTATE_FIELD(HSTATE_HWTHREAD_STATE, hwthread_state);
>  	HSTATE_FIELD(HSTATE_KVM_VCPU, kvm_vcpu);
>  	HSTATE_FIELD(HSTATE_KVM_VCORE, kvm_vcore);
> -	HSTATE_FIELD(HSTATE_XIVE_TIMA_PHYS, xive_tima_phys);
> -	HSTATE_FIELD(HSTATE_XIVE_TIMA_VIRT, xive_tima_virt);
>  	HSTATE_FIELD(HSTATE_HOST_IPI, host_ipi);
>  	HSTATE_FIELD(HSTATE_PTID, ptid);
>  	HSTATE_FIELD(HSTATE_FAKE_SUSPEND, fake_suspend);
> @@ -594,9 +583,6 @@ int main(void)
>  	HSTATE_FIELD(HSTATE_SDAR, host_mmcr[4]);
>  	HSTATE_FIELD(HSTATE_MMCR2, host_mmcr[5]);
>  	HSTATE_FIELD(HSTATE_SIER, host_mmcr[6]);
> -	HSTATE_FIELD(HSTATE_MMCR3, host_mmcr[7]);
> -	HSTATE_FIELD(HSTATE_SIER2, host_mmcr[8]);
> -	HSTATE_FIELD(HSTATE_SIER3, host_mmcr[9]);
>  	HSTATE_FIELD(HSTATE_PMC1, host_pmc[0]);
>  	HSTATE_FIELD(HSTATE_PMC2, host_pmc[1]);
>  	HSTATE_FIELD(HSTATE_PMC3, host_pmc[2]);
> @@ -672,17 +658,6 @@ int main(void)
>  	OFFSET(VCPU_HOST_MAS6, kvm_vcpu, arch.host_mas6);
>  #endif
>  
> -#ifdef CONFIG_KVM_XICS
> -	DEFINE(VCPU_XIVE_SAVED_STATE, offsetof(struct kvm_vcpu,
> -					       arch.xive_saved_state));
> -	DEFINE(VCPU_XIVE_CAM_WORD, offsetof(struct kvm_vcpu,
> -					    arch.xive_cam_word));
> -	DEFINE(VCPU_XIVE_PUSHED, offsetof(struct kvm_vcpu, arch.xive_pushed));
> -	DEFINE(VCPU_XIVE_ESC_ON, offsetof(struct kvm_vcpu, arch.xive_esc_on));
> -	DEFINE(VCPU_XIVE_ESC_RADDR, offsetof(struct kvm_vcpu, arch.xive_esc_raddr));
> -	DEFINE(VCPU_XIVE_ESC_VADDR, offsetof(struct kvm_vcpu, arch.xive_esc_vaddr));
> -#endif
> -
>  #ifdef CONFIG_KVM_EXIT_TIMING
>  	OFFSET(VCPU_TIMING_EXIT_TBU, kvm_vcpu, arch.timing_exit.tv32.tbu);
>  	OFFSET(VCPU_TIMING_EXIT_TBL, kvm_vcpu, arch.timing_exit.tv32.tbl);
> -- 
> 2.31.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers
  2022-09-16 10:57 ` [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers Disha Goel
@ 2022-09-20  8:15   ` Nicholas Piggin
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas Piggin @ 2022-09-20  8:15 UTC (permalink / raw)
  To: Disha Goel, mpe; +Cc: kjain, atrajeev, maddy, linuxppc-dev

On Fri Sep 16, 2022 at 8:57 PM AEST, Disha Goel wrote:
> From: Kajol Jain" <kjain@linux.ibm.com>
>
> Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore
> in C") removed the PMU save/restore functions from assembly code and
> implemented these functions in C, for power9 and later platforms.
>
> After the code refactoring, Performance Monitoring Unit (PMU) registers
> became part of "p9_host_os_sprs" structure and now this structure is
> used to save/restore pmu host registers, for power9 and later platfroms.
> But we still have old unused registers references. Patch removes unused
> host_mmcr references for Monitor Mode Control Register 3 (MMCR3)/
> Sampled Instruction Event Register 2 (SIER2)/ SIER3 registers from
> "struct kvmppc_host_state".
>
> Fixes: 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")
> Signed-off-by: Kajol Jain <kjain@linux.ibm.com>

And it was increased from 7 to 10 with 5752fe0b811bb which added the
POWER10 registers, so that makes sense to go back to 7 in the POWER8
path.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> ---
>  arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/kvm_book3s_asm.h b/arch/powerpc/include/asm/kvm_book3s_asm.h
> index c8882d9b86c2..a36797938620 100644
> --- a/arch/powerpc/include/asm/kvm_book3s_asm.h
> +++ b/arch/powerpc/include/asm/kvm_book3s_asm.h
> @@ -105,7 +105,7 @@ struct kvmppc_host_state {
>  	void __iomem *xive_tima_virt;
>  	u32 saved_xirr;
>  	u64 dabr;
> -	u64 host_mmcr[10];	/* MMCR 0,1,A, SIAR, SDAR, MMCR2, SIER, MMCR3, SIER2/3 */
> +	u64 host_mmcr[7];	/* MMCR 0,1,A, SIAR, SDAR, MMCR2, SIER */
>  	u32 host_pmc[8];
>  	u64 host_purr;
>  	u64 host_spurr;
> -- 
> 2.31.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/2] Remove unused macros from asm-offset
  2022-09-16 10:57 [PATCH v2 0/2] Remove unused macros from asm-offset Disha Goel
  2022-09-16 10:57 ` [PATCH v2 1/2] powerpc/kvm: " Disha Goel
  2022-09-16 10:57 ` [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers Disha Goel
@ 2022-10-17  5:56 ` Athira Rajeev
  2022-11-30  9:23 ` Michael Ellerman
  3 siblings, 0 replies; 7+ messages in thread
From: Athira Rajeev @ 2022-10-17  5:56 UTC (permalink / raw)
  To: Disha Goel; +Cc: Madhavan Srinivasan, linuxppc-dev, Nicholas Piggin, Kajol Jain



> On 16-Sep-2022, at 4:27 PM, Disha Goel <disgoel@linux.vnet.ibm.com> wrote:
> 
> The kvm code was refactored to convert some of kvm assembly routines to C.
> This includes commits which moved code path for the kvm guest entry/exit
> for p7/8 from aseembly to C. As part of the code changes, usage of some of
> the macros were removed. But definitions still exist in the assembly files.
> Commits are listed below:
> 
> Commit 2e1ae9cd56f8 ("KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU")
> Commit 9769a7fd79b6 ("KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path")
> Commit fae5c9f3664b ("KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path")
> Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")
> 
> Many of the asm-offset macro definitions were missed to remove. This patchset
> fixes by removing the unused macro definitions.
> 

For the patchset,

Reviewed-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>

Thanks
Athira
> Patch1 removes a set of unused kvm vcpu and hstate macros from the
> asm-offset.c
> 
> Patch2 removes unused host_mmcr references for MMCR3/SIER2/SIER3
> 
> Changelog:
> v1 -> v2:
> Merge all the macro removal part from asm-offset.c file into a single patch
> as suggested by Christophe Leroy.
> 
> Link to patchset v1:
> http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220913074025.132160-2-disgoel@linux.vnet.ibm.com/
> 
> Link to the script used to get unused macro:
> https://github.com/maddy-kerneldev/scripts/blob/master/check_asm-offset.sh
> 
> Link to linux-ci job result:
> https://github.com/disgoel/linux-ci/actions?query=branch%3Akvmmacro.v2
> 
> Disha Goel (1):
>  powerpc/kvm: Remove unused macros from asm-offset
> 
> Kajol Jain (1):
>  powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers
> 
> arch/powerpc/include/asm/kvm_book3s_asm.h |  2 +-
> arch/powerpc/kernel/asm-offsets.c         | 25 -----------------------
> 2 files changed, 1 insertion(+), 26 deletions(-)
> 
> -- 
> 2.31.1
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 0/2] Remove unused macros from asm-offset
  2022-09-16 10:57 [PATCH v2 0/2] Remove unused macros from asm-offset Disha Goel
                   ` (2 preceding siblings ...)
  2022-10-17  5:56 ` [PATCH v2 0/2] Remove unused macros from asm-offset Athira Rajeev
@ 2022-11-30  9:23 ` Michael Ellerman
  3 siblings, 0 replies; 7+ messages in thread
From: Michael Ellerman @ 2022-11-30  9:23 UTC (permalink / raw)
  To: mpe, Disha Goel; +Cc: kjain, atrajeev, maddy, linuxppc-dev, npiggin

On Fri, 16 Sep 2022 16:27:34 +0530, Disha Goel wrote:
> The kvm code was refactored to convert some of kvm assembly routines to C.
> This includes commits which moved code path for the kvm guest entry/exit
> for p7/8 from aseembly to C. As part of the code changes, usage of some of
> the macros were removed. But definitions still exist in the assembly files.
> Commits are listed below:
> 
> Commit 2e1ae9cd56f8 ("KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU")
> Commit 9769a7fd79b6 ("KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path")
> Commit fae5c9f3664b ("KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path")
> Commit 57dc0eed73ca ("KVM: PPC: Book3S HV P9: Implement PMU save/restore in C")
> 
> [...]

Applied to powerpc/next.

[1/2] powerpc/kvm: Remove unused macros from asm-offset
      https://git.kernel.org/powerpc/c/2223552256dfc48435e0699dbe1e9b8d2cd56b06
[2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers
      https://git.kernel.org/powerpc/c/4ac9d3187cc7ccba25f76a3faef3e08a366f77b9

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-11-30  9:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-16 10:57 [PATCH v2 0/2] Remove unused macros from asm-offset Disha Goel
2022-09-16 10:57 ` [PATCH v2 1/2] powerpc/kvm: " Disha Goel
2022-09-20  8:11   ` Nicholas Piggin
2022-09-16 10:57 ` [PATCH v2 2/2] powerpc/kvm: Remove unused references for MMCR3/SIER2/SIER3 registers Disha Goel
2022-09-20  8:15   ` Nicholas Piggin
2022-10-17  5:56 ` [PATCH v2 0/2] Remove unused macros from asm-offset Athira Rajeev
2022-11-30  9:23 ` 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).