Novos Recursos e Alterações no UEK R6

Resumo de Alterações Notáveis no UEK R6

As seções a seguir descrevem os principais novos recursos do Unbreakable Enterprise Kernel Release 6 (UEK R6), relativos ao UEK R5. Veja a seguir uma lista resumida dos principais recursos desta versão:

  • Base de kernel estável do Linux 5.4

    A versão do kernel principal 5.4 usada como kernel base para o UEK R6 inclui muitos recursos de kernel upstream e melhorias em relação às versões anteriores e ao RHCK. Para obter uma lista dos principais recursos e aprimoramentos disponíveis neste kernel, em vez da versão principal anterior do UEK, consulte Funcionalidade do Kernel Central.

  • Suporte de braço

    Muitos recursos e melhorias nesta versão visam melhorar o suporte para a plataforma Arm (aarch64). Alterações notáveis incluem melhorias de segurança e melhor suporte de virtualização no Arm. Consulte Plataforma Arm (aarch64) para obter detalhes.

  • Aprimoramentos do Cgroup v2

    A funcionalidade Cgroup v2 foi introduzida pela primeira vez no UEK R5 para ativar a funcionalidade do controlador da CPU. O UEK R6 inclui todos os recursos do Cgroup v2, juntamente com vários aprimoramentos descritos na Funcionalidade do Kernel Central.

  • Aprimoramentos de ktask

    ktask é um framework para paralelizar o trabalho com uso intensivo de CPU no kernel. Ele pode ser usado para acelerar grandes tarefas em sistemas com muita potência de CPU disponível, onde uma tarefa é de thread único no espaço do usuário. ktask fornece uma API genérica que pode adicionar simultaneidade para muitos tipos diferentes de tarefas, ao mesmo tempo em que reduz a complexidade em torno do gerenciamento de vários threads, e é usado durante a inicialização da página de estruturação e inicialização de convidado KVM habilitada para VFIO para reduzir os tempos de inicialização.

    A documentação do ktask é fornecida no /usr/share/doc/kernel-uek-doc-5.4/core-api/ktask.html, embora a interface ainda não esteja estável.

  • Kswapd paralelizado

    A substituição de página é tratada no kernel de forma assíncrona por kswapd e de forma síncrona por recuperação direta. Quando as páginas livres dentro da lista livre da zona são baixas, o kswapd verifica as páginas em busca de páginas não utilizadas que podem ser removidas para liberar espaço para novas alocações de página. Essa otimização pode melhorar o desempenho, evitando recuperações diretas, que podem ser intensivas em recursos e demoradas.

  • Assinatura de firmware Kexec

    A opção para verificar e validar uma assinatura de imagem do kernel está ativada no UEK R6. Quando kexec é usado para carregar um kernel de dentro do UEK R6, a verificação e a validação da assinatura da imagem do kernel podem ser implementadas para garantir que um sistema só carregue uma imagem do kernel assinada e validada.

  • Melhorias no gerenciamento de memória

    Vários aprimoramentos de desempenho foram implementados no código de gerenciamento de memória do kernel para melhorar a eficiência na limpeza de páginas e cache, além de aprimoramentos no gerenciamento e na geração de relatórios de falhas. Consulte Memory Management para obter mais informações.

  • Atualizações do NVDIMM

    As atualizações de recursos NVDIMM foram implementadas para que a memória persistente possa agora ser usada como RAM tradicional e uma atualização que ajuda a padronizar a funcionalidade de apagamento de chave zero também foi incluída. Consulte Funcionalidade Básica do Kernel para obter mais informações.

  • DTrace v2.0

    O suporte ao DTrace é ativado no UEK R6 e foi reimplementado para usar o Berkeley Packet Filter (BPF) integrado ao kernel do Linux. A versão atual é a primeira versão do Dtrace baseada na nova implementação, ele ainda não alcança a paridade de recursos com o DTrace no UEK R5, mas no futuro. Outras melhorias foram feitas para simplificar o conjunto de RPMs que estão disponíveis para o DTrace devido a melhorias na cadeia de ferramentas upstream. Consulte DTrace v2.0 para obter mais informações.

  • OCFS2

    O suporte para o sistema de arquivos OCFS2 está ativado no UEK R6. Consulte OCFS2 para obter mais informações.

  • Suporte ao sistema de arquivos Btrfs

    O suporte para o sistema de arquivos Btrfs será ativado nos sistemas Oracle Linux 8 se o UEK R6 estiver instalado no sistema. Foram feitas melhorias adicionais no Btrfs nesta versão. Consulte Btrfs para obter mais informações.

