Desde novembro passado tem sido um relatório de bug do kernel de um engenheiro da Canonical depois de descobrir que o controlador Intel Thunderbolt USB em vários laptops estava”morto”após reiniciar o sistema. Esse problema agora foi resolvido com o Linux 6.4 e essa correção genérica pode acabar ajudando outros hardwares também.
Este relatório de bug do kernel foi aberto em novembro passado depois que a Canonical encontrou alguns laptops Intel Comet Lake onde seus O controlador Thunderbolt USB não estava mais funcionando após a retomada do sistema no Linux. Foi difícil depurar até que Mika Westerberg, da Intel, que lidera o trabalho Thunderbolt do kernel do Linux, conseguiu colocar as mãos no hardware afetado, que inclui pelo menos vários laptops Dell. Por fim, descobriu-se que estava afetando os controladores Intel Titan Ridge xHCI e a solução é deixar o kernel esperar mais tempo pelo dispositivo ao reiniciar o sistema.
Com o Linux 6.4, o código de gerenciamento de energia PCI do kernel agora permite aguardar mais tempo para que os dispositivos PCIe fiquem prontos após a retomada do sistema, seguindo uma abordagem semelhante já adotada pelo kernel do Linux durante as redefinições do dispositivo PCIe. Westerberg explicado no patch ao código comum do driver PCI:
“A especificação PCIe prescreve que um dispositivo pode levar até 1 segundo para se recuperar da redefinição e esse mesmo atraso é prescrito ao sair do D3cold (como aquele envolve redefinição também). O dispositivo pode estender esse atraso de 1 segundo por meio das conclusões do Status de Nova Tentativa e acomodamos isso no Linux com limite de 60 segundos, apenas no caminho do código de redefinição, não no caminho do código de retomada.
No entanto, um dispositivo tem surgiu, ou seja, Intel Titan Ridge xHCI, que requer maior atraso também no caminho do código de retomada. Por esse motivo, faça o caminho do código de retomada para usar esse mesmo atraso estendido do que com o caminho de redefinição.”
Como é uma correção para o código de driver comum e não específico para o Intel Titan Ridge xHCI, é possível que ajude algum outro hardware peculiar também.
O one-liner permitindo tempo extra para os dispositivos PCIe ficarem prontos no currículo foi enviado na semana passada como parte do Alterações PCI para Linux 6.4. Esse pull PCI também possui uma solução ASPM para Chromebooks, o controlador PCIe da Qualcomm que permite a verificação assíncrona por padrão para reduzir o tempo de inicialização e várias outras alterações de hardware.