Summary: | The Hardware section of the Info Center shows wrong and confusing description for 'Processors' on its initial (summary) page | ||
---|---|---|---|
Product: | [Applications] kinfocenter | Reporter: | John <ilikefoss> |
Component: | general | Assignee: | Plasma Bugs List <plasma-bugs-null> |
Status: | CONFIRMED --- | ||
Severity: | wishlist | CC: | kdedev, nate, olib141, sitter |
Priority: | NOR | ||
Version First Reported In: | 6.3.0 | ||
Target Milestone: | --- | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
How the CPU, with its cores and threads, is shown in Info Center's summary + CPU details pages and in in Mission Center
The system monitor and the "Total CPU Use" are lying about the cores and the Info Center is agreeing with them |
Description
John
2025-02-25 18:11:15 UTC
BTW, if you want to show here or in the System Monitor also the CPU(s) cache sizes (L1-L3), there's this nice library, used by a few other projects, called HwLoc: https://github.com/open-mpi/hwloc On Debian at least one package with it is: hwloc-nox That has the hwloc-ls tool, which for my laptop shows this: Authorization required, but no authorization protocol specified Machine (7843MB total) Package L#0 NUMANode L#0 (P#0 7843MB) L3 L#0 (6144KB) L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 PU L#0 (P#0) PU L#1 (P#4) L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 PU L#2 (P#1) PU L#3 (P#5) L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 PU L#4 (P#2) PU L#5 (P#6) L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 PU L#6 (P#3) PU L#7 (P#7) HostBridge PCI 00:02.0 (VGA) PCI 00:17.0 (SATA) Block(Removable Media Device) "sr0" Block(Disk) "sda" PCIBridge PCI 01:00.0 (Display) PCIBridge PCI 02:00.0 (Network) Net "wlp2s0" PCIBridge PCI 03:00.0 (NVMExp) Block(Disk) "nvme0n1" Except for the memory, where it shows the usable one instead of the total one, everything else seems pretty accurate to me. But I see that the CPU details page has the cache sizes too, in a bit different format, which is maybe easier to understand than this library. Or maybe you would want in the future to show the CPU cache sizes in the System monitor, which will be similar to how Mission Center and Windows's task manger resource monitors do it. The "Total CPU Use" widget also shows a bit wrong information about the CPU (threads being shown as cores) when it's opened, in case it shares some code with the Info Center and it's easy to fix there too: https://bugs.kde.org/show_bug.cgi?id=501056 I opened it for another problem, but seeing 8 number and being for the wrong thing again, reminded me of this one, maybe they are a bit related. Or at least it could be checked if it still works after making changes for this one. I verified on git-master that the "Processors" string in About this System shows the CPU as described On my laptop: Processors: 8 x AMD Ryzen 7 3700U.... Also, in the CPU page of Info Center - which appears to use data from lscpu CPU(s): 8 This is coming from the OS. On my system: /proc/cpuinfo shows 8 "processors" lscpu shows CPU(s): 8 The confusion seems to stem from the assumption that About this System is showing the physically installed hardware, rather than the logical information from the OS. This is understandable, given how the text reads. I am inclined to think we probably want to show each physical CPU with a core and thread count: e.g. "12 × AMD Ryzen 5 5600X 6-Core Processor" -> AMD Ryzen 5 5600X (6 cores, 12 threads) (In reply to TraceyC from comment #3) > I verified on git-master that the "Processors" string in About this System > shows the CPU as described > On my laptop: > Processors: 8 x AMD Ryzen 7 3700U.... > > Also, in the CPU page of Info Center - which appears to use data from lscpu > CPU(s): 8 > > This is coming from the OS. On my system: > /proc/cpuinfo shows 8 "processors" > lscpu shows CPU(s): 8 > > The confusion seems to stem from the assumption that About this System is > showing the physically installed hardware, rather than the logical > information from the OS. This is understandable, given how the text reads. Your CPU seems to have 4 cores and 8 threads: https://www.techpowerup.com/cpu-specs/ryzen-7-3700u.c2140 Exactly as mine (in this bug report): https://www.techpowerup.com/cpu-specs/core-i5-8250u.c1972 Great that you figured out from where the CPU details page takes its data from! Running lscpu from the terminal shows: CPU(s): 8 On-line CPU(s) list: 0-7 Vendor ID: GenuineIntel Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz CPU family: 6 Model: 142 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 Besides other output above and below. Strange that it has the same problem with showing the number CPUs, maybe it needs a bug report too, so they also fix it. The "CPU(s):" should match the "Socket(s):" as for sure my laptop has only one socket and only one CPU (installed into that socket). I think the confusion has at least these 2 causes: 1. The section comes after the "Software" section and it's called "Hardware". So naturally I expected to see the hardware there, as it is, how matter how other hardware (motherboard), the software (such as the firmware: UEFI / BIOS or the kernel Linux:) sees is or changes it for the usage. 2. The way how it's displayed, with a number and a multiply sign in front of the CPU's name (brand + model). To me anyting that is shown as n x somehting, it means something times n (I have something n times). That item exists as many times as the nuber in front of it tells. To add more to the confusion, if the user goes into the firmware or in the kernel / systemd and enables / disable / changes configurations related to SMP or HyperThreading, that number will change as the cores / threads allowed to be used has been changed. Which is clearly wrong as the CPU, its hardware, it's still the same, nothing has been changed physically, only things how that physical piece of hardware is used. If the GPUs would also shown their VRAM and we played with ReBAR, the same thing, the GPUs and their VRAM should still be displayed the same. If only day storage is shown and we leave it unformatted or format it just half of it, the same thing, the hardware it's still the same and should not be shown how or how much of it it is used. Physical characteristics should be shown. Want to make a compromise and show a bit also changing parts of the hardware? Then I thik something like what it has been done for the memory display could be done, where the changing part (the usable memory) is shown now in parentheses: https://bugs.kde.org/show_bug.cgi?id=500412 There, other physical characteristics of the hardware were ommited (the meory type, speed, slots) to show just that changing part in parentheses. It might not be perfect or ideal for everybody, but I think it's probably a good compromise to have a bit of the changing parts in the parentheses, considering that a dedicated parge for Memory exits too. (In reply to Oliver Beard from comment #4) > I am inclined to think we probably want to show each physical CPU with a > core and thread count: > e.g. "12 × AMD Ryzen 5 5600X 6-Core Processor" -> AMD Ryzen 5 5600X (6 > cores, 12 threads) That would be very nice and easy to understand! But I would also make the code to display it also as: 2 x AMD Ryzen 5 5600X (6 cores, 12 threads) For people who use dual-socket motherboards and have both of the sockets populated with the same CPU. I don't know if it's possible to have different type of CPUs on dual-socket motherboards, like you can have with memory sticks on any motherboard. Or it's it's possible, then display each on a new line, like when there are multiple GPUs. Unlike the case with multiple GPU, which I think a maximum of 5 are possible to be installed, only 2 CPUs are possible to be installed. This type of display I think it also leaves the CPU name (brand + model) unchanged, no matter what the user changes in the firmware / Linux / systemd configurations. I think there should be a clear distinction between how the physical hardware is, which should be displayed as close to possible as how it is on the shelf or in its characterstics and how much of it is visible / usable, which can depend on what kind of motherboard it has been installed into (x86 / ARM / RISC-V), what other hardware devices are installed too (second CPUs RAM sticks, GPUs), the firmware it uses (proprietarycoreboot / libreboot), the OS being used (Linux, BSD, etc). The changing parts (because that piece of hardwre is used in combination with other hardware or software or configurations) should be displayed in the parentheses, if that compromise is chosen. Or leave it for the details page as they exist for the CPU and Memory. Or leave it for the resource monitors (KDE's system monitor, Mission Center) as it's more their job to show how the hardware is used. But I would go with the compromise, showing the changing part in parentheses. Since it's a hardware section, for the CPU I would like to see teh maximum number of cores and threads possible). Not the current maximum ones because I limited them from somewhere the firmware of from Linux. I think only the resource monitors should display the current ones. Or if you want to display here on the summary page too, then they should be in addition to the default (maximum ones), like with the memory (usable...) Let's not complicate things needlessly. The people that understand CPUs will know that they don't actually have 32 CPUs in their system. The people that don't will not know to tell the difference between a socket a core and a thread. As such the current information seems just fine. For precise information we have a CPU module. (In reply to Harald Sitter from comment #6) > Let's not complicate things needlessly. The people that understand CPUs will > know that they don't actually have 32 CPUs in their system. The people that > don't will not know to tell the difference between a socket a core and a > thread. > > As such the current information seems just fine. For precise information we > have a CPU module. I honestly don't like to make assumptions about what people know and don't know. If I do, then I assume that they don't know something and it's better to explain to them as good as possible to avoid any potential confusion. Plus they can learn something, if they didn't already know that. I wouldn't be surprised if somebody actually believes they have 32 CPUs because that's what the software tells them and they don't know any better to contradict it. I remember how I could joke with some kids telling some absurd stories and they would not contradict me because they didn't have enough information (knowledge) to challenge me. In the case of 2 x CPU name, what a tech-savvy person would think? I would say I don't know as I even have a friend a dual-socket server motherboard so either there are 2 CPUs or a 2 cores CPU or a 1 core + hyperthreading enabled, so I would need to ask more information, that the person might not know where to get it from. BTW, besides being possible to disable / limit cores from the firmware, it's also possible to do it from Linux: https://www.baeldung.com/linux/disable-cpu-cores It's your choice if you want to display also this changeable information as usable cores, threads... I care only about seeing the CPU show shown without that number and x in front (except for the dual-sockets + same dual-CPUs installed) case and the total (maximum possible) number of cores and threads in the parentheses. Though a warning on the CPU's details page could be shown when the usable doesn't match the total known number of cores and threads for that CPU. Like we have for storage devices about SMART problems. Anyway, thanks for looking at this think too! Does the CPU details page show these kind of artificial limitations from the firmware or from Linux? Anyway, I understand that taking care of all the cases takes time, so feel free to do what you can and find acceptable with the time you have. (In reply to Harald Sitter from comment #6) > The people that don't will not know to tell the difference between a socket a core and a thread. I think this is the problem — for people who don't know, they see their 4-core CPU report "8 x $CPU". That's kind of confusing. They'll think it means cores and might think they want a 16-core CPU as an upgrade rather than a 8-core, for instance. My suggestion of: "12 × AMD Ryzen 5 5600X 6-Core Processor" -> "AMD Ryzen 5 5600X (6 cores, 12 threads)" could drop the thread count and only reference the number of physical cores if we feel it's too technical, but we should probably give the core count, not the thread count. (In reply to Oliver Beard from comment #8) > (In reply to Harald Sitter from comment #6) > > The people that don't will not know to tell the difference between a socket a core and a thread. > > I think this is the problem — for people who don't know, they see their > 4-core CPU report "8 x $CPU". That's kind of confusing. They'll think it > means cores and might think they want a 16-core CPU as an upgrade rather > than a 8-core, for instance. I suppose. I think we also need to keep in mind that in 10 years nobody complained on those grounds. It's seems super contrived. If I the persona, that doesn't know much about a CPU, opens system monitor they'll see it report 12 compute units. The about module reporting "12 × AMD Ryzen 5 5600X 6-Core Processor" seems rather consistent in that regard and easy to understand to the uninformed. "I have 12 doodads to do computer work. If I upgrade I want more than 12 doodads." So the persona goes to the computer person around the corner and asks them for an upgrade to more than 12 doodads. The computer person will install a suitable piece of hardware, after possibly offering the range of combinations that yield more than 12 doodads total. (In reply to Harald Sitter from comment #9) > I suppose. I think we also need to keep in mind that in 10 years nobody > complained on those grounds. It's seems super contrived. Why do you need to keep in mind that in 10 years nobody complained about a specific problem or with some arguments? Is this some kind of "ad hominem" or similar to it argument? The problem reported by the reporter is not a real problem because nobody else before it complained about the same thing or with the same grounds? How would first reporters ever report their problem since nobody else complained about that or used the same grounds before? This kind of argument or consideration makes no sense to me. I cannot just not write a bug report for a problem that bothers me, just because no one else complained about it before and didn't do it with the same arguments. And I don't see what is "super contrived". I think it's pretty common that when somebody sees a bit more information about a CPU, besides the brand name and model name (which they can search together and see the vendor's page with all the information), if some information is displayed there already, after the brand name and model name, then the most important that most users want to see is the frequency and core numbers (maybe threads too aa as some can do HyperThreading and others can't). Personally I don't see anything here super contrived or even contrived at all. Windows, that is actually very user friendly and used on a lot more devices than Linux + Plasma, is not afraid to display the additional information: https://helpdeskgeek.com/wp-content/pictures/2017/09/system-information-cpu.png https://winaero.com/blog/wp-content/uploads/2016/10/cpu-info-msinfo32.png https://www.partitionwizard.com/images/uploads/articles/2020/07/what-is-my-processor/what-is-my-processor-2.jpg Or like this (which I assume it's for dual-socket systems): https://www.earthslab.com/wp-content/uploads/2018/10/windows-10-about-settings.jpg Also, maybe people have not complained about this problem before because let's admit it, Linux in the past 10 years didn't had such a great market share. And distros with Plasma are not the most recommended ones, as Linux Mint and Ubuntu still have lots of recommendations. I think that similar to how people complain about things not being aligned, corners looking bad, pixes not being where they are supposed to be, things that I never noticed or cared about, I want to report the things that bother me, and lying about the hardware bothers me. Not displaying cores and threads bothers me too, but at least I can see them in the dedicated CPU page and it's not so bad. It's an extra click, but anyway. > If I the persona, that doesn't know much about a CPU, opens system monitor > they'll see it report 12 compute units. The about module reporting "12 × AMD > Ryzen 5 5600X 6-Core Processor" seems rather consistent in that regard and > easy to understand to the uninformed. "I have 12 doodads to do computer > work. If I upgrade I want more than 12 doodads." So the persona goes to the > computer person around the corner and asks them for an upgrade to more than > 12 doodads. The computer person will install a suitable piece of hardware, > after possibly offering the range of combinations that yield more than 12 > doodads total. Why are you comparing the "Hardware" section of the Info Center to the system monitor? Do you know that the system monitor, like pretty much any other resource monitor don't know anything about the hardware and just shows what Linux tells it to show? Want to compare the "Hardware" section of the Info Center with the proper software? Then do it with the firmware (UEFI / BIOS) because that's the only software that shows proper and accurate information about the hardware! I don't know what as to say except that it's very strange to me to let a bad way of displaying hardware information on the assumptions that the user must know 1 or 2 x $CPU actually means (sockets or cores or threads), it cannot possibly believe absurd numbers like 32 CPUs or that it will go with its computer to the computer person and there the misunderstanding will be fixed. What if the person has a desktop computer too heavy to carry it to the computer person so it will just order online a new CPU? Why can't we have more E-waste based on misunderstandings? I guess the eco.kde.org never thought that wrong / inaccurate information can lead to E-waste too. I didn't either until now. Created attachment 179284 [details]
The system monitor and the "Total CPU Use" are lying about the cores and the Info Center is agreeing with them
BTW, here's the proof that your System Monitor software is lying about the hardware and consistency with it makes no sense when it comes displaying information about the hardware.
I followed the tutorial in that link at my previous (nr. 7) comment and add in GRUB-Customizer (that I already had installed) on its "General settings" tab under the "Kernel parameters" section this:
' maxcpus=2', so the whole line looks like this:
quiet maxcpus=2
Then clicked on the "Save" button and rebooted the laptop.
Since changing a config and rebooting can't possibly trigger a "Transformers" movie-like change in CPU's hardware, it's clear that the software is not lying about the hardware as the CPU still has the same hardware cores / threads.
It's just Linux that is making them appear less, probably by reporting less of them.
So I don't see much sense to keep the "Hardware" section of the Info Center tied / in sync or how you call it "consistent" with the system monitor that can tell lies depending on the situation.
BTW, lscpu now shows:
CPU(s): 8
On-line CPU(s) list: 0,1
Off-line CPU(s) list: 2-7
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
CPU family: 6
Model: 142
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
And kinfo, like its graphical counterpart:
Processors: 2 × Intel® Core™ i5-8250U CPU @ 1.60GHz
As I said before, I want the hardware section in this software, like in any other, to show me information about the hardware, not how the software sees it, uses it, limits it. Leave that for the resource monitors.
It would be great if you would separate the non-changeable parts (the hardware) form the changeable parts (the software, even when it's about the hardware)
If I buy a Wi-Fi 7 network adapter and connect it to a Wi-Fi 5 AP, it doesn't mean that my hardware is Wi-Fi 5 capable only.
Anyway, I'm starting to get tired of explaining that I want to see hardware specs and those should be as accurate as possible.
And it's pretty disappointing to see that the kernel and lscpu developers, at least decide to use CPUs, cores, threads interchangeably and on top of that lscpu, kinfo(center), can show wrong information about the hardware just because I changed only little kernel configuration.
So, it's cool that the Info Center has a dedicated CPU info page, but it's bad that the page shows wrong / incorrect information too by default: CPU(s), and even more when somebody plays with the kernel configuration.
It seems that there's is absolutely 0 software than can show accurate hardware information about the CPU when someone plays with that kernel config as I tested HardInfo2 and even CPU-X and even those fail this test by showing 2 cores only (HardInfo though still show the correct 8 threads, like lscpu).
|