Funcionalidade Básica do Kernel

Vários recursos principais do kernel foram implementados no kernel upstream, entre a versão 4.14 que foi usada como a versão do kernel base para o UEK R5, e a versão do kernel 5.4 que é usada como a versão do kernel base para o UEK R6. Embora alguns recursos tenham sido retroportados para o kernel do UEK R5 nas releases de atualização, os seguintes novos recursos significativos estão disponíveis no UEK R6:

  • Modo de bloqueio (somente x86_64)

    O modo de bloqueio é significativamente melhorado e há várias alterações de implementação que vale a pena notar. Esta versão diferencia os modos integridade e confidencialidade. Consulte Segurança para obter mais informações sobre esse recurso.

  • fs-veridade

    fs-verity é uma funcionalidade do kernel na qual os sistemas de arquivos podem se conectar para obter proteção de integridade e autenticidade de arquivos somente leitura. Este recurso pode ser usado para detectar corrupção de arquivos não maliciosos e modificação maliciosa de arquivos que não devem ser alterados em um sistema. Este recurso atualmente funciona apenas com os sistemas de arquivos ext4 e f2fs.

  • E/S assíncrona de alto desempenho com io_uring

    Esse recurso fornece uma interface de E/S assíncrona rápida e escalonável para E/Ss armazenadas em buffer e sem buffer. Também suporta E/S sondada assíncrona. Uma biblioteca de espaço do usuário, liburing, fornece funcionalidade básica para aplicativos com ajudantes para permitir que aplicativos configurem facilmente uma instância io_uring e enviem/concluam E/S.

  • Atualizações de grupo

    A funcionalidade completa do Cgroup v2 está incluída no UEK R6. A funcionalidade no UEK R5 incluía alguns recursos, como o controlador da CPU, que permitiam que os recursos da CPU fossem definidos para um grupo específico de tarefas. O UEK R6 inclui estes recursos, juntamente com os seguintes aprimoramentos notáveis:

    • Um killer OOM com reconhecimento de cgroup que pode ser usado para eliminar um cgroup como uma única unidade para manter a integridade de uma carga de trabalho. Esta funcionalidade pode ser ativada definindo memory.oom.group no controlador de memória cgroup v2. Essa configuração determina que o cgroup é uma carga de trabalho indivisível, e as tarefas, juntamente com seus descendentes, são executadas juntas pelo assassino OOM ou não.

    • Um controlador de congelador é adicionado ao cgroupsv2, fornecendo a capacidade de interromper a carga de trabalho em um cgroup e liberar temporariamente alguns recursos.

    • Esta versão introduz o blk-iocost, um controlador proporcional de conservação de trabalho de modelo baseado em custos de E/S. Atualmente, possui um modelo de custo linear simples integrado, em que cada E/S é classificada como sequencial ou aleatória e recebe um custo base, de acordo. O custo proporcional de tamanho adicional é então adicionado no topo.

  • NVDIMM

    A memória persistente agora pode ser usada como RAM tradicional. Além disso, as correções foram implementadas em torno dos comandos relacionados à segurança dentro do libnvdimm para permitir o uso de chaves onde os dados de carga útil foram preenchidos com valores zero, para permitir que as operações seguras continuem a ocorrer onde uma chave zero está em uso. Uma implementação comum foi implementada para garantir que todos os comandos usem a mesma semântica de chave zero e que a eliminação segura de dados em um NVDIMM possa ser executada quando uma chave zero estiver em uso. Essa alteração é importante porque algumas plataformas NVDIMM permitem a segurança com uma chave zero padrão, em vez de permitir que o sistema operacional especifique a chave inicial, o que poderia impedir que as operações funcionassem onde a segurança estava ativada.

Plataforma Arm (aarch64)

Os seguintes recursos notáveis do ARM são implementados no UEK R6:

  • Melhorias de segurança

    Vários aprimoramentos foram feitos para melhorar as mitigações contra ataques, incluindo os seguintes: wrappers de syscall, autenticação de ponteiro, suporte a KASLR (randomização de endereço virtual do kernel) e suporte a bits PSTATE.SSBS (núcleos ARM v8.5).

  • Hotplug de memória

    Suporte de núcleo para memória hot plugging.

  • Melhorias no KVM

    As melhorias para convidados KVM nos sistemas ARM (aarch64) incluem autenticação de ponteiro (ARM v8.3) e suporte a Scalable Vector Extension (SVE).

Criptografia

Os seguintes recursos criptográficos notáveis são implementados no UEK R6:

  • Gerenciamento simplificado de descrição de chaves

    Chaves e keyrings são mais compatíveis com namespace.

  • Compressão Zstandard

    A compressão Zstandard (zstd) é adicionada à criptografia e scompress. Somente o nível padrão é ativado.

DTrace v2.0

O DTrace v2.0 é uma reimplementação do DTrace que usa recursos existentes de rastreamento do kernel do Linux, como o eBPF, que não existia quando o DTrace foi portado pela primeira vez para o Linux. A nova implementação remove as dependências do DTrace em patches de kernel especializados.

O DTrace v2.0 está disponível apenas com o UEK R6. Versões anteriores do UEK continuam a incluir a implementação original do DTrace.

O DTrace V2.0 no Oracle Linux 8 foi reimplementado como um aplicativo de espaço do usuário. Ela não exige mais que a biblioteca libdtrace-ctf seja executada no Oracle Linux 8. A funcionalidade dessa biblioteca é integrada à cadeia de ferramentas Oracle Linux 8 GNU. Observe que libdtrace-ctf ainda é necessário no Oracle Linux 7.

A funcionalidade está sendo fornecida à medida que se torna disponível, começando com um conjunto limitado de recursos (principalmente funcionalidade de estrutura que não oferece muitos recursos visíveis do usuário), mas, em última análise, alcançando e, em seguida, excedendo o suporte anterior.

  • Mudanças e melhorias notáveis

    As seguintes mudanças e melhorias notáveis estão incluídas:

    • A maioria das funcionalidades básicas do DTrace é reimplementada (compilador D, API do provedor, gerenciamento de sondagem) no espaço do usuário. Grande parte dessa funcionalidade residia anteriormente no kernel.

    • O compilador D agora está destinado a gerar código eBPF, e a maior parte da linguagem D já é suportada pelo compilador.

    • A saída de relatório do verificador BPF está ativada. Quando scripts D compilados são carregados no kernel como programas BPF, o verificador BPF executa uma análise de código estático para garantir a segurança do programa. Quando essa análise falha, a saída é gerada e o DTrace reporta essa saída ao usuário.

    • As sondas de Rastreamento de Limites de Função (FBT) são ativadas com funções agrupadas por módulo (independentemente de o módulo ser compilado ou carregável) se o kernel fornecer essas informações em /proc/kallsyms (ou /proc/kallmodsyms).

    • As sondas de entrada e retorno do Syscall (provedor de systrace) estão ativadas, com suporte para argumentos de sondagem digitados. Atualmente disponível apenas na saída -lv.

    • As sondas de Rastreamento Definido Estaticamente (SDT) baseadas em pontos de rastreamento do Linux estão ativadas, com suporte para argumentos de sondagem digitados. Atualmente disponível apenas na saída -lv.

  • Limitações notáveis

    As limitações da nota incluem:

    • A função printf() ainda não foi implementada; use trace().

    • A ação trace() atualmente só funciona em valores numéricos, não em strings.

    • A maioria das ações, como exit(), ainda não foi implementada.

    • Dos três escopos variáveis, Global ("x") e thread-local ("self->x") ainda não foram implementados

    • Muitos provedores (como dtrace ou profile) -- incluindo sondagens como BEGIN, END e profile-1n -- ainda não estão funcionais

    • Descrições de sondagem (provider:module:function:name) que correspondem a várias sondagens por meio do uso de curingas ainda não são suportadas. Por exemplo, write:entry funciona porque corresponde somente a syscall:vmlinux:write:entry, mas write:* não porque corresponde a syscall:vmlinux:write:entry e syscall:vmlinux:write:return.

