Skip to content

fby4: wf: Avoid CXL DIMM polling during Set EID and DIMM init#2725

Open
Wiwynn-Evan wants to merge 1 commit into
facebook:mainfrom
Wiwynn:Mandy/yv4/JIRA-2265_mitigate-cxl-crash-workaround
Open

fby4: wf: Avoid CXL DIMM polling during Set EID and DIMM init#2725
Wiwynn-Evan wants to merge 1 commit into
facebook:mainfrom
Wiwynn:Mandy/yv4/JIRA-2265_mitigate-cxl-crash-workaround

Conversation

@Wiwynn-Evan
Copy link
Copy Markdown
Contributor

[Issue Description]

  • Related to YV4T1M-2265
  • BMC recorded "CXL DEASSERTED" SEL after conducting SD BIC update with CXL 3.2.2.

[Root Cause]

WF may perform CXL Set EID, DIMM present initialization, and DIMM temperature sensor polling at overlapping timing. During these timing windows, CXL may not receive the expected response from WF BIC. Based on the CXL team's previous explanation, when WF BIC does not respond as expected, the Vistara I2C Master may hang indefinitely and eventually trigger the watchdog, resulting in a CXL crash. Since the CXL team believes that improving CXL's I2C timeout handling may impact the underlying I2C driver code, this scenario has been treated as a CXL limitation.

[Solution]

  • This change is mainly a workaround for the CXL limitation previously raised by the CXL team.
  • This change can only reduce the failure rate, but cannot fully resolve the CXL limitation.
  • Added a per-CXL flag while WF is performing Set EID to CXL.
  • Adjusted the execution timing between DIMM presence checking and sensor polling.
  • Avoid performing DIMM temperature polling to CXL while the corresponding CXL is under Set EID or DIMM present initialization.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label May 26, 2026
@meta-codesync
Copy link
Copy Markdown
Contributor

meta-codesync Bot commented May 26, 2026

@facebook-github-bot has imported this pull request. If you are a Meta employee, you can view this in D106388120. (Because this pull request was imported automatically, there will not be any future comments.)

@MandyMCHung MandyMCHung force-pushed the Mandy/yv4/JIRA-2265_mitigate-cxl-crash-workaround branch from 5f4fe26 to b27c94c Compare May 27, 2026 06:17
@facebook-github-tools
Copy link
Copy Markdown

@Wiwynn-Evan has updated the pull request. You must reimport the pull request before landing.

@MandyMCHung MandyMCHung force-pushed the Mandy/yv4/JIRA-2265_mitigate-cxl-crash-workaround branch from b27c94c to ff8989e Compare May 27, 2026 07:40
@facebook-github-tools
Copy link
Copy Markdown

@Wiwynn-Evan has updated the pull request. You must reimport the pull request before landing.

Summary:
 # [Issue Description]
- YV4T1M-2265
- BMC recorded "CXL DEASSERTED" SEL after conducting SD BIC update with CXL 3.2.2.

 # [Root Cause]
WF may perform CXL Set EID, DIMM present initialization, and DIMM temperature sensor polling at overlapping timing. During these timing windows, CXL may not receive the expected response from WF BIC. Based on the CXL team's previous explanation, when WF BIC does not respond as expected, the Vistara I2C Master may hang indefinitely and eventually trigger the watchdog, resulting in a CXL crash. Since the CXL team believes that improving CXL's I2C timeout handling may impact the underlying I2C driver code, this scenario has been treated as a CXL limitation.

 # [Solution]
- This change is mainly a workaround for the CXL limitation previously raised by the CXL team.
- This change can only reduce the failure rate, but cannot fully resolve the CXL limitation.
- Added a per-CXL flag while WF is performing Set EID to CXL.
- Adjusted the execution timing between DIMM presence checking and sensor polling.
- Avoid performing DIMM temperature polling to CXL while the corresponding CXL is under Set EID or DIMM present initialization.
- Addressed the reviewdog suggestion.
@MandyMCHung MandyMCHung force-pushed the Mandy/yv4/JIRA-2265_mitigate-cxl-crash-workaround branch from ff8989e to d683e31 Compare May 27, 2026 07:42
@facebook-github-tools
Copy link
Copy Markdown

@Wiwynn-Evan has updated the pull request. You must reimport the pull request before landing.

@MandyMCHung
Copy link
Copy Markdown
Contributor

image This should be a false positive from the static analyzer.

plat_get_dimm_cache() is a weak platform hook in common vistara.c. Although the common weak default implementation does not return a negative value, this function is overridden by the yv4-wf platform implementation. In yv4-wf, the platform implementation may return a negative value when the DIMM temperature cache is invalid or the cached read fails.

Therefore, f_val < 0 is not always false in the actual yv4-wf build. It is used to detect an invalid cached DIMM temperature and return SENSOR_FAIL_TO_ACCESS.

To avoid changing the existing platform cache behavior only for this static analysis warning, I prefer to keep the current logic unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants