ARM Linux 大小核切换
(真或者假)设置给bL_switching_enabled变量;
初始化互斥锁cluster_lock;
注册cpufreq_driver驱动bL_cpufreq_driver。
如果上面的驱动注册成功,则将bL_switcher_notifier 挂在bL_activation_notifier链表上;
若挂载失败,则卸载驱动bL_cpufreq_driver
bL_cpufreq_driver定义如下:
static struct cpufreq_driver bL_cpufreq_driver = {
.name = "arm-big-little",
.flags = CPUFREQ_STICKY,
.verify = bL_cpufreq_verify_policy,
.target = bL_cpufreq_set_target,
.get = bL_cpufreq_get_rate,
.init = bL_cpufreq_init,
.have_governor_per_policy = true,
.attr = bL_cpufreq_attr,
};
若bL_cpufreq_driver注册成功,执行下面的命令,就可以看到有个驱动是arm-big-little。
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace powersaveinteractiveperformance
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governors
interactive
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
arm-big-little
用bL_cpufreq_driver这种调频策略时,就会执行到bL_cpufreq_set_target,然后执行bL_cpufreq_set_rate,则有可能调用到bL_switch_request。
ARMLinux大小核切 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