Exemplo de Uso

Os exemplos a seguir ilustram a funcionalidade atual no DTrace v2.0 no UEK R6. Os exemplos supõem que os comandos são executados como raiz e /usr/sbin está no PATH.

  • Mostrar informações da versão do DTrace:

    # dtrace -V
    DTrace 2.0.0 [Pre-Release with limited functionality]
    dtrace: Oracle D 2.0
  • Listar investigações:

    # dtrace -l
    DTrace 2.0.0 [Pre-Release with limited functionality]
    ID   PROVIDER    MODULE                     FUNCTION NAME
    1     dtrace                                        BEGIN
    2     dtrace                                        END
    3     dtrace                                        ERROR
    4        fbt   vmlinux     trace_initcall_finish_cb entry
    5        fbt   vmlinux     trace_initcall_finish_cb return
    6        fbt   vmlinux         initcall_blacklisted entry
    7        fbt   vmlinux         initcall_blacklisted return          

    Nesse sistema específico, havia:

    • 3 sondas dtrace

    • 87890 sondas fbt (baseadas em sondas)

    • 1262 sdt sondagens (com base em pontos de rastreamento Linux)

    • 666 sondas de syscall

  • Exemplo de script que usa a opção -S, para gerar o código D compilado como um programa eBPF e que usa a opção -e, para sair após a compilação:

    # dtrace -Sen 'write:entry { trace(1) }'
    DTrace 2.0.0 [Pre-Release with limited functionality]
    
    Disassembly of ::write:entry
              
    DIFO 0x46af600 returns D type (integer) (size 8) [record 16 bytes]
    INS OFF  OPCODE                  INSTRUCTION
    000 000: 62 a 0 fef8 ffffffff    stw  [%fp-264], -1     ! = EPID
    001 008: 62 a 0 fefc 00000000    stw  [%fp-260], 0
    002 016: 7a a 0 ff00 00000000    stdw [%fp-256], 0
    003 024: 7a a 0 ff08 00000000    stdw [%fp-248], 0
    004 032: 7a a 0 ff10 00000000    stdw [%f
    [...]
  • Exemplo de script:

    # dtrace -n '
    write:entry,
    write:return
    {
    this->x = 3;                /* clause-local variables */
    this->y = 8;
    trace(this->x * this->y);
    trace(&`max_pfn);
    }'

    No exemplo acima:

    • Sondar write() entrada e saída da chamada do sistema (várias sondagens de uma só vez);

    • Investigue o endereço de um identificador do kernel (max_pfn) e outros itens de dados;

    • As sondas são nomeadas (explicitamente, sem curingas) com a mesma ação.

    • Variáveis de cláusula local são usadas.

    • A ação trace() é usada para reportar a saída.

Sistemas de Arquivos

A seguir estão os recursos mais notáveis que foram implementados para sistemas de arquivos no UEK R6:

Btrfs

Btrfs continua a ser suportado no UEK. Várias melhorias e patches foram aplicados nesta atualização, incluindo suporte para arquivos de permuta, compactação ZStandard e várias melhorias de desempenho. O suporte a Btrfs para sistemas de arquivos raiz foi introduzido no Oracle Linux 8.3.

ext4

Os timestamps de 64 bits foram adicionados aos campos de superbloco.

OCFS2

OCFS2 continua a ser suportado no UEK. Várias melhorias e patches foram aplicados nesta atualização, incluindo suporte para o recurso 'nowait' AIO, suporte em plataformas Arm e leitura do superbloco da revista para operações on-line e offline.

XFS

Uma nova infraestrutura de relatório de integridade on-line e um ioctl de espaço do usuário para obter o status de integridade dos metadados após o fsck on-line ter sido adicionado. Também adicionado nesta versão é suporte para colocar arquivos de permuta e arquivos de permuta em dispositivos em tempo real, bem como suporte parcial de reenvio. Várias melhorias de desempenho também foram feitas.

NFS

Foram feitos aprimoramentos e melhorias de desempenho na RPC, no cliente NFS e nos componentes do servidor. Foram feitas melhorias significativas para NFS com RDMA. Os aprimoramentos incluem o seguinte: várias conexões de cliente TCP NFSv4.1+, por servidor, para melhorar o throughput do paralelismo de hardware, comportamento de montagem suave aprimorado e diagnósticos aprimorados.

Gerenciamento de Memória

Os seguintes recursos notáveis de gerenciamento de memória são implementados no UEK R6:

  • Flushing TLB

    O código de descarga do TLB é melhorado para evitar descargas desnecessárias e reduzir os abatimentos do TLB.

  • Limpeza de página enorme

    O gerenciamento de memória é aprimorado para melhorar a taxa de transferência, aproveitando a limpeza de grandes páginas de forma mais otimizada.

  • Melhorias no cache de página

    A eficiência do cache de página é aprimorada usando o tipo de dados Xarray mais eficiente.

  • Maior prevenção de fragmentação

    Algoritmos de evitação de fragmentação são melhorados e os tempos de compactação e desfragmentação são mais rápidos.

  • Melhorias no tratamento de falhas THP

    Melhorias foram implementadas para o tratamento de falhas Transparent Huge Page (THP) e também para fornecer melhores relatórios sobre o status do THP.

Rede

Os seguintes recursos notáveis de rede são implementados no Unbreakable Enterprise Kernel Release 6:

  • TCP - Hora de Partida Antecipada

    A pilha TCP agora usa o modelo Early Departure Time para enviar pacotes, em vez do modelo o mais rápido possível. Essa melhoria traz vários ganhos de desempenho, pois resolve uma limitação no framework TCP/IP original e introduz a versão programada de pacotes para superar limitações e gargalos de hardware.

  • Descarregamento de Recebimento Genérico

    O GRO está ativado para o UDP (User Datagram Protocol).

  • Recebimento de TLS

    A release anterior do UEK permitia que o kernel enviasse mensagens TLS. Esta release permite que o kernel também receba mensagens TLS. A implementação do tratamento de kernel de conexões TLS oferece ganhos significativos de desempenho em relação a implementações limitadas ao espaço do usuário.

  • Recebimento TCP com cópia zero

    A versão anterior do UEK introduziu um recurso TCP de cópia zero para enviar pacotes para a rede. Esta versão permite a funcionalidade de recebimento de cópia zero TCP.

  • Filtragem de Pacotes

    nftables agora é o backend padrão para regras de firewall. A filtragem de rede baseada em BPF (bpfilter) também é adicionada nesta versão.

  • Caminho de dados expresso (XDP) Adicionado

    O XDP é um transporte de pacotes baseado em kernel flexível e mínimo para redes de alta velocidade.

RDMA

Acesso remoto direto à memória (RDMA) é um recurso que permite acesso direto à memória entre dois sistemas conectados por uma rede. O RDMA facilita a rede de alto rendimento e baixa latência em clusters.

O Unbreakable Enterprise Kernel Release 6 inclui recursos RDMA fornecidos no kernel upstream, com a adição da funcionalidade Ksplice e DTrace.

O UEK R6 mantém a paridade de recursos com o UEK R5 e inclui as seguintes atualizações upstream notáveis:

  • Infraestrutura de Estatísticas Dinâmicas

    Uma infraestrutura de estatísticas dinâmicas foi implementada para facilitar o monitoramento de vários objetos, vinculando-os a contadores que são acessíveis através de uma interface netlink.

  • Contadores de Fluxo de Verbos

    Os patches foram aplicados para fornecer uma API que permite aos aplicativos de espaço do usuário monitorar a atividade de tráfego em tempo real e os eventos dos objetos de verbos que ele gerencia.

  • Melhorias em RDMA ioctl()

    Várias atualizações foram aplicadas para melhorar o RDMA ioctl(). Significativamente, novos cabeçalhos são usados e a nomeação se tornou mais consistente. O cabeçalho uverbs_ioctl foi estendido para incluir a driver_id e a representação compacta de uverbs_attr_spec está ativada.

  • Rastreamento de Recursos RDMA

    Uma infraestrutura geral para o rastreamento de recursos RDMA foi implementada. Essa infraestrutura é usada para fornecer informações detalhadas do Par de Filas (QP), bem como informações de utilização de recursos globais.

  • Moderação CQ é exposta ao espaço do usuário

    Os patches são aplicados para expor a Fila de Conclusão (CQ) a aplicativos de espaço do usuário para controlar o número de CQEs necessários para criar um evento. Essa alteração fornece mais controles aos aplicativos do usuário para melhorar o ajuste de desempenho.

  • Funcionalidade de Namespace aprimorada

    Vários patches foram aplicados para melhorar a funcionalidade de namespace. Um patch que permite alterar com segurança o namespace de rede de um dispositivo RDMA foi aplicado para adicionar um comando. O compartilhamento de dispositivos em vários namespaces de rede está desativado e a execução de comandos netlink em namespaces de rede não init_net agora é possível.

Segurança

Os seguintes recursos de segurança notáveis são implementados no Unbreakable Enterprise Kernel Release 6:

  • Modo de bloqueio para sistemas x86_64

    O modo de bloqueio foi aprimorado. Esta versão distingue entre os modos de integridade e confidencialidade. Quando a Inicialização Segura está ativada no UEK R6, o modo de integridade de bloqueio é imposto por padrão. O modo Confidencialidade pode ser ativado como uma opção na linha de comando do kernel ou usando securityfs, quando a Inicialização Segura UEFI está ativada. Os modos de bloqueio também podem ser ativados quando uma opção de linha de comando do kernel é usada para desativar a Inicialização Segura; no entanto, nenhuma imposição de bloqueio é executada por padrão quando a Inicialização Segura é desativada.

    As seguintes restrições são aplicadas quando o modo de integridade está ativado:

    • Impor assinaturas de módulos do kernel

    • Restringir o acesso de leitura/gravação a /dev/{mem,kmem,port}

    • Restringir efivar_ssdt_load

    • Desativar chamada do sistema kexec_load

    • Desativar hibernação

    • Proibir o acesso ao PCI BAR do espaço do usuário

    • Proibir o acesso à porta de Entrada/Saída X86 do espaço do usuário

    • Restringir acesso MSR

    • Limitar acesso ao método custom_method ACPI

    • Ignorar parâmetro do kernel acpi_rspd

    • Desativar substituição da tabela ACPI

    • Proibir armazenamento CIS PCMCIA

    • Proibir TIOCSSEARIAL

    • Proibir parâmetros de módulo kernel inseguros

    • Proibir o módulo testmmiotrace

    • Proibir acesso a depurações

    As seguintes restrições são aplicadas quando o modo de confidencialidade está habilitado:

    • Proibir rastreamento e perf kprobes

    • Restringir o uso de bpf para ler a memória do kernel

    • Proibir o uso inseguro de perf

    • Proibir rastreadores

    • Proibir o acesso ao /proc/kcore

    Observe que o gerenciamento de keyring do kernel também foi alterado para o UEK R6, que agora usa código do kernel upstream principal para implementar um keyring da plataforma. As Chaves de Proprietário de Máquina e Banco de Dados de Inicialização Segura UEFI (MOKs) agora são armazenadas no keyring da plataforma e não são tratadas igualmente ao keyring confiável do kernel. Embora kexec confie nas chaves no keyring da plataforma, elas não podem ser usadas para adicionar uma nova CA ao kernel para IMA (Integrity Measurement Architecture) e não podem ser usadas para verificar os módulos de kernel.

  • IBRS

    A IBRS (Indirect Branch Restricted Speculation) continua a ser suportada para processadores afetados pela Vulnerabilidade de Canal Lateral de Execução Especulativa do Spectre V2 e para os quais outras técnicas de software ou hardware podem não ser suficientes ou não estão disponíveis.

  • Proteção aprimorada em diretórios graváveis

    Esta release do kernel desencoraja ataques de falsificação ao não permitir a abertura de FIFOs ou arquivos regulares que não são de propriedade do usuário em diretórios sticky graváveis, como /tmp.

  • Braço KASLR

    A randomização de endereços virtuais do kernel é ativada por padrão para plataformas Arm.

  • aarch64 Autenticação de ponteiro

    Esse recurso adiciona primitivas que podem ser usadas para mitigar certas classes de ataques de corrupção de pilha de memória em plataformas Arm.

Armazenamento

Os seguintes recursos de armazenamento notáveis são implementados no Unbreakable Enterprise Kernel Release 6:

  • Melhorias no NVMe

    O host TCP do NVMe sobre o Fabrics e os drivers de destino foram adicionados. O suporte a vários caminhos e o suporte a comandos de passagem foram adicionados. O suporte ao namespace NVMe é estendido para incluir Namespace Write Protect e Asynchronous Namespace Access.

Virtualização

Os seguintes recursos notáveis de virtualização são implementados no Unbreakable Enterprise Kernel Release 6:

  • Melhorias no VirtIO

    O recurso PMEM VirtIO adiciona um mecanismo de descarga assíncrona baseado em VirtIO e simula memória persistente para um convidado, permitindo que ele ignore um cache de página de convidado. Um driver paravirtualizado VirtIO-IOMMU que permite solicitações IOMMU sobre o transporte VirtIO sem emular tabelas de página também é adicionado nesta versão.

  • Melhorias na plataforma Arm

    Os hóspedes em sistemas de plataforma ARM (aarch64) incluem autenticação de ponteiro (ARM v8.3) e suporte a Scalable Vector Extension (SVE).

Atualizações do driver

O Unbreakable Enterprise Kernel Release 6 suporta um grande número de hardware e dispositivos. Em estreita cooperação com os fornecedores de hardware e armazenamento, a Oracle atualizou vários drivers de dispositivos das versões no Linux 5.4 principal.

Uma lista completa dos módulos de driver incluídos na atualização mais recente do UEK R6, juntamente com informações de versão, é fornecida no apêndice em Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).

Recursos de driver notáveis

Os seguintes novos recursos são observados nos drivers enviados com o UEK R6:

  • Driver de rede Broadcom BCM573xx

    A versão do driver bnxt_en foi atualizada para a versão 1.10.1, com patches adicionais com back-port da versão do kernel 5.5 upstream e com patches fornecidos pelo fornecedor específicos para expansão e atualização da funcionalidade para controladores Broadcom Thor Ethernet.

    Uma mudança de upstream para este driver que foi incorporada em uma atualização de errata UEK R6 no kernel versão 5.4.17-2011.6.2 resulta em uma alteração de nome de dispositivo para a segunda porta de interfaces de rede Broadcom que usam esse driver. Por exemplo, um dispositivo que foi identificado anteriormente como eno3d1 agora é identificado como eno3. Esta correção foi aplicada para melhorar a nomeação do dispositivo e também para abordar suposições sobre a funcionalidade da porta em um dispositivo, como em situações em que o dispositivo de rede pode pertencer a diferentes funções. Consequentemente, essa alteração pode resultar em problemas com scripts de rede ao fazer upgrade de um sistema que usa RHCK ou UEK R5 para UEK R6. Talvez seja necessário garantir que os scripts de rede sejam renomeados e atualizados de acordo se você fizer upgrade de uma versão anterior do kernel para uma versão atual do UEK R6 ou posterior.

  • Driver SCSI Broadcom Emulex LightPulse Fibre Channel

    O driver lpfc foi atualizado para 12.6.0.3. Esta atualização inclui um grande número de patches contribuídos pelo fornecedor para lidar com alterações no driver desde que o kernel 5.4 upstream foi disponibilizado e importante correção de bugs para o firmware do adaptador. Alterações nesse driver também resultaram em atualizações para outras dependências do kernel, como o código para NVMe no Fibre Channel.

  • Driver QLogic BCM5706/5708/5709/5716

    O driver bnx2 é atualizado; e, embora o número da versão permaneça na versão 2.2.6, o driver inclui atualizações de patches e firmware com contribuição do fornecedor.

  • Driver HBA QLogic Fibre Channel

    O driver qla2xxx foi atualizado para a versão 10.01.00.22.81.1-k. Esta atualização faz back-ports de muitos patches que desde então entraram no kernel upstream e inclui patches de fornecedores específicos para melhorar o desempenho e fornecer correções para alguns bugs no driver original.

  • Driver do controlador Microsemi Smart Family

    O driver smartpqi é atualizado para a versão 1.2.10-025 e inclui patches de upstream que foram aplicados ao driver desde a versão do kernel 5.4 sob orientação do fornecedor. Essas atualizações incluem várias correções de bugs e aprimoramentos de desempenho.

  • Driver do dispositivo LSI MPT Fusion SAS 3.0

    O driver mpt3sas é atualizado para a versão 33.100.00.00 e inclui patches fornecidos pelo fornecedor.

Pacotes Novos e Atualizados

Para suportar a funcionalidade recém-adicionada que o UEK R6 fornece, vários pacotes binários de kernel e espaço do usuário foram adicionados ou atualizados a partir dos pacotes incluídos na distribuição base. Para obter mais informações sobre os canais ULN e os repositórios do servidor yum do Oracle Linux nos quais esses pacotes estão disponíveis, consulte Instalação e Disponibilidade do UEK R6.

Os pacotes de espaço do kernel adicionados e atualizados para UEK R6 são rotulados com o prefixo kernel-uek. O pacote linux-firmware também é atualizado com os firmwares mais recentes disponíveis.

Os pacotes listados aqui são específicos da funcionalidade user-space e são atualizados para aproveitar os recursos disponíveis no UEK R6. Não há dependência desses pacotes para usar o UEK R6. Se você usar qualquer um desses pacotes e também usar o UEK R6, deverá atualizar o pacote para a versão mais recente para compatibilidade total com todos os recursos disponíveis no UEK R6.

Pacotes

Número da versão do Oracle Linux 8

Número da versão do Oracle Linux 7

ndctl,ndctl-libs, ndctl-devel, daxctl, daxctl-libs, daxctl-devel

67 (x86_64)

67 (x86_64)

ipmctl, ipmctl-monitor, libipmctl, libipmctl-devel

01.00.00.3467 (x86_64)

01.00.00.3467 (x86_64)

libsafec, libsafec-check, libsafec-devel

3.3 (x86_64)

3.3 (x86_64)

btrfs-progs, btrfs-progs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

xfsprogs, xfsprogs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

ocfs2-tools

1.8.6 (x86_64, aarch64)

1.8.6 (x86_64, aarch64)

e2fs-progs, libss, libss-devel, libcom_err, libcom_err-devel

1.45.4 (x86_64, aarch64)

1.45.4 (x86_64, aarch64)

dtrace, dtrace-devel, dtrace-testsuite

2.0.0 (x86_64, aarch64)

2.0.0 (x86_64, aarch64)

libdtrace-ctf,libdtrace-ctf-devel

Não Aplicável

1.1.0 (x86_64, aarch64)

bcache-tools

1.0.8 (x86_64, aarch64)

1.0.8 (x86_64, aarch64)

cloud-init

18,5 (x86_64, aarch64)

18,5 (x86_64, aarch64)

crash, crash-devel

7.2.7 (x86_64, aarch64)

7.2.7 (x86_64, aarch64)

iproute, iproute-devel, iproute-doc, iproute-tc

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

kexec-tools

2.0.19 (x86_64, aarch64)

2.0.15 (x86_64, aarch64)

libzstd, libzstd-devel

1.3.8 (x86_64, aarch64)

1.3.4 (x86_64, aarch64)

linux-firmware

20200124-999.4 (x86_64, aarch64)

20200124-999.4 (x86_64, aarch64)

nvme-cli

1.9 (x86_64, aarch64)

1.9 (x86_64, aarch64)

nvmetcli

0,7 (x86_64, aarch64)

0,7 (x86_64, aarch64)

nbd

3.20 (x86_64, aarch64)

3.20 (x86_64, aarch64)

drbd-utils

9.0.0 (x86_64, aarch64)

9.0.0 (x86_64, aarch64)

libdnf, python3-libdnf, python3-hawkey

0,35 (x86_64, aarch64)

Não Aplicável