-
Notifications
You must be signed in to change notification settings - Fork 2
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
Can't stop powerd++ on recent CURRENT #3
Comments
|
Does powerd++ perform its job while running? Does it react to kill -9? |
It seems, it does not.
Yes, it dies. |
|
BTW, powerd++ started to hang on stopping about a week ago. I update system every 2-3 days. |
|
powerd++ built from HEAD does not work either. The only difference in |
|
What happens if you run it in foreground, in verbose mode? powerd++ -vf |
|
FYI, I've updated local port to 0.2.4. After disconnecting power line still shows |
|
Wow, this is so totally wrong! Maybe a bug in an libc++ update (std::max, or std::min must be broken). Can you try to build upstream using gcc5? If you have lang/gcc5 installed, just run |
|
Oh, I just saw you set |
Still no reaction on power line disconnecting. CTRL+C is ignored. Have to run |
|
Check |
|
In verbose mode it's supposed to tell you about the signals it receives. So this is definitely a bug. |
|
Yep, I've found this messages in /var/log/messages: I'll try to revert r308953 (Merge ACPICA 20161117) and recheck. |
|
I cannot help you with the acpi problem (I work around it by using BIOS mode, I've got all kinds of acpi problems when booting through EFI). I will concentrate on the signal() issue. |
|
Ok |
|
A friend managed to reproduce the problem. |
|
I just committed a workaround. I am 99% sure this is a FreeBSD userland bug, so I will keep this open until the workaround can be removed. See commit a97ab9e. |
|
Ok, seems to be working now: $ git log -1 --oneline --decorate
2d80d99 (HEAD -> master, origin/master, origin/HEAD) Document linkflags
$ make clean && make
...
$ sudo obj/powerd++ -vf -a maximum -b adaptive
[...]
power: online, load: 139 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
^Cpower: online, load: 190 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
powerd++: signal 2 received, exiting ...
$ |
|
I succeeded in providing a minimal test case (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215826#c1) and a test case that shows what goes wrong (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215826#c2). Turns out that after an exception is thrown and caught, the |
|
Well done, thanks. My ACPI problems has been fixed recently (by ACPICA 20161222 merge), so powerdxx seems to be working fully again: $ sudo obj/powerd++ -vf -a maximum -b adaptive
powerd++: cannot access sysctl: dev.cpu.1.freq
powerd++: cannot access sysctl: dev.cpu.2.freq
powerd++: cannot access sysctl: dev.cpu.3.freq
Terminal Output
verbose: yes
foreground: yes
Load Sampling
load samples: 4
polling interval: 500 ms
load average over: 2000 ms
Frequency Limits
battery: [0 MHz, 1000000 MHz]
online: [0 MHz, 1000000 MHz]
unknown: [0 MHz, 1000000 MHz]
CPU Cores
CPU cores: 4
Core Groups
0: [0, 3]
Core Frequency Limits
0: [500 MHz, 2201 MHz]
Load Targets
battery power target: 50% load
online power target: 1000000% load
unknown power target: 38% load
power: online, load: 246 MHz, cpu0.freq: 2100 MHz, wanted: 1000000 MHz
power: online, load: 481 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 682 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 848 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 901 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 883 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 929 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 823 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 788 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 783 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 827 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 880 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 835 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 866 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 877 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 1171 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: battery, load: 1132 MHz, cpu0.freq: 2201 MHz, wanted: 2264 MHz
power: battery, load: 1311 MHz, cpu0.freq: 2201 MHz, wanted: 2622 MHz
power: battery, load: 1448 MHz, cpu0.freq: 2201 MHz, wanted: 2896 MHz
power: battery, load: 1328 MHz, cpu0.freq: 2201 MHz, wanted: 2656 MHz
power: battery, load: 1202 MHz, cpu0.freq: 2201 MHz, wanted: 2404 MHz
power: battery, load: 1071 MHz, cpu0.freq: 2201 MHz, wanted: 2142 MHz
power: battery, load: 779 MHz, cpu0.freq: 2100 MHz, wanted: 1558 MHz
power: battery, load: 709 MHz, cpu0.freq: 1600 MHz, wanted: 1418 MHz
power: battery, load: 757 MHz, cpu0.freq: 1500 MHz, wanted: 1514 MHz
power: battery, load: 696 MHz, cpu0.freq: 1500 MHz, wanted: 1392 MHz
power: battery, load: 617 MHz, cpu0.freq: 1300 MHz, wanted: 1234 MHz
power: battery, load: 566 MHz, cpu0.freq: 1200 MHz, wanted: 1132 MHz
power: battery, load: 594 MHz, cpu0.freq: 1100 MHz, wanted: 1188 MHz
power: battery, load: 559 MHz, cpu0.freq: 1200 MHz, wanted: 1118 MHz
power: battery, load: 504 MHz, cpu0.freq: 1100 MHz, wanted: 1008 MHz
power: battery, load: 495 MHz, cpu0.freq: 1000 MHz, wanted: 990 MHz
power: battery, load: 463 MHz, cpu0.freq: 1000 MHz, wanted: 926 MHz
power: battery, load: 465 MHz, cpu0.freq: 900 MHz, wanted: 930 MHz
power: battery, load: 455 MHz, cpu0.freq: 900 MHz, wanted: 910 MHz
power: battery, load: 486 MHz, cpu0.freq: 900 MHz, wanted: 972 MHz
power: battery, load: 491 MHz, cpu0.freq: 1000 MHz, wanted: 982 MHz
power: battery, load: 498 MHz, cpu0.freq: 1000 MHz, wanted: 996 MHz
power: battery, load: 504 MHz, cpu0.freq: 1000 MHz, wanted: 1008 MHz
power: battery, load: 544 MHz, cpu0.freq: 1000 MHz, wanted: 1088 MHz
power: battery, load: 502 MHz, cpu0.freq: 1100 MHz, wanted: 1004 MHz
power: battery, load: 517 MHz, cpu0.freq: 1000 MHz, wanted: 1034 MHz
power: online, load: 497 MHz, cpu0.freq: 1000 MHz, wanted: 1000000 MHz
power: online, load: 621 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 706 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 801 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 891 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 982 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
^Cpower: online, load: 981 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
powerd++: signal 2 received, exiting ... |
|
I really should make the output for fixed freq mode prettier. |
|
A fix has been committed to FreeBSD head: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215826#c6 |
|
I've updated FreeBSD to r311921 and rebuilt powerd++ without linking it to vovka@vzakharov:~/projects/contrib/powerdxx > uname -a
FreeBSD vzakharov 12.0-CURRENT FreeBSD 12.0-CURRENT #20 r311921: Wed Jan 11 13:28:42 MSK 2017 root@vzakharov:/home/obj/usr/src/sys/GENERIC-NODEBUG amd64
vovka@vzakharov:~/projects/contrib/powerdxx > git diff
1 diff --git a/Makefile b/Makefile
2 index 282d1a3..80a9605 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -34,10 +34,10 @@ loadplay.o:
6 # linked in, e.g. head/r310361 is affected by this.
7
8 powerd++: ${.TARGET}.o
9 - ${CXX} ${CXXFLAGS} -o ${.TARGET} ${.ALLSRC} -lpthread -lutil
10 + ${CXX} ${CXXFLAGS} -o ${.TARGET} ${.ALLSRC} -lutil
11
12 loadrec: ${.TARGET}.o
13 - ${CXX} ${CXXFLAGS} -o ${.TARGET} ${.ALLSRC} -lpthread
14 + ${CXX} ${CXXFLAGS} -o ${.TARGET} ${.ALLSRC}
15
16 libloadplay.so: ${.TARGET:C/^lib//:C/\.so$//}.o
17 ${CXX} ${CXXFLAGS} -o ${.TARGET} ${.ALLSRC} -lpthread -shared
vovka@vzakharov:~/projects/contrib/powerdxx > make clean
vovka@vzakharov:~/projects/contrib/powerdxx > make
c++ -O2 -pipe -std=c++11 -Wall -Werror -pedantic -c /home/vovka/projects/contrib/powerdxx/src/powerd++.cpp -o powerd++.o
c++ -O2 -pipe -std=c++11 -Wall -Werror -pedantic -o powerd++ powerd++.o -lutil
c++ -O2 -pipe -std=c++11 -Wall -Werror -pedantic -c /home/vovka/projects/contrib/powerdxx/src/loadrec.cpp -o loadrec.o
c++ -O2 -pipe -std=c++11 -Wall -Werror -pedantic -o loadrec loadrec.o
c++ -c -O2 -pipe -std=c++11 -Wall -Werror -pedantic -fPIC -o loadplay.o /home/vovka/projects/contrib/powerdxx/src/loadplay.cpp
c++ -O2 -pipe -std=c++11 -Wall -Werror -pedantic -o libloadplay.so loadplay.o -lpthread -shared
vovka@vzakharov:~/projects/contrib/powerdxx > sudo obj/powerd++ -f -a maximum -b adaptive
power: online, load: 46 MHz, cpu0.freq: 2100 MHz, wanted: 1000000 MHz
power: online, load: 89 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
power: online, load: 89 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
^Cpower: online, load: 120 MHz, cpu0.freq: 2201 MHz, wanted: 1000000 MHz
powerd++: signal 2 received, exiting ...
vovka@vzakharov:~/projects/contrib/powerdxx >It works! |
|
Fix has been MFC'ed yesterday. I'll give it two weeks after which I will remove the workaround and close this issue. |
service powerd++ stophangs forever.truss -pwhile stopping shows only repeating blocks like this:Reinstalling from port does not help.
The text was updated successfully, but these errors were encountered: