Комментарии 3
А вот подскажите, пожалуйста, какие есть подходы к следующей проблеме, и может ли VTune тут помочь.
Есть приложение, которое поставляется со специальным модулем ядра. Оно работает в тесной связке с ним, в принципе может проводить в нём 50-70% процентов времени, это нормально. И есть задача по профилировке приложения в связке с модулем ядра, потому что тормоза в различных сценариях возникают то в юзерспейсе, то в ядре. Есть возможность всё собрать с отладочными символами. Да, всё делается в Linux, но случай с Windows не менее интересен.
Однако «заглянуть» в ядро и корректно собрать callstack'и как-то не получается. По какой-то причине предыдущий VTune при отображении callstack останавливается на границе ядра. Вроде и права все есть, и sep драйвер загружен.
perf_events, которые с Linux идут, честно признаются, что для динамически загруженных или релоцированных модулей ядра
Есть ли решение для подобных сценариев профилировки (приложение+модуль ядра)?
Есть приложение, которое поставляется со специальным модулем ядра. Оно работает в тесной связке с ним, в принципе может проводить в нём 50-70% процентов времени, это нормально. И есть задача по профилировке приложения в связке с модулем ядра, потому что тормоза в различных сценариях возникают то в юзерспейсе, то в ядре. Есть возможность всё собрать с отладочными символами. Да, всё делается в Linux, но случай с Windows не менее интересен.
Однако «заглянуть» в ядро и корректно собрать callstack'и как-то не получается. По какой-то причине предыдущий VTune при отображении callstack останавливается на границе ядра. Вроде и права все есть, и sep драйвер загружен.
perf_events, которые с Linux идут, честно признаются, что для динамически загруженных или релоцированных модулей ядра
perf
вряд ли будет полезен; однако в своём репорте он каким-то волшебным образом показывает имена функций в модуле ядра, попавших в топ. Это уже ограниченно полезно. Стек вызовов при этом отсутствует, source-вид не работает, даже ассемблер не показывается.Есть ли решение для подобных сценариев профилировки (приложение+модуль ядра)?
Вообще стеки в модулях должны работать с типом анализа Advanced Hotspots и детализацией «Hotspots, stacks and context switches». Вы переключали режим стека? По умолчанию стоит «user functions+1», глубже одного уровня в системные модули не спускается. Нужен «user/system functions» для полных стеков

Если проблема не в этом, пишите в личку — надо смотреть результаты и разбираться.

Если проблема не в этом, пишите в личку — надо смотреть результаты и разбираться.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Intel® Parallel Studio XE 2016 Beta – что нового?