Meltdown
Meltdown, o desaceleração do patch de erro Specter é real - e o que você pode fazer sobre isso
Chip falha não é tão insignificante depois de tudo
Análise Tendo disparado no pé, priorizando a velocidade do processador em relação à segurança, a correção da indústria de chips envolve o mesmo para os clientes.
Os remendos que estão sendo colocados no lugar para resolver os problemas de fusão e espectro que afetam a maioria das CPUs modernas foram supostamente pequenas coisas arejadas sem nenhuma conseqüência. Em vez disso, para algumas pessoas azaradas, são âncoras.
Tendo ajudado a encontrar as falhas, o Google insistiu que as correções de software que começaram a aparecer "introduzem um impacto mínimo no desempenho" e insistiram que o sucesso do desempenho diminuirá ao longo do tempo.
A Intel disse tanto na sua declaração, afirmando que "qualquer impacto no desempenho depende da carga de trabalho e, para o usuário médio do computador, não deve ser significativo e será atenuado ao longo do tempo".
Isso pode ser verdade, eventualmente, graças, em parte, a um recurso de processador chamado Processor-Context ID, ou PCID. Mas mais sobre isso mais tarde.
No momento, as conseqüências da velocidade de corrigir esses erros são suficientemente significativas para suscitar a atenção e reclamações. Para ser claro: aqui, no El Reg,recomendo que você instale os mapeamentos de erro de segurança da CPU o mais rápido possível. Nós só queremos pessoas - particularmente assinantes da nuvem e administradores de TI - estar atentos aos efeitos.
Embora a maioria dos usuários e usuários de desktop casual não percebam uma desaceleração prolongada, ou qualquer sucesso de desempenho, as pessoas que executam o IO ou o software intensivo em chamadas de sistema, como bancos de dados em servidores backend, podem notar a diferença.
A Red Hat registrou o impacto no desempenho do patch de um a 20 por cento .
Epic Games na sexta-feira explicou a causa dos recentes problemas de logística e estabilidade experimentados por seus jogadores, observando: "Todos os nossos serviços em nuvem são afetados pelas atualizações necessárias para mitigar a vulnerabilidade Meltdown".
A empresa, que conta com servidores AWS, postou uma captura de tela de um gráfico que mostra um aumento na utilização da CPU depois que um host foi corrigido. O Register perguntou a Epic para elaborar suas descobertas, mas um porta-voz disse que o desenvolvedor não tinha mais nada para adicionar no momento.
As discussões sobre a lista de correspondência para o Luster , um sistema de arquivos distribuído em paralelo, descreveram desacelerações variando de 10% a 45% para determinadas aplicações intensivas de IO.
"Encontramos um desempenho terrível no sistema de teste com zfs + compressão + brilho", escreveu Arman Khalatyan, do Instituto Leibniz para Astrofísica Potsdam, em um memorando na segunda-feira.
No Reddit, um mineiro de moedas Monero relatou uma desaceleração de cerca de 45 por cento após a aplicação do patch Meltdown. Nessa discussão, outra pessoa citou uma taxa de hash diminuição de 10 para 15 por cento.
Quora, que se baseia na AWS, disse no sábado que está "enfrentando uma desaceleração devido ao patch aplicado pela AWS para problemas da Meltdown e Specter da Intel".
Via Twitter, Francis Wolinski, cientista de dados da estratégia Blueprint, com sede em Paris, observou que o Python diminuiu significativamente (cerca de 37%) após a aplicação do patch Meltdown para o Windows 7.
Também através do Twitter, Ian Chan, diretor de engenharia da empresa de análise Branch Métricas, descreveu a utilização da CPU aumenta de cinco a 20 por cento após o patch Meltdown foi aplicado ao hypervisor AWS EC2 manipulando suas instâncias de Kafka.
Os clientes da Amazon enviaram o The Register várias capturas de tela da utilização da CPU, mostrando picos semelhantes aos que foram discutidos publicamente. Antes do fim de semana, a Amazon confirmou que as atualizações ding desempenho de máquinas virtuais da AWS até certo ponto, embora não existam "impacto de desempenho significativo para a maioria das cargas de trabalho do cliente", aparentemente.
Estes números estão de acordo com as estimativas relatadas pela primeira vez pelo The Register , um sucesso de desempenho de cerca de cinco a 30 por cento, com a ressalva de que tais resultados são altamente variáveis e dependem de uma série de fatores, como a carga de trabalho em questão e a tecnologia envolvida.
O site da irmã do El Reg The Next Platform estimou que a quantidade de valor de computação perdida no desaceleração é de US $ 6 bilhões anualmente.
Esses atrasos são em grande parte a conseqüência dos remendos de Meltdown, que no Linux impõem a separação entre os espaços de endereço da memória virtual do kernel e do usuário através do Isolamento da Tabela de Página do Kernel ou KPTI .
Além do Linux, a Microsoft corrigiu o Windows Server 2008 R2, 2012 R2 e 2016, entre outros sabores do seu sistema operacional. A Apple também atenuou Meltdown e Specter em iOS e macros.
As atenuações do espectro - que envolvem a recompilação de software com contramedidas como o retpoline do Google, bem como as atualizações de microcódigo dependendo do modelo do processador - acabaram de aparecer. Embora considerem apenas correções parciais para um problema que levará algum tempo para resolver, eles também esperam afetar o desempenho também (além de ganhar algumas PCs AMD se estiver usando o Windows).
A Remediating Meltdown - que está presente nos processadores modernos da Intel - envolve a imposição de separação completa entre os espaços de memória virtual dos processos do usuário e as áreas de memória virtual do kernel. Ao invés de mapear o kernel na parte superior do espaço de memória virtual de cada processo, onde ele permanece invisível, a menos que seja necessário para lidar com uma chamada de interrupção ou sistema, o kernel é movido para um espaço e contexto de endereço virtual separado. Essa correção impede o malware de explorar o erro de CPU Meltdown para ler a memória do kernel do modo de usuário e é referido como Isolamento da Tabela de Página do Kernel.
Alternando entre esses contextos - do contexto do processo do usuário ao contexto do kernel e de volta ao processo do usuário - envolve recarregar tabelas de páginas, um conjunto que descreve o processo do usuário e outro descrevendo o kernel. Essas tabelas mapeiam o processo ou a memória virtual do kernel para blocos físicos de RAM ou espaço de troca.
Esse contexto muda de processo de usuário para kernel para processar não só leva tempo, mas também elimina todas as traduções de memória virtual-a-memória em cache, tudo isso causando um hit de desempenho, particularmente em cargas de trabalho que envolvem muitas chamadas de IO ou sistema. Mas com o PCID , não há necessidade de liberar todo o cache de reserva Lookaside (TLB) em cada mudança de contexto, pois as entradas TLB selecionadas podem ser mantidas no processador.
O PCID primeiro viu o suporte ao Linux no kernel 4.14 lançado em novembro de 2017 e, portanto, não está necessariamente disponível por padrão com cada instância do Linux, particularmente em máquinas virtuais.
Em uma publicação dos Grupos do Google no domingo, Gil Tene, CTO e cofundador da empresa Java biz Azul Systems, disse que a PCID tornou-se crítica tanto para segurança quanto para desempenho na plataforma x86 da Intel. Mas ele observou que não está presente em muitas das instâncias Linux virtualizadas que ele olhou.
A maioria dos convidados KVM - máquinas virtuais baseadas no kernel - não incluem o PCID, de acordo com a Tene, enquanto a maioria dos clientes da VMware faz. E cerca de metade das instâncias da AWS, ele olhou para não ter.
"Você REALMENTE quer PCID no seu processador", escreveu Tene. "Sem isso, você pode estar executando com insegurança (correções Meltdown desativadas por padrão), ou você pode correr tão lento que você estará desejando uma intrusão de segurança para tirá-lo da sua miséria".
Em outras palavras, se você estiver vendo o desempenho de crap depois de aplicar essas correções, veja a configuração do kernel e obtenha o PCID ativado - se o recurso de hardware estiver presente no seu chipset. O Windows deveria, pelo que vale a pena, usar o PCID se for fornecido pelo processador. ®
Os remendos que estão sendo colocados no lugar para resolver os problemas de fusão e espectro que afetam a maioria das CPUs modernas foram supostamente pequenas coisas arejadas sem nenhuma conseqüência. Em vez disso, para algumas pessoas azaradas, são âncoras.
Tendo ajudado a encontrar as falhas, o Google insistiu que as correções de software que começaram a aparecer "introduzem um impacto mínimo no desempenho" e insistiram que o sucesso do desempenho diminuirá ao longo do tempo.
A Intel disse tanto na sua declaração, afirmando que "qualquer impacto no desempenho depende da carga de trabalho e, para o usuário médio do computador, não deve ser significativo e será atenuado ao longo do tempo".
Isso pode ser verdade, eventualmente, graças, em parte, a um recurso de processador chamado Processor-Context ID, ou PCID. Mas mais sobre isso mais tarde.
No momento, as conseqüências da velocidade de corrigir esses erros são suficientemente significativas para suscitar a atenção e reclamações. Para ser claro: aqui, no El Reg,recomendo que você instale os mapeamentos de erro de segurança da CPU o mais rápido possível. Nós só queremos pessoas - particularmente assinantes da nuvem e administradores de TI - estar atentos aos efeitos.
Embora a maioria dos usuários e usuários de desktop casual não percebam uma desaceleração prolongada, ou qualquer sucesso de desempenho, as pessoas que executam o IO ou o software intensivo em chamadas de sistema, como bancos de dados em servidores backend, podem notar a diferença.
A Red Hat registrou o impacto no desempenho do patch de um a 20 por cento .
Epic Games na sexta-feira explicou a causa dos recentes problemas de logística e estabilidade experimentados por seus jogadores, observando: "Todos os nossos serviços em nuvem são afetados pelas atualizações necessárias para mitigar a vulnerabilidade Meltdown".
A empresa, que conta com servidores AWS, postou uma captura de tela de um gráfico que mostra um aumento na utilização da CPU depois que um host foi corrigido. O Register perguntou a Epic para elaborar suas descobertas, mas um porta-voz disse que o desenvolvedor não tinha mais nada para adicionar no momento.
As discussões sobre a lista de correspondência para o Luster , um sistema de arquivos distribuído em paralelo, descreveram desacelerações variando de 10% a 45% para determinadas aplicações intensivas de IO.
"Encontramos um desempenho terrível no sistema de teste com zfs + compressão + brilho", escreveu Arman Khalatyan, do Instituto Leibniz para Astrofísica Potsdam, em um memorando na segunda-feira.
No Reddit, um mineiro de moedas Monero relatou uma desaceleração de cerca de 45 por cento após a aplicação do patch Meltdown. Nessa discussão, outra pessoa citou uma taxa de hash diminuição de 10 para 15 por cento.
Quora, que se baseia na AWS, disse no sábado que está "enfrentando uma desaceleração devido ao patch aplicado pela AWS para problemas da Meltdown e Specter da Intel".
Via Twitter, Francis Wolinski, cientista de dados da estratégia Blueprint, com sede em Paris, observou que o Python diminuiu significativamente (cerca de 37%) após a aplicação do patch Meltdown para o Windows 7.
Também através do Twitter, Ian Chan, diretor de engenharia da empresa de análise Branch Métricas, descreveu a utilização da CPU aumenta de cinco a 20 por cento após o patch Meltdown foi aplicado ao hypervisor AWS EC2 manipulando suas instâncias de Kafka.
Os clientes da Amazon enviaram o The Register várias capturas de tela da utilização da CPU, mostrando picos semelhantes aos que foram discutidos publicamente. Antes do fim de semana, a Amazon confirmou que as atualizações ding desempenho de máquinas virtuais da AWS até certo ponto, embora não existam "impacto de desempenho significativo para a maioria das cargas de trabalho do cliente", aparentemente.
Soar ... Um exemplo de aumento da utilização da CPU AWS após a instalação de patches de segurança de falha da CPU (clique para ampliar)
O site da irmã do El Reg The Next Platform estimou que a quantidade de valor de computação perdida no desaceleração é de US $ 6 bilhões anualmente.
Esses atrasos são em grande parte a conseqüência dos remendos de Meltdown, que no Linux impõem a separação entre os espaços de endereço da memória virtual do kernel e do usuário através do Isolamento da Tabela de Página do Kernel ou KPTI .
Além do Linux, a Microsoft corrigiu o Windows Server 2008 R2, 2012 R2 e 2016, entre outros sabores do seu sistema operacional. A Apple também atenuou Meltdown e Specter em iOS e macros.
As atenuações do espectro - que envolvem a recompilação de software com contramedidas como o retpoline do Google, bem como as atualizações de microcódigo dependendo do modelo do processador - acabaram de aparecer. Embora considerem apenas correções parciais para um problema que levará algum tempo para resolver, eles também esperam afetar o desempenho também (além de ganhar algumas PCs AMD se estiver usando o Windows).
PCID
Se houver um lado brilhante para tudo isso, é que o recurso PCID nos chips x86-64 da Intel desde 2010 pode reduzir o sucesso de desempenho do patch Meltdown. (Se você tem um sistema de 32 bits, você está sozinho).A Remediating Meltdown - que está presente nos processadores modernos da Intel - envolve a imposição de separação completa entre os espaços de memória virtual dos processos do usuário e as áreas de memória virtual do kernel. Ao invés de mapear o kernel na parte superior do espaço de memória virtual de cada processo, onde ele permanece invisível, a menos que seja necessário para lidar com uma chamada de interrupção ou sistema, o kernel é movido para um espaço e contexto de endereço virtual separado. Essa correção impede o malware de explorar o erro de CPU Meltdown para ler a memória do kernel do modo de usuário e é referido como Isolamento da Tabela de Página do Kernel.
Alternando entre esses contextos - do contexto do processo do usuário ao contexto do kernel e de volta ao processo do usuário - envolve recarregar tabelas de páginas, um conjunto que descreve o processo do usuário e outro descrevendo o kernel. Essas tabelas mapeiam o processo ou a memória virtual do kernel para blocos físicos de RAM ou espaço de troca.
Esse contexto muda de processo de usuário para kernel para processar não só leva tempo, mas também elimina todas as traduções de memória virtual-a-memória em cache, tudo isso causando um hit de desempenho, particularmente em cargas de trabalho que envolvem muitas chamadas de IO ou sistema. Mas com o PCID , não há necessidade de liberar todo o cache de reserva Lookaside (TLB) em cada mudança de contexto, pois as entradas TLB selecionadas podem ser mantidas no processador.
O PCID primeiro viu o suporte ao Linux no kernel 4.14 lançado em novembro de 2017 e, portanto, não está necessariamente disponível por padrão com cada instância do Linux, particularmente em máquinas virtuais.
Em uma publicação dos Grupos do Google no domingo, Gil Tene, CTO e cofundador da empresa Java biz Azul Systems, disse que a PCID tornou-se crítica tanto para segurança quanto para desempenho na plataforma x86 da Intel. Mas ele observou que não está presente em muitas das instâncias Linux virtualizadas que ele olhou.
A maioria dos convidados KVM - máquinas virtuais baseadas no kernel - não incluem o PCID, de acordo com a Tene, enquanto a maioria dos clientes da VMware faz. E cerca de metade das instâncias da AWS, ele olhou para não ter.
"Você REALMENTE quer PCID no seu processador", escreveu Tene. "Sem isso, você pode estar executando com insegurança (correções Meltdown desativadas por padrão), ou você pode correr tão lento que você estará desejando uma intrusão de segurança para tirá-lo da sua miséria".
Em outras palavras, se você estiver vendo o desempenho de crap depois de aplicar essas correções, veja a configuração do kernel e obtenha o PCID ativado - se o recurso de hardware estiver presente no seu chipset. O Windows deveria, pelo que vale a pena, usar o PCID se for fornecido pelo processador. ®
Meltdown, Spectre bug patch slowdown gets real – and what you can do about it
Chip flaw fixes not so insignificant after all
Analysis Having shot itself in the foot by prioritizing processor speed over security, the chip industry's fix involves doing the same to customers.
The patches being put in place to address the Meltdown and Spectre bugs that affect most modern CPUs were supposed be airy little things of no consequence. Instead, for some unlucky people, they're anchors.
Having helped find the flaws, Google insisted the software fixes that have begun to appear "introduce minimal performance impact," and insisted the performance hit will diminish over time.
Intel said as much in its statement, claiming "any performance impacts are workload-dependent, and, for the average computer user, should not be significant and will be mitigated over time."
That may be true eventually, thanks in part to a processor feature called Processor-Context ID, or PCID. But more on that later.
At the moment, the speed consequences of patching these bugs is significant enough to elicit attention and complaints. To be clear: we here at El Reg highly recommend you install the CPU security bug patches as soon as possible. We just want folks – particularly cloud subscribers and IT admins – to be aware of the effects.
While most casual desktop users and gamers won't notice any prolonged slowdown, or any performance hit at all, people running IO or system-call intensive software, such as databases on backend servers, may notice the difference.
Red Hat has clocked the patch performance impact as ranging from one to 20 per cent.
Epic Games on Friday explained the cause of recent login and stability issues experienced by its players, noting: "All of our cloud services are affected by updates required to mitigate the Meltdown vulnerability."
The company, which relies on AWS servers, posted a screenshot of a graph depicting a spike in CPU utilization after a host was patched. The Register asked Epic to elaborate on its findings, but a spokesperson said the developer had nothing further to add at the moment.
Discussions on the mailing list for Lustre, a parallel distributed filesystem, described slowdowns ranging from 10 per cent to as high as 45 per cent for certain IO intensive applications.
"We found terrible performance on the test system with zfs+compression+lustre," wrote Arman Khalatyan of the Leibniz Institute for Astrophysics Potsdam in a memo on Monday.
On Reddit, a Monero coin miner reported a slowdown of about 45 per cent after applying the Meltdown patch. On that thread, another person cited a hash rate decrease of 10 to 15 per cent.
Quora, which relies on AWS, on Saturday said it is "facing a slowdown due to the patch applied by AWS for Intel's Meltdown and Spectre issues."
Via Twitter, Francis Wolinski, a data scientist with Paris-based Blueprint Strategy, noted that Python slowed significantly (about 37 per cent) after applying the Meltdown patch for Windows 7.
Also via Twitter, Ian Chan, director of engineering for analytics firm Branch Metrics, described CPU utilization increases of five to 20 per cent after the Meltdown patch was applied to the AWS EC2 hypervisor handling its Kafka instances.
Amazon customers have sent The Register several screenshots of CPU utilization showing spikes similar to those that have been publicly discussed. Before the weekend, Amazon confirmed the updates will ding AWS virtual-machine performance to some degree, albeit with no "meaningful performance impact for most customer workloads" expected, apparently.
These figures are in keeping with the estimates first reported by The Register, a performance hit of roughly five to 30 per cent, with the caveat that any such results are highly variable and depend on a number of factors such as the workload in question and the technology involved.
El Reg's sister site The Next Platform estimated that the amount of computing value lost to the slowdown amounts to $6 billion annually.
These delays are largely the consequence of Meltdown patches, which on Linux enforce separation between the kernel and user virtual memory address spaces through Kernel Page Table Isolation, or KPTI.
Beyond Linux, Microsoft has patched Windows Server 2008 R2, 2012 R2, and 2016, among other flavors of its operating system. Apple has also mitigated Meltdown and Spectre in iOS and macOS.
Spectre mitigations – which involve recompiling software with countermeasures such as Google's retpoline as well as microcode updates depending on the processor model – have just begun to appear. Though considered only partial fixes for a problem that will take some time to sort out, they're nonetheless expected to affect performance, too (beyond knackering some AMD PCs if you're using Windows).
Remediating Meltdown – which is present in modern Intel processors – involves enforcing complete separation between user processes' virtual memory spaces and the kernel's virtual memory areas. Rather than map the kernel into the top portion of every process's virtual memory space where it remains invisible unless required to handle an interrupt or system call, the kernel is moved to a separate virtual address space and context. This fix prevents malware from exploiting the Meltdown CPU bug to read kernel memory from user mode, and is referred to as Kernel Page Table Isolation.
Switching back and forth between these contexts – from the user process context to the kernel context and back to the user process – involves reloading page tables, one set describing the user process and another describing the kernel. These tables map the process or kernel's virtual memory to physical blocks of RAM or swap space.
These context switches from user process to kernel to process not only takes time, it also flushes any cached virtual-to-physical memory translations, all in all causing a performance hit, particularly on workloads that involve a lot of IO or system calls. But with PCID, there's no need to flush the entire translation lookaside buffer (TLB) cache on every context switch as selected TLB entries can be retained in the processor.
PCID first saw Linux support in the 4.14 kernel released in November 2017, and thus it's not necessarily available by default with every Linux instance, particularly on virtual machines.
In a Google Groups post on Sunday, Gil Tene, CTO and cofounder of enterprise Java biz Azul Systems, said PCID has become critical both for security and performance on Intel's x86 platform. But he observed that it isn't present on many of the virtualized Linux instances he's looked at.
Most KVM guests – kernel-based virtual machines – don't include PCID, according to Tene, while most VMware guests do. And about half of the AWS instances he looked at don't have it.
"You REALLY want PCID in your processor," wrote Tene. "Without it, you may be running insecurely (Meltdown fixes turned off by default), or you may run so slow you'll be wishing for a security intrusion to put you out of your misery."
In other words, if you're seeing crap performance after applying these fixes, look at your kernel configuration and get PCID enabled – if the hardware feature is present in your chipset. Windows should, for what it's worth, use PCID if it's provided by the processor. ®
The patches being put in place to address the Meltdown and Spectre bugs that affect most modern CPUs were supposed be airy little things of no consequence. Instead, for some unlucky people, they're anchors.
Having helped find the flaws, Google insisted the software fixes that have begun to appear "introduce minimal performance impact," and insisted the performance hit will diminish over time.
Intel said as much in its statement, claiming "any performance impacts are workload-dependent, and, for the average computer user, should not be significant and will be mitigated over time."
That may be true eventually, thanks in part to a processor feature called Processor-Context ID, or PCID. But more on that later.
Woo-yay, Meltdown CPU fixes are here. Now, Spectre flaws will haunt tech industry for years
READ MOREWhile most casual desktop users and gamers won't notice any prolonged slowdown, or any performance hit at all, people running IO or system-call intensive software, such as databases on backend servers, may notice the difference.
Red Hat has clocked the patch performance impact as ranging from one to 20 per cent.
Epic Games on Friday explained the cause of recent login and stability issues experienced by its players, noting: "All of our cloud services are affected by updates required to mitigate the Meltdown vulnerability."
The company, which relies on AWS servers, posted a screenshot of a graph depicting a spike in CPU utilization after a host was patched. The Register asked Epic to elaborate on its findings, but a spokesperson said the developer had nothing further to add at the moment.
Discussions on the mailing list for Lustre, a parallel distributed filesystem, described slowdowns ranging from 10 per cent to as high as 45 per cent for certain IO intensive applications.
"We found terrible performance on the test system with zfs+compression+lustre," wrote Arman Khalatyan of the Leibniz Institute for Astrophysics Potsdam in a memo on Monday.
On Reddit, a Monero coin miner reported a slowdown of about 45 per cent after applying the Meltdown patch. On that thread, another person cited a hash rate decrease of 10 to 15 per cent.
Quora, which relies on AWS, on Saturday said it is "facing a slowdown due to the patch applied by AWS for Intel's Meltdown and Spectre issues."
Via Twitter, Francis Wolinski, a data scientist with Paris-based Blueprint Strategy, noted that Python slowed significantly (about 37 per cent) after applying the Meltdown patch for Windows 7.
Also via Twitter, Ian Chan, director of engineering for analytics firm Branch Metrics, described CPU utilization increases of five to 20 per cent after the Meltdown patch was applied to the AWS EC2 hypervisor handling its Kafka instances.
Amazon customers have sent The Register several screenshots of CPU utilization showing spikes similar to those that have been publicly discussed. Before the weekend, Amazon confirmed the updates will ding AWS virtual-machine performance to some degree, albeit with no "meaningful performance impact for most customer workloads" expected, apparently.
Soar ... An example AWS CPU utilization spike after installing CPU flaw security patches (Click to enlarge)
El Reg's sister site The Next Platform estimated that the amount of computing value lost to the slowdown amounts to $6 billion annually.
These delays are largely the consequence of Meltdown patches, which on Linux enforce separation between the kernel and user virtual memory address spaces through Kernel Page Table Isolation, or KPTI.
Beyond Linux, Microsoft has patched Windows Server 2008 R2, 2012 R2, and 2016, among other flavors of its operating system. Apple has also mitigated Meltdown and Spectre in iOS and macOS.
Spectre mitigations – which involve recompiling software with countermeasures such as Google's retpoline as well as microcode updates depending on the processor model – have just begun to appear. Though considered only partial fixes for a problem that will take some time to sort out, they're nonetheless expected to affect performance, too (beyond knackering some AMD PCs if you're using Windows).
PCID
If there's a bright side to all this, it's that the PCID feature in Intel's x86-64 chips since 2010 can reduce the performance hit from patching Meltdown. (If you have a 32-bit system, you're on your own.)Remediating Meltdown – which is present in modern Intel processors – involves enforcing complete separation between user processes' virtual memory spaces and the kernel's virtual memory areas. Rather than map the kernel into the top portion of every process's virtual memory space where it remains invisible unless required to handle an interrupt or system call, the kernel is moved to a separate virtual address space and context. This fix prevents malware from exploiting the Meltdown CPU bug to read kernel memory from user mode, and is referred to as Kernel Page Table Isolation.
Switching back and forth between these contexts – from the user process context to the kernel context and back to the user process – involves reloading page tables, one set describing the user process and another describing the kernel. These tables map the process or kernel's virtual memory to physical blocks of RAM or swap space.
These context switches from user process to kernel to process not only takes time, it also flushes any cached virtual-to-physical memory translations, all in all causing a performance hit, particularly on workloads that involve a lot of IO or system calls. But with PCID, there's no need to flush the entire translation lookaside buffer (TLB) cache on every context switch as selected TLB entries can be retained in the processor.
PCID first saw Linux support in the 4.14 kernel released in November 2017, and thus it's not necessarily available by default with every Linux instance, particularly on virtual machines.
In a Google Groups post on Sunday, Gil Tene, CTO and cofounder of enterprise Java biz Azul Systems, said PCID has become critical both for security and performance on Intel's x86 platform. But he observed that it isn't present on many of the virtualized Linux instances he's looked at.
Most KVM guests – kernel-based virtual machines – don't include PCID, according to Tene, while most VMware guests do. And about half of the AWS instances he looked at don't have it.
"You REALLY want PCID in your processor," wrote Tene. "Without it, you may be running insecurely (Meltdown fixes turned off by default), or you may run so slow you'll be wishing for a security intrusion to put you out of your misery."
In other words, if you're seeing crap performance after applying these fixes, look at your kernel configuration and get PCID enabled – if the hardware feature is present in your chipset. Windows should, for what it's worth, use PCID if it's provided by the processor. ®