Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vgpu: Improve reliability of enabling sriov #37

Merged
merged 6 commits into from
Mar 12, 2025

Conversation

jovial
Copy link
Collaborator

@jovial jovial commented Jan 10, 2025

There is a race condition on boot:

[stack@gpu2 ~]$ sudo journalctl -u nvidia-sriov-0000:17:00.0.service
Jan 09 12:13:11 gpu2 systemd[1]: Starting Enable SR-IOV on Nvidia card (0000:17:00.0)...
Jan 09 12:13:16 gpu2 sriov-manage[3802]: Enabling VFs on 0000:17:00.0
Jan 09 12:13:17 gpu2 sriov-manage[3837]: awk: (FILENAME=- FNR=1) warning: error writing standard output: File exists
Jan 09 12:13:17 gpu2 sriov-manage[3899]: awk: (FILENAME=- FNR=1) warning: error writing standard output: No such device
Jan 09 12:13:17 gpu2 systemd[1]: nvidia-sriov-0000:17:00.0.service: Main process exited, code=exited, status=1/FAILURE
Jan 09 12:13:17 gpu2 systemd[1]: nvidia-sriov-0000:17:00.0.service: Failed with result 'exit-code'.
Jan 09 12:13:17 gpu2 systemd[1]: Failed to start Enable SR-IOV on Nvidia card (0000:17:00.0).

This has been observed on Rocky 9.4 with NVIDIA-AI-Enterprise-Linux-KVM-550.127.06-550.127.05-553.24.

We can work around this by retrying. The sriov-manage script can leave the driver unbound, so we first ensure that the NVIDIA driver is bound to the card.

There is a race condition on boot:

```
[stack@gpu2 ~]$ sudo journalctl -u nvidia-sriov-0000:17:00.0.service
Jan 09 12:13:11 gpu2 systemd[1]: Starting Enable SR-IOV on Nvidia card (0000:17:00.0)...
Jan 09 12:13:16 gpu2 sriov-manage[3802]: Enabling VFs on 0000:17:00.0
Jan 09 12:13:17 gpu2 sriov-manage[3837]: awk: (FILENAME=- FNR=1) warning: error writing standard output: File exists
Jan 09 12:13:17 gpu2 sriov-manage[3899]: awk: (FILENAME=- FNR=1) warning: error writing standard output: No such device
Jan 09 12:13:17 gpu2 systemd[1]: nvidia-sriov-0000:17:00.0.service: Main process exited, code=exited, status=1/FAILURE
Jan 09 12:13:17 gpu2 systemd[1]: nvidia-sriov-0000:17:00.0.service: Failed with result 'exit-code'.
Jan 09 12:13:17 gpu2 systemd[1]: Failed to start Enable SR-IOV on Nvidia card (0000:17:00.0).
```

This has been observed on Rocky 9.4 with NVIDIA-AI-Enterprise-Linux-KVM-550.127.06-550.127.05-553.24.

We can work around this by retrying. The sriov-manage script can leave the driver unbound, so we first ensure that the NVIDIA driver is bound to the card.
@jovial jovial requested a review from a team as a code owner January 10, 2025 13:16
@jovial jovial changed the title Make enabling sriov more reliable vgpu: Improve reliability of enabling sriov Jan 10, 2025
Copy link

@m-bull m-bull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems sensible, just missing a bit of information to understand the reason for one part of this change.

@jovial jovial requested a review from m-bull March 12, 2025 17:17
Copy link

@m-bull m-bull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jovial jovial merged commit 67e89fe into main Mar 12, 2025
4 checks passed
@jovial jovial deleted the bugfix/failure-to-start-on-boot branch March 12, 2025 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants