[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86: move cpu_{up,down}_helper()
commit f9d67340b4aa254f64b40f2031720f61a33c2904 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Wed Aug 19 11:09:38 2020 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Wed Aug 19 11:09:38 2020 +0200 x86: move cpu_{up,down}_helper() This is in preparation of making the building of sysctl.c conditional. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/smp.c | 34 ++++++++++++++++++++++++++++++++++ xen/arch/x86/sysctl.c | 33 --------------------------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c index 6f1aaa2106..14aa355a6b 100644 --- a/xen/arch/x86/smp.c +++ b/xen/arch/x86/smp.c @@ -22,6 +22,7 @@ #include <asm/hardirq.h> #include <asm/hpet.h> #include <asm/hvm/support.h> +#include <asm/setup.h> #include <irq_vectors.h> #include <mach_apic.h> @@ -396,3 +397,36 @@ void call_function_interrupt(struct cpu_user_regs *regs) perfc_incr(ipis); smp_call_function_interrupt(); } + +long cpu_up_helper(void *data) +{ + unsigned int cpu = (unsigned long)data; + int ret = cpu_up(cpu); + + /* Have one more go on EBUSY. */ + if ( ret == -EBUSY ) + ret = cpu_up(cpu); + + if ( !ret && !opt_smt && + cpu_data[cpu].compute_unit_id == INVALID_CUID && + cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 ) + { + ret = cpu_down_helper(data); + if ( ret ) + printk("Could not re-offline CPU%u (%d)\n", cpu, ret); + else + ret = -EPERM; + } + + return ret; +} + +long cpu_down_helper(void *data) +{ + int cpu = (unsigned long)data; + int ret = cpu_down(cpu); + /* Have one more go on EBUSY. */ + if ( ret == -EBUSY ) + ret = cpu_down(cpu); + return ret; +} diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c index b0cb1b57e7..aff52a13f3 100644 --- a/xen/arch/x86/sysctl.c +++ b/xen/arch/x86/sysctl.c @@ -79,39 +79,6 @@ static void l3_cache_get(void *arg) l3_info->size = info.size / 1024; /* in KB unit */ } -long cpu_up_helper(void *data) -{ - unsigned int cpu = (unsigned long)data; - int ret = cpu_up(cpu); - - /* Have one more go on EBUSY. */ - if ( ret == -EBUSY ) - ret = cpu_up(cpu); - - if ( !ret && !opt_smt && - cpu_data[cpu].compute_unit_id == INVALID_CUID && - cpumask_weight(per_cpu(cpu_sibling_mask, cpu)) > 1 ) - { - ret = cpu_down_helper(data); - if ( ret ) - printk("Could not re-offline CPU%u (%d)\n", cpu, ret); - else - ret = -EPERM; - } - - return ret; -} - -long cpu_down_helper(void *data) -{ - int cpu = (unsigned long)data; - int ret = cpu_down(cpu); - /* Have one more go on EBUSY. */ - if ( ret == -EBUSY ) - ret = cpu_down(cpu); - return ret; -} - static long smt_up_down_helper(void *data) { bool up = (bool)data; -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |