如何将PERF_AMPLE_READ与mmap一起使用
How to use PERF_SAMPLE_READ with mmap
这个问题与perf_event_open
系统调用有关,但没有标签。
我目前希望使用枚举perf_event_sample_format
的PERF_SAMPLE_READ
成员从内存映射中检索一些数据,但由于未知原因,系统调用本身返回"无效参数"(错误号22(。
我有以下配置:
this->eventConfiguration.sample_freq = 11;
this->eventConfiguration.freq = true;
this->eventConfiguration.inherit = true;
this->eventConfiguration.sample_type = PERF_SAMPLE_CPU | PERF_SAMPLE_TIME | PERF_SAMPLE_PERIOD /*| PERF_SAMPLE_READ*/;
我正在跟踪的事件是PERF_COUNT_HW_CPU_CYCLES
。
这是我的系统调用。我监视我电脑的每个核心:
int fileDescriptor = syscall(__NR_perf_event_open, this->configuration.getEventConfiguration() , -1, i, -1, 0);
错误的处理如下所示,但我认为它没有用处。。。
if(fileDescriptor < 0) {
switch(errno) {
// here is some cases
};
}
提前感谢!:-(
我发现了错误!
问题是,当设置了perf_event_attr
结构的inherit
成员时,内核不支持使用PERF_AMPLE_READ。
以下代码来自内核源代码:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/events/core.c#n10788
/*
* We currently do not support PERF_SAMPLE_READ on inherited events.
* See perf_output_read().
*/
if (attr->inherit && (attr->sample_type & PERF_SAMPLE_READ))
goto err_ns;
相关文章:
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将C++中的库和头与MinGW一起使用
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么我不能将 rand() 与数组的大小一起使用?
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 不能将复制初始化与隐式转换的多个步骤一起使用
- 将fold表达式与std::一起用于两个元组
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 将 std::allocate_shared 与多态资源分配器一起使用
- 从结构寻址时,MMAP变量的行为很奇怪
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 将 exprtk 与自定义类的对象一起使用
- 将 std::set 与基于键的比较器一起使用
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 如何将 Eigen::Ref 与 pybind11 一起使用?
- 如何将AERT_Allocate与 std:vector 一起使用
- 如何使我的 sizeof sum 结构与空参数包一起工作