-
Notifications
You must be signed in to change notification settings - Fork 45
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
Higher CPU utilization from 27% to 65% between 6a04c45 and cce47b6 on RPi4B+ #22
Comments
Hello Damian,
many thanks to you - as a tormented Subversion user now I know what git bisect is and for what it is good. :-)
To your question about performance:
1) the FIR filter for the T1/C1 mode is now a little bit longer resulting in slightly higher CPU utilization (older FIR filter was incorrectly designed regarding the stop band frequency - it's mentioned in the README). Here is nothing what I can do for better performance.
2) i have implemented S1 mode that effectively doubles the CPU utilization. Here I could add an option to switch S1 off and an another option to switch T1/C1 modes off.
3) the "run length method", which is running in parallel to the old time 2 method, is unfortunately not for free, but shows (at least for me) reduced CPU utilization. What _you_ could do here:
a) to switch the run length method off by adding "-r 0" to the command line
b) or to switch the time 2 method off by adding "-t 0" to the command line
c) or add "-a" to the command line for using inaccurate atan version - you should test that a little bit carefully.
d) you can freely combine a) and c) or b) and c).
I would definitely try with b) and c) first. If you have problems with receiving datagrams then try with b) only. Let me know if you was successful with that.
Xael
|
Thank you for the comprehensive explanation. ad. 3) Here is the result of my experiments:
Based on above the only option which works is p. If you think it might be valuable to test anything from other points |
Hello Damian, thanks for testing. You could go well with the "-a" option if you don't observe any CRC errors or if CRC errors are rare enough. Anyway, for rtl_wmbus I have implemented a new command line option: use "-p S" to turn S1 mode off (I guess you don't need S1 at all) or use "-p T" to turn T1/C1 mode off . CPU utilization should drop to a half of the original one after that. |
Great, I'll give it a try. |
Was running a year+ old build of wmbusmeters and decided to roll the latest today and noticed my load jump after upgrading everything related... Luckily found this thread and back down we go. Thanks guys! |
Seems not to be a issue as nobody complains anymore ;P |
In response to #8 (comment) I updated the package in fedora from 6a04c45 to cce47b6. I'm running
rtl-wmbus
alongside withwmbusmeters
on RPi4B+ and noticed a substantial increase in CPU utilization between those two revisions:Here is the CPU utilization during git bisect:
Here is the culprit (8bec4a2):
For the record the git bisect log:
Is this increase in CPU utilization fully expected? If so, please close this issue, otherwise maybe it would be possible to reduce the CPU usage.
FYI, I've used the old version for quite a long time and it worked flawlessly for me, so maybe it's possible to add some command line option which will reduce the number of computations and still keep the filtering quality on the satisfactory level with the old CPU utilization?
The text was updated successfully, but these errors were encountered: