FERRAMENTAS LINUX: O Kernel Linux chega com uma melhoria de escalabilidade para os grandes sistemas IBM Power

terça-feira, 20 de dezembro de 2022

O Kernel Linux chega com uma melhoria de escalabilidade para os grandes sistemas IBM Power

 

As atualizações da arquitetura IBM Power/PowerPC foram enviadas hoje para a janela de mesclagem do Linux 6.2 em andamento e o mais significativo com esta atualização é a introdução de uma nova implementação qspinlock específica do Power projetada para reforçar a escalabilidade do sistema grande.


Até agora, os processadores IBM Power no Linux contavam com a implementação genérica "qspinlock" do spinlock enfileirado dentro do kernel, mas descobriu-se que isso causava problemas de latência e inanição em grandes servidores IBM POWER10. -- testando em mais de 16 soquetes com 1.920 threads de CPU. Portanto, para o Linux 6.2, agora existe uma implementação de spinlocks enfileirados específicos do Power, projetada para superar problemas dos qspinlocks genéricos e permitir melhor escalabilidade em grandes sistemas IBM Power / OpenPOWER. Essa nova implementação também deve funcionar melhor em ambientes paravirtualizados.

Nicholas Piggin, que liderou este código Power qspinlock, comentou na série de patches anterior sobre ele:

Desde a série RFC, eu testei isso em um sistema POWER10 de 1920 threads de 16 soquetes com alguns microbenchmarks, e isso mostrou problemas significativos com a série anterior. A alta quantidade de rotação no bloqueio inicial (roubo de bloqueio) para o modo SPLPAR (paravirt) realmente prejudica a escalabilidade quando o convidado não está supercomprometido. No entanto, em sistemas KVM menores com overcommit significativo (por exemplo, 5-10%), essa rotação é muito importante para evitar problemas de desempenho devido ao problema de enfileiramento. Portanto, em vez de definir STEAL_SPINS e HEAD_SPINS com base em SPLPAR no momento da inicialização, reduzi-os e fiz mais para lidar dinamicamente com a preempção de vCPU. Portanto, o comportamento do modo LPAR dedicado e compartilhado agora é o mesmo até que seja detectada preempção de vCPU. Isso parece estar levando a melhores resultados em geral, mas algumas latências de pior caso aumentaram significativamente com o teste de bloqueio (a latência ainda é melhor do que spinlocks enfileirados genéricos, mas não tão boa quanto antes ou tão boa quanto simples). A imparcialidade estatística ainda é significativamente melhor.

Esta implementação Power qspinlock para melhor escalabilidade do sistema está sendo mesclada para Linux 6.2 como parte desta solicitação pull . Para aqueles que usam o antigo PowerPC Book3S, esta solicitação pull para Linux 6.2 agora também está zerando os registros de uso geral na entrada da rotina de interrupção. Essa alteração está sendo feita para reduzir a influência sobre os registros do usuário na especulação dentro dos manipuladores de chamadas do sistema do kernel. Isso pode diminuir o desempenho do Book3S em cerca de 1% com essa limpeza de registros na entrada da rotina de interrupção, mas sendo feita em nome da segurança.






Fonte

Até a próxima !!



Nenhum comentário:

Postar um comentário