-
Notifications
You must be signed in to change notification settings - Fork 457
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
boinc_client does not notice (or does not care) that "computer is in use" #1187
Comments
Commented by ChristianB on 12 Nov 42799609 05:40 UTC To your question of a more verbose output you should look at the user wiki (http://boinc.berkeley.edu/wiki/Client_configuration) where you can find log_flags that are helpful in this case. The flags suspend_debug and task_debug may be helpful in your case. Next question is about re-enabling computation after 45 minutes. If the user is still using the computer (mouse/keyboard activity) than this clearly is a bug. If the user is just watching a movie and not doing anything the System thinks that the computer is unused. This should be identified by the log messages. What shouldn't happen is that the computer is slowed down by the science apps. The regular BOINC client sets the process priority to lowest when starting any science application and therefore this shouldn't interfere with normal operations. Please refer to what I wrote about packaged versions of BOINC. As GPU computing is allowed and a capable GPU is found you will always see three science processes started. One for each CPU and one for the GPU. |
Commented by Ageless on 13 Aug 42799721 01:44 UTC
For logs on what may or may not be fixed already, see the BOINC 7 Change Log thread on the BOINC forums. |
Commented by Bluefin Tuna on 29 Oct 42800862 09:18 UTC The boinc executable has been compiled from the 7.0.28 source directly. I will add some log flags as described in the link, thank you. In this case, I am using the computer for editing work while boinc is running. This makes the slowdown very noticeable (actually, things become unacceptably slow). I don't think I saw that behaviour before I enabled the GPU, so there may be some DMA or contention problem with the graphics driver/hardware (Btw, I am using the 'nvidia' driver instead of the Fedora 'nouveau' - unsure whether I should). Will test what happens with GPU disabled. Will also try 7.0.31, this is going to take a bit... |
Commented by Bluefin Tuna on 15 Aug 42802452 16:43 UTC
|
Commented by Bluefin Tuna on 21 Sep 42808484 17:52 UTC '''Without GPU'''
'''With GPU'''
|
Hi, I am the Fedora's BOINC-client co-maintainer.
There is a smarter way to do that: I have seen in client/hostinfo_unix.cpp a section that concerns Apple Mac OS, you could add another section concerning Linux distributions that use systemd and implement user idle time detection using logind through the GDBus API of Glib/GIO
What do you think about? |
For your info, I removed the not working implementation of idle detection, from Fedora's BOINC. This avoids SELinux alerts and setroubleshot process high CPU usage |
I did a bit experimenting with the sd-bus API to determine the idle state. I have a small test program but it always reports the system as not idle. I also found that the IdleHint is only changed when the Desktop Manager (like Gnome and KDE) reports the system as idle. So this would not work for systems that don't have a Desktop Manager. I still think it's worth to investigate more so it at least works for systems with a DM. I'll keep trying. |
I have seen changelog |
I made a dff between
So it looks like that now BOINC relies on X server to detect user idle time. I would like to ask you if you are interested in dropping the old code that runs |
Please notice that BOINC client needs permission to access X server or the XSS based idle detection won't work. See the discussion in #1453. Debian uses this file in etc/X11/Xsession.d/ .
Maybe check with @romw what distro he used when he wrote the old code and if it ever worked. |
Mmm what about headless servers? AFAIR this code was meant to work with them |
We should definitely keep the fallback for systems that don't have X. What @Germano0 wants is a way to disable the access to |
It's the If it turns out that there is not a single distro where the code works then why bother keep it. There is a similar test for pseudoterminal devices though you need to be using terminal for the test to work. |
It would be great to have two different flags to disable:
|
On Fedora we will patch BOINC 7.6.33 to remove Xorg based idle detection too, because Fedora is using Wayland by default and Fedora servers do not run graphical server as @LocutusOfBorg said. |
In addition to script above, I just learned that system76's special scheduler for responsiveness does take some actions. It might be ideal to add more functionality to it, to manage BOINC better. |
Maybe it would be better if the idle detection was handled by boinc-manager rather than boinc-client, since that runs in the user's session. Ideally then, boinc-manager should get tray support, so the user can have it running in the background. |
What is the user runs no BOINC Manager on that particular machine? |
It seems the solution would be to have BOINC client accept multiple idle detection types, some of which the client can access directly, some of which exist in userspace (ie BOINC manager) which can be communicated to the client via RPC. And then the client should pick which of these signals to trust based on some internal logic. |
What is the user runs no BOINC Manager on that particular machine?
|
@CharlieFenton I was under the impression, perhaps incorrectly, that BOINC already detects correct idle state in these machines by monitoring keyboard/mouse input on some /dev device. |
@makeasnek You very well may be correct; I don't know. As I mentioned, I am not as family with Linux and don't have a Linux box. I was just responding to this comment by @LinAGKar and this response from @AenBleidd. |
It would be easy to add an RPC that tells the client there was user input. |
And never forget the case where the user is 'using' the device, with full concentration - but not actively making any inputs. Watching films full-screen, for instance. |
Where is the broken idle check in the repo located? |
It's not broken, rather it need to be redefined in a proper way. |
I see it's defined for Xorg, but it's not working and not defined for wayland. |
Because it was created when there was no Wayland. |
My recollection is that X-based idle detection doesn't work |
That seems right, I couldn't run I think a global solution for all cases would be detecting if there is any user input through mouse/keyboard and if there is any output sound for X seconds to decide that which I don't know how. |
There's more discussion of this in #4125 - a specific problem with enumerating X-servers under systemd. |
I made a small patch that should fix the issue globally for all linux distributions for different cases (headless / xorg /wayland). I only added the method to be reviewed, I don't want to break the code by removing methods like |
For inspiration; I've created a prototype to help with headless devices. @0x0OZ I'd love your input to this. |
Reported by Bluefin Tuna on 3 Apr 42799116 09:47 UTC
On Linux (Fedora 17 KDE spin), boinc_client (7.0.28 x86_64-pc-linux-gnu) is running as user "boinc", a user not used for anything else.
Settings as per "Computing Preferences (apply to all BOINC projects in which you participate)" are for Processor Usage:
The machine has 2 non-threaded CPUs. As per lscpu:
It also has a CUDA-capable graphics card, which is being used for BOINC projects.
Scenario:
(the log shows nothing though, I think it should ... is there a "verbose"
option?)
ps then shows only the "boinc_client" running, not the tasks themselves
Migrated-From: http://boinc.berkeley.edu/trac/ticket/1215
The text was updated successfully, but these errors were encountered: