Estou fazendo alguns testes no meu servidor e quero diminuir a largura do meu dispositivo PCIe (ou sua ponte PCIe).
Caso seja relevante, descobri como diminuir minha velocidade com base na especificação PCI com o setpci do Linux e alterando a "Target Link Speed" do Registro do Link Control 2. Isso me permite diminuir de 8GT / s para 5GT / s ou mesmo de 2,5GT / s.
Aqui está um exemplo disso:
Server:~ # setpci -s 83:04.0 98.w=1:ff
Server:~ # setpci -s 83:04.0 78.w=20:20
Server:~ # ./check_speed_width
84:00.0 has reported reduced PCIe speed: 2.5GT/s instead of 8GT/s
bridge device 83:04.0 has reported reduced PCIe speed: 2.5GT/s instead of 8GT/s
Server:~ # setpci -s 83:04.0 98.w=2:ff
Server:~ # setpci -s 83:04.0 78.w=20:20
Server:~ # ./check_speed_width
84:00.0 has reported reduced PCIe speed: 5GT/s instead of 8GT/s
bridge device 83:04.0 has reported reduced PCIe speed: 5GT/s instead of 8GT/s
Algumas das minhas ideias até agora para diminuir a largura são:
Talvez eu tenha perdido um registro gravável? O Target Link Speed é um registrador com recursos de leitura e gravação. Quando se trata dos registradores Width, vejo apenas registros de somente leitura listados na especificação PCI.
Talvez haja uma maneira de desativar algumas das faixas separadas da especificação PCIe?
Eu sei que as coisas podem treinar / inicializar para diminuir larguras se estiver com problemas. Então, talvez eu possa injetar erros em uma pista em particular e fazer com que ela solte a pista?
Tags lspci linux pci-express