From: Hendrik Brueckner <brueckner@linux.ibm.com>
Date: Wed, 29 Aug 2018 18:12:17 +0200
Subject: s390/cpu_mf: replace stcctm5() with the stcctm() function
Git-commit: 346d034d7f13da9eb135458a2f6cf14c9b77a637
Patch-mainline: v5.1-rc1
References: jsc#SLE-6904 FATE#327581
Remove the stcctm5() function to extract counters from the MT-diagnostic
counter set with the stcctm() function. For readability, introduce an
enum to map the counter sets names to respective numbers for the stcctm
instruction.
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
arch/s390/include/asm/cpu_mf.h | 25 +++++++++----------------
arch/s390/kernel/vtime.c | 4 ++--
2 files changed, 11 insertions(+), 18 deletions(-)
--- a/arch/s390/include/asm/cpu_mf.h
+++ b/arch/s390/include/asm/cpu_mf.h
@@ -203,7 +203,15 @@ static inline int ecctr(u64 ctr, u64 *va
}
/* Store CPU counter multiple for a particular counter set */
-static inline int stcctm(u8 set, u64 range, u64 *dest)
+enum stcctm_ctr_set {
+ EXTENDED = 0,
+ BASIC = 1,
+ PROBLEM_STATE = 2,
+ CRYPTO_ACTIVITY = 3,
+ MT_DIAG = 5,
+ MT_DIAG_CLEARING = 9, /* clears loss-of-MT-ctr-data alert */
+};
+static inline int stcctm(enum stcctm_ctr_set set, u64 range, u64 *dest)
{
int cc;
@@ -216,21 +224,6 @@ static inline int stcctm(u8 set, u64 ran
: "cc", "memory");
return cc;
}
-
-/* Store CPU counter multiple for the MT utilization counter set */
-static inline int stcctm5(u64 num, u64 *val)
-{
- int cc;
-
- asm volatile (
- " .insn rsy,0xeb0000000017,%2,5,%1\n"
- " ipm %0\n"
- " srl %0,28\n"
- : "=d" (cc)
- : "Q" (*val), "d" (num)
- : "cc", "memory");
- return cc;
-}
/* Query sampling information */
static inline int qsi(struct hws_qsi_info_block *info)
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -68,7 +68,7 @@ static void update_mt_scaling(void)
u64 delta, fac, mult, div;
int i;
- stcctm5(smp_cpu_mtid + 1, cycles_new);
+ stcctm(MT_DIAG, smp_cpu_mtid + 1, cycles_new);
cycles_old = this_cpu_ptr(mt_cycles);
fac = 1;
mult = div = 0;
@@ -435,6 +435,6 @@ void vtime_init(void)
__this_cpu_write(mt_scaling_jiffies, jiffies);
__this_cpu_write(mt_scaling_mult, 1);
__this_cpu_write(mt_scaling_div, 1);
- stcctm5(smp_cpu_mtid + 1, this_cpu_ptr(mt_cycles));
+ stcctm(MT_DIAG, smp_cpu_mtid + 1, this_cpu_ptr(mt_cycles));
}
}