HUNSN RJ38 N100 CPU Clock Speeds
-
@stephenw10 The n100 is a 6W chip. As such, I'm not looking to throttle it down to save power. There isn't really anywhere for it to go. Wouldn't 0 effectively be disabling it? I just want it to idle at minimum when doing nothing but kick up to 3Ghz+ when placed under load. I realize that most of the time it won't be pushed, even at 2.5Gb speeds, but I'm thinking I'll want all available power for it to do VPN encryption.
-
Did you try adding "hint.hwpstate_intel.0.disabled=1" to loader.conf ?
That should disable SpeedStep and allow PowerD to control CPU speed. -
@mvikman Would that be one of the entries in the System Tunables page in System-Advanced?
-
@Stewart
https://docs.netgate.com/pfsense/en/latest/diagnostics/edit-file.html
Create a new file called /boot/loader.conf.local and put the line hint.hwpstate_intel.0.disabled="1" in it -
It might also be interesting to check
machdep.hwpstate_pkg_ctrl
.That defaults to using the same setting for all cores in the package but SpeedShift can set the values per core. On a low TDP CPU like that it might give a significant advantage having only one core boosted when needed. It will likely stay there for longer if other cores are not using power / creating heat.
Steve
-
@mvikman Not sure that's working out as expected, either.
[2.7.0-RELEASE][root@pfSense.home.arpa]/root: sysctl dev.cpu.0 dev.cpu.0.temperature: 36.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: 69 dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc dev.cpu.0.cx_usage_counters: 49468 0 0 dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 2124us 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: 801 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
Those freq_levels don't seem accurate. My understanding is that the first number in each pair is the speed and if the first number ends in a 1 it indicates TurboBoost. In that case my CPU doesn't go over 800Mhz? The System Information screen doesn't show any speeds at all.
CPU Type Intel(R) N100 4 CPUs: 1 package(s) x 4 core(s) AES-NI CPU Crypto: Yes (inactive) QAT Crypto: No
-
That looks correct. The n100 base frequency is 800MHz. It turbos to much higher but powerd only sees that as 801. It can't see the actual turbo speeds as the CPU controls that itself based on the power and thermal restrictions.
The dashboard only shows a frequency when it's not running at max, which for Speedstep is anything above 800MHz.Steve
-
I read somewhere that FreeBSD doens't show actual turbo frequencies, but it shows them as "Max+1MHz", so 801Mhz would indicate that it's on turbo clocking.
-
Exactly. It only shows 801 for all frequencies above 800MHz.
Speedshift is a much better mechanism for controlling the CPU speed. It's in the CPU. It's much faster responding.
-
@stephenw10 Heh, my brain seems bit slow today... I posted the exact same thing as you, but just in different words...
Speaking on loader.conf settings, manuals say that the formatting is variable="value", but I see that some settings are not using quotes on the value.
I'm guessing that it's a safe bet to always use quotes, even if it works without them? -
I'm thinking this probably isn't a pfSense/BSD issue. I installed Win11 on a secondary drive. Running Passmark's CPU Mark I'm only getting 4291/1789 where the database shows an average of 5653/1975. That's about 25% down on the MT and 9% down on the ST. I went into the BIOS and Changed PL1 and PL2 from Disabled to Enabled but left the values at 0. That bumped MT up a slight 3.5% to 4455 and ST up 9.6% to 1962. Practically no sample size but those are where the numbers are at the moment. Temps peak around 52C when running the tests with PL1 and PL2 on.
-
@mvikman said in HUNSN RJ38 N100 CPU Clock Speeds:
I'm guessing that it's a safe bet to always use quotes, even if it works without them?
Yes. It will recognise that as logic true or false for a number of different syntaxes but the expected use is in quotes as shown on the man page.
-
So, I've made some progress. While I may ultimately keep things at stock, I believe I may have found the issue. I initially read up on these units at servethehome and decided to look into their forums to see what others were saying. In the BIOS PL1 is set to 6W by default. If I raise it to 12.5W then performance numbers jump (along with a little electricity and a lot of heat). I've reset all the settings in pfSense back to default (tuneables, loader.conf, etc) and am testing again. Here is what I now get:
At Idle pfSense GUI shows:
Current: (generally 1800-2000) MHz, Max: 806 MHz
Temperature 40C.
CPU Usage 0%-1%
Kill-A-Watt Shows: 9-10WRunning /usr/local/bin/stress -c 1
Current: (generally around 2900) MHz, Max: 806 MHz
Max Temp Seen 48C.
CPU Usage 25%
Kill-A-Watt Shows: 13WRunning /usr/local/bin/stress -c 2
Current: (generally around 2900) MHz, Max: 806 MHz
Max Temp Seen 52C.
CPU Usage 50%
Kill-A-Watt Shows: 14WRunning /usr/local/bin/stress -c 3
Current: (generally around 2900) MHz, Max: 806 MHz
Max Temp Seen 58C.
CPU Usage 75%
Kill-A-Watt Shows: 16WRunning /usr/local/bin/stress -c 4
Current: (generally around 2900) MHz, Max: 806 MHz
Max Temp Seen 64C.
CPU Usage 100%
Kill-A-Watt Shows: 17WI'm going to try with various PL1 settings and see what I get.
-
Nice. Testing locally with a CPU that supports Speedshift I found it's difficult to actually see the CPU frequency because Speedshift operates fast enough that simply running sysctl triggers an increase!
-
Is there a good way to run Passmark's performance test inside our environment? Right now I'm doing it in Windows and, while useful information, isn't best suited for what we need. I've found to install into Linux the commands are:
sudo apt install libncurses5 wget https://www.passmark.com/downloads/pt_linux_x64.zip unzip pt_linux_x64.zip sudo ./PerformanceTest/pt_linux_x64
I can't install libncurses5 using pkg and if I try to run the pt_linux_x64 it errors out
ELF binary type "3" not known. Exec format error. Binary file not executable.
If not I can keep going in Windows. It would just be nice to not keep switching back and forth.
-
pfSense is built in FreeBSD and FreeBSD is not Linux.
So I wouldn't expect that command to work. You would need a FreeBSD port. -
@stephenw10 Yeah, I get they aren't the same. It's just that a lot of programs made for Linux seem to work well for FreeBSD, or at least I can start there and modify the commands until I get it to work. I just posted the Linux commands in case it leads to someone having an idea of how I can get it to work. I don't know of any BSD port for it, sadly. I'll just keep plugging along in Windows.
-
@Stewart I don't know the best way to present the data in here, but here's what I've found:
Some interesting things here. CPUMark inside of Windows shows single-threaded performance maxes out at 7W so it's certainly worth it to increase from 6W to 7W. It's an extra 13% increase for 17% more power. Multi-threaded peters out once you pass 9W.
In BSD we can see that at 10W we hit the max sustained of 2.9Ghz but while it may look nice to have higher numbers that extra wattage may not turn into more performace, just more heat. And I don't see a reason to go over 10W since even 12.5W doesn't give us higher speeds.
Looks like 9W is the best performing PL1. It puts MC on par with an i5-7500 and ST about 10% below it. All with TDP about 85% less. My temperature numbers are likely a bit skewed. I ran higher and higher PL #'s over the course of the day. While I think the ceiling is probably right around 60C I would put the floor likely higher than the 47C. I've had the unit off for a while and it's still warm to the touch.
EDIT: Without updating the information above I just wanted to add that performance going from 10W to 11W was flat with MT down -0.23% and ST down -0.89%. As far as PassMark is concerned we've hit the ceiling on the chip. I'll be running PL1 at 9W as the case is able to keep it cool enough.
-
I ran some openssl tests in case anyone is wondering and compared them to the APU2D4 units we will upgrade from. It might provide a point of reference for anyone in the same boat that stumbles across this post:
-
Hey @Stewart
@Stewart said in HUNSN RJ38 N100 CPU Clock Speeds:
I can't say that looks right to me and doesn't seem to square up with the specs on Intel's Ark page for the N100. That shows a single core boost of 3.4Ghz and other places also list an all-core boost of 3.2Ghz.
I also have one of those Chinese fan-less mini PCs (Topton Brand) with an N100 processor. I noticed the same thing, I could only get the processor to boost at 2.9Ghz. I was looking in my BIOS at CPU power settings and I came across two settings that looked maybe suspect? They are, "Energy Efficient P-State" and "Energy Efficient Turbo" (see screenshots below) and they were both enabled by default. After reading the description for Energy Efficient Turbo I was thinking about turning it off and trying it out.
Have you tried any of these settings yet or are familiar with how they operate by chance?