mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 07:07:34 +07:00
s390/cpu_mf: replace stcctm5() with the stcctm() function
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>
This commit is contained in:
parent
778fb10ccc
commit
346d034d7f
@ -212,7 +212,15 @@ static inline int ecctr(u64 ctr, u64 *val)
|
||||
}
|
||||
|
||||
/* 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;
|
||||
|
||||
@ -226,21 +234,6 @@ static inline int stcctm(u8 set, u64 range, u64 *dest)
|
||||
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)
|
||||
{
|
||||
|
@ -69,7 +69,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;
|
||||
@ -432,6 +432,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));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user