AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 743964
Accepted
wangt13
wangt13
Asked: 2023-04-25 09:19:34 +0800 CST2023-04-25 09:19:34 +0800 CST 2023-04-25 09:19:34 +0800 CST

如何在 Linux-5.10.24 中禁用 CPU 热插拔功能(和内核线程)

  • 772

我正在使用 kernel-5.10.24 的嵌入式 Linux 系统。
由于系统资源有限,所以我想尽量减少 CPU/内存/存储的使用。
从ps -ax我发现 2 个内核线程如下,

   14 root      0:00 [cpuhp/0]
   15 root      0:00 [cpuhp/1]

我认为它们用于 CPU 热插拔,并且该系统中没有 CPU 热插拔用例,所以我想禁用该功能而不创建这 2 个内核线程。
我试图强制禁用此配置(select SYS_SUPPORTS_HOTPLUG_CPU从 arch/ARM/Kconfig 等中删除)。

但是部署新内核后,这两个内核线程仍然存在。
通过检查代码,这两个线程似乎是在不考虑CONFIG_HOTPLUG_CPUand的情况下创建的CONFIG_SYS_SUPPORTS_HOTPLUG_CPU,这意味着当配置 SMP 时,这两个线程总是存在的!

所以我不确定是否有办法禁止创建这两个内核线程。如果不是,我必须和他们一起生活,假设他们不会占用太多的 CPU 和内存来运行。

根据 dhanushka 的评论更新了内核菜单配置

                                                                                                                                         
   Symbol: HOTPLUG_CPU [=y]                                                                                                                

   Type  : bool                                                                                                                            

   Defined at arch/mips/Kconfig:2942                                                                                                       
     Prompt: Support for hot-pluggable CPUs                                                                                                
     Depends on: SMP [=y] && SYS_SUPPORTS_HOTPLUG_CPU [=y]                                                                                 
     Location:                                                                                                                             
       -> Kernel type                                                                                                                      
   (2)   -> Multi-Processing support (SMP [=y])                                                                                            
   Selected by [y]:                                                                                                                        
     - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]

与 dhanushka 的评论相同。
我将尝试禁用它并更新此问题。
正如我所说,cpuhp0/1似乎无法禁用。

linux
  • 1 1 个回答
  • 30 Views

1 个回答

  • Voted
  1. Best Answer
    dhanushka
    2023-04-29T17:03:03+08:002023-04-29T17:03:03+08:00

    不是真正的答案,但想添加一些东西。您一定已经尝试过这些,但请参阅下文以防您错过。

    如果你有 top(1),你可以查看他们的资源使用情况。或者您可以使用 /proc/[pid]/status 等来检查它们。无论哪种方式,您都会看到它们并不需要资源,而且大部分都处于睡眠 (S) 状态。

    您还会从内核文档和配置中看到它与电源管理(SMP 暂停/恢复)相关,因此请考虑您的电源管理要求以及禁用 CPU 热插拔会对它们产生怎样的影响。

    内核配置:

    内核文档说需要启用 CONFIG_HOTPLUG_CPU 才能使 CPU 热插拔工作。

    • 您是否从 menuconfig 中禁用了?
    • 如果没有,您是否检查过 menuconfig 以查看它是否在您更改后已被禁用?

    如果您尝试从 menuconfig 禁用它,您首先必须禁用一系列其他配置,并且在禁用它们后能够成功构建内核。例如,这是 menuconfig 在我的平台上显示的内容:

      CONFIG_HOTPLUG_CPU:
      
      Say Y here to experiment with turning CPUs off and on.  CPUs
      can be controlled through /sys/devices/system/cpu.
      
      Symbol: HOTPLUG_CPU [=y]
      Type  : bool
      Defined at arch/arm64/Kconfig:985
        Prompt: Support for hot-pluggable CPUs
        Location:
          -> Kernel Features
      Selects: GENERIC_IRQ_MIGRATION [=y]
      Selected by [y]:
        - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]
    

    所以,我根本无法从 menuconfig 中禁用它,除非我解决了

      Selected by [y]:
        - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y]
    

    使它成为可能。

    你会有类似的约束。您可以尝试解决它们并最终禁用 CONFIG_HOTPLUG_CPU,但我怀疑您之后是否能够构建内核,因为某些驱动程序不能很好地处理依赖关系(但看起来对您有用)。

    • 1

相关问题

  • 有没有办法让 ls 只显示某些目录的隐藏文件?

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

  • 需要一些系统调用

  • astyle 不会更改源文件格式

  • 通过标签将根文件系统传递给linux内核

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve