1

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

Я думал, что предоставлю текущую частоту процессора (для наиболее точного чтения), но, похоже, значение доступно только для чтения для 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 ответ1

1

Вы должны быть в состоянии прочитать

scaling_cur_freq

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

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

cpuinfo_cur_freq

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

Источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .