Как работает образец ядра? - PullRequest
0 голосов
/ 30 января 2019

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

Цель состоит в том, чтобы написать приложение, которое может сэмплировать стеки вызовов другихпроцессы / потоки, даже если они в настоящее время находятся в ядре.

С уважением

1 Ответ

0 голосов
/ 30 января 2019

perf состоит из двух частей.Инструменты пользовательского пространства и системный вызов perf_event_open.

Как правило, выборка из стека выполняется ядром через системный вызов.Вы можете написать приложение, которое также использует perf_event_open - по умолчанию включены образцы ядра (exclude_kernel==0).

...