【问题标题】:How to disable or closing CPU HOTPLUG in 4.2.2. kernel?如何在 4.2.2 中禁用或关闭 CPU HOTPLUG。核心?
【发布时间】:2015-08-12 15:21:51
【问题描述】:

使用 linux3.4 kernel-android 4.2.2 和 编译我自己的内核并设置默认的cpu调控器是性能。

尽管性能调节器,cpu0 经常杀死 cpu1, 有什么办法可以取消hotplug和cpu0和cpu1每次都在线。

向上cpu1 manuel (echo 1 > /sys/devices/system/cpu/cpu1/online) 但随后 cpu0 再次杀死 cpu1。

谢谢...

>     <5>[ 1463.823251] **CPU1: shutdown**
>     <6>[ 1463.826297] [hotplug]: cpu(0) try to kill cpu(1)
>     <6>[ 1463.832847] [hotplug]: cpu1 is killed!
>     <7>[ 1464.122323] **cpu up:1**
>     <4>[ 1464.156379] CPU1: Booted secondary processor
>     <5>[ 1464.723240] **CPU1: shutdown**
>     <6>[ 1464.726262] [hotplug]: cpu(0) try to kill cpu(1)
>     <6>[ 1464.732851] **[hotplug]: cpu1 is killed!**
>     <6>[ 1473.123071] [BASE_I2C_DEBUG]receive temperature code: 0x04,0x41,0x01,0x24


>     root@android:/ # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
>     cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
>     performance
>     root@android:/ #

【问题讨论】:

  • 从您提供的日志中的时间戳来看,CPU1 启动/关闭事件来回发生。有可能因为偷听而发生吗?如果不是,那么这是 hotplug 试图节省一些电量的方式(在不需要时禁用第二个 CPU)。

标签: android linux linux-kernel embedded-linux


【解决方案1】:

浏览内核代码,我认为您似乎无法动态禁用热插拔 cpu,因为 sysfs 中没有这样的接口。如果不需要热插拔cpu,可以在构建内核时取消选择CONFIG_HOTPLUG_CPU。

echo 1 &gt; /sys/devices/system/cpu/cpu1/online只是让这个cpu在线,但是内核判断它可能再次离线。

而且我认为scaling_governor 只会影响内核中称为cpufreq 的机制的cpu 频率。这是与hotplug cpu 不同的机制。 performance 仅将 cpu 设置为最大频率。但是当这个cpu上没有任务运行时,hotplug cpu仍然可以让它离线。

【讨论】:

  • CONFIG_HOTPLUG_CPU 仅在 CPU 空闲时禁用热插拔。 CPU 热插拔也可能由于 CPU 温度高而发生。为此,您必须在内核中禁用热调节器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2017-05-29
  • 1970-01-01
  • 2023-03-14
  • 2011-12-24
相关资源
最近更新 更多