6.5.6. Kernel
Sistemas com uma grande quantidade de experiências de memória persistente atrasam durante o processo de inicialização
Sistemas com uma grande quantidade de memória persistente levam muito tempo para arrancar porque a inicialização da memória é feita em série. Consequentemente, se houver sistemas de arquivo de memória persistente listados no arquivo /etc/fstab
, o sistema pode demorar enquanto espera que os dispositivos fiquem disponíveis. Para contornar este problema, configure a opção DefaultTimeoutStartSec
no arquivo /etc/systemd/system.conf
para um valor suficientemente grande.
(BZ#1666538)
O kernel retorna falsos avisos positivos nos sistemas IBM Z
No RHEL 8, os sistemas IBM Z estão faltando uma entrada de lista branca para a zona de memória ZONE_DMA
para permitir o acesso do usuário. Consequentemente, o kernel retorna avisos falsos positivos, tais como:
... Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLUB object 'dma-kmalloc-192' (offset 0, size 144)! WARNING: CPU: 0 PID: 8519 at mm/usercopy.c:83 usercopy_warn+0xac/0xd8 ...
Os avisos aparecem ao acessar certas informações do sistema através da interface sysfs
. Por exemplo, ao executar o script de debuginfo.sh
.
Para contornar este problema, adicione o parâmetro hardened_usercopy=off
à linha de comando do kernel.
Como resultado, nenhuma mensagem de advertência é exibida no cenário descrito.
(BZ#1660290)
A espera ocupada do serviço rngd
causa o consumo total da CPU no modo FIPS
Uma nova fonte de entropia do kernel para o modo FIPS foi adicionada para kernels a partir da versão 4.18.0-193.10. Conseqüentemente, quando em modo FIPS, o serviço rngd
ocupado espera na chamada do sistema de pesquisa()
para o dispositivo /dev/random
, causando assim um consumo de 100% do tempo da CPU. Para contornar este problema, pare e desabilite o rngd
executando:
# systemctl stop rngd # systemctl disable rngd
Como resultado, a rngd
não está mais ocupada aguardando a votação()
no cenário descrito.
(BZ#1884857)
Uma captura vmcore
falha após a operação de hot-plug de memória ou de desconectar a tomada
Após realizar a operação hot-plug ou hot-unplug de memória, o evento vem após a atualização da árvore do dispositivo que contém informações sobre o layout da memória. Assim, o utilitário makedump
tenta acessar um endereço físico inexistente. O problema aparece se todas as seguintes condições forem atendidas:
- Uma variante um poucoendiana do IBM Power System executa o RHEL 8.
-
O serviço
kdump
oufadump
está habilitado no sistema.
Consequentemente, o kernel de captura não consegue salvar o vmcore
se uma falha no kernel for acionada após a operação hot-plug ou hot-unplug da memória.
Para contornar este problema, reinicie o serviço kdump
após o hot-plug ou hot-unplug:
# systemctl restart kdump.service
Como resultado, o vmcore
é salvo com sucesso no cenário descrito.
(BZ#1793389)
O uso do irqpoll
causa falha na geração de vmcore
Devido a um problema existente com o driver nvme
nas arquiteturas ARM de 64 bits que rodam nas plataformas de nuvem Amazon Web Services (AWS), a geração vmcore
falha quando você fornece o parâmetro de linha de comando do kernel irqpoll
para o primeiro kernel. Conseqüentemente, nenhum arquivo vmcore
é despejado no diretório /var/crash/
após uma falha do kernel. Para contornar este problema:
-
Adicionar
irqpoll
à chaveKDUMP_COMMANDLINE_REMOVE
no arquivo/etc/sysconfig/kdump
. -
Reinicie o serviço
kdump
executando o comandosystemctl restart kdump
.
Como resultado, espera-se que o primeiro kernel boots corretamente e o arquivo vmcore
sejam capturados na falha do kernel.
Note que o serviço kdump
pode usar uma quantidade significativa de memória do kernel para despejar o arquivo vmcore
. Certifique-se de que o kernel de captura tenha memória suficiente disponível para o serviço de kdump
.
(BZ#1654962)
O núcleo de depuração não inicia no ambiente de captura de falhas no RHEL 8
Devido à natureza exigente de memória do núcleo de depuração, ocorre um problema quando o núcleo de depuração está em uso e um pânico do núcleo é desencadeado. Como conseqüência, o kernel debug não é capaz de inicializar como o kernel de captura, e em seu lugar é gerado um traço de pilha. Para contornar este problema, aumente a memória do kernel debug de acordo. Como resultado, o kernel debug arranca com sucesso no ambiente de captura de falhas.
(BZ#1659609)
zlib
pode retardar uma captura de vmcore
em algumas funções de compressão
O arquivo de configuração kdump
usa o formato de compressão lzo
(makedumpfile -l
) por padrão. Ao modificar o arquivo de configuração usando o formato de compressão zlib
(makedumpfile -c
), é provável que ele traga um fator de compressão melhor às custas de retardar o processo de captura do vmcore
. Como conseqüência, o kdump
leva até quatro vezes mais tempo para capturar um vmcore
com zlib
, em comparação com o lzo
.
Como resultado, a Red Hat recomenda o uso do lzo
padrão para os casos em que a velocidade é o principal fator de condução. Entretanto, se a máquina alvo estiver com pouco espaço disponível, a zlib
é uma opção melhor.
(BZ#1790635)
O cão de guarda HP NMI nem sempre gera um depósito de lixo
Em certos casos, o motorista hpwdt
para o cão de guarda HP NMI não é capaz de reivindicar uma interrupção não-máscara (NMI) gerada pelo temporizador HPE porque o NMI foi consumido pelo motorista perfmon
.
O NMI em falta é iniciado por uma de duas condições:
- O botão Generate NMI no software de gerenciamento do servidor Lights-Out (iLO) integrado. Este botão é acionado por um usuário.
-
O cão de guarda
hpwdt
. A expiração por padrão envia um NMI para o servidor.
Ambas as seqüências tipicamente ocorrem quando o sistema não responde. Em circunstâncias normais, o manipulador do NMI para estas duas situações chama a função kernel panic(
) e se configurado, o serviço kdump
gera um arquivo vmcore
.
Devido à falta de MNI, no entanto, o pânico no núcleo(
) não é chamado e o vmcore
não é coletado.
No primeiro caso (1.), se o sistema não reagiu, ele permanece assim. Para contornar este cenário, use o botão virtual Power para reinicializar ou ligar o servidor.
No segundo caso (2.), o NMI em falta é seguido 9 segundos depois por um reset do ASR (Automated System Recovery).
A linha de servidores HPE Gen9 experimenta este problema em porcentagens de um dígito. O Gen10 em uma freqüência ainda menor.
(BZ#1602962)
O comando powersave de perfil afinado
faz com que o sistema não responda
A execução do comando powersave de perfil tuned-adm
leva a um estado não responsivo dos sistemas de 2-socket Penguin Valkyrie 2000 com os processadores Thunderx (CN88xx) mais antigos. Consequentemente, reinicialize o sistema para retomar o funcionamento. Para contornar este problema, evite usar o perfil powersave
se seu sistema estiver de acordo com as especificações mencionadas.
(BZ#1609288)
O valor de impressão
padrão 7 4 1 7 às vezes causa a falta de resposta temporária do sistema
O valor padrão 7 4 1 7 printk
permite uma melhor depuração da atividade do kernel. Entretanto, quando acoplado a um console serial, esta configuração de impressão
pode causar explosões intensas de E/S que podem fazer com que um sistema RHEL se torne temporariamente não responsivo. Para contornar este problema, adicionamos um novo perfil TuneD do console serial de otimização
, que reduz o valor padrão da impressão
para 4 4 1 7. Os usuários podem instrumentar seu sistema da seguinte forma:
# perfil tuned-adm profile throughput performance optimize-console de série
Ter um valor de impressão
mais baixo persistente durante uma reinicialização reduz a probabilidade de que o sistema fique pendurado.
Observe que esta mudança de configuração vem às custas da perda de informações extras de depuração.
Para mais informações sobre o recurso recém-adicionado, veja Um novo perfil TuneD de otimização-console serial
para reduzir E/S para consoles seriais, baixando o valor da impressão
.
(JIRA:RHELPLAN-28940)
O driver do kernel ACPI informa que não tem acesso a uma região de memória PCIe ECAM
A tabela Configuração Avançada e Interface de Alimentação (ACPI) fornecida pelo firmware não define uma região de memória no barramento PCI no método Current Resource Settings (_CRS) para o dispositivo de barramento PCI. Conseqüentemente, a seguinte mensagem de aviso ocorre durante a inicialização do sistema:
[ 2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace [ 2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]
Entretanto, o kernel ainda é capaz de acessar a região de memória 0x30000000-0x31ffff
, e pode atribuir essa região de memória ao Mecanismo de Acesso à Configuração Melhorada do PCI (ECAM) adequadamente. Você pode verificar se o PCI ECAM funciona corretamente ao acessar o espaço de configuração do PCIe sobre o offset de 256 bytes com a seguinte saída:
03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express]) ... Capabilities: [900 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us
Como resultado, você pode ignorar a mensagem de aviso.
Para mais informações sobre o problema, veja o "Firmware Bug: ECAM area mem 0x30000000-0x31ffffff
not reserved in ACPI namespace" aparece durante a solução de inicialização do sistema.
(BZ#1868526)
O driver cxgb4
causa uma falha no kdump kernel
O kdump
kernel quebra ao tentar salvar informações no arquivo vmcore
. Conseqüentemente, o driver cxgb4
impede que o kdump
kernel salve um núcleo para análise posterior. Para contornar este problema, adicione o parâmetro novmcoredd
à linha de comando do kdump kernel para permitir salvar arquivos do núcleo.
(BZ#1708456)
A biblioteca MPI ABERTA pode desencadear falhas no tempo de execução com PML padrão
Na implementação da série 4.0.x da OPEN Message Passing Interface (OPEN MPI), a Comunicação Unificada X (UCX) é o comunicador ponto a ponto (PML) padrão. As versões posteriores da série OPEN MPI 4.0.x depreciaram a camada de transferência de bytes openib
(BTL).
No entanto, OPEN MPI, quando executada sobre um cluster homogeneous (mesma configuração de hardware e software), a UCX ainda usa o openib
BTL para operações unilaterais de MPI. Como conseqüência, isto pode desencadear erros de execução. Para contornar este problema:
-
Execute o comando
mpirun
usando os seguintes parâmetros:
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0
onde,
-
O parâmetro
-mca btl openib
desactivao openib BT
L -
O parâmetro
-mca pml ucx
configura o MPI ABERTO para usaro ucx
PML. -
O parâmetro
x UCX_NET_DEVICES=
restringe o UCX a usar os dispositivos especificados
O MPI ABERTO, quando executado sobre um cluster heterogeneous (configuração diferente de hardware e software), ele usa o UCX como o PML padrão. Como consequência, isto pode fazer com que os trabalhos MPI ABERTO funcionem com desempenho errático, comportamento não responsivo ou falhas de crash. Para contornar este problema, defina a prioridade do UCX como:
-
Execute o comando
mpirun
usando os seguintes parâmetros:
-mca pml_ucx_priority 5
Como resultado, a biblioteca OPEN MPI é capaz de escolher uma camada alternativa de transporte disponível sobre a UCX.
(BZ#186666402)