本文整理汇总了C++中cpu_maps_update_begin函数的典型用法代码示例。如果您正苦于以下问题:C++ cpu_maps_update_begin函数的具体用法?C++ cpu_maps_update_begin怎么用?C++ cpu_maps_update_begin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cpu_maps_update_begin函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: disable_nonboot_cpus
int disable_nonboot_cpus(void)
{
int cpu, first_cpu, error = 0;
cpu_maps_update_begin();
first_cpu = cpumask_first(cpu_online_mask);
/*
* We take down all of the non-boot CPUs in one shot to avoid races
* with the userspace trying to use the CPU hotplug at the same time
*/
cpumask_clear(frozen_cpus);
printk("Disabling non-boot CPUs ...\n");
for_each_online_cpu(cpu) {
if (cpu == first_cpu)
continue;
error = _cpu_down(cpu, 1);
if (!error)
cpumask_set_cpu(cpu, frozen_cpus);
else {
printk(KERN_ERR "Error taking CPU%d down: %d\n",
cpu, error);
break;
}
}
if (!error) {
BUG_ON(num_online_cpus() > 1);
/* Make sure the CPUs won't be enabled by someone else */
cpu_hotplug_disabled = 1;
} else {
printk(KERN_ERR "Non-boot CPUs are not disabled\n");
}
cpu_maps_update_done();
return error;
}
开发者ID:SelfImp,项目名称:m75,代码行数:36,代码来源:cpu.c
示例2: enable_nonboot_cpus
void __ref enable_nonboot_cpus(void)
{
int cpu, error;
/* Allow everyone to use the CPU hotplug again */
cpu_maps_update_begin();
cpu_hotplug_disabled = 0;
if (cpumask_empty(frozen_cpus))
goto out;
pr_info("Enabling non-boot CPUs ...\n");
arch_enable_nonboot_cpus_begin();
for_each_cpu(cpu, frozen_cpus) {
trace_suspend_resume(TPS("CPU_ON"), cpu, true);
error = _cpu_up(cpu, 1);
trace_suspend_resume(TPS("CPU_ON"), cpu, false);
if (!error) {
pr_info("CPU%d is up\n", cpu);
continue;
}
pr_warn("Error taking CPU%d up: %d\n", cpu, error);
}
开发者ID:AkyZero,项目名称:wrapfs-latest,代码行数:24,代码来源:cpu.c
示例3: cpu_hotplug_enable
void cpu_hotplug_enable(void)
{
cpu_maps_update_begin();
WARN_ON(--cpu_hotplug_disabled < 0);
cpu_maps_update_done();
}
开发者ID:andy-shev,项目名称:linux,代码行数:6,代码来源:cpu.c
示例4: cpu_hotplug_disable
/*
* Wait for currently running CPU hotplug operations to complete (if any) and
* disable future CPU hotplug (from sysfs). The 'cpu_add_remove_lock' protects
* the 'cpu_hotplug_disabled' flag. The same lock is also acquired by the
* hotplug path before performing hotplug operations. So acquiring that lock
* guarantees mutual exclusion from any currently running hotplug operations.
*/
void cpu_hotplug_disable(void)
{
cpu_maps_update_begin();
cpu_hotplug_disabled++;
cpu_maps_update_done();
}
开发者ID:andy-shev,项目名称:linux,代码行数:13,代码来源:cpu.c
示例5: cpu_up
int __cpuinit cpu_up(unsigned int cpu)
{
int err = 0;
#ifdef CONFIG_MEMORY_HOTPLUG
int nid;
pg_data_t *pgdat;
#endif
if (!cpu_possible(cpu)) {
printk(KERN_ERR "can't online cpu %d because it is not "
"configured as may-hotadd at boot time\n", cpu);
#if defined(CONFIG_IA64)
printk(KERN_ERR "please check additional_cpus= boot "
"parameter\n");
#endif
return -EINVAL;
}
#ifdef CONFIG_MEMORY_HOTPLUG
nid = cpu_to_node(cpu);
if (!node_online(nid)) {
err = mem_online_node(nid);
if (err)
return err;
}
pgdat = NODE_DATA(nid);
if (!pgdat) {
printk(KERN_ERR
"Can't online cpu %d due to NULL pgdat\n", cpu);
return -ENOMEM;
}
if (pgdat->node_zonelists->_zonerefs->zone == NULL) {
mutex_lock(&zonelists_mutex);
build_all_zonelists(NULL);
mutex_unlock(&zonelists_mutex);
}
#endif
cpu_maps_update_begin();
#ifdef CONFIG_CPU_FREQ_GOV_K3HOTPLUG
if ((gcpu_num_limit.block != 0)
&& (num_online_cpus() >= gcpu_num_limit.block)) {
pr_err("[%s]cpu lock is %d can not hotplug cpu.\n",
__func__, gcpu_num_limit.block);
err = -EPERM;
goto out;
} else if ((gcpu_num_limit.block == 0)
&& (num_online_cpus() >= gcpu_num_limit.max)) {
pr_err("[%s]cpu max is %d can not hotplug cpu.\n",
__func__, gcpu_num_limit.max);
err = -EPERM;
goto out;
}
if (cpu != (num_online_cpus())) {
err = -EPERM;
goto out;
}
#endif
if (cpu_hotplug_disabled) {
err = -EBUSY;
goto out;
}
err = _cpu_up(cpu, 0);
out:
cpu_maps_update_done();
return err;
}
开发者ID:serrvius,项目名称:Kernel-3.0.8,代码行数:75,代码来源:cpu.c
示例6: disable_nonboot_cpus
int disable_nonboot_cpus(void)
{
int cpu, first_cpu, error = 0;
#ifdef CONFIG_ARM_EXYNOS_MP_CPUFREQ
int lated_cpu;
#endif
#ifdef CONFIG_ARM_EXYNOS_MP_CPUFREQ
if (exynos_boot_cluster == CA7)
lated_cpu = NR_CA7;
else
lated_cpu = NR_CA15;
#endif
cpu_maps_update_begin();
first_cpu = cpumask_first(cpu_online_mask);
/*
* We take down all of the non-boot CPUs in one shot to avoid races
* with the userspace trying to use the CPU hotplug at the same time
*/
cpumask_clear(frozen_cpus);
arch_disable_nonboot_cpus_begin();
printk("Disabling non-boot CPUs ...\n");
for_each_online_cpu(cpu) {
#if defined(CONFIG_ARM_EXYNOS_MP_CPUFREQ)
if (cpu == first_cpu || cpu == lated_cpu)
#else
if (cpu == first_cpu)
#endif
continue;
error = _cpu_down(cpu, 1);
if (!error)
cpumask_set_cpu(cpu, frozen_cpus);
else {
printk(KERN_ERR "Error taking CPU%d down: %d\n",
cpu, error);
break;
}
}
#ifdef CONFIG_ARM_EXYNOS_MP_CPUFREQ
if (num_online_cpus() > 1) {
error = _cpu_down(lated_cpu, 1);
if (!error)
cpumask_set_cpu(lated_cpu, frozen_cpus);
else
printk(KERN_ERR "Error taking CPU%d down: %d\n",
lated_cpu, error);
}
#endif
arch_disable_nonboot_cpus_end();
if (!error) {
BUG_ON(num_online_cpus() > 1);
/* Make sure the CPUs won't be enabled by someone else */
cpu_hotplug_disabled = 1;
} else {
printk(KERN_ERR "Non-boot CPUs are not disabled\n");
}
cpu_maps_update_done();
return error;
}
开发者ID:aramos1988,项目名称:Android_b2_Kernel,代码行数:64,代码来源:cpu.c
注:本文中的cpu_maps_update_begin函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论