mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
s390/tick: Remove CIF_NOHZ_DELAY flag
Remove obsolete tick delay heuristic [1]. The upcoming cpuidle driver handles frequent sleep/wakeup cycles more effectively. [1] https://lore.kernel.org/all/20090929122533.402715150@de.ibm.com/ Suggested-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Mete Durlu <meted@linux.ibm.com> Reviewed-by: Heiko Carstens <hca@linux.ibm.com> Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
0e3d3b4bb0
commit
71eabd104e
|
|
@ -14,12 +14,10 @@
|
|||
|
||||
#include <linux/bits.h>
|
||||
|
||||
#define CIF_NOHZ_DELAY 2 /* delay HZ disable for a tick */
|
||||
#define CIF_ENABLED_WAIT 5 /* in enabled wait state */
|
||||
#define CIF_MCCK_GUEST 6 /* machine check happening in guest */
|
||||
#define CIF_DEDICATED_CPU 7 /* this CPU is dedicated */
|
||||
|
||||
#define _CIF_NOHZ_DELAY BIT(CIF_NOHZ_DELAY)
|
||||
#define _CIF_ENABLED_WAIT BIT(CIF_ENABLED_WAIT)
|
||||
#define _CIF_MCCK_GUEST BIT(CIF_MCCK_GUEST)
|
||||
#define _CIF_DEDICATED_CPU BIT(CIF_DEDICATED_CPU)
|
||||
|
|
@ -97,8 +95,6 @@ static __always_inline bool test_cpu_flag_of(int flag, int cpu)
|
|||
return test_bit(flag, &per_cpu(pcpu_devices, cpu).flags);
|
||||
}
|
||||
|
||||
#define arch_needs_cpu() test_cpu_flag(CIF_NOHZ_DELAY)
|
||||
|
||||
static inline void get_cpu_id(struct cpuid *ptr)
|
||||
{
|
||||
asm volatile("stidp %0" : "=Q" (*ptr));
|
||||
|
|
|
|||
|
|
@ -136,7 +136,6 @@ void noinstr arch_cpu_idle(void)
|
|||
/* Wait for external, I/O or machine check interrupt. */
|
||||
psw_mask = PSW_KERNEL_BITS | PSW_MASK_WAIT |
|
||||
PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK;
|
||||
clear_cpu_flag(CIF_NOHZ_DELAY);
|
||||
set_cpu_flag(CIF_ENABLED_WAIT);
|
||||
if (smp_cpu_mtid)
|
||||
stcctm(MT_DIAG, smp_cpu_mtid, (u64 *)&idle->mt_cycles_enter);
|
||||
|
|
|
|||
|
|
@ -166,7 +166,6 @@ void noinstr do_io_irq(struct pt_regs *regs)
|
|||
if (from_idle)
|
||||
account_idle_time_irq();
|
||||
|
||||
set_cpu_flag(CIF_NOHZ_DELAY);
|
||||
do {
|
||||
regs->tpi_info = get_lowcore()->tpi_info;
|
||||
if (get_lowcore()->tpi_info.adapter_IO)
|
||||
|
|
@ -369,9 +368,6 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy)
|
|||
int index;
|
||||
|
||||
ext_code.int_code = regs->int_code;
|
||||
if (ext_code.code != EXT_IRQ_CLK_COMP)
|
||||
set_cpu_flag(CIF_NOHZ_DELAY);
|
||||
|
||||
index = ext_hash(ext_code.code);
|
||||
rcu_read_lock();
|
||||
hlist_for_each_entry_rcu(p, &ext_int_hash[index], entry) {
|
||||
|
|
|
|||
|
|
@ -909,7 +909,6 @@ int __cpu_disable(void)
|
|||
cregs[6].val &= ~0xff000000UL; /* disable all I/O interrupts */
|
||||
cregs[14].val &= ~0x1f000000UL; /* disable most machine checks */
|
||||
__local_ctl_load(0, 15, cregs);
|
||||
clear_cpu_flag(CIF_NOHZ_DELAY);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user