Skip to content

Commit

Permalink
[Arista] Increase switch PCIe timeout for 7060-cx32s (#9248)
Browse files Browse the repository at this point in the history
Co-authored-by: Zhi Yuan (Carl) Zhao <[email protected]>
Why I did it
Arista 7060 platform has a rare and unreproduceable PCIe timeout that could possibly be solved with increasing the switch PCIe timeout value. To do this we'll call a script for this platform to increase the PCIe timeout on boot-up.

No issues would be expected from the setpci command. From the PCIe spec:

"Software is permitted to change the value in this field at any
time. For Requests already pending when the Completion
Timeout Value is changed, hardware is permitted to use either
the new or the old value for the outstanding Requests, and is
permitted to base the start time for each Request either on when
this value was changed or on when each request was issued. "

How I did it
Add "platform-init" support in swss docker similar to how "hwsku-init" is called, only this would be for any device belonging to a platform. Then the script would reside in device data folder.

Additionally, add pciutils dependency to docker-orchagent so it can run the setpci commands.

How to verify it
On bootup of an Arista 7060, can execute:
lspci -vv -s 01:00.0 | grep -i "devctl2"
In order to check that the timeout has changed.
  • Loading branch information
zzhiyuan authored Dec 17, 2021
1 parent 36673c1 commit a6d0a27
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 0 deletions.
3 changes: 3 additions & 0 deletions device/arista/x86_64-arista_7060_cx32s/platform-init
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Increase PCIe timeout value to 210ms
setpci -s01:00.0 CAP_EXP+0x28.B=6
setpci -s01:00.1 CAP_EXP+0x28.B=6
1 change: 1 addition & 0 deletions dockers/docker-orchagent/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ RUN apt-get update && \
bridge-utils \
conntrack \
ndppd \
pciutils \
# Needed for installing netifaces Python package
build-essential \
python3-dev
Expand Down
5 changes: 5 additions & 0 deletions dockers/docker-orchagent/docker-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ CFGGEN_PARAMS=" \
"
VLAN=$(sonic-cfggen $CFGGEN_PARAMS)

# Executed platform specific initialization tasks.
if [ -x /usr/share/sonic/platform/platform-init ]; then
/usr/share/sonic/platform/platform-init
fi

# Executed HWSKU specific initialization tasks.
if [ -x /usr/share/sonic/hwsku/hwsku-init ]; then
/usr/share/sonic/hwsku/hwsku-init
Expand Down

0 comments on commit a6d0a27

Please sign in to comment.