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

1

Eu tenho um programa que fornece benchmarks, mas seu SO agnóstico e não sabe como ler frequências de 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.

Eu pensei em fornecer a frequência atual da CPU (para uma leitura mais precisa), mas parece que o valor é somente leitura para raiz e nenhum acesso para outras pessoas:

$ 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

Como ls -l mostra, cpuinfo_cur_freq é o único objeto com essa ACL específica. As outras entradas são principalmente 0444 ( 0644 para alguns).

Por que a frequência atual da CPU é somente leitura para raiz e nenhum acesso para outras pessoas?

    
por jww 28.01.2016 / 05:26

1 resposta

1

Você deve ser capaz de ler

scaling_cur_freq

Para responder à pergunta:

Parece que a leitura

cpuinfo_cur_freq

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

Fonte

    
por 28.01.2016 / 05:47