Capítulo 10. Kernel

Suporte para kpatch

O utilitário kpatch permite que os usuários gerenciem uma coleção de patches no kernel binário, o qual pode ser usado para aplicar patches no kernel dinamicamente, sem reinicialização. Anteriormente, o kpatch era incluído como uma Apresentação Prévia de Tecnologia e, agora, possui suporte completo ao ser usado sob a direção da equipe Red Hat Customer Experience and Engagement.
Para mais detalhes sobre o suporte à aplicação de patches no kernel, consulte https://access.redhat.com/solutions/2206511.

Os parâmetros SHMMAX e SHMALL do kernel retornaram para os valores padrão

Anteriormente, os valores dos parâmetros kernel.shmmax e kernel.shmall, que eram estabelecidos no arquivo /usr/lib/sysctl.d/00-system.conf, eram muito baixos. Como consequência, alguns aplicativos, como SAP, não funcionavam propriamente. As substituições inadequadas foram removidas e os padrões kernel, que são suficientemente altos, podem ser usados agora.

Páginas enormes e transparentes não corrompem mais a memória

As páginas enormes e transparentes não estavam sendo sincronizadas corretamente durante as operações de leitura e gravação. Em algumas circunstâncias, isto resultava em corrupção de memória, quando páginas enormes e transparentes eram habilitadas. Portanto, barreiras de memória foram adicionadas à manipulação das páginas enormes e transparentes para que a corrupção de memória não ocorra mais.

Rebase do SCSI LIO

O destino SCSI do kernel, LIO, foi rebaseado do Linux-4.0.stable, incluindo a correção de vários erros, principalmente para iSER, mas também incluindo a adição de suporte aos comandos XCOPY, WRITE SAME e ATS e suporte à integridade dos dados DIF.

makedumpfile passa a oferecer suporte ao novo formato sadump, representando mais de 16 TB de memória físca

O comando makedumpfile agora oferece suporte ao novo formato sadump, que pode representar mais de 16 TB de espaço de memória física. Isto permite aos usuários de makedumpfile ler arquivos de despejo com mais de 16 TB, gerados por sadump em certos modelos de servidor futuros.

A remoção ou atualização do kernel não exibe mais um aviso

O script weak-modules, que é usado pelo kmod para gerenciar os links simbólicos de módulos compatíveis com kABI (kABI-compatible), removia antigamente o diretório /lib/modules/<version>/weak-updates quando removendo os arquivos associados a um kernel. Este diretório pertence ao pacote kernel e a remoção dele gerava inconsistência entre o sistema de arquivo e o estado esperado pelo rpm. Isto também gerava um aviso que era exibido toda vez que um kernel era atualizado ou removido.
O script foi atualizado para remover os conteúdos do diretório weak-updates, mas manter o diretório em si, e não exibir mais os avisos.

Novo pacote: libevdev

Libevdev é uma biblioteca de baixo nível para a interface de dispositivos de eventos de entrada do kernel do Linux. O pacote fornece interfaces seguras para a consulta dos recursos de dispositivos e o processamento dos eventos dos dispositivos. As versões atuais do xorg-x11-drv-evdev e xorg-x11-drv-synaptics necessitam desta biblioteca como uma dependência.

Tuned é executado no modo no-daemon

Anteriormente, Tuned podia executar somente como um daemon, o que podia afetar o desempenho dos sistemas pequenos por causa do volume de memória do Tuned daemon. Com esta atualização, o modo no-daemon (monoestável), que não exige memória residente alguma, foi adicionado ao Tuned. O modo no-daemon vem desabilitado por padrão porque muitas das funcionalidades do Tuned estão ausentes neste modo.

Novo pacote: tuned-profiles-realtime

O pacote tuned-profiles-realtime foi adicionado ao Red Hat Enterprise Linux Server e ao Red Hat Enterprise Linux for Real Time. Ele contém um perfil em tempo real usado pelo utilitário tuned para desempenhar isolamentos de CPU e ajustes de IRQ. Quando o perfil é ativado, ele lê sua seção variável, a qual especifica as CPUs a serem isoladas, e move todas as threads que podem ser tiradas desses núcleos da CPU.

As mensagens de erro de SCSI podem ser facilmente interpretadas

As alterações anteriormente introduzidas ao kernel referentes à função printk() resultavam nas mensagens de erro da Interface de Sistemas para Pequenos Computadores (SCSI) sendo registradas em múltiplas linhas. Como consequência disto, se múltiplos erros ocorressem em diferentes dispositivos, ficava difícil interpretar corretamente as mensagens de erro. Essa atualização muda agora o código de registro de erro da SCSI para um registro de mensagens de erro que usa a opção dev_printk(), a qual associa as mensagens de erro com o dispositivo que gerou o erro.

Drivers e subsistema libATA atualizados

Esta atualização fornece diversas correções de erros e aprimoramentos aos drivers e ao subsistema libATA.

FCoE e DC foram atualizados

Os componentes do kernel Fibre Channel sobre Ethernet (FCoE) e Data Center Bridging (DCB) foram atualizados para as versões upstream mais recentes, as quais fornecem várias correções de erros e aprimoramentos em relação às versões anteriores.

Rebase do perf para a versão 4.1

Os pacotes perf foram atualizados para a versão upstream 4.1, a qual fornece várias correções de estabilidade e desempenho e aprimoramentos em relação à versão anterior. Este rebase acrescenta, em especial, os recursos Intel Cache QoS Monitoring e AMD IBS Ops e fornece suporte ao Intel Xeon v4, para módulos do kernel compactados para eventos parametrizados, e suporte para a especificação da duração de pontos de interrupção. Além disso, diversas opções foram adicionadas à ferramenta perf, tais como --system-wide, top -z, top -w, trace --filter-pids e trace --event.

Suporte ao TPM 2.0

Esta atualização adiciona um suporte no âmbito de drivers para os dispositivos Trusted Platform Module (TPM) compatíveis com a versão 2.0.

turbostat agora fornece saída correta

Antigamente, a ferramenta turbostat detectava se o sistema oferecia suporte ao dispositivo MSR ao ler o arquivo /dev/cpu/0/msr como cpu0 no lugar de cpu. Como consequência, a desabilitação de uma CPU removia as CPUs de saída do turbostat. Agora, este erro foi corrigido e a execução do comando turbostat ls retorna a saída correta.

turbostat fornece suporte aos processadores Intel Xeon v5

Este aprimoramento adiciona o suporte do processador Intel Xeon v5 à ferramenta turbostat.

A ferramenta zswap faz uso da API zpool

Anteriormente, a ferramenta zswap utilizava zbud diretamente, um pool de armazenamento que armazena páginas compactadas a uma proporção de 2:1 (quando cheio). Esta atualização introduz a API zpool, que fornece acesso ao pool zsmalloc ou ao pool zbud: zsmalloc armazena páginas compactadas a uma densidade provavelmente maior, resultando em mais memória recuperada para as páginas altamente compressíveis. Junto com esta atualização, zsmalloc foi promovido aos drivers /mm para que zpool funcione como esperado.

O tamanho do arquivo /proc/pid/cmdline passa a ser ilimitado

O limite de tamanho do arquivo /proc/pid/cmdline para o comando ps era, anteriormente, codificado no kernel para 4096 caracteres. Esta atualização assegura que o tamanho dos arquivos /proc/pid/cmdline seja ilimitado, o que é particularmente benéfico para os processos de listagem com argumentos de linha de comando longos.

dma_rmb e dma_wmb passam a receber suporte

Esta atualização introduz dois novos primitivos para a sincronização de leituras e gravações de memórias com coerência de cache, dma_wmb() e dma_rmb(). Este recurso estará disponível em drivers para uso adequado.

Conexão do driver qib HCA

Devido a uma incompatibilidade no ID de LOGIN do SRP, o destino do SRP obtinha erros antigamente ao conectar-se com o driver do dispositivo qib HCA. Esta atualização corrige este erro e a conexão agora pode ser estabelecida com êxito.

Aumento no limite de memória

A partir do Red Hat Enterprise Linux 7.2, o limite máximo de memória com suporte nos sistemas Intel 64 e AMD64 aumentou de 6 TB para 12 TB.

Novo pacote: WALinuxAgent

A versão 2.0.13 do Microsoft Azure Linux Agent (WALA) passou a ser incluída no canal Extras. Este agente fornece suporte ao provisionamento e à execução das Máquinas Virtuais Linux no Windows Azure cloud e deve ser instalado nas imagens Linux compiladas para executar no ambiente Windows Azure.