s390/cpum_cf: remove in-kernel counting facility interface
authorThomas Richter <tmricht@linux.ibm.com>
Tue, 24 Jan 2023 11:20:53 +0000 (12:20 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 25 Jan 2023 19:51:10 +0000 (20:51 +0100)
Commit 17bebcc68eee ("s390/cpum_cf: Add minimal in-kernel interface for
counter measurements") introduced a small in-kernel interface for CPU
Measurement counter facility.
There are no users of this interface, therefore remove it.

The following functions are removed:
 kernel_cpumcf_alert(),
 kernel_cpumcf_begin(),
 kernel_cpumcf_end(),
 kernel_cpumcf_avail()
there is no need for them anymore.
With the removal of function kernel_cpumcf_alert(), also remove
member alert in struct cpu_cf_events. Its purpose was to counter
measurement alert interrupts for the in-kernel interface.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/cpu_mcf.h
arch/s390/kernel/perf_cpum_cf.c
arch/s390/kernel/perf_cpum_cf_common.c

index 4b29c31..88fc115 100644 (file)
@@ -67,7 +67,6 @@ static inline int ctr_stcctm(enum cpumf_ctr_set set, u64 range, u64 *dest)
 struct cpu_cf_events {
        struct cpumf_ctr_info   info;
        atomic_t                ctr_set[CPUMF_CTR_SET_MAX];
-       atomic64_t              alert;
        u64                     state;          /* For perf_event_open SVC */
        u64                     dev_state;      /* For /dev/hwctr */
        unsigned int            flags;
@@ -80,25 +79,9 @@ struct cpu_cf_events {
 };
 DECLARE_PER_CPU(struct cpu_cf_events, cpu_cf_events);
 
-bool kernel_cpumcf_avail(void);
 int __kernel_cpumcf_begin(void);
-unsigned long kernel_cpumcf_alert(int clear);
 void __kernel_cpumcf_end(void);
 
-static inline int kernel_cpumcf_begin(void)
-{
-       if (!cpum_cf_avail())
-               return -ENODEV;
-
-       preempt_disable();
-       return __kernel_cpumcf_begin();
-}
-static inline void kernel_cpumcf_end(void)
-{
-       __kernel_cpumcf_end();
-       preempt_enable();
-}
-
 int cfset_online_cpu(unsigned int cpu);
 int cfset_offline_cpu(unsigned int cpu);
 #endif /* _ASM_S390_CPU_MCF_H */
index 7299f7f..5eaa81d 100644 (file)
@@ -832,7 +832,7 @@ static int __init cpumf_pmu_init(void)
 {
        int rc;
 
-       if (!kernel_cpumcf_avail())
+       if (!cpum_cf_avail())
                return -ENODEV;
 
        /* Setup s390dbf facility */
index 4824e34..99523dc 100644 (file)
@@ -27,7 +27,6 @@ DEFINE_PER_CPU(struct cpu_cf_events, cpu_cf_events) = {
                [CPUMF_CTR_SET_EXT]     = ATOMIC_INIT(0),
                [CPUMF_CTR_SET_MT_DIAG] = ATOMIC_INIT(0),
        },
-       .alert = ATOMIC64_INIT(0),
        .state = 0,
        .dev_state = 0,
        .flags = 0,
@@ -67,9 +66,6 @@ static void cpumf_measurement_alert(struct ext_code ext_code,
        if (alert & CPU_MF_INT_CF_MTDA)
                pr_warn("CPU[%i] MT counter data was lost\n",
                        smp_processor_id());
-
-       /* store alert for special handling by in-kernel users */
-       atomic64_or(alert, &cpuhw->alert);
 }
 
 #define PMC_INIT      0
@@ -94,12 +90,6 @@ static void cpum_cf_setup_cpu(void *flags)
        lcctl(0);
 }
 
-bool kernel_cpumcf_avail(void)
-{
-       return cpum_cf_initalized;
-}
-EXPORT_SYMBOL(kernel_cpumcf_avail);
-
 /* Initialize the CPU-measurement counter facility */
 int __kernel_cpumcf_begin(void)
 {
@@ -112,20 +102,6 @@ int __kernel_cpumcf_begin(void)
 }
 EXPORT_SYMBOL(__kernel_cpumcf_begin);
 
-/* Obtain the CPU-measurement alerts for the counter facility */
-unsigned long kernel_cpumcf_alert(int clear)
-{
-       struct cpu_cf_events *cpuhw = this_cpu_ptr(&cpu_cf_events);
-       unsigned long alert;
-
-       alert = atomic64_read(&cpuhw->alert);
-       if (clear)
-               atomic64_set(&cpuhw->alert, 0);
-
-       return alert;
-}
-EXPORT_SYMBOL(kernel_cpumcf_alert);
-
 /* Release the CPU-measurement counter facility */
 void __kernel_cpumcf_end(void)
 {