Citando a documentação do kernel linux para parâmetros de inicialização:
pcie_bus_perf : Defina o MPS do dispositivo para o maior MPS permitido com base em seu barramento pai. Defina também MRRS (Max Read Request Size) para o maior valor suportado (não maior do que o MPS que o dispositivo ou barramento pode suportar) para melhor desempenho.
Não consigo entender por que o MRRS não deve ser maior que o MPS "para melhor desempenho".
Quero dizer, se um dispositivo pode fazer MPS=X e MRRS=4.X, as solicitações de leitura podem, em números, ser menos, portanto, o barramento está menos ocupado em comparação com uma situação de MRRS=X, mesmo que a satisfação da solicitação precise ser dividida em 4.
A divisão induziria alguma sobrecarga significativa em algum lugar?
BTW, eu conheço o conceito de "compartilhamento justo" e entendo o impacto de um grande MRRS nesse compartilhamento, mas nunca entendi o compartilhamento justo como sinônimo de melhor desempenho .
Espero que você tenha encontrado a resposta, mas encontrei algumas informações para isso que podem ajudar.
Esta discussão do kernel-mailing-list e este artigo estão mencionando esse problema e a explicação é que, ao definir o MRRS, você garante que os dispositivos não estejam enviando solicitações de leitura onde o tamanho do pacote de conclusão (a resposta) é maior que o MPS do dispositivo que envia a solicitação de leitura. Se você garantir isso, cada nó poderá ter o MPS do nó acima como seu próprio MPS (ou o mais alto suportado pelo dispositivo se for menor que o MPS do nó acima). Portanto, um nó com um MPS muito baixo não pode desacelerar todo o barramento.
Este esquema da discussão me ajudou muito a entender o problema:
normal:
desempenho:
Onde cada nó é capaz de ter um MPS superior a 128 bytes, exceto o EP1.