Почему текущая частота процессора доступна только для чтения пользователю root?

Почему текущая частота процессора доступна только для чтения пользователю root?

У меня есть программа, которая предоставляет бенчмарки, но она не зависит от ОС и не умеет считывать частоты ЦП. Тестовая программа управляется скриптом. Если я указываю частоту ЦП, то программа может рассчитать пропускную способность операций.

Я думал, что укажу текущую частоту процессора (для наиболее точного считывания), но, похоже, это значение доступно только для чтения root и недоступно для других:

$ 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

Какls -lшоу,cpuinfo_cur_freqединственный объект с этим конкретным ACL. Остальные записи в основном0444(0644для некоторых).

Почему текущая частота процессора доступна только для чтения пользователю root, а для других пользователей доступ закрыт?

решение1

Вы должны уметь читать

scaling_cur_freq

Чтобы ответить на вопрос:

Кажется, что чтение

cpuinfo_cur_freq

взаимодействует напрямую с оборудованием или — в зависимости от реализации — с прошивкой, что, очевидно, не должно быть непривилегированным.

Источник

Связанный контент