diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-09-30 11:37:52 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-10-09 03:14:02 -0400 |
commit | fe0f49768d807a8fe6336b097feb8c4441951710 (patch) | |
tree | 5473c103c550bfa72871b4418521f7836a24d6b1 /arch/s390/kernel/vtime.c | |
parent | a9b1649917f0d2058022eda06082f9d299a06354 (diff) |
s390/nohz: use a per-cpu flag for arch_needs_cpu
Move the nohz_delay bit from the s390_idle data structure to the
per-cpu flags. Clear the nohz delay flag in __cpu_disable and
remove the cpu hotplug notifier that used to do this.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/vtime.c')
-rw-r--r-- | arch/s390/kernel/vtime.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 8c34363d6f1e..40709821abde 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -163,7 +163,7 @@ void __kprobes vtime_stop_cpu(void) | |||
163 | /* Wait for external, I/O or machine check interrupt. */ | 163 | /* Wait for external, I/O or machine check interrupt. */ |
164 | psw_mask = PSW_KERNEL_BITS | PSW_MASK_WAIT | PSW_MASK_DAT | | 164 | psw_mask = PSW_KERNEL_BITS | PSW_MASK_WAIT | PSW_MASK_DAT | |
165 | PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK; | 165 | PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK; |
166 | idle->nohz_delay = 0; | 166 | clear_cpu_flag(CIF_NOHZ_DELAY); |
167 | 167 | ||
168 | /* Call the assembler magic in entry.S */ | 168 | /* Call the assembler magic in entry.S */ |
169 | psw_idle(idle, psw_mask); | 169 | psw_idle(idle, psw_mask); |
@@ -378,25 +378,8 @@ void init_cpu_vtimer(void) | |||
378 | set_vtimer(VTIMER_MAX_SLICE); | 378 | set_vtimer(VTIMER_MAX_SLICE); |
379 | } | 379 | } |
380 | 380 | ||
381 | static int s390_nohz_notify(struct notifier_block *self, unsigned long action, | ||
382 | void *hcpu) | ||
383 | { | ||
384 | struct s390_idle_data *idle; | ||
385 | long cpu = (long) hcpu; | ||
386 | |||
387 | idle = &per_cpu(s390_idle, cpu); | ||
388 | switch (action & ~CPU_TASKS_FROZEN) { | ||
389 | case CPU_DYING: | ||
390 | idle->nohz_delay = 0; | ||
391 | default: | ||
392 | break; | ||
393 | } | ||
394 | return NOTIFY_OK; | ||
395 | } | ||
396 | |||
397 | void __init vtime_init(void) | 381 | void __init vtime_init(void) |
398 | { | 382 | { |
399 | /* Enable cpu timer interrupts on the boot cpu. */ | 383 | /* Enable cpu timer interrupts on the boot cpu. */ |
400 | init_cpu_vtimer(); | 384 | init_cpu_vtimer(); |
401 | cpu_notifier(s390_nohz_notify, 0); | ||
402 | } | 385 | } |