Возможно ли отслеживать обращения к памяти драйвера дисплея через PCIe?

#linux #graphics #linux-kernel #linux-device-driver #pci-e

#linux #графика #linux-ядро #linux-device-driver #pci-e

Вопрос:

Наша команда хочет написать инструмент для измерения производительности с акцентом на GPUGPU, чтобы понять, привязано ли конкретное приложение к вычислениям или к памяти. Мы хотели бы отслеживать обращения к памяти графической карты, не привязываясь к какому-либо compute API. Возможно ли отслеживать системные вызовы, такие как read для этой цели?

Комментарии:

1. strace покажет вам системные вызовы, но неясно, что фактический доступ к памяти будет происходить в пользовательском пространстве, а не в каком-либо драйвере ядра.

2. @Chris, похоже, что обращения к памяти, которые они хотят отслеживать, исходят вовсе не от центрального процессора, а от видеокарты.

3. Это сделало бы системные вызовы довольно неактуальными… по крайней мере, в качестве непосредственного участника, хотя, возможно, можно идентифицировать запускающие взаимодействия. Я подозреваю, что запрашивающему необходимо гораздо больше изучить архитектуру, прежде чем проводить какие-либо практические эксперименты.

4. Можно отслеживать все обращения к MMIO (пока только x86) для данного драйвера устройства.

5. @0andriy как можно отследить MMIO?