6.2.3. PCIe Max Payload and Max Read Request Size
On some platforms, reducing PCIe Max Payload Size (MPS) and Max Read Request Size (MRRS) may improve performance. Currently, the only recommended combination to attempt other than platform defaults is 256/256.
To check the current value:
sudo lspci -vvv -d 434e: | grep MaxRead MaxPayload 512 bytes, MaxReadReq 512 bytes
In this example, both the MaxPayload and MaxReadReq are set to 512.
To adjust these settings, you must first determine what the setting is in the PCIe configuration space. To determine the PCIe slot of the SuperNIC(s):
lspci | grep Cornelis | awk '{print $1}'For each slot, determine the current value:
setpci -s <slot> 78.w 2957
The MPS digit is the second from the right above (5 → 512 Bytes) and the MRRS digit is the fourth from the right above (2 → 512 Bytes). The mapping between these digits and the size (in Bytes) are according to the following tables:
Value | MaxPayload Size |
|---|---|
1 | 128 |
3 | 256 |
5 | 512 |
7 | 1024 |
9 | 2048 |
B | 4096 |
Value | MaxReadReq Size |
|---|---|
0 | 128 |
1 | 256 |
2 | 512 |
3 | 1024 |
4 | 2048 |
5 | 4096 |
Therefore, to set PCIe MPS and MRRS to 256/256, issue the following command:
setpci -s <slot> 78.w=1937
Caution
The setting will vary based on the platform used, and issuing the incorrect commands may result in platform instability and require a cold power cycle to recover.