Testers for inxi/pinxi redone -C CPU logic... huge internal changes
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Xeon uses this, and that's about 20ms per thread/core: scaling: driver: intel_pstate governor: powersave,performance
You can assign which driver to use. Epyc system uses this: driver: acpi-cpufreq governor: ondemand
I wonder if it's caused by something the kernel is doing with certain generation of cpus, that is not intended behavior. I think this is a kernel bug.
The difference between the intel_pstate and the acpi-cpufreq driver amd uses seems to be that on intel it's a roughly 20ms delay per request, on epyc about 14ms, and ryzen, about 12-13 ms. All the intels I've tested on have been around 20ms.
2012 intel core i5 MT 2 core takes similar, 51 ms to read those 4 threads, that is, about 12ms per thread. That one doesn't have cpuinfo_cur_freq so I couldn't compare it. That's running intel_cpufreq driver, which I believe is the older version for intel.
Same issues, if what you say about how scaling_cur_freq gets its data, this really sounds like a kernel or driver bug, but given all the drivers are doing it in my tests, on all newer systems, I have to suspect this is kernel caused, not driver, or that they accidentally changed something in the kernel without realizing it would have this impact on read speeds.
Might be reason for an issue report to the kernel I have to say.
I also think it appears to be a bug in the kernel or something closely related to the kernel. Whoever is informed of this is apparent bug is going to need information, such as under what conditions does it occur, and when not...
Code:
occur Kernel Processor miti. scaling drv. owner
no 4.4.276 Core2 Q8300 some acpi-cpufreq baumei
no 4.4.276 Atom N2600 none acpi-cpufreq baumei
no 4.4.276 Atom N270 none acpi-cpufreq baumei
yes ? Xeon G. 6238 ? intel-pstate drumz
yes ? Epyc 7281 ? acpi-cpufreq h2-1
yes ? Ryzen 5 2600 ? ? h2-1
yes ? Core i5 x?x? ? intel-cpufreq ?
I am wondering if the problem only occurs in some versions of the kernel...
As you can see, it always happens on any modern cpu, modern going back to Intel Core. Slowest was also the slowest cpu, the amd soc, at 29ms per core. Intels average 20ms. AMD zen 12-14ms.
Note most of the servers are running ubuntu lts, which get kernel patches without changing the main version number, so it's hard to know what version those are really equivalent to.
It's quite likely all these have bits of 5.x kernel running in them. So that might be related.
Almost definitely a regression in the kernel I'd guess at this point. Driver or governor doesn't seem to matter.
Any further issues or discoveries can go towards 3.3.11. I dabbled with the idea of making this 3.4.00 or even 4.0.00 due to the immense amount of changes, but I have to follow what the README says on github, major version numbers only on primary new features, new line items that is, like CPU, Bluetooth, etc. So this will be the biggest ever point release. Will need to see how certain features do in the wild, Manjaro tends to package this very quickly so should start seeing regular user output in a few days.
The scaling_cur_freq thing is I think maybe worth following up on, would be useful to find if there is a specific kernel version where it started happening, that help nail down the regression, I hope at least it's a regression and not intended behavior.
Huge thanks for all the help, invaluable, with something this hardware focused, impossible to do any sort of even halfway decent job without it.
fourtysixandtwo, it always amazes me that anything at all from OSX works with inxi/pinxi, they change stuff pretty often, and randomly just make up other stuff in terms of how they format their data sources, etc, so it's always a surprise to see inxi/pinxi run on osx without errors. Errors as in perl errors like undefined value errors are in general the only osx errors I'll spend time on, at least until Apple Corporation shells out the big bucks and pays me.
Only reason the apple stuff works at all is a guy in Finland gave me ssh access to his apple for a while many years ago, so I could get basic apple support working, but I have largely lost interest in doing anymore than just fixing perl errors for osx now, time is not infinite, nor do I have any desire to work with non free operating systems, particularly not ones that have no tools to speak of built in to work with.
It looks to me like the old osx stuff I had working is still working for cpu, that changes often, so that's nice to see it still works. FreeBSD also has no family/model/stepping data by the way. I may be getting one of those trashcan apples to play with so maybe I'll poke around apple some more, though I don't want to waste/spend/consume too much if any time on that in general. I wonder if linux works on the trashcan? Maybe I'll get an ssd and just try, though apple probably has done something to block their hardware I'd expect.
Yeah, Apple always has to be different no matter what. When I bought that machine, nothing compared hardware wise imho and the advantages far outweighed the annoyances. It was a great workhorse for my photography hobby and portable. Upgraded it to SSD about 8 years ago. I plan to put slackware on it but it's full of photos and media for kodi when I'm not home so I need to make room first.
If you do get one to play with google dosdude1 if you need to put a newer OSX on it that's not officially supported. For linux you'll want to put a boot manager on it like rEFInd.
Btw, I should have my SUN Ultra 2 up and running again in the next day or so for some inxi testing. I finally dusted it off for the first time in over 10 years and the nvram/battery chip is dead. Ordered up a replacement from digikey and some parts to fix the p90 as well. I just hope the Type 5c keyboard not completely working is a result of the nvram issue. After that I'd like to install slackware on it too.
Distribution: Slackware 15.0 x64, Slackware Live 15.0 x64
Posts: 618
Rep:
Sorry, gang, my stupidity is coming through with flying colors this morning...how do I install 'pinxi'? I have 'inxi', after having taken the 'build' I have for my 14.2 system, and somehow I have 'pinxi' on that system also, but I can't find the 'build' for it, so I have no clue how I got it on that system.
I'd really like to have it on this 'current' system, if possible. I even tried the instructions on the git page of:
and at the end of that it shows 'pinxi' installed, but for the life of me I can't 'locate' or 'find' it anywhere, though if I remember right 'locate' said it was at /root/pinxi which there is not one of when I look.
Any 'builds' for pinxi anywhere I can use for 'current'?
Sorry, gang, my stupidity is coming through with flying colors this morning...how do I install 'pinxi'? I have 'inxi', after having taken the 'build' I have for my 14.2 system, and somehow I have 'pinxi' on that system also, but I can't find the 'build' for it, so I have no clue how I got it on that system.
I'd really like to have it on this 'current' system, if possible. I even tried the instructions on the git page of:
and at the end of that it shows 'pinxi' installed, but for the life of me I can't 'locate' or 'find' it anywhere, though if I remember right 'locate' said it was at /root/pinxi which there is not one of when I look.
Any 'builds' for pinxi anywhere I can use for 'current'?
Go back to the very first post of this thread...
Code:
# if you already have pinx installed:
pinxi -U
# if you don't, just do:
cd /usr/local/bin && sudo wget -O pinxi smxi.org/pinxi && sudo chmod +x pinxi
Modify to taste (i.e., you may not want pinxi in /usr/local/bin/).
This is by the way why I recommend installing pinxi to a directory in PATH, misplacing the downloaded file, or forgetting where I downloaded it to by accident. This is in general why I tend to use wget -O [path/filename] or curl -o [path/filename] when downloading stuff, unless I am sure I want the file in the current directory.
As an aside, I generally make pinxi user writable so I don't have to sudo or root pinxi -U when it's in /usr/local/bin since I"m updating it all the time.
There were two bugs in 3.3.10 by the way, one will hit many laptop users, the other will hit only corner cases, both are corrected in pinxi already but I'm waiting a few hours to do 3.3.11 to make sure nothing else shows up, but I think the amount of testing done here caught most of them already in 3.3.10, these were just ones where in one case, I forgot to test one specific hardware scenario, and the other was just a typo that only manifests in one case in laptop batteries, but when it does, it sprays out lot of errors.
I tossed in another -Ca feature, to show scaling_min/max_freq if either is different from cpuinf_min/max_freq values, which they can be, just so 3.3.11 wouldn't be a totally bug fix only release. I haven't found a system yet that has different min/max values, but I know those can be assigned per core if you want, that just doesn't seem to be done very often. Same as different governors can be assigned per core, I believe anyway, I've seen one server that does that, 2 governors are used on each physical cpu, on 2 blocks of cores, I assume to optimize for different behaviors.
For pinxi, _normal_ is after next inxi sync/release, pinxi is pretty much the same as inxi until changes start happening, in this case, it split again almost immediately as soon as I became aware of the bugs, which fortunately manifested almost immediately, but unfortunately, immediately after 3.3.10 went out, but objectively, in at least one case, it manifested because 3.3.10 went out and started being used. When all goes well, sometimes pinxi doesn't change much for a while after next inxi is released, but with a changeset this huge, there was no way I was going to get a bug free release right out of the box, so I'm glad the bugs were relatively minor.
Any 'builds' for pinxi anywhere I can use for 'current'?
Note that if pinxi is used for packaging, first, it has to always be the current actual pinxi, which is generally impossible to do. If it's being used to just get the latest for 'current', that doesn't work super well because of this [top of file]:
Code:
my $self_name='pinxi';
my $self_version='3.3.10';
my $self_date='2021-12-16';
my $self_patch='02';
First, the $self_name and file name has to be changed to 'inxi', second, the $self_version is not going to be right, the data will be right, and the self patch is the current patch number of pinxi, not inxi. pinxi by definition will always be one or more patch versions greater than inxi 00 patch, and pinxi's version number will always be the same as current master inxi.
inxi, on the other hand, looks like this:
Code:
my $self_name='inxi';
my $self_version='3.3.10';
my $self_date='2021-12-13';
my $self_patch='00';
However, I'm going to do the new inxi this afternoon, just wanted to make sure no other issues were detected. In general I don't recommend packaging pinxi, first, because it can have bugs in it, along with bug fixes, and stuff that might be halfway working, or maybe which failed as an idea, and will be removed, second, because unless it's packaged essentially the same time as pinxi versions are released/committed, it will always be out of date. Arch linux gets around this issue by having in AUR a package that just grabs with git pinxi from github, which to me is somewhat pointless since that just adds a lot of complexity and bandwidth to what is otherwise a simple download of a file, or two, if you use the --man option.
The --man/--no-man options I seem to remember were added specifically (at the request of slackware forum members some time ago, and a good request it was) to avoid either downloading the man with -U, or to force the download when it doesn't happen by default. pinxi -U by default does not download the man, --man forces that. inxi -U always defaults to downloading the new man when it updates itself.
I'm not positive what is being asked here however.
Distribution: Slackware 15.0 x64, Slackware Live 15.0 x64
Posts: 618
Rep:
It's all good...the posts answering me helped and it's now installed alongside inxi. It was the wget thing that worked. Originally I just su'd into root and did the wget thing and I have no clue where I was in the file system. This time I made sure I was in /usr/local/bin and then did the chmod on it so my regular 'user' could also use it.
Thanks everyone for taking the time to help out a dummy. I just wanted to have it installed to be able to help the dev if I could in any way.
I figured out why nobody saw the battery bug, it wasn't in the primary main battery type output, it was in the battery powered device (like mouse) output, and I never use battery powered peripherals so I never noticed it. Was scratching my head about how that one could have been missed. That's an old bug, nothing related to the 3.3.10 changes.
3.3.11 is now out, a fast bug fix release, almost nothing changed, except handling some corner case bugs that had slipped anyone's notice with some very specific hardware configurations.
Also adds support in case scaling_min/max_freq are different than the default physical cpuinfo_min/max_freq to show under the scaling: sub report the scaling sc-min-max: speeds, that could be useful to know too. I have not found any instances where they were different, but they can be if you set them to be different than the physical cpu limits. I don't actually know if you can change those values per core or if it's a global change.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.