Re: RELENG_13 and min cpu frequency

From: Kevin Oberman <rkoberman_at_gmail.com>
Date: Sat, 19 Nov 2022 22:48:04 UTC
On Fri, Nov 18, 2022 at 9:41 PM Ian Smith <smithi@nimnet.asn.au> wrote:

> On 19 November 2022 8:28:45 am AEDT, mike tancsa <mike@sentex.net> wrote:
>
> Hi mike,
>
>  > I noticed that when I moved from an old RELENG11 to RELENG13
>  > firewall, I
>  > was starting to get dropped packets.
>
> excuse savage pruning; phone ...
>
>  > e.g. printing it out every second, I see
>  >
>  > while true
>  > do
>  > /sbin/sysctl -n dev.cpu.0.freq
>  > sleep 1
>  > done
>  >
>  > 4308
>  > 4308
>  > 4308
>  > 4308
>  > 1902
>  > 900
>  > 900
>  > 900
>  > 4308
>  > 4308
>  > 4308
>  > 4308
>  > 4308
>  >
>  >    Whats the best way to set the box NOT to scale down the CPU below
>  > a
>  > certain frequency ? I want to see if not letting it drop below 3000
>  > prevents packet overruns when there is a burst of traffic from a time
>  > of
>  > things being quiet ?
>  >
>  > Setting debug.cpufreq.lowest: to 3000 does not seem to make a
>  > difference
>
> I see below that it's 0 .. didn't it take, or was that another time?
>
>  > dev.cpu.0.freq_levels: 3400/-1
>  > dev.cpu.0.freq: 1302
>
> So, hmm.  powerd reads and sets values in dev.cpu.0.freq_levels, hence
> can't change it to anything but 3400.
>
> So how is cpu.0.freq changing at all?  Is cpufreq using est(4)?  Are there
> more freqs in dev.est.0.freq_settings?
>
> Or is it using a _relative_ driver like acpi_throttle or p4tcc?  Default
> /boot/device.hints has both of these disabled for good reason (Kevin
> Oberman can elaborate)
>
>  > sysctl -A debug.cpufreq
>  > debug.cpufreq.verbose: 0
>  > debug.cpufreq.lowest: 0
>  >
>  >
>  > CPU is CPU: Intel(R) Xeon(R) E-2226G CPU @ 3.40GHz
>  > (3400.00-MHz K8-class CPU)
>
> Also noted that the usual +1 freq for turbo mode isn't there.  Strange?
> (I don't speak Xeon though)
>
> cheers, Ian
>

In recent processors, things have changed radically WRT CPU frequency and
thermal behavior.

I have an Alder Lake system (12th gen) and a Comet Lake (10th gen). Both
now show a single frequency. On my Alder Lake I see:
dev.cpu.?.freq_levels: 2496/-1
This is shown for all CPU devices (threads) whether P or E cores. Thermal
control does change these seeds continually. I have seen E cores at 900M,
but rarely. I see them as 1.2G during buildworld. The P cores are at 1.3G.
I have never seen ANY core running at over 2.5G. When I ordered my T16, the
specs showed minimum, default, and maximum frequencies, but I can't find
them any longer. All I can find are "Minimum" and "Max Turbo". It's not
clear to me what the significance of this is, but it was clearly a decision
of Intel. To me, it implies that Turbo is really no longer distinct , but
considered a portion of a continuum of frequencies.

Just looked again. buildworld is still running, and see all CPUs are at
2094, 2095, 2096, and 2097.   A few seconds later, 1997 to 2094. All CPUs
are not always running at very similar speeds. This is very different from
anything I have seen on older processors. I see no distinction between P
and E cores. I also suspect that powerd is no longer relevant for modern
CPUs.  Anyone have a pointer to information on CPU frequency and thermal
management on newer Intel processors?
-- 
Kevin Oberman, Part time kid herder and retired Network Engineer
E-mail: rkoberman@gmail.com
PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683