boinc icon indicating copy to clipboard operation
boinc copied to clipboard

Linux systemd: delay BOINC startup until after video drivers have loaded

Open RichardHaselgrove opened this issue 6 years ago • 8 comments

Describe the problem If the BOINC client starts before drivers are ready, GPU detection fails and any GPU is unusable throughout the session.

See, for example, https://boinc.berkeley.edu/forum_thread.php?id=12946

Describe the solution you'd like Re-position BOINC client startup in repository scripts

RichardHaselgrove avatar May 16 '19 12:05 RichardHaselgrove

Hi Richard, what does it mean

Re-position BOINC client startup in repository scripts

? Thank you

Germano0 avatar May 19 '19 18:05 Germano0

I'm not a Linux specialist, so I wasn't using technical Linux terminology.

But I assume any startup script follows a linear time sequence - step, after step, after step.

The BOINC step needs to be positioned after the video driver step, or so it seems.

RichardHaselgrove avatar May 19 '19 19:05 RichardHaselgrove

In systemd language, boinc wants gpu driver.

lfield avatar May 19 '19 19:05 lfield

Except, of course, on a client host running headless and without GPU coprocessors.

RichardHaselgrove avatar May 20 '19 07:05 RichardHaselgrove

In discussion "[systemd-devel] Start service after video drivers have been loaded" Lennart Poettering said

I am not sure what "BOINC" is, but if it needs to wait for hardware it should use libudev or so and wait for it to show up. Everything else is messy. [Continues...]

For more interesting infos, read the whole systemd-devel thread

Germano0 avatar May 21 '19 15:05 Germano0

The is another case of BOINC checking something at startup and assuming it will never change. Does waiting work? What does libudev do when you wait on something that doesn't exist? Shouldn't BOINC repeatedly check and verify the presence and usability of GPUs, rather than just doing it once?

On Tue, May 21, 2019 at 8:50 AM Germano Massullo [email protected] wrote:

In discussion "[systemd-devel] Start service after video drivers have been loaded" https://lists.freedesktop.org/archives/systemd-devel/2019-May/042707.html Lennart Poettering said

I am not sure what "BOINC" is, but if it needs to wait for hardware it should use libudev or so and wait for it to show up. Everything else is messy. [Continues...]

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/BOINC/boinc/issues/3150?email_source=notifications&email_token=ACS5ZMQBGT7NFC5CXYKK3SDPWQK3FA5CNFSM4HNMJIR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4LENA#issuecomment-494449204, or mute the thread https://github.com/notifications/unsubscribe-auth/ACS5ZMV4466JEPOENBDTDA3PWQK3FANCNFSM4HNMJIRQ .

-- Eric Korpela [email protected] AST:7731^29u18e3

SETIguy avatar May 21 '19 18:05 SETIguy

@SETIguy https://en.wikipedia.org/wiki/Udev

Germano0 avatar May 22 '19 08:05 Germano0

I performed a full system update and reboot of my Linux Mint systems this weekend. That updated my BOINC installation to v7.16.6

On restart, my GPUs were not fully detected by BOINC. On one restart, the CUDA driver was missing but the OpenCL driver was detected: on another restart, no usable GPUs were found.

I was able to resume GPU computation by stopping the boinc-client service and restarting it - something available to me as an owner-driver. That resolution would not be available to a corporate user.

RichardHaselgrove avatar Jun 02 '20 21:06 RichardHaselgrove