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 entradasdcache
podem ser recuperadas quando a memória é curta. -
want_pages
- Não é zero quando a funçãoshrink_dcache_pages()
foi chamada e odcache
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:
- 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".
- 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.