2

let me explain my question for help:


BLOCK QUOTED QUESTIONS ARE CLEARED UP, There still remain a few questions about overclocked values not showing up when booted into the os.

Question:

I've activated (original 0 1 2 -> 3 cores) 3-7 -> 8 cores where 4 are currently getting registered and the last 4 are not being utilized.

The CPU is an AMD Athlon II X3 450 Processor originally and when the last cores are activated in the bios it becomes an AMD Phenom(tm) II X4 B50 Processor which indicates it has X4 cores active at least instead of X3.

The bios gives me the option to activate 8 cores in total where I've set them all to "enabled".

Answer by Stephen Kitt:


I've overclocked each CPU to +10% clock speed. so it went from max 3.2Ghz to max 3.540Ghz with a baseclock of 800 Mhz (0.8 Ghz) in both cases. Only 3.200Ghz is seen by the OS, while in kern.log it shows up as 3.540 Ghz

I've not done anything with voltage configurations to the CPU.

Ram went from 2 x 4GB DDR3 1.333 GHz to roughly 1.4 GHz (This is an automated response to overclocking the CPU) but there's no indication the memory is actually overclocked when booting and being booted into the OS.

I've read through the kern.log and noted down some information while trying to minimize the length of the files. Please note that I do not know why some values are getting registered while booted into the OS it does not show up as overclocked or most important 8 vCores/Cores

I'm no hardware guy (I write quality software) so I do not know all ins and outs of building a machine. Also: I've built this machine over 4 years ago and mostly used default bios settings with windows with a +2% overclocked x3 CPU's. I recently became interested in maximizing my machine and bought an 800 Watts power supply to be able to overclock and not getting into problems with power consumption.

My system specs are as follows:

OS/Kernel:
Linux system-name 5.0.0-37-generic #40~18.04.1-Ubuntu SMP Thu Nov 14 12:06:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

All non-compiled system information:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/lshw.txt

All compiled system information:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/sysinfo.txt

CPU's/Processor:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/cpuinfo.txt

Motherboard:
ASUSTeK Computer INC. M5A78L-M/USB3

BIOS:
American Megatrends Inc 0801 11/30/2011

GPU:
NVIDIA GTX-680 2GB 4.6.0 NVIDIA 435.21

Disks:
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/disks.txt

Memory (MB's):
https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/memory.txt

Answer by Stephen Kitt:

My goal is to unlock and activate up to 8 cores (I read that AMD names all threads "cores", so this should mean the other 4 "cores" should activate during hyper-threading, however, I don't know if ubuntu is able to use hyper-threaded cores by default... if you know how I could know if my other "cores" are hyper-threads let me know please), to achieve maximal gaming performance with the games I play (I have already improved from ~25 to ~45 fps with the use of steam proton and by utilizing Vulkan and other proton launch configurations in most games) for a 60 Hz refresh-rate monitor. I've configured my NVIDIA GTX 680 to be able to use its max potential and even tho I can overclock it in my bios I'm not willing to do that since my CPU is currently the bottleneck.

I'm asking for information on what I can do to be able to let my OS use all of the CPU's/threads and why it shows up as 8 cores booting the kernel but when actually booted it only uses +1 core to a total of 4 cores

why is it that the overclocked values are not seen by the OS?

I've tried many configurations in my BIOS and can not achieve what I intend to achieve while only now noticing that the OS is not utilizing my system's max potential because of the OS (that's what I think).

Feel free to ask me about system logs and configuration info while providing tips on how to acquire this system information.

Other problems (which I could fix myself probably) are that my HDaudio Nvidia HDMI controller doesn't seem to work anymore except for build-in audio, but unfortunately, I don't have any other speakers then my monitor's ones. If you notice any other wrong configured settings please tell me...

Already a lot of thanks to all of you which are willing to help!


Useful information from system/config/log files, collected by using grep and sniffing around:

Use this repo as to debug information, all files specified below are saved in this repository. (My reputation on this website limits my account from pasting more then 8 links, so this is my solution...)

https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/

top / htop:

top.txt

and

htop.png

cat /sys/devices/system/cpu/online && ls -ld /sys/devices/system/cpu/c*:

cat.sys.devices.system.cpu.txt

cat /proc/cpuinfo:

cat.proc.cpuinfo.txt

The hyper-threading argument, debunked (Now sure we're talking about physical CPU's not being enabled).

decoded report from cpuinfo to check for hyper-threading with a script found online: (Checking if HyperThreading is enabled or not?)

This system has one physical CPU,
and 4 logical CPUs.
For every physical CPU there are 4 cores.
The CPU is a AMD Phenom(tm) II X4 B50 Processor with 512 KB cache

cat /sys/devices/system/cpu/smt/control:

notsupported

( Indicates hyper-threading is NOT SUPPORTED )

cat /sys/devices/system/cpu/smt/active:

0

( The previous statement could be right, no hyper-threading is enabled as 1 should be reported if it was enabled )

sudo dmidecode -t processor:

dmidecode.processor.txt

( thread and CPU-count are both the same indicating previous statements are correct... No Hyper/Multi-threaded cores )

The twist...

sudo dmidecode -t processor | grep HTT:

HTT (Multi-threading)

(Flags say hyper-threading is actually SUPPORTED by the CPU )

lcpu:

lcpu.txt

( the flags (again) show 'ht', meaning hyper-threading is SUPPORTED )

Checking online and offline CPU's because I originally thought that hyper-threading wasn't for AMD Processors, meaning that the BIOS would not have listed 8 cores total to be enabled...

cat /sys/devices/system/cpu/online && cat /sys/devices/system/cpu/offline:

online: 0-3

offline: 4-7

notice that as I expected... 4-7 are offline and are not utilized by the system, now is the next question: how do we enable/set the last 4 CPU's to be online?

Log Information:

cat /var/log/kern.log > kern.log.txt:

cat.kern.log.txt

cat /var/log/kern.log | grep NUMA:

cat.kernel.log.numa.txt

cat /var/log/kern.log | grep smp:

cat.kernel.log.smb.txt

cat /var/log/syslog | grep -i smb:

Result: Binary file (standard input) matches

lsb_release -a:

lsb_release.txt

collected: ACPI Warnings and cpufreq overiding BIOS (thinking that this might be useful):

kernel.log.acpi.txt

collected: Microcode and CPU activity registering (thinking that this might be useful):

kernel.log.microcode.txt

collected: Processor Information and proof of overclocking to 3520 MHz where only 3200 Mhz is getting registered by linux:

kernel.log.overclock-proof.txt

collected: MTRR information and BIOS miscommunication to motherboard, 4 of 8 cores enabled eventually:

kernel.log.mtrr.0-7isX8.txt

Kernel activated the 4th core, while BIOS only activated first 3 cores, 4 more to go...

kernel.log.acpi-pci-line21.txt

collected: ACPI information, more ACPI information on previous file:

kernel.log.acpi2.txt

collected: More (useful) info and again some PCI information:

kernel.log.extra-info.txt

Thanks to: Stephen Kitt for clearing my question about not being able to activate 4 more cores of the CPU.

Eliah Kagan
  • 4,155
  • An Athlon II X3 450 is a four-core chip (with one thread per core) with one core disabled. There are not supposed to be eight logical cores on this chip, only three (or four). What makes you believe your CPU has more than that? – Fox Dec 03 '19 at 23:40
  • The bios is giving me the option, just like unlocking the 4th core that there are 4-7 cores left to be activated, this also comes back in the kern.log and online/offline files in /sys/devices/system/cpu/. – user3645480 Dec 04 '19 at 00:53

2 Answers2

2

There’s nothing more for you to enable, your Athlon is a four-core CPU with no support for hyper-threading.

The cpuinfo and dmidecode output is misleading because ht means “multi-thread and/or multi-core”; your CPU has multiple cores so it qualifies. (See the AMD CPUID documentation, page 13.)

Your BIOS has options to enable up to eight cores because that’s what the AM3+ socket supports, although as far as I know the most cores ever available in an AM3+ CPU was six.

As far as your overclocking is concerned, it is being applied. In your kernel logs, you’ll see lines such as

tsc: Detected 3456.252 MHz processor

with varying values, all above your CPU’s nominal clock rate.

The dmidecode output shows the official speed of your CPU, not its real speed. /proc/cpuinfo shows the current speed of each core, which fluctuates based on need.

Stephen Kitt
  • 434,908
  • I Remember that AM3+ was able to have octa-core CPU's so I think you're right, Thanks for your insight, I have looked at the Documentation and I think it states what you suggest. Thanks! I will edit my post so my other questions about overclocking not showing up in the OS can still be solved. I'm happy you cleared my believe that 8 cores might have been possible. – user3645480 Dec 04 '19 at 12:22
  • Please upvote, My rep is too low to do it myself, but Stephen was a great helper and cleared my mind! – user3645480 Dec 04 '19 at 12:56
  • 1
    I’ve added information about your overclocking settings too. Please don’t edit your question to include my answer, that’s not how this site works; we expect questions and answers, separately, so that it’s clear what’s what. – Stephen Kitt Dec 04 '19 at 13:06
  • I came here to say what Stephen just did -- Answers do NOT belong in your Question; please keep the Question focused on the question. Thank you! – Jeff Schaller Dec 04 '19 at 13:07
  • Ill take it out, thanks for noting that, this is my first time looking for answeres on this site ;) As for your overclocking answer, I just now got my OS to see 3.5 Ghz, however the govenor only uses whats needed. the thing at first was that cpufreq (the program to unlock govenors) only let me boost up to 3.2Ghz, and now that it sees my 3.5Ghz All my options to boost and utilize govenors are gone, also fan speed and voltage data are not accesible by the OS, any help please? – user3645480 Dec 04 '19 at 13:11
  • 1
    No worries, and welcome! It can take a while to get used to the way things work around here. – Stephen Kitt Dec 04 '19 at 13:11
  • https://github.com/DoOnlineNL/sysinfo/blob/master/DevelopmentMachine/cpufreq.png This is what it is showing now, No options under govenors, also cpu-count unresposive and when using dmidecode it shows up as 3.5 Ghz on full load – user3645480 Dec 04 '19 at 13:18
-1

Linux does not overclock. If you try to overclock, Linux will try to maintain the spec'ed timing. Overclocking only adjusts about 1/100 of the settings controlled by the Linux kernel.

The Windows kernel dynamically adjusts itself when a user is overclocking, balancing the system to get great benchmarks, but sacrificing performance of behind-the-scenes operations that don't affect benchmarks.

Windows has dlls devoted to overclocking performance. So, much of Windows OCing is being done in software by the OS. Windows give no indication of this. Nor is Microsoft forthcoming that the Windows kernel becomes dynamically self-adjusting to boot an OCed system, and post high benches.

If any OCer would actually analyze the time invested for the performance gained, he could see the stark reality that purchasing faster hardware would actually cost less when figuring in the value of the man's time.

I purchase OC equipment, because it's top quality and performance, but I run it at the defaults.

The Linux kernel makes no accommodation for OCing. It actually works to bring the system back into it's rated timing specs. So, overall, it hardly makes a difference.

There used to be a Linux OC program on Sourceforge, but it was in the 'Faith and Religious' section. Just a little heads up.

Brian
  • 158
  • Your initial claim "When you try to overclock, Linux will try to maintain the spec'ed timing" is wrong. – Marcus Müller Jan 27 '24 at 23:44
  • "The Windows kernel dynamically adjusts itself when a user is overclocking, balancing the system to get great benchmarks, but sacrificing performance of behind-the-scenes operations that don't affect benchmarks." That seems … nonsensical. – Marcus Müller Jan 27 '24 at 23:44