Intel P States - N3350

Hello,

I purchased a new laptop from Asus and it has an Intel N3350 CPU. From my understanding it has a set CPU speed and boosts up or down using C or P states.

Here is the CPU Info:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 92
model name      : Intel(R) Celeron(R) CPU N3350 @ 1.10GHz
stepping        : 9
microcode       : 0x2c
cpu MHz         : 900.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 21
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pd
pe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx 
est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch ida arat pln pts dtherm i
ntel_pt retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms mpx rdseed smap clflushopt sha_ni xsaveopt xsavec xgetbv1
bugs            : cpu_meltdown spectre_v1 spectre_v2
bogomips        : 2188.80
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 92
model name      : Intel(R) Celeron(R) CPU N3350 @ 1.10GHz
/proc/cpuinfo lines 1-32/54 55%


It should be 1.1Ghz and boost up to 2.1Ghz when needed. I am running Leap 42.3.

Does anyone have any recommendations on how I can improve the performance of my CPU?

Thank you,
00USERNAME

Hi and Welcome to the Forum :slight_smile:
Use the command cpupower to check the frequency and boost states, lscpu only provides info on the current frequency when the command is run, so can be random in nature;


cpupower -c all frequency-info
cpupower monitor mperf

 cpupower -c all frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: Not Available
  CPUs which need to have their frequency coordinated by software: Not Available
  maximum transition latency: 10.0 us
  hardware limits: 800 MHz - 1.10 GHz
  available frequency steps:  1.10 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: ondemand performance
  current policy: frequency should be within 800 MHz and 1.10 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.10 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: Not Available
  CPUs which need to have their frequency coordinated by software: Not Available
  maximum transition latency: 10.0 us
  hardware limits: 800 MHz - 1.10 GHz
  available frequency steps:  1.10 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: ondemand performance
  current policy: frequency should be within 800 MHz and 1.10 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.10 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

cpupower monitor mperf
Available monitor Nehalem needs root access
Available monitor Mperf needs root access
mperf took 0.00070 seconds and exited with status 0
    |RAPL                       || Idle_Stats                                            
CPU | pack | core | unco | dram || POLL | C1-B | C1E- | C6-B | C7s- | C8-B | C9-B | C10- 
   0|     0|     0|     0|   122||  0.00|  1.20| 19.60|  0.00| 47.80|  0.00|  0.00|  0.00
   1|     0|     0|     0|   122||  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00
mperf took 0.00222 seconds and exited with status 0
    |RAPL                       || Idle_Stats                                            
CPU | pack | core | unco | dram || POLL | C1-B | C1E- | C6-B | C7s- | C8-B | C9-B | C10- 
   0|  6897|  5493|     0|   244||  0.00| 32.65|  4.34|  0.00| 18.45|  0.00|  0.00|  0.00
   1|  6897|  5493|     0|   244||  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00

Thank you. Does this look correct?

Updated

cpupower monitor mperf
mperf took 0.00074 seconds and exited with status 0
    |Nehalem                    || Mperf              || RAPL                      || Idle_Stats                                            
CPU | C3   | C6   | PC3  | PC6  || C0   | Cx   | Freq || pack | core | unco | dram || POLL | C1-B | C1E- | C6-B | C7s- | C8-B | C9-B | C10- 
   0|  0.00|  0.00|  0.00|  0.00|| 86.17| 13.83|  2304||  3845|  3296|     0|   122||  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00|  0.00
   1|  0.00| 54.40|  0.00|  0.00|| 33.83| 66.17|  2205||  3845|  3296|     0|   122||  0.00|  0.00|  0.00|  0.00| 71.23|  0.00|  0.00|  0.00
mperf took 0.00585 seconds and exited with status 0
    |Nehalem                    || Mperf              || RAPL                      || Idle_Stats                                            
CPU | C3   | C6   | PC3  | PC6  || C0   | Cx   | Freq || pack | core | unco | dram || POLL | C1-B | C1E- | C6-B | C7s- | C8-B | C9-B | C10- 
   0|  0.00|  4.10|  0.00|  0.00|| 48.00| 52.00|  2344|| 15747|  8789|     0|   732||  0.00| 46.34|  0.00|  0.00|  6.11|  0.00|  0.00|  0.00
   1|  0.00| 82.51|  0.00|  0.00|| 16.37| 83.63|  2298|| 15747|  8789|     0|   732||  0.00|  0.00|  0.00|  0.00| 83.28|  0.00|  0.00|  0.00

Hi
So the mperf Freq column indicates it is switching 2.3GHz… on my AMD cpu I monitor the mperf output as this shows what it’s really doing. You should be fine.

Mperf  The name comes from the aperf/mperf (average and maximum) MSR registers used which are available on recent X86 processors. It shows the average frequency (including boost frequencies). The fact that on all recent hardware the mperf timer stops ticking in any idle state it is also used to show C0 (processor is active) and Cx (processor is in any sleep state) times. These counters do not have the inaccuracy restrictions the "Idle_Stats" counters may show. May work poorly on Linux-2.6.20 through 2.6.29, as the **acpi-cpufreq ** kernel frequency driver periodically cleared aperf/mperf registers in those kernels. 

aperf and mperf are values that cpu can handle.

what I find concerning is

hardware limits: 800 MHz - 1.10 GHz
  available frequency steps:  1.10 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: ondemand performance
  current policy: frequency should be within 800 MHz and 1.10 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 1.10 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

As you can see here it shows the ondemand governor is set to operated up to 1.1 Ghz.
What I am unsure of is “Boost state support” and if it will boost to 2.3 or if I need to adjust my governor accordingly.

Hi
No you will never see it in that output, only mperf. With ondemand governor it should just switch automatically in the background.

Have a read here;
https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html

For example on one of my Tumbleweed systems with an i5;


cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
310000

Policy0 = cpu0

 cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
1101000

Yup

I tested it out and when running the test while it’s doing something intensive it scales up. All of this cpu governor stuff is relatively new to me.

Hi
So it’s all doing what it’s meant to do then, all is good.