Capítulo 3. Mudanças importantes nos parâmetros do Kernel externo

Este capítulo fornece aos administradores de sistemas um resumo das mudanças significativas no kernel enviado com o Red Hat Enterprise Linux 8.1. Estas mudanças incluem entradas proc adicionadas ou atualizadas, valores default sysctl e sysfs, parâmetros de inicialização, opções de configuração do kernel ou quaisquer mudanças perceptíveis de comportamento.

Novos parâmetros do kernel

perf_v4_pmi = [X86,INTEL]

Este parâmetro desabilita o recurso de congelamento do contador Intel PMU.

A característica só existe a partir do Arch Perfmon v4 (Skylake e mais recentes).

Formato: <bool>

hv_nopvspin [X86,HYPER_V]
Este parâmetro desabilita as otimizações paravirtuais do spinlock que permitem ao hipervisor 'ocioso' o hóspede na contenção do bloqueio.
ipcmni_extend [KNL]
Este parâmetro estende o número máximo de identificadores únicos do Sistema V IPC de 32.768 para 16.777.216.
kpti = [ARM64]

Este parâmetro controla o isolamento da tabela de páginas dos espaços de endereço do usuário e do kernel.

As opções são:

  • Default: habilitado nos núcleos que precisam de mitigação.
  • 0: força desativada
  • 1: força ativada
mds = [X86,INTEL]

Este parâmetro controla a mitigação da vulnerabilidade da Amostragem de Dados Micro-arquitetônicos (MDS).

Certas CPUs são vulneráveis a uma exploração contra buffers internos de CPU que podem transmitir informações a um gadget de divulgação sob certas condições. Em processadores vulneráveis, os dados encaminhados especulativamente podem ser usados em um ataque ao canal lateral do cache, para acessar dados aos quais o atacante não tem acesso direto.

As opções são:

  • completo - Habilitar a mitigação do MDS em CPUs vulneráveis.
  • full,nosmt - Habilitar a mitigação do MDS e desabilitar a Multi Threading Simultânea (SMT) em CPUs vulneráveis.
  • off - Desabilitar incondicionalmente a mitigação do MDS.

    A não especificação deste parâmetro é equivalente a mds=full.

    Para obter detalhes, consulte a documentação do núcleo a montante.

mitigações = [X86,PPC,S390,ARM64]

Este parâmetro controla as atenuações opcionais para as vulnerabilidades da CPU. Este é um conjunto de opções curadas, independentes do arco, cada uma das quais é uma agregação das opções existentes específicas do arco.

As opções são:

  • off - Desativar todas as atenuações opcionais da CPU. Isto melhora o desempenho do sistema, mas também pode expor os usuários a várias vulnerabilidades da CPU.

    Equivalente a:

    • nopti [X86,PPC]
    • kpti=0 [ARM64]
    • nospectre_v1 [X86,PPC]
    • nobp=0 [S390]
    • nospectre_v2 [X86,PPC,S390,ARM64]
    • spectre_v2_user=off [X86]
    • spec_store_bypass_disable=off [X86,PPC]
    • ssbd=force-off [ARM64]
    • l1tf=off [X86]
    • mds=off [X86]
  • auto (padrão) - Atenua todas as vulnerabilidades da CPU, mas deixa a Multi Threading Simultânea (SMT) ativada, mesmo que seja vulnerável. Esta opção é para usuários que não querem ficar surpresos com o SMT ficando desabilitado nas atualizações do kernel, ou que têm outras formas de evitar ataques baseados no SMT.

    Equivalente a:

    • (comportamento padrão)
  • auto,nosmt - Atenuar todas as vulnerabilidades da CPU, desativando o Multi Threading Simultâneo (SMT), se necessário. Esta opção é para usuários que sempre querem ser totalmente mitigados, mesmo que isso signifique a perda do SMT.

    Equivalente a:

    • l1tf=flush,nosmt [X86]
    • mds=full,nosmt [X86]
novmcoredd [KNL,KDUMP]

Este parâmetro desativa a descarga do dispositivo.

O dispositivo dump permite aos motoristas anexar os dados do dump ao vmcore para que você possa coletar informações de depuração especificadas pelo motorista. Os drivers podem anexar os dados sem qualquer limite e estes dados são armazenados na memória, de modo que isto pode causar tensão significativa na memória.

A desativação do despejo do dispositivo pode ajudar a salvar a memória, mas os dados de depuração do driver não estarão mais disponíveis.

Este parâmetro só está disponível quando a configuração do kernel CONFIG_PROC_VMCORE_DEVICE_DUMP está definida.

nospectre_v1 [X86]

Este parâmetro desabilita as atenuações para a Variante Spectre 1 (bypass de verificação de limites).

Com esta opção, são possíveis vazamentos de dados no sistema.

psi = [KNL]

Este parâmetro permite ou desabilita o rastreamento de informações sobre a perda de pressão.

Formato: <bool>

random.trust_cpu={on,off} [KNL]
Este parâmetro permite ou não confiar no uso do gerador de números aleatórios da CPU (se disponível) para semear completamente o Gerador de números aleatórios criptográficos (CRNG) do kernel. O padrão é controlado pela configuração do kernel CONFIG_RANDOM_TRUST_CPU.
vm_debug[=opções] [KNL] [=opções] [KNL

Disponível com CONFIG_DEBUG_VM=y.

A ativação deste parâmetro pode diminuir a velocidade de inicialização do sistema, especialmente em sistemas com uma grande quantidade de memória.

Todas as opções são habilitadas por padrão, e esta interface destina-se a permitir habilitar ou desabilitar seletivamente recursos específicos de depuração de memória virtual.

As opções são:

  • P - Habilitar a estrutura da página init time poisoning.
  • - (traço) - Desativar todas as opções acima.

Parâmetros de kernel atualizados

cgroup_no_v1 = [KNL]

Este parâmetro desabilita os controladores de grupos c e hierarquias nomeadas na versão 1 (v1).

O parâmetro é como o parâmetro cgroup_disable kernel, mas aplica-se somente ao cgroup v1. Os controladores da lista negra permanecem disponíveis no cgroup2. A opção "all" lista negra todos os controladores e a opção "named" desabilita as montagens nomeadas. Especificar tanto "all" como "named" desabilita todas as hierarquias v1.

Formato: "all" (todos) | "nomeado"...} "todos", "nomeados"..

crashkernel = tamanho[KMG][@offset[KMG]][KNL] [KMG

A chamada ao sistema kexec permite que o Linux mude para um 'crash kernel' em caso de pânico. Este parâmetro reserva a região de memória física [offset, offset size] para aquela imagem do kernel. Se @offset for omitido, então um offset adequado é selecionado automaticamente.

[KNL, x86_64] selecione primeiro uma região abaixo de 4G, e volte para a região de reserva acima de 4G quando @offset não tiver sido especificado.

Para mais informações, consulte a documentação da kdump a montante.

l1tf = [X86]

Este parâmetro controla a mitigação da vulnerabilidade da Falha Terminal L1 (L1TF) nas CPUs afetadas.

As opções são:

  • desligado - Desativa as atenuações do hipervisor e não emite nenhum aviso. Também diminui o tamanho de troca e a restrição do limite de RAM disponível tanto no hipervisor quanto no metal nu.
  • flush - É o padrão.

    Para obter detalhes, consulte a documentação do núcleo a montante.

nospectre_v2 [X86,PPC_FSL_BOOK3E,ARM64]

Este parâmetro desativa todas as atenuações para a vulnerabilidade da variante 2 (previsão de ramo indireto) do Spectre.

O sistema pode permitir vazamentos de dados com este parâmetro.

pci=opção[,opção...] [PCI]

Várias opções de subsistemas PCI.

As opções são:

  • force_floating [S390] - Uso de força de interrupções flutuantes.
  • nomio [S390] - Não utilizar instruções de entrada/saída de memória (MIO).

Novos parâmetros /proc/sys/kernel

hyperv_record_panic_msg

Este parâmetro controla se os dados da mensagem de pânico do kernel (kmsg) são reportados ao Hyper-V ou não.

Os valores são:

  • 0 - Não informe os dados de kmsg de pânico.
  • 1 - Relatar os dados de kmsg de pânico. Este é o comportamento padrão.

Novos parâmetros /proc/sys/net

bpf_jit_limit

Este parâmetro impõe um limite global de alocação de memória para o compilador Just-in-Time do Filtro de Pacotes Berkeley (BPF JIT) a fim de rejeitar as solicitações JIT sem privilégios, uma vez ultrapassado.

O parâmetro bpf_jit_limit contém o valor do limite global em bytes.

Parâmetros Atualizados /proc/sys/fs

dentry-state

As amas são alocadas e desalocadas de forma dinâmica.

O usuário é capaz de recuperar os seguintes valores da leitura do arquivo /proc/sys/fs/dentry-state:

  • nr_dentry - Mostra o número total de amolgadelas alocadas (ativas não utilizadas).
  • nr_unused - Mostra o número de amolgadelas que não são usadas ativamente, mas que são salvas na lista de Menos usadas recentemente (LRU) para reutilização futura.
  • age_limit - Mostra a idade em segundos após a qual as entradas dcache podem ser recuperadas quando a memória é curta.
  • want_pages - Não é zero quando a função shrink_dcache_pages() foi chamada e o dcache ainda não está podado.
  • nr_negative - Mostra o número de amolgadelas não utilizadas que também são amolgadelas negativas que não são mapeadas para nenhum arquivo. Ao invés disso, elas ajudam a acelerar a rejeição de arquivos inexistentes fornecidos pelos usuários.

Parâmetros Atualizados /proc/sys/kernel

msg_next_id, sem_next_id, e shm_next_id

Notas:

  1. O núcleo não garante que o novo objeto terá a identificação desejada. Depende do espaço do usuário, como lidar com um objeto com o ID "errado".
  2. A alternância com o valor não inadimplente será definida novamente para -1 pelo kernel após a alocação bem sucedida de objetos de comunicação inter-processo (IPC). Se o syscall de alocação de objetos IPC falhar, ele será indefinido se o valor permanecer inalterado ou for redefinido para -1.