¿Por qué la frecuencia actual de la CPU es de solo lectura para root?

¿Por qué la frecuencia actual de la CPU es de solo lectura para root?

Tengo un programa que proporciona puntos de referencia, pero es independiente del sistema operativo y no sabe cómo leer las frecuencias de la CPU. El programa de prueba se controla mediante un script. Si proporciono la frecuencia de la CPU, entonces el programa puede calcular el rendimiento de las operaciones.

Pensé en proporcionar la frecuencia actual de la CPU (para una lectura más precisa), pero parece que el valor es de solo lectura para root y no tiene acceso para otros:

$ 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 -lmuestra,cpuinfo_cur_freqes el único objeto con esa ACL en particular. Las otras entradas son en su mayoría0444(0644para algunos).

¿Por qué la frecuencia actual de la CPU es de solo lectura para root y no tiene acceso para otros?

Respuesta1

Deberías poder leer

scaling_cur_freq

Para responder a la pregunta:

Parece que leer

cpuinfo_cur_freq

se comunica directamente con el hardware o, según la implementación, con el firmware, lo que obviamente no debería permitirse sin privilegios.

Fuente

información relacionada