-
Notifications
You must be signed in to change notification settings - Fork 443
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
client: if GPU is missing, discard app versions and results that refer to it. #5577
Conversation
…r to it. This addresses an issue introduced when we changed GPU names from (e.g.) 'Apple M3 Pro' to 'apple_gpu'. Note: this means that if a host has in-progress jobs using a discrete GPU, and you remove that GPU, those jobs will be discarded. This is a change, which I think is good because otherwise you'd get error messages forever.
@davidpanderson, I think this is quite a dangerous change. Please see my email for more details. |
I agree with Vitalii - this change needs, at the minimum, more thought. One significant problem: with modern versions of Windows, an operating system update and reboot can take place "outside working hours" without the explicit approval of the user. The sequence of component restarts can be ill-defined: it is possible for BOINC to restart before the video drivers have loaded and are ready for use. In that case, the GPUs are logged as being missing - but it's only a transient situation. Shutting down the client and restarting it resolves the problem. Discarding the task is wasteful of project resources and the user's internet bandwidth. |
I'm making this PR a draft to discuss this change. |
Instead of this why not just allow the old Apple GPU (or whatever it was) as an alias for the new name? That would provide backward compatibility. |
… or accept any GPU name containing Apple |
It doesn't matter if a few jobs get discarded. |
client/cs_statefile.cpp
Outdated
@@ -294,9 +294,13 @@ int CLIENT_STATE::parse_state_file_aux(const char* fname) { | |||
} | |||
if (avp->missing_coproc) { | |||
msg_printf(project, MSG_INFO, | |||
"Application uses missing %s GPU", | |||
"App version uses missing GPU '%s' - discarding", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it really needed to show discarding
for all cases, not only when Apple GPU is missing?
It might be a little bit misleading for the users.
Oops! I fixed the messages in each case |
client: if GPU is missing, discard app versions and results that refer to it.
This addresses an issue introduced when we changed GPU names from (e.g.) 'Apple M3 Pro' to 'apple_gpu'.
Note: this means that if a host has in-progress jobs using a discrete GPU, and you remove that GPU, those jobs will be discarded. This is a change, which I think is good because otherwise you'd get error messages forever.