Estou trabalhando em um sistema Linux embarcado, que está usando o kernel-5.10.24.
Como o recurso do sistema é limitado, quero minimizar o uso de CPU/memória/armazenamento.
De ps -ax
eu encontrei 2 threads de kernel da seguinte forma,
14 root 0:00 [cpuhp/0]
15 root 0:00 [cpuhp/1]
Eu acho que eles são usados para hotpluging de CPU, e não há nenhum caso de uso de hotpluging de CPU neste sistema, então eu quero desabilitar o recurso e não criar esses 2 threads de kernel.
Tentei desabilitar essa configuração à força (Removendo select SYS_SUPPORTS_HOTPLUG_CPU
do arch/ARM/Kconfig e outros).
Mas depois de implantado o novo kernel, esses 2 threads do kernel ainda estão lá.
Ao verificar os códigos, parece que esses 2 threads são criados independentemente de CONFIG_HOTPLUG_CPU
e CONFIG_SYS_SUPPORTS_HOTPLUG_CPU
, o que significa que quando o SMP está configurado, esses 2 threads estão SEMPRE lá!
Portanto, não tenho certeza se existe uma maneira de desativar a criação desses 2 threads do kernel. Caso contrário, tenho que conviver com eles, supondo que NÃO consumam muita CPU e memória para execução.
Atualizado com kernel menuconfig com base no comentário de 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]
O mesmo que o comentário de dhanushka.
Vou tentar desativá-lo e atualizar esta pergunta.
E como eu disse, cpuhp0/1
parecia não poder ser desabilitado.
Não é realmente uma resposta, mas queria acrescentar algo. Você já deve ter tentado isso, mas veja abaixo caso tenha perdido.
Se você tiver top(1), poderá verificar o uso de recursos. Ou você pode usar /proc/[pid]/status etc. para verificá-los. De qualquer maneira, você veria que eles não estão com fome de recursos e, principalmente, no estado de sono (S).
Você também veria na documentação e nas configurações do kernel que ele está relacionado ao gerenciamento de energia (suspensão/retorno do SMP), portanto, considere seus requisitos de gerenciamento de energia e como a desativação do hotplug da CPU pode afetá-los.
Configuração do núcleo:
A documentação do kernel diz que CONFIG_HOTPLUG_CPU precisa ser ativado para que o hotplug da CPU funcione.
Se você tentar desativá-lo no menuconfig, primeiro terá que desabilitar uma série de outras configurações e poderá construir o kernel com sucesso depois de desativá-las. Por exemplo, isso é o que o menuconfig mostra na minha plataforma:
Portanto, simplesmente não posso desativá-lo no menuconfig, a menos que eu enderece o
que o habilita.
Você terá restrições semelhantes. Você pode tentar endereçá-los e finalmente desabilitar CONFIG_HOTPLUG_CPU, mas duvido que você consiga construir o kernel depois disso porque alguns drivers não lidam bem com as dependências (mas parece que as coisas funcionaram para você).