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.
My slowest cpu is my pentium mmx which runs at a fairly blistering 200 MHz and 400 some odd bogomips.
Now pinxi will only disbelieve the bogomips count if it is a RISC type cpu, AND if it's less than 50 bogomips. That's because there is a common bug in cpuinfo for ARM that assigns a fairly comically low bogomips to the arm cpu, far too low to be real, so inxi rejected that out of hand always. I think I had just made the test general, and I think it was specific to arm before, so that's corrected.
Your example shows how important it is to show bogomips, another item I'd had doubts about the value of, because in your example,this is literally the only way to get any indication of how fast or slow the cpu actually is since it has no core speed listed.
Both of these issues are corrected in pinxi 3.3.09-31
I've also added your 486 cpuinfo to the permanent set of fake cpuinfo values so I can readily test changes to avoid this type of error in the future on updates or changes, since that is basically the least data inxi will see on an x86 type cpu in cpuinfo.
Code:
CPU:
Info: single core model: 486 bits: 64 type: UP arch: N/A cache: N/A
bogomips: 33
Speed: N/A min/max: N/A core: No per core speed data found.
Flags: N/A
PS, these are absolutely fantastic fringe/corner case hardware examples, exactly what I had hoped to get, but actually much much better than I had hoped for since these are going back further than I had expected, and of course, the less expected data there is, the higher the odds of tripping expected data being missing failures.
Note the 'bits:' item comes from my live system, so ignore that.
Out of curiousity, how long does: pinxi -zv8
take to run on that system? Can you paste the output of that?
Out of curiousity, how long does: pinxi -zv8
take to run on that system? Can you paste the output of that?
It takes about 15 seconds on my Pentium MMX.
h2-1, it's nice to put this old beast of a machine to use for something. The output requested is below and is the 2nd run. First run was about 6-7 seconds real time slower.
I'd have more old boxes to test but I pruned my collection about 8 years ago. This 486 is in a massive all black case ~25" tall and is SCSI so I had to keep it! Hard to believe it was an Image RIP that booted off just a floppy for about 7 years. It was retired shortly after I started that job. I then put slackware on it so I had a Linux workstation there. It had slackware 3.x until I upgraded it to 11 last year.
Wow, no errors, that's very good. I don't understand why it didn't get lspci data, I've tested on 2.4 kernels and they were largely fine, 2.2 kernels is where I see a real drop off in the data. Impressive you got 2 GiB drives running on that.
Looks like the error message slightly failed for dmidecode, that's because you forced --dmidecode use, which has no data since there is probably no dmi table on the system. But that message shouldn't have shown 'requires root', but dmidecode errors are the most complicated in inxi since there are so many possible variants of errors for the machine data parts in particular. Battery and Machine did show the right message, I'll have to check -G -A and -N to see what happened there.
What does lspci -nnv show?
I think some pattern there must have failed, I thought I'd gotten those all locked down but apparently not all variants are handled for those old kernels.
I'm surprised at what a tiny footprint slackware 11 takes on that system, on my pentium mmx laptop, running an ancient ibm server grade 1 GiB ssd, I think os takes about 667 MiB, but that's running X and fluxbox and some gui programs.
Execution time seems fairly in line with my pentium mmx proportionally speaking. Amazing to see it run without any errors, except for showing the wrong Device: error message for no data. Obviously wrong since you ran it as root, I'll take a look at that and see if I can figure it out, it might just be that lspci -nnv returned nothing so inxi assumed it needed root, not sure.
Double checked, lspci -n returned an error, and inxi just assumes if these standard commands are returning an error, it's a permissions error, however, it also knows that the user is root at that point so I will update that to 'unknown error' type case.
That one I can't fix however because can't do a simple is root test, that could be a BSD error for example where user needs to be in wheel group to run command, or whatever, not just root.
But looks like lspci -n is failing there, that's odd, I've tested this on 2.2 and 2.4 kernels and it worked without issues. But those are VMs, so that never reflects hardware reality correctly for this stuff.
Oh, good, so no real issues. pinxi can't actually detect the real failure cause when it does its early tool testing, it just detects that there was a failure, and in this case, assumes it was permissions. ISA bus is fine, that's actually before inxi's time so not supporting that is ok. Important thing there was that it ran with no errors. That explains the lspci -n failure though. But this is a corner of a corner case, just an extreme test of pinxi/inxi handling of various platforms. Important thing there were no undefined value errors at all, which means everything was more or less correctly trapped and handled.
Looks like I found bug. E7400 should be a Wolfdale socket 775
edit dmidecode does say Socket 423 while the pdf description of the box is correct with 775.
Almost forgot, that's a bug in the dmi data, inxi can't work around wrong data from that source since it has no other way to know.
You'd be surprised to see how much dmi data is simply wrong, that's because there are two types, one is actual real data from your running system, the other is strings vendors fill out, often wrong, that appears to be real data, but is actually gibberish that has to be tested for correctness.
pinxi/inxi -m is packed with logic and consistency and coherence tests because the general vendor dmi data for the ram arrays is often complete fiction, the per ram stick data is usually quite solid, but the information about the arrays themselves is I believe mostly filled out by oem, and they often just cut and paste in the same values for different boards. Inxi does verify that what is being supplied does not violate logic, and will attempt to correct that data if it does, but that's only possible because the per stick data is solid and can be used as a baseline.
Stuff like sockets there is no other data source, so if the vendor/oem filled out the table wrong, there's no way to fix it. You'd think after going through all the time, effort, and energy, to make a whole new motherboard, they'd spend the probably 10 minutes required to correctly fill out the dmi tables, but no, it seems all too often that work is handed off to some clearly overworked and probably underpaid person who saves time by just copy/pasting in the same values for the entire series. Weird to see such odd little lapses so routinely, again, you'd think someone would at some point actually take pride in their work, but all too often they don't, and just churn the stuff out.
Oh, good, so no real issues. pinxi can't actually detect the real failure cause when it does its early tool testing, it just detects that there was a failure, and in this case, assumes it was permissions. ISA bus is fine, that's actually before inxi's time so not supporting that is ok. Important thing there was that it ran with no errors. That explains the lspci -n failure though. But this is a corner of a corner case, just an extreme test of pinxi/inxi handling of various platforms. Important thing there were no undefined value errors at all, which means everything was more or less correctly trapped and handled.
Thanks for confirming.
Stuck a 2.6 kernel on there as I thought you wouldn't mind seeing the differences. lspci just reports nothing without any errors now btw.
Re the dmi data...really makes me miss the old SUN stuff and sunsolve with engineer level access. Got spoiled with great hardware and information. It's much better now obviously but the x86 stuff has always been a bit of a mess. Kudos to you for putting in the work to even try dealing with it!
Code:
# time ~/pinxi -zv8
System:
Kernel: 2.6.39.4 i486 bits: 32 compiler: gcc v: 3.4.6
parameters: BOOT_IMAGE=custom-2.6.39.4 ro root=801
Console: pty pts/0 Distro: Slackware 11.0.0
Machine:
Message: No machine data: try newer kernel. Is dmidecode installed? Try -M
--dmidecode.
Battery:
Message: No /sys data found.
Memory:
RAM: total: 27.2 MiB used: 18.4 MiB (67.6%)
RAM Report: smbios: No SMBIOS data for dmidecode to process
PCI Slots:
Smbios: No SMBIOS data for dmidecode to process
CPU:
Info: single core model: 486 bits: N/A type: UP arch: N/A family: 4
model-id: N/A microcode: N/A cache: N/A bogomips: 31
Speed: N/A min/max: N/A core: No per core speed data found.
Flags: N/A
Vulnerabilities: No CPU vulnerability/bugs data available.
Graphics:
Message: No device data found.
Display: server: No display server data found. Headless machine?
tty: 200x60
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
Message: No device data found.
Network:
Message: No device data found.
IF-ID-1: eth0 state: unknown speed: 10 Mbps duplex: half mac: <filter>
IP v4: <filter> scope: global broadcast: <filter>
IP v6: <filter> scope: link
WAN IP: <filter>
Bluetooth:
Message: No bluetooth data found.
Logical:
Missing: Required tool lvs not installed. Check --recommends
RAID:
Message: No RAID data found.
Drives:
Local Storage: total: 4.99 GiB used: 1.55 GiB (31.0%)
ID-1: /dev/sda maj-min: 8:0 vendor: Seagate model: ST31200N
size: 1006.4 MiB block-size: physical: 512 B logical: 512 B type: N/A
serial: <filter> rev: 8648 scheme: MBR
ID-2: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST32430N size: 2 GiB
block-size: physical: 512 B logical: 512 B type: N/A serial: <filter>
rev: 0250 scheme: MBR
ID-3: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST32430N size: 2 GiB
block-size: physical: 512 B logical: 512 B type: N/A serial: <filter>
rev: 0170 scheme: MBR
Floppy-1: /dev/fd0
Floppy-2: /dev/fd1
Floppy-3: /dev/fd2
Floppy-4: /dev/fd3
Optical-1: /dev/cdrom0 vendor: N/A model: N/A rev: N/A dev-links: cdrom
Features: speed: N/A multisession: N/A audio: N/A dvd: N/A rw: none
state: N/A
Optical-2: /dev/dvd0 vendor: N/A model: N/A rev: N/A dev-links: dvd
Features: speed: N/A multisession: N/A audio: N/A dvd: N/A rw: none
state: N/A
Optical-3: /dev/sr0 vendor: TOSHIBA model: DVD-ROM SD-M1401 rev: 1009
dev-links: cdrom0,dvd0
Features: speed: 40 multisession: yes audio: yes dvd: yes rw: none
state: running
Partition:
ID-1: / raw-size: 929 MiB size: 899.9 MiB (96.86%) used: 143.6 MiB (16.0%)
fs: ext3 block-size: 4096 B dev: /dev/sda1 maj-min: 8:1 label: N/A
uuid: 4ffc9544-328d-4772-82b7-2d36b46503a3
ID-2: /usr raw-size: 2 GiB size: 1.94 GiB (96.87%) used: 1.4 GiB (72.4%)
fs: ext3 block-size: 4096 B dev: /dev/sdb1 maj-min: 8:17 label: N/A
uuid: ef300d0d-1585-41fc-b742-40917ac526d9
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
ID-1: swap-1 type: partition size: 235.3 MiB used: 5 MiB (2.1%)
priority: -1 dev: /dev/sdc2 maj-min: 8:34 label: N/A
uuid: e41c4c40-ec80-4ee2-9045-251d8f4a5145
Unmounted:
ID-1: /dev/sda2 maj-min: 8:2 size: 77 MiB fs: swap label: N/A uuid: N/A
ID-2: /dev/sdc1 maj-min: 8:33 size: 1.77 GiB fs: ext3 label: N/A
uuid: ce61d54e-b523-4ff2-a703-dda41c99e79b
USB:
Message: No USB data found. Server?
Sensors:
Message: No sensor data found. Is lm-sensors configured?
Repos:
Packages: note: see --pkg pkgtool: 1
slackpkg repos in: /etc/slackpkg/mirrors
1: http://mirror.csclub.uwaterloo.ca/slackware/slackware-11.0/
Processes:
CPU top: 5 of 48
1: cpu: 92.3% command: pinxi started by: perl pid: 1712
mem: 12.4 MiB (45.5%)
2: cpu: 10.0% command: sh pid: 1717 mem: 0.93 MiB (3.4%)
3: cpu: 0.4% command: udevd pid: 87 mem: 0.20 MiB (0.7%)
4: cpu: 0.1% command: [rcu_kthread] pid: 6 mem: 0.00 MiB (0.0%)
5: cpu: 0.1% command: [kswapd0] pid: 14 mem: 0.00 MiB (0.0%)
Memory top: 5 of 48
1: mem: 12.4 MiB (45.5%) command: pinxi started by: perl pid: 1712
cpu: 92.3%
2: mem: 1.11 MiB (4.0%) command: -su pid: 1535 cpu: 0.0%
3: mem: 0.93 MiB (3.4%) command: sh pid: 1717 cpu: 10.0%
4: mem: 0.86 MiB (3.1%) command: ps pid: 1718 cpu: 0.0%
5: mem: 0.49 MiB (1.7%) command: -sh pid: 1525 cpu: 0.0%
Info:
Processes: 48 Uptime: 59m Init: SysVinit v: 2.84 runlevel: 3 default: 3
tool: /etc/rc.d Compilers: gcc: 3.4.6 alt: 3.4.6 Shell: Bash v: 3.1.17
running-in: pty pts/0 pinxi: 3.3.09-31
real 1m11.688s
user 0m46.611s
sys 0m10.329s
Was there a comparable 'lsisa' tool to lspci for this type of hardware?
Thanks for showing the difference between 2.4 and 2.6 kernels. I have also found similar differences only more so between 2.2 and 2.4, inxi can barely get data off of a 2.2 kernel because the tools and syntax were quite different, but in my tests gets no errors, just even less data than you got here with 2.4 or 2.6.
My data shows Slackware 11.0 shipped with Perl 5.8.8, so in theory inxi could run down to Slackware 9.0, which shipped with Perl 5.8.0, but in practice I've found the very first Perl 5.8.0 had some very odd bugs and issues, some I have worked around in inxi, but they definitely had some non correct behaviors which are not predictable, though I found I could work around them using somewhat annoying hacks (which are well commented in the source code since otherwise it would make no sense to do it that way).
So this is also a very good confirmation that the backward compatibility of inxi is still working fine, that's something that glitches now and then when I forget to test it on big changes and something slips in that was only supported on later Perl versions.
Thanks for all the great data, now there's just that one irksome phantom L3 cache to resolve, and this is looking close to good for next inxi. I'll kick around the code a bit first though, see if I can snag a few hundreds of a second here and there, but it gets tricky to do that unless I accidentally looped something super inefficient.
By the way, I just got another AMD Phenom test sample, but that one had a real L3 cache so I couldn't use it to confirm what is going on.
No just dmesg and whenever /proc/devices,dma,etc became available mostly...and that's if the driver was loaded otherwise bupkis. I was reminded recently using an old ne2000 isa card that you needed to specify the io address to get it to work.
Nice that it works as well as it does on the old distributions and hardware.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.