Topton N100 Reporting 402 MHz
-
@stephenw10 Yeah. Well I appreciate all your input. I can't think of much else to try until I can get my hands on the thing this weekend, play around with BIOS settings, maybe try booting Linux from a thumb drive as a point of comparison. Really hoping it's not just a bum sensor that I can't do anything about (or a trash BIOS since these things never have updates). The most amusing part of this is I was updating from a PC Engines apu2e4 and its comparatively anemic 1GHz cores . . . so now I get stuck at sub-1GHz
-
Hmm, I guess I'd try booting something else on it as a test. See if that shows the expected freqs, and how it's setting them.
-
Your Topton is probably made by CWWK, as my 'HUNSN' branded one is, and I had a similar issue at first because the 'C States' weren't enabled in the BIOS, which is what Intel SpeedShift uses to boost and cut power/speed as needed per core, from what I understand. And I wanted to use SpeedShift instead of SpeedStep. Turns out that the 6 ethernet port 'fanless' heatpipe+tall fins version of the CWWK router/pc came with a gimped bios that didn't expose the settings to enable C States. I think the 2 and 4 port versions don't have that issue (was discussed on another forum). Mine showed a speed like 804MHz in PFSense GUI... Now, with a modded bios and C States enabled, it can boost over 3ghz but it now says in PFSense "Max: 2496 MHz". And with C States enabled it does indicate that it can drop below 500MHz and the CPU temperature is in upper 20s C and rarely hits the mid 40s under load. So you may want to double check in the BIOS that C States are enabled and test it while in the CLI as that seems to be more accurate than what PFSense shows in the GUI on these CWWK boxes, if that is what you have...
-
@Tzvia Thank you for this additional information. I'll be sure to check BIOS options first thing when I have physical access to this machine again this weekend. Mine is a 4-port unit, and I did do a cursory check of BIOS settings during installation. I don't recall seeing C-state config, but also at the time I didn't have any particular reason to be looking for it, so hopefully I just missed it. I know the BIOS updates with these things are fraught even when possible, but if it does end up looking like I have a hobbled BIOS as the root cause maybe I'll need to look for one that seems compatible, cross my fingers and flash it, haha.
-
@Tzvia Just a quick follow-up too, not sure whether this means more to you than it does to me, but the sysctl output appears to indicate that it supports C1, C2, and C3. Although I don't know if that could just mean "the processor model supports it" but they could still be disabled in the BIOS. Here's the output pertaining to one of the 4 cores though:
dev.cpu.0.temperature: 38.0C dev.cpu.0.coretemp.throttle_log: 0 dev.cpu.0.coretemp.tjmax: 105.0C dev.cpu.0.coretemp.resolution: 1 dev.cpu.0.coretemp.delta: 67 dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc dev.cpu.0.cx_usage_counters: 189006045 0 0 dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 50us dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_supported: C1/1/1 C2/2/127 C3/3/1048 dev.cpu.0.freq_levels: 801/6000 800/6000 700/5160 dev.cpu.0.freq: 700 dev.cpu.0.%parent: acpi0 dev.cpu.0.%pnpinfo: _HID=ACPI0007 _UID=0 _CID=none dev.cpu.0.%location: handle=\_SB_.PR00 dev.cpu.0.%driver: cpu dev.cpu.0.%desc: ACPI CPU
-
Mmm, I'm not sure C-states is correct there. P-states are what Speedstep uses, that's shown as
801/6000 800/6000 700/5160
for you. Speedshift just changes the levels sing hardware in the CPU rather than software controlled which means it's much faster. -
@stephenw10 Alright, I have this Topton machine back in my possession now, just swapped the old apu2e4 back in for now. I just booted MX Linux from a thumb drive, and it has no problems at all. I can see from inxi that it boosts a single core up to 3400MHz for the openssl speed test, and that speed test is executing about 8X faster than it is under pfSense:
$ openssl speed -elapsed -evp aes-256-cbc You have chosen to measure elapsed time instead of user CPU time. Doing AES-256-CBC for 3s on 16 size blocks: 160803402 AES-256-CBC's in 3.00s Doing AES-256-CBC for 3s on 64 size blocks: 52614619 AES-256-CBC's in 3.00s Doing AES-256-CBC for 3s on 256 size blocks: 10652587 AES-256-CBC's in 3.00s Doing AES-256-CBC for 3s on 1024 size blocks: 2021881 AES-256-CBC's in 3.00s Doing AES-256-CBC for 3s on 8192 size blocks: 246344 AES-256-CBC's in 3.00s Doing AES-256-CBC for 3s on 16384 size blocks: 121479 AES-256-CBC's in 3.00s version: 3.0.11 built on: Mon Oct 23 17:52:22 2023 UTC options: bn(64,64) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.11=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 CPUINFO: OPENSSL_ia32cap=0x7ffaf3bfffebffff:0x98c007bc239ca7eb The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes AES-256-CBC 857618.14k 1122445.21k 909020.76k 690135.38k 672683.35k 663437.31k
So I think it's safe to say that whatever this is, it's not a hardware issue, and likely not a BIOS setting issue (unless there's some BIOS setting that makes FreeBSD very unhappy but Linux doesn't care about).
Now in pfSense I am of course restoring the config from the apu2e4, but there were really no exotic changes made to it. That said, barring other ideas I could try doing a reinstall of pfSense with no config restore and see whether I still get this behavior. But does this make any obvious sense? Certainly there are others using N100s with pfSense.
I'm trying to think of what to test next and open to any ideas Thanks again!
-
It could still be a BIOS issue. Many will pass different values depending on the running OS. Though historically that has been a Windows issue.
You can try running FreeBSD directly.
-
@stephenw10 Good thought. Yeah I'm thinking next I'll boot a fresh pfSense image from a thumb drive because if that does not exhibit the problem, it will implicate something about my config, but if it does I'll try straight FreeBSD.
-
@stephenw10 Well whatever this is, it seems to be either a FreeBSD thing or to your point, something that the BIOS is passing differently to FreeBSD, or FreeBSD is acting on differently.
I booted the pfSense installed from a thumb drive and dropped to the rescue prompt, ran the same openssl speed test and saw the same poor results. Next I grabbed the NanoBSD live system image and booted it, again ran the same openssl speed test, and again saw the same slow results. The current NanoBSD is based on FreeBSD 14.0-RELEASE-p4.
I can't believe that no one else is using an N100 with pfSense (or is and has not noticed this issue) so it leads me back to wondering about the BIOS settings, but there's really nothing obvious there, to me at least.
I'm going to try to get some pictures of the potentially interesting BIOS settings to post next . . . not sure really where to go from here.
-
There are a whole, bunch of people using N100 based devices and not seeing that sort of low performance. Which is another reason I'm leaning toward some odd BIOS behaviour. I pretty guaranty that BIOS was never tested with FreeBSD. You're lucky if it was tested with Linux.
Been a while since I tried this but you might try adding a loader value:
hw.acpi.install_interface='Linux'
-
@stephenw10 Ha that's a very fair point! I'll try the loader value soon, thank you. The following are (poor quality, sorry) pictures of the CPU Configuration BIOS options screens, which strike me as the most likely relevant, at least:
CPU Configuration:
/home/john/Pictures/BIOS_Advanced_CPU_Configuration.jpegSMM Enhancement sub-menu:
/home/john/Pictures/BIOS_Advanced_CPU_Configuration_SMM_Enhancement.jpegAnd this is everything available in the Advanced tab of the BIOS interface:
/home/john/Pictures/BIOS_Advanced.jpegI realize that this is becoming something of a wild goose chase but if anything here catches your eye . . .
-
Hmm, I don't have an N100 (or similar) to play with so I'm not really sure. You might be able to set a higher flex ratio if you enable override there.
-
@stephenw10 Yeah that was something I tried but anything higher than 8 seems to just snap back to 8. I found some conflicting information about that setting, but the consensus seemed to be that it was the minimum multiplier allowed. It would take 7, but nothing above 8. Perhaps I'll begin the fraught task of seeing whether I can locate a different BIOS to try with this thing But going to try your loader value first for sure.
-
I had been pointed in the right direction in a couple of threads at the 'Serve the Home Forums' (STH Youtube channel's forums, under NETWORKING.). There are threads dealing with the CWWK 6 ethernet port (what I have) and 4 ethernet port models... I was just 'let's try this.. no no... try that...' and getting nowhere till I found that forum and hunkered down and read the two long threads on those two models and decided to try what was suggested (including a different BIOS with all the hidden settings exposed). Yea not a turnkey device but I was determined to make it work...
PFSense still doesn't display it quite right in the GUI
but I'm not complaining at this point.Once tweaked, in PFS I was able to go to System/Advanced/Miscellaneous and enable SpeedShift with 'core level control' and after some testing, left it at 60%. PowerD set OFF.
-
@stephenw10 just wanted to chime in and share that I running pfSense on a Trigkey G5 mini PC with a N100 and have also wondered why my CPU reads a max of 806 Mhz. Watching this thread in hope to find answers!
-
@stephenw10 said in Topton N100 Reporting 402 MHz:
Been a while since I tried this but you might try adding a loader value:
hw.acpi.install_interface='Linux'Unfortunately no change in behavior with that. I was momentarily optimistic when I found this post on unlocking hidden BIOS settings for the exact board that my machine has, although it does not seem to do anything for me.
Another post here purports to have a modified BIOS for it with more settings unlocked, which is clearly risky, but I may try because I'm out of ideas at this point . . .
-
Hmm, that's a looooong thread! If there are answers they're probably there.
-
@stephenw10 Ha, yeah and two separate very long threads unfortunately, and both quite meandering and not at all specific to one piece of hardware or problem. Lots of fun.
-
@stephenw10 I threw caution to the wind and flashed the modded BIOS from the one thread, and against all odds it didn't brick me. But it didn't open up new settings that seemed interesting to this issue either (e.g. CPU power related things). I booted up pfSense anyway and ran the openssl test a few times. The first time it was the same as always, but then it got a little better. Still about 1/4 to 1/3 of what I was seeing in Linux though. I checked the CPU freqs via
sysctl -a | grep dev.cpu
and saw they were going higher, but for whatever reason seem to top out at 1813MHz, which feels like a random limit.This was with SpeedShift enabled in pfSense and set to 0 (max performance). Next I tried with SpeedShift disabled entirely, and I seem to be getting openssl speed results closer to 1/2 what I saw in Linux, but the CPU freqs as reported by sysctl never move from 700MHz, so they're pretty clearly inaccurate.
Running
powerd -v
while I run the openssl speed test shows the current freq going to 801MHz under load, which I have read in various places is the maximum reported value (as reported by something at least) when it's at a boosted frequency. However it's also curious that the "wanted freq" reported bypowerd -v
never goes above 1602MHz, whereas the cores on the N100 can boost to 3.0GHz (or a single core can burst to 3.4GHz).What feels suspicious there is that 1.6GHz is ~50% of 3.0GHz (or 3.4GHz) and I am seeing ~50% the benchmarks for the openssl test that I saw with Linux. But then the question is: why would the "wanted" frequency top out at about half what the processor is capable of?
In any case, 1.6GHz is better than my apu2e4, but I do hate not understanding things :) Maybe I'll try randomly playing with some more BIOS settings if I get time, but since none of them seem obviously relevant it will literally just be a game of flipping a switch and seeing if it does anything, ha.