Skip to main content

Cornelis Technical Documentation

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:

Table 17. MaxPayload Value vs. Size

Value

MaxPayload Size

1

128

3

256

5

512

7

1024

9

2048

B

4096



Table 18. MaxReadReq Value vs. Size

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.