LINUX.ORG.RU

[cpufreq]Непонятки

 


1

0

cpufreq-set

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 2.00 GHz - 2.66 GHz
  available frequency steps: 2.66 GHz, 2.00 GHz
  available cpufreq governors: userspace, powersave, ondemand, performance
  current policy: frequency should be within 2.00 GHz and 2.66 GHz.
                  The governor "userspace" may decide which speed to use
                  within this range.
  current CPU frequency is 2.66 GHz (asserted by call to hardware).
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 2.00 GHz - 2.66 GHz
  available frequency steps: 2.66 GHz, 2.00 GHz
  available cpufreq governors: userspace, powersave, ondemand, performance
  current policy: frequency should be within 2.00 GHz and 2.66 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.66 GHz (asserted by call to hardware).

Для теста с помощью cpufreq-set меняю туда-сюда частоту, выхлоп cpufreq-info отражается соответствующие изменения, но в реальности частота не меняется:

#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <stdint.h>

static uint64_t rdtsc(void)
{
     uint32_t a, d;
     asm("cpuid");
     asm volatile("rdtsc" : "=a" (a), "=d" (d));
     return ((uint64_t)(a) | ((uint64_t)d << 32));
}

int main()
{
        struct timezone tz;
        struct timeval starttime, stoptime;
        uint64_t startticks,endticks;
        uint32_t msec;
        int mhz;
        memset(&tz, 0, sizeof(tz));
        startticks = rdtsc();
        gettimeofday(&starttime, &tz);
        usleep(500000);
        endticks = rdtsc();
        gettimeofday(&stoptime, &tz);

        msec = ((stoptime.tv_sec-starttime.tv_sec)*1000000) + (stoptime.tv_usec-starttime.tv_usec);

        mhz = (endticks-startticks) / msec;

        printf("current speed is %i MHz\n",mhz);

  return 0;
}

Что я делаю не так?

★★★★★

Ответ на: комментарий от Biga
# cpufreq-set -g userspace
# cpufreq-set -u 2.00 MHz
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
   for example because of hardware which cannot be set to a specific frequency
   or because the userspace governor isn't loaded?

Чего ему не хватает?

# lsmod |grep cpufreq
cpufreq_userspace       1751  1
cpufreq_powersave        690  0
acpi_cpufreq            5748  0
processor              33793  1 acpi_cpufreq

madcore ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Опечатка, с GHz аналогично.

madcore ★★★★★
() автор топика
Ответ на: комментарий от anonimbus

Он загружен, выше я привел список модулей

madcore ★★★★★
() автор топика
Ответ на: комментарий от Biga

>cpufreq-set -u 2GHz

Без пробела отрабатывает, но реальная частота остается прежней, cpufreq-info нагло врет.

madcore ★★★★★
() автор топика
Ответ на: комментарий от madcore

Если там есть вывод

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
то да, это особенность движка ЛОРа =).

Deleted
()
Ответ на: комментарий от Deleted

Там есть «cpufreq-set -g userspace», соотвественно в «/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor» содержится «userspace»

madcore ★★★★★
() автор топика
Ответ на: комментарий от madcore

Ты это от рута запускал? Что в dmesg?

Deleted
()
Ответ на: комментарий от Deleted

Запускал ес-но от рута, в dmesg ничего нового не появляется при манипуляциях.
cpufreq-info показывает ту частоту, которую я указываю в cpufreq-set, хотя реально это не так

Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
мать ASUS P5E-V HDMI


00:00.0 Host bridge: Intel Corporation 82G35 Express DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation 82G35 Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation 82G35 Express Integrated Graphics Controller (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)
00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
02:00.0 IDE interface: JMicron Technology Corp. JMB368 IDE controller
04:02.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
04:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0)

madcore ★★★★★
() автор топика
Ответ на: комментарий от madcore

Хм... Честно говоря у меня больше соображений нет. Но лично я бы попробоывал следующее:

  • Попробовал какой-нибудь дистрибутив со свежим *правильно* собранным ядром. Например fedora livecd. Если на нём будет работать - сравнивать конфиги.
  • Попробовал бы обновить BIOS.
  • Поискал бы какую-нибудь информацию в интернете по конкретно этой модели процессора и материнки. Возможно что железо просто не умеет менять частоту, а подсистема ACPI ошиблась из-за кривого ACPI BIOS'а.
Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.