BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
1.99k stars 444 forks source link

BOINC Monitoring daemon #1474

Open romw opened 8 years ago

romw commented 8 years ago

We need to create a new daemon that can be run with an elevated account. The purpose of this daemon is to collect various pieces of information not available to the BOINC client when run from an unprivileged account.

Basically this daemon would start and periodically check for updated information like CPU Temperatures and whether or not virtualization extensions have been enabled in the BIOS or not. All the information should be exposed to the BOINC client via memory mapped files.

Basically we will need access to the rdmsr CPU instruction which is generally restricted to executing in ring 0.

Windows References: http://www.securiteam.com/windowsntfocus/5TP0B2KC0K.html (Use of ZwSystemDebugControl with DebugSysReadMsr)

Generic References:

Determine if the virtualization instruction set is enabled in the BIOS: http://bazaar.launchpad.net/~cpu-checker-dev/cpu-checker/trunk/view/head:/kvm-ok

CharlieFenton commented 8 years ago

I added code to the client quite a long time ago which measures the temperature on Macs, but it has never actually been used, so it has not been tested recently. It is get_max_cpu_temperature() in hostinfo_unix.cpp lines 1004 - 1223 and does not require elevated privileges on the Mac.

Cheers, --Charlie

On Jan 22, 2016, at 10:20 AM, Rom Walton notifications@github.com wrote:

We need to create a new daemon that can be run with an elevated account. The purpose of this daemon is to collect various pieces of information not available to the BOINC client when run from an unprivileged account.

Basically this daemon would start and periodically check for updated information like CPU Temperatures and whether or not virtualization extensions have been enabled in the BIOS or not. All the information should be exposed to the BOINC client via memory mapped files.

Basically we will need access to the rdmsr CPU instruction which is generally restricted to executing in ring 0.

Windows References: http://www.securiteam.com/windowsntfocus/5TP0B2KC0K.html (Use of ZwSystemDebugControl with DebugSysReadMsr)

Generic References:

Determine if the virtualization instruction set is enabled in the BIOS: http://bazaar.launchpad.net/~cpu-checker-dev/cpu-checker/trunk/view/head:/kvm-ok

� Reply to this email directly or view it on GitHub.