Por que a frequência atual da CPU é somente leitura para root?

Por que a frequência atual da CPU é somente leitura para root?

Tenho um programa que fornece benchmarks, mas é independente do sistema operacional e não sabe ler as frequências da CPU. O programa de teste é conduzido por meio de um script. Se eu fornecer a frequência da CPU, o programa poderá calcular o rendimento das operações.

Pensei em fornecer a frequência atual da CPU (para uma leitura mais precisa), mas parece que o valor é somente leitura para root e sem acesso para outros:

$ ls -Al /sys/devices/system/cpu/cpu0/cpufreq/
total 0
-r--r--r-- 1 root root 4096 Jan 27 23:19 affected_cpus
-r-------- 1 root root 4096 Jan 27 23:19 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_min_freq
...
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_max_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_min_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_setspeed

Comols -lmostra,cpuinfo_cur_freqé o único objeto com essa ACL específica. As outras entradas são principalmente0444(0644para alguns).

Por que a frequência atual da CPU é somente leitura para root e não tem acesso para outros?

Responder1

Você deveria ser capaz de ler

scaling_cur_freq

Para responder à pergunta:

Parece que a leitura

cpuinfo_cur_freq

comunica-se diretamente com o hardware ou - dependendo da implementação - com o firmware que obviamente não deveria ser permitido sem privilégios.

Fonte

informação relacionada