Этот вопрос относится к системному вызову perf_event_open
, но для него нет тега.
В настоящее время я хочу использовать PERF_SAMPLE_READ
член перечисления perf_event_sample_format
для получения некоторых данных. из карты памяти, но по неизвестной причине системный вызов сам возвращает «неверный аргумент» (errno 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
};
}
Спасибо заблаговременно ! : -)