git: 406f97fa59d7 - stable/13 - hwpmc: remove stub pmd_switch_{in,out} methods

From: Mitchell Horne <mhorne_at_FreeBSD.org>
Date: Fri, 09 Jun 2023 19:58:16 UTC
The branch stable/13 has been updated by mhorne:

URL: https://cgit.FreeBSD.org/src/commit/?id=406f97fa59d73cd8242100fcfa79f35e5b494c1d

commit 406f97fa59d73cd8242100fcfa79f35e5b494c1d
Author:     Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2023-05-05 21:59:41 +0000
Commit:     Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2023-06-09 19:48:06 +0000

    hwpmc: remove stub pmd_switch_{in,out} methods
    
    Most platforms (non-x86) don't require these methods and implement stub
    versions. If we initialize the pmc_mdep structure to always point to the
    generic versions, then we can purge the duplicate stubs.
    
    Reviewed by:    jkoshy
    MFC after:      2 weeks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D39913
    
    (cherry picked from commit fa88954fd8f16ef60084a73d446a23e791ed22e5)
---
 sys/dev/hwpmc/hwpmc_arm64.c   | 24 ++----------------------
 sys/dev/hwpmc/hwpmc_armv7.c   | 24 ++----------------------
 sys/dev/hwpmc/hwpmc_mod.c     |  7 ++++---
 sys/dev/hwpmc/hwpmc_powerpc.c | 17 -----------------
 4 files changed, 8 insertions(+), 64 deletions(-)

diff --git a/sys/dev/hwpmc/hwpmc_arm64.c b/sys/dev/hwpmc/hwpmc_arm64.c
index 36524072d50c..049294b43f9c 100644
--- a/sys/dev/hwpmc/hwpmc_arm64.c
+++ b/sys/dev/hwpmc/hwpmc_arm64.c
@@ -442,23 +442,6 @@ arm64_get_config(int cpu, int ri, struct pmc **ppm)
 	return (0);
 }
 
-/*
- * XXX don't know what we should do here.
- */
-static int
-arm64_switch_in(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return (0);
-}
-
-static int
-arm64_switch_out(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return (0);
-}
-
 static int
 arm64_pcpu_init(struct pmc_mdep *md, int cpu)
 {
@@ -598,11 +581,8 @@ pmc_arm64_initialize(void)
 	pcd->pcd_stop_pmc       = arm64_stop_pmc;
 	pcd->pcd_write_pmc      = arm64_write_pmc;
 
-	pmc_mdep->pmd_intr       = arm64_intr;
-	pmc_mdep->pmd_switch_in  = arm64_switch_in;
-	pmc_mdep->pmd_switch_out = arm64_switch_out;
-
-	pmc_mdep->pmd_npmc   += arm64_npmcs;
+	pmc_mdep->pmd_intr = arm64_intr;
+	pmc_mdep->pmd_npmc += arm64_npmcs;
 
 	return (pmc_mdep);
 }
diff --git a/sys/dev/hwpmc/hwpmc_armv7.c b/sys/dev/hwpmc/hwpmc_armv7.c
index 052b97f35586..26fa6a88b98f 100644
--- a/sys/dev/hwpmc/hwpmc_armv7.c
+++ b/sys/dev/hwpmc/hwpmc_armv7.c
@@ -407,23 +407,6 @@ armv7_get_config(int cpu, int ri, struct pmc **ppm)
 	return 0;
 }
 
-/*
- * XXX don't know what we should do here.
- */
-static int
-armv7_switch_in(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return 0;
-}
-
-static int
-armv7_switch_out(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return 0;
-}
-
 static int
 armv7_pcpu_init(struct pmc_mdep *md, int cpu)
 {
@@ -542,11 +525,8 @@ pmc_armv7_initialize(void)
 	pcd->pcd_stop_pmc       = armv7_stop_pmc;
 	pcd->pcd_write_pmc      = armv7_write_pmc;
 
-	pmc_mdep->pmd_intr       = armv7_intr;
-	pmc_mdep->pmd_switch_in  = armv7_switch_in;
-	pmc_mdep->pmd_switch_out = armv7_switch_out;
-	
-	pmc_mdep->pmd_npmc   += armv7_npmcs;
+	pmc_mdep->pmd_intr = armv7_intr;
+	pmc_mdep->pmd_npmc += armv7_npmcs;
 
 	return (pmc_mdep);
 }
diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c
index 1ff427a1e965..571b403538ed 100644
--- a/sys/dev/hwpmc/hwpmc_mod.c
+++ b/sys/dev/hwpmc/hwpmc_mod.c
@@ -5455,6 +5455,10 @@ pmc_mdep_alloc(int nclasses)
 	    sizeof(struct pmc_classdep), M_PMC, M_WAITOK|M_ZERO);
 	md->pmd_nclass = n;
 
+	/* Default methods */
+	md->pmd_switch_in = generic_switch_in;
+	md->pmd_switch_out = generic_switch_out;
+
 	/* Add base class. */
 	pmc_soft_initialize(md);
 	return md;
@@ -5492,9 +5496,6 @@ pmc_generic_cpu_initialize(void)
 
 	md->pmd_cputype    = PMC_CPU_GENERIC;
 
-	md->pmd_switch_in  = generic_switch_in;
-	md->pmd_switch_out = generic_switch_out;
-
 	return (md);
 }
 
diff --git a/sys/dev/hwpmc/hwpmc_powerpc.c b/sys/dev/hwpmc/hwpmc_powerpc.c
index e8f6f536e471..364e66f77870 100644
--- a/sys/dev/hwpmc/hwpmc_powerpc.c
+++ b/sys/dev/hwpmc/hwpmc_powerpc.c
@@ -105,20 +105,6 @@ pmc_save_kernel_callchain(uintptr_t *cc, int maxsamples,
 	return (frames);
 }
 
-static int
-powerpc_switch_in(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return (0);
-}
-
-static int
-powerpc_switch_out(struct pmc_cpu *pc, struct pmc_process *pp)
-{
-
-	return (0);
-}
-
 int
 powerpc_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc)
 {
@@ -553,9 +539,6 @@ pmc_md_initialize(void)
 
 	vers = mfpvr() >> 16;
 
-	pmc_mdep->pmd_switch_in  = powerpc_switch_in;
-	pmc_mdep->pmd_switch_out = powerpc_switch_out;
-	
 	switch (vers) {
 	case MPC7447A:
 	case MPC7448: