2016-11-17 7 views
0

Стараюсь просто-пт в https://github.com/andikleen/simple-ptКак настроить и переполнение буфера захвата в процессор Intel трассировки

Это seens, что буфер используется в качестве кольца.

Если происходит переполнение внутреннего буфера, можно ли трассировать паузу и заставить модуль ядра обрабатывать его?

+0

И почему бы не использовать последнее ядро ​​с инструментом 'perf'? – 0andriy

ответ

0

Вы можете использовать двойной буферный подход с двумя таблицами ToPA с бит STOP, установленным в 1 для каждой таблицы. Аппаратное обеспечение Intel PT всегда будет заполнять один буфер, пока ваша программа (пользовательское пространство) читает от другого. Пользователь будет отвечать за обменный буфер, как только он считывает все данные из своего буфера. Если аппаратный буфер заполняется, бит STOP прекратит трассировку и установит бит STOPPED в MS32 IA32_RTIT_STATUS. Затем вы можете проверить этот бит, чтобы определить, произошло ли переполнение буфера.

+0

Благодарим вас за ответ. Я знаю, как запускать PMI –