Andrew Gaul
2dd04d5fb5
Update version to 2.3.0
...
Fixes #213 . References #247 .
2022-02-26 14:20:38 +09:00
Andrew Gaul
623f44d0a5
Reformat source code with clang-tidy
...
Run with:
clang-format -i src/*
Closes #233 .
2021-04-12 22:06:18 +09:00
Andrew Gaul
814af65b36
Log maximum MHz of all CPUs
...
Useful for monitoring intel_pstate effects.
2021-02-28 20:53:34 +09:00
localscope
52d897374d
Moved tests to separate binary (mbpfan-tests)
...
Removed instructions for using -t flag
Moved check_requirements function from main to mbpfan
Moved daemonize and verbose globals from main to daemon
Moved strings for program information from main to global.h
Moved strings for coretemp and applesmc paths from main to mbpfan.c
Updated Makefile
Turned on verboseness for testing
2020-05-19 23:06:27 +09:00
Andrew Gaul
10d6febeb4
Use smaller max_fan_speed in tests
...
This should allow iMacs to complete tests successfully. Fixes #212 .
Fixes #215 .
2020-04-30 19:27:04 +09:00
Andrew Gaul
49f544fd8d
Only call va_start when needed
2019-11-24 16:09:31 +09:00
Andrew Gaul
7ac2eb01fc
Do not resuse va_list without reinitialization
...
Fixes #206 .
2019-11-24 13:52:38 +09:00
Andrew Gaul
0a9f03e615
Annotate mbp_log as having printf parameters
2019-11-24 13:52:38 +09:00
Andrew Gaul
0ae57217f7
Emit version number on startup
...
Also configure syslog before logging. References #163 .
2019-10-30 21:04:52 -07:00
Andrew Gaul
1243d7df6c
Update unit tests for fan speed auto-detection
...
Follows on to 716d9d877a08e0bce0b9a5cf7222ff3a4829e66.
References #190 .
2019-10-30 20:59:08 -07:00
Andrew Gaul
28bc0a1bea
Plug memory leaks during unit tests
...
Found via Valgrind.
2019-10-30 20:58:19 -07:00
Andrew Gaul
110ccb5814
Address Valgrind warnings during unit tests
2019-10-30 16:04:33 -07:00
Andrew Gaul
abda2b8901
Add logging/printing helper
...
This eliminates duplicate code, fixes some log levels, and removes
unnecessary trailing newlines. Fixes #202 .
2019-10-30 15:45:59 -07:00
Andrew Gaul
d818571a78
Fix clang-tidy issues
2019-10-28 23:35:58 -07:00
Andrew Gaul
2ed1671aa7
Prefer simpler strtod over sscanf
2019-10-28 23:33:43 -07:00
Andrew Gaul
2c743b08e9
Calculate temperature using maximum
...
Previously mbpfan used the mean temperature of all sensors which could
throttle processors by too slowly spinning the fans. Fixes #199 .
2019-10-28 23:25:41 -07:00
Andrew Gaul
a28dd3e208
Recalibrate after unexpected polling interval
...
During suspend fans may reset from manual to automatic control.
Fixes #148 .
2019-10-28 23:21:38 -07:00
Andrew Gaul
4722e79e72
Increase maximum sensors
...
2011 iMac has at least 50. References #148 .
2019-10-24 15:44:15 -07:00
Andrew Gaul
98a349724e
Make logging consistent
2019-10-16 10:03:12 -07:00
Andrew Gaul
64f6ea509a
Log fan label and speed next to each other
2019-10-16 09:57:19 -07:00
Andrew Gaul
4f3cdfca3b
Label fans during logging
...
This is more useful on desktops than laptops.
2019-10-07 20:02:43 -07:00
Andrew Gaul
559a2f39f1
Prefer smprintf instead of unsafe sprintf
...
Previously checking fans >= 10 overflowed the buffer and corrupted the
heap. Found via AddressSanitizer. Regression from
968133eb10
.
2019-10-07 19:54:44 -07:00
Andrew Gaul
c77f23aa1b
Change minimum and maximum fan speeds
...
MacBook Airs allow 1200-6500 and Mac Pro allow 500-5200. Allow mbpfan
to configure smaller and larger values. Also fix typo in constant
names.
2019-01-24 10:40:19 -08:00
Andrew Gaul
dd2c305593
Change default polling_interval to 1
...
This allows mbpfan to react more quickly to changing workloads and
avoid CPU throttling. Also change unit test expectations.
Fixes #159 .
2019-01-18 11:34:07 -08:00
mikaelbjoern
50f3a67ab4
Add support for many processors (not just cores)
...
Add an outer loop in mbpfan.c:retrieve_sensors to loop over all coretemp
directories. Also increase hard-coded limits from 10 to 12 or 16 since
the temp endpoints are sometimes indexed that high.
For example, this is required for supporting a Mac Pro with two processors
of 16 cores, requiring
/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp{1..12}
/sys/devices/platform/coretemp.1/hwmon/hwmon1/temp{1..12}
Fixes #152 .
2019-01-18 11:26:11 -08:00
Andrew Gaul
c8f33ec055
Plug little leak
...
Found via Valgrind.
2019-01-15 15:44:54 -08:00
Ati Sharma
968133eb10
Add support for many processors (not just cores)
...
* Add support for many processors (not just cores)
Add an outer loop in mbpfan.c:retrieve_sensors to loop over all coretemp
directories. Also increase hard-coded limits from 10 to 12 or 16 since
the temp endpoints are sometimes indexed that high.
For example, this is required for supporting a Mac Pro with two processors
of 16 cores, requiring
/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp{1..12}
/sys/devices/platform/coretemp.1/hwmon/hwmon1/temp{1..12}
This solves issue #152 "Mac pro with two processors".
2018-09-20 01:53:21 +05:30
Andrew Gaul
1716d9d877
Update unit tests for fan speed auto-detection
...
Fixes #164 . References #114 .
2018-09-13 10:29:48 -07:00
Andrew Gaul
b0cdfd4c27
Propagate exit code from unit tests
...
Also flag errors more clearly. References #164 .
2018-09-13 10:06:52 -07:00
Andrew Gaul
810adc671b
Detect minimum and maximum fan speeds
...
Default to previous values if detection fails. Configuration can
still override these values. Fixes #114 .
2018-08-29 00:07:34 +05:30
Andrew Gaul
4a3ea930ad
Correctly detect legacy or modern sensors
...
Tighten check by looking for an actual sensor instead of a directory.
Fixes #162 . Fixes regression from
885a084f5c
.
2018-08-23 19:39:02 -07:00
Andrew Gaul
e58a67f630
Avoid setting speed when already set to that speed
2018-08-21 04:08:47 +05:30
Andrew Gaul
ac099c8bd2
Report error when failing to set fan speed
...
References #155 .
2018-08-20 15:28:34 -07:00
Andrew Gaul
8c89a671e8
Address GCC 7 warnings
2018-08-20 15:19:26 -07:00
Andrew Gaul
885a084f5c
Correctly test sensor path for Linux prior to 3.15
...
Previously the fopen write mode caused the call to spuriously report
newer sensors. Now we check the newer sensors path explicitly. Also
plug file descriptor leak and more carefully check return values.
2018-08-21 03:41:42 +05:30
Andrew Gaul
ca52e9cefd
Call nanosleep instead of sleep in polling loop
...
This avoids unnecessary rt_sigprocmask and rt_sigaction system calls.
2018-08-21 03:39:22 +05:30
Andrew Gaul
6aba92d649
Configure timer slack for 1 second
...
This allows the kernel scheduler to coalesce wakeups, improving
battery life. Linux defaults to 50 ms slack. Reference:
http://lwn.net/Articles/369549/
2018-08-21 03:37:52 +05:30
Andrew Gaul
e8850f682c
Plug little leak from reused variable
2018-08-21 03:36:14 +05:30
Andrew Gaul
ce3218407f
Check root privileges before running tests
...
References #155 .
2018-08-21 03:35:27 +05:30
Daniel Graziotin
fcff5342d9
Merge branch 'warnings' of git://github.com/gaul/mbpfan into gaul-warnings
2017-10-04 08:38:42 +00:00
Daniel Graziotin
8130daa976
Merge branch 'strings' of git://github.com/gaul/mbpfan into gaul-strings
2017-10-04 08:31:12 +00:00
Daniel Graziotin
1da1639b3f
Merge branch 'sigquit' of git://github.com/gaul/mbpfan into gaul-sigquit
2017-10-04 08:24:54 +00:00
Andrew Gaul
650471a273
Clean up string creation via smprintf and strdup
...
This fixes some bugs when using the incorrect strlen in strncat.
2017-08-16 18:27:57 -07:00
Andrew Gaul
8c2e11caae
Enable -Wall and -Wextra
2017-07-21 18:21:15 -07:00
Andrew Gaul
cc970129fa
Catch SIGQUIT
...
This resets automatic fan control.
2017-07-20 03:52:33 -07:00
Andrew Gaul
e95e19a3ea
Avoid freeing static strings
2017-07-20 03:50:53 -07:00
Daniel Graziotin
b2cd98448f
Merge branch 'reopen-fan' of git://github.com/andrewgaul/mbpfan into andrewgaul-reopen-fan
2017-07-20 12:06:28 +02:00
Daniel Graziotin
6c8dbec53f
Merge branch 'sigstop' of git://github.com/andrewgaul/mbpfan into andrewgaul-sigstop
2017-07-20 09:34:59 +00:00
Daniel Graziotin
f3afd55720
Merge pull request #124 from andrewgaul/kernel-version
...
Correct kernel version message to >= 3.15.0
2017-07-20 09:29:33 +00:00
Andrew Gaul
399aad782a
Do not repeatedly reopen fan and sensor devices
...
This avoids unnecessary system calls and saves battery.
2017-07-14 21:56:05 -07:00