Primeiro, esta pergunta não é uma duplicata de Por que o journalctl está relatando "Erro de barramento PCIe" BadTLP e BadDLLP? porque, em vez de perguntar o que está causando esse aviso do kernel, pergunto diretamente como resolvê-lo ou fazer alguma solução alternativa.
Em cerca de uma hora inteira escrevendo e depois lendo de/para meu dispositivo de disco USB recém-conectado, Crucial P3 PCIe 3.0 x4 NVMe M.2 2280 SSD de 4 TB com número de modelo CT4000P3SSD8, que coloquei dentro de um gabinete de disco AXAGON EEM2-SG2 SuperSpeed+ USB-C M.2 e o conectei a um conector Thunderbolt 3 USB-C no meu antigo laptop Dell Inspiron 15 Gaming 7577.
Notei imediatamente avisos de BadDLLP (Erro de barramento PCIe corrigível) como este (o horário foi removido para abreviar):
kernel: pcieport 0000:00:1c.0: AER: Correctable error message received from 0000:02:00.0
kernel: pcieport 0000:02:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Receiver ID)
kernel: pcieport 0000:02:00.0: device [8086:15da] error status/mask=00000080/00002000
kernel: pcieport 0000:02:00.0: [ 7] BadDLLP
Em apenas uma hora, o kernel gerou quase 300.000 desses avisos/erros corrigíveis:
# journalctl --boot -1 --no-pager --no-hostname | grep BadDLLP | wc --lines
292727
Há algo que eu possa fazer com relativa segurança para atenuar esses avisos/erros corrigíveis?
SO: Linux Mint 22 (wilma) com versão de kernel 6.8.0-51-generic.
(Antes, esta resposta costumava sugerir
pcie_ecrc=off
, mas após uma análise mais aprofundada, parece que ela não apenas desabilita o relatório de erros no kernel do Linux, mas também diz ao hardware para ignorar erros , o que pode causar problemas por si só.)pcie_aspm=off
desabilita muito do gerenciamento de energia PCIe. Você pode não se importar com isso em um desktop, mas em um laptop pode ser importante, não apenas para limitar o consumo de energia, mas também para manter a geração de calor dentro de limites administráveis. As soluções de resfriamento em laptops tendem a não ser tão eficazes quanto em desktops e servidores, por razões óbvias.pci=noaer
pode ser uma opção melhor, pois desliga apenas a parte de relatório de erros. O hardware ainda seguirá a política de correção de erros padrão conforme definido pelo firmware do sistema (BIOS ou UEFI), mas asCorrectable PCIe Bus Error
mensagens não devem mais ser geradas.Se isso
pcie_aspm=off
ajudar, pode significar que algum componente de hardware não está obedecendo totalmente aos estados de gerenciamento de energia PCIe e está gerando mensagens de erro sobre interferência aleatória em um link PCIe cujo outro ponto de extremidade está desligado no momento. Nesse caso, um relatório de bug pode ser apropriado para que a causa raiz possa ser corrigida adequadamente.O dispositivo
8086:15da
mencionado na mensagem de erro parece ser a ponte Intel JHL6340 Thunderbolt 3, então talvez haja algo que possa ser feito no driver Thunderbolt para eliminar ou limitar a torrente de mensagens de "erro PCIe corrigível".Também há a possibilidade de que as mensagens de erro indiquem um cabo Thunderbolt ruim ou um conector sujo ou danificado. Mas suponho que você já tenha verificado isso.
Desabilitar o ASPM (Active-State Power Management) (link da Wikipedia) globalmente por meio do parâmetro do kernel GRUB
pcie_aspm=off
(link da documentação do RedHat) parece resolver o problema.Documentação do Kernel em
pcie_aspm
( link ), trecho:Isenção de responsabilidade : suspeito que esta opção desabilite todas as economias de energia do PCIe, então vou publicá-la apenas até saber mais opções, por exemplo, se é possível desativar a economia de energia estritamente apenas para este dispositivo...