我看不到用于测量功耗的perf的功率/能量核心选项

问题描述 投票:0回答:1

我的系统使用Intel Xeon Gold处理器和Centos,Linux内核5.5.2版

perf版本输出为5.5.2-1.el7.elrepo.x86_64

我不会获得每个内核的功耗。所以我尝试了这个。

>>>  sudo perf stat -a -r 1 -e "power/energy-cores/" ./run
event syntax error: 'power/energy-cores/'
                           \___ unknown term

valid terms: event,config,config1,config2,name,period,percore

Initial error:
event syntax error: 'power/energy-cores/'
                           \___ unknown term

valid terms: event,config,config1,config2,name,period,percore
Run 'perf list' for a list of valid events

 Usage: perf stat [<options>] [<command>]

    -e, --event <event>   event selector. use 'perf list' to list available event

如您所见,发生了错误。

所以我查看了/sys/bus/event_source/devices/power/events目录,查看这里有什么事件。

低于结果。

>>> ls /sys/bus/event_source/devices/power/events

energy-pkg  energy-pkg.scale  energy-pkg.unit  energy-ram  energy-ram.scale  energy-ram.unit

我看不到power/energy-cores选项。我只有power/energy-pkgpower/energy-ram选项。

有些人有power/energy-gpu

如何获得energy-coresenergy-gpu

>>> perf list | grep energy
  power/energy-pkg/                                  [Kernel PMU event]
  power/energy-ram/                                  [Kernel PMU event]


>>> sudo perf stat -a -r 1 -e "power/energy-pkg/" -e "power/energy-ram/" ./run
6765
 Performance counter stats for 'system wide':

              0.06 Joules power/energy-pkg/
              0.01 Joules power/energy-ram/

       0.001452589 seconds time elapsed
performance linux-kernel perf energy
1个回答
0
投票

perf添加了一个非核心PMU,以公开Intel RAPL能耗计数器。 power/energy-cores中的事件power/gpuperf分别映射到RAPL域PP0PP1。您可以看到此here

static struct perf_msr rapl_msrs[] = {
    [PERF_RAPL_PP0]  = { MSR_PP0_ENERGY_STATUS,      &rapl_events_cores_group, test_msr },
    [PERF_RAPL_PKG]  = { MSR_PKG_ENERGY_STATUS,      &rapl_events_pkg_group,   test_msr },
    [PERF_RAPL_RAM]  = { MSR_DRAM_ENERGY_STATUS,     &rapl_events_ram_group,   test_msr },
    [PERF_RAPL_PP1]  = { MSR_PP1_ENERGY_STATUS,      &rapl_events_gpu_group,   test_msr },
    [PERF_RAPL_PSYS] = { MSR_PLATFORM_ENERGY_STATUS, &rapl_events_psys_group,  test_msr },
};

要了解有关RAPL域的信息,请访问Intel软件开发人员手册第3b卷(电源和热管理章节)。

这些域中的每一个都具有自己的架构功能。这些功能将通过处理器中某些非体系结构MSR的存在来表明。但是这些域的​​存在因不同的英特尔处理器型号类型而异。一些处理器模型将支持所有这些域,而某些将仅支持少数几个。

perf尝试探测这些RAPL MSR,并按照msr和cstate模块设计,基于处理器的模型创建rapl_model_match设备表。

此快照为here

例如,您可以看到here仅支持域PackageDRAM

static struct rapl_model model_knl = {
    .events     = BIT(PERF_RAPL_PKG) |
                  BIT(PERF_RAPL_RAM),
    .apply_quirk    = true,
};

因此,为了获得其他事件,您将必须使用具有不同处理器模型的系统,从而确保所有相关RAPL MSR的存在。您不能仅仅在现有系统中建立支持以神奇地使用energy-coresgpu事件。

© www.soinside.com 2019 - 2024. All rights reserved.