Opened 12 years ago
Closed 12 years ago
#1300 closed Defect (fixed)
CPU number in hostinfo wrong
| Reported by: | Joachim | Owned by: | Joachim | 
|---|---|---|---|
| Priority: | Critical | Milestone: | Undetermined | 
| Component: | Manager - Android | Version: | 7.0.64 | 
| Keywords: | Cc: | 
Description
Alexander Kerl: "For some reason I stopped boinc and restarted a few minutes later. As a result it was crunching on 3 cpu's only. Again exiting and restarting reduced this to 2 cpu's. The rightmost position of the cpu - slider shows 2 now also this device has 4 cpu's. 5 wu's are currently available for crunching, only 2 are active." using ODRIOD device.
Change History (10)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
device is running CyanogenMod? (alternative Android distribution). WakeLock? (PARTIAL_WAKE_LOCK) seems not to wake up all CPU cores.
comment:4 Changed 12 years ago by
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 
comment:5 Changed 12 years ago by
| Resolution: | fixed | 
|---|---|
| Status: | closed → reopened | 
| Summary: | CPU number in hostinfo wrong on ODRIOD device → CPU number in hostinfo wrong | 
reopened, since new report on email list. appeared on Galaxy Node 2.
comment:6 Changed 12 years ago by
get_host_info gets called multiple times, not just during start up. This is probably why acquiring a full wakelock does not solve this behavior.
Attempt to fix it in client code: change to p_ncpus = sysconf(_SC_NPROCESSORS_CONF).
This was previously buggy, but is supposed to be fixed since NDKr7c. See[1].
[1] https://code.google.com/p/android/issues/detail?id=26490
comment:7 Changed 12 years ago by
| Priority: | Minor → Critical | 
|---|
possible fix in revision bcaf537228a448388acaf75f95288b6983fa3f47
comment:8 Changed 12 years ago by
parsing /sys/devices/system/cpu as well as work around for issue with sysconf.
comment:10 Changed 12 years ago by
| Resolution: | → fixed | 
|---|---|
| Status: | reopened → closed | 


commited a possible bugfix: CPU lock get acquired before clientSetup() and stays active until first "client status change" broadcast to allow for proper CPU detection. waiting for test results from volunteers...