Posts by Igli

1) Message boards : Questions and problems : BOINC does not respect suspend settings in computing preferences with low priority processes (Message 97135)
Posted 27 Mar 2020 by Igli
Post:
If consensus is that the behaviour is intended then i'm ok with that, just would be nice to have possibility to change it in BOINC (or direcly in cc_config.xml without UI). Most my computers are dedicated enough or virtual that have their own VM prioritization settings that those process suspend edge cases do not appear. Problem is mostly in main computer that has wide array of workloads where wanted to try if background CPU cycles could be used productively and completely transparently without affecting all other workloads. That also means minimizing DPC latency spikes, cache invalidations, thermals and noise in check.
2) Message boards : Questions and problems : BOINC does not respect suspend settings in computing preferences with low priority processes (Message 97127)
Posted 27 Mar 2020 by Igli
Post:
What I call buggy, or should call misleading? is that the setting checkbox states one thing but actual behaviour is different. Regular users should not need to know about prirorities at all and frequently user has no control over this in third party programs, just want to keep CPU usage in x range. Thing is it is not clear that "non-BOINC usage" is selective to higher than low priority processes.
I have no problem if BOINC runs even normal or high priority (even tho the work processses run low) but currently cannot control the suspension very well.

One real world example would be 7-zip. BOINC settings are: use at most 50% CPU, suspend 25%. When compressing large amount of data at backround then BOINC does not suspend, CPU usage gets near 100% and CPU starts getting hot and noisy.
3) Message boards : Questions and problems : BOINC does not respect suspend settings in computing preferences with low priority processes (Message 97119)
Posted 27 Mar 2020 by Igli
Post:
Kind of get the logic but cannot agree. The problem is the setting "Suspend when non-BOINC CPU usage is above" is then untrue, it should be something like "Suspend when non-BOINC CPU usage is above but not including low priority processes".
Today's PC-s run a lot of low priority processes, even popular programs like Chorme, Firefox, Slack.. have tens of low priority processes, not even talking about backround rendering apps etc where the real problem kicks in. In my case I would just like to run BOINC when CPU total load is less than x%, handling the priorities with third party programs is an option but very tedious.

If there is underlying need for most people to override other low priority processes then this could be fixed with additional settings checkbox: "Include(or Exclude) low priority non-BOINC processes".
4) Message boards : Questions and problems : BOINC does not respect suspend settings in computing preferences with low priority processes (Message 97116)
Posted 27 Mar 2020 by Igli
Post:
Fiddling with client priority does not seem to change this behaviour but I think I found the bug from github source https://github.com/BOINC/boinc/blob/master/lib/procinfo.cpp:

// get resource usage of non-BOINC apps
//
void procinfo_non_boinc(PROCINFO& procinfo, PROC_MAP& pm) {
procinfo.clear();
PROC_MAP::iterator i;
for (i=pm.begin(); i!=pm.end(); ++i) {
PROCINFO& p = i->second;
#ifdef _WIN32
if (p.id == 0) continue; // idle process
#endif
if (p.is_boinc_app) continue;
if (p.is_low_priority) continue;

This last if statement looks to me that it ignores all low priority processes in counting the total CPU usage, don't know if there are some bigger issues behind this code or am I not understangind this but at first glance this seems like a bug (or purposely evil choice :D).


Edit:
The "is_low_priority" has its value set in https://github.com/BOINC/boinc/blob/master/lib/procinfo_win.cpp
p.is_low_priority = (pProcesses->BasePriority <= 4);
5) Message boards : Questions and problems : BOINC does not respect suspend settings in computing preferences with low priority processes (Message 97105)
Posted 27 Mar 2020 by Igli
Post:
In Windows 10, BOINC 7.16.5 (and 7.14.2), Rosetta project. Setting "Suspend when non-BOINC CPU usage is above" does not have any effect when the non-BOINC processes are in Low priority mode.
As computers run a lot of processes and some of them in low priority mode, the setting in its currrent state prohibites the use of BOINC in my case. Does anyone else have this bug? Or is there a workaround somewhere in BOINC settings without having to set up third party process managment programs?

Test case: let BOINC run its project with this Suspend setting at 25%. Start up some CPU intensive program, for example Prime95 and run a Torture test with at least half the cores. In about 20 seconds BOINC suspends the workload as expected. Now change Prime95 process priority to "Low" in Task Manager and then BOINC resumes the work as it should not do.




Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.