[CDA]Interrupt 와 IRP가 많이 사용되는 경우 분석

https://www.dumpanalysis.org/blog/index.php/2010/06/07/irp-distribution-anomaly-inconsistent-dump-execution-residue-hardware-activity-coincidental-symbolic-information-not-my-version-virtualized-system-pattern-cooperation/

 

위의 블로그에서는 Interrupt 가 높고 IRP가 많이 사용되는 경우를 어떻게 분석하는지 설명하고 있습니다. 보통 이러한 문제가 발생하면 시스템이 느려지거나 성능측정 툴에서 Interrupt 가 증가되는 것을 확인할 수 있습니다.

내용을 살펴 보면 먼저 !irpfind 명령을 사용해서 IRP를 많이 사용하는 드라이버와 쓰레드가 무엇인지 찾아 봅니다. Interrupt 라는 것이 결국에는 IRP로 처리되는 것일 테니까요.

IRP와 연관되어 있는 쓰레드와 프로세스 등의 정보를 확인해 봅니다. 해당 쓰레드의 스택을 모두 확인해 봐서 결국 쓰레드 8b56cb10에서 SCSI 관련된 동작을 찾아 냅니다.

Raw 스택에는 이전에 함수가 호출한 흔적들이 남아 있는데 이를 통해서 쓰레드의 이전 동작을 유추해 보는 흥미로운 과정입니다.