Уважаемые, как узнать какой драйвер перенагружает DPC и Interrupts, тем самым вешая систему?
У меня завелся какой–то драйвер, который периодически, а чаще — при работе с USB, делает так, что в ProcessExplorer’e виртуальные процессы DPC’s и Interrupts начинают работать с высоким приоритетом на 48% ЦП каждый. Это невыносимо, а винду переставлять не хочется.
W7 x64.
Для xp86|64, висты есть утилиты от Microsoft для этих целей, а для w7x64 нет. Как быть? Как отследить паршивый драйвер?

16 Responses to Как узнать какой драйвер перенагружает DPC и Interrupts?

  1. Xuaona:

    ProcessExplorer не помогает?

  2. Avitoba:

    он помогает только увидеть проблему, но не решить. Это виртуальные процессы, показывают интенсивность запросов на прерывания и к Deferred Procedure Calls.
    Если бы был такой же менеджер процессов, только для драйверов — было бы здорово.

  3. Lurizerg:

    Все уже украдено до нас. Если есть DDK, но нет

    Получаем вот такую красивую табличку:

    Но нам естественно этого мало, поэтому мы качаем WPT. Для этого можно скачать веб–инсталлер, установить только Win32 Development Tools, а потом из Start–>Install Windows Performance Toolkit (x64). Далее произносим пару простых заклинаний:

    Ну и мат в два хода. Раз:

    И два:

    На этом месте одному из драйверов, я так понимаю, приходит неиллюзорный пиздец.

    Подозреваю, что то, что сделано трейслогом можно сделать logman–ом/perfmon–ом, но я в душе не ебу, как из собранного лога потом сгенерить сводную таблицу, да и лень разбираться — все равно xperf лучше :–)

  4. EhzoU:

    Батенька, да вы сатонист! Бог ты мой, как много я не знаю!

  5. Avitoba:

    спасибо, я WPT уже нашел вчера. весь вечер с ним ебался, сегодня еще буду.
    проблемка в том, что когда на систему нападает кондрат, этот xperf еле шевелится. сил моих больше нет.

  6. Xuaona:

    да это ***ня! Я сейчас в свободное время буду разбирать ноут, искать сныканный в нём COM–порт, подрубать кернел дебаггер и искать причину с хуяли у меня ноут после установки дров любых перестаётся работать до холодного ребута с отключением питания. Потом все логи буду слать в MS. Уже месяц пытаюсь время найти, народ в MS заждался уже моего экспириенса (:

  7. Lurizerg:

    А при чем здесь WPT? Когда нападает кондрат — начинай собирать логи. Когда попускает — начинай анализировать. Все просто

  8. Avitoba:

    в том–то и дело, что не попускает. когда действо начинается, я еле могу мышью до ребута дотянуться. а если иксперф напускаю — вообще мертвяк. и ладно бы, я сутки потерплю, пущай собирает логи. но ведь пока xperf –d filename не напишешь, отчет не создается.
    Одно спасает — сила напасти разная бывает. подловлю, когда послабее, тогда и попробую.

  9. Avitoba:

    такой вид секса мне известен, дебагил когда–то роутер через сныканый ком–порт. только логи некому было отослать, тк он на линуксе)

  10. Lurizerg:

    Дык эта — включай постоянный трейс. Не забудь только закольцевать файл, а то рискуешь очень быстро распрощаться со всем свободным местом.
    Пуск:
    xperf –on diageasy –f kernel.etl –maxfile 100 –filemode circular

    Можно еще «–flushtimer 1» сделать. Для пущей надежности
    Открою один секрет: лог–файл пишется прямо из ядра, а мержить необязательно. То бишь
    xperf –stop
    И усе. Вполне может сработать и простой резет, хотя я и не уверен. ETW вообще говоря предназначен для поиска дефектов (в том числе и performance, но не ограничиваясь ими — и тот же WPP, основанный на ETW весьма неплохо переживает bugcheck–и).

  11. Avitoba:

    спасибо. это именно то, что я искал, но не нашел.

  12. Avitoba:


    а вот это означает, что symbols не подключены или что? и при чем здесь, казалось бы symbols?

  13. Avitoba:

    подрубил символы. Как и опасался, драйвером оказался usbport.sys, т.е. ничего конкретного. нашел здесь чувака с таким же диагнозом, у него все разрешилось удалением драйвера Daemon tools sptd.sys и сбросом биоса на дефолт. Думаю дальше.

  14. Lurizerg:

    Попробуй еще profile трейсы со stackwalk–ом: не сам же по себе usbport решил с ума сойти — возможно его кто–то дергает. Сразу же жди примерно 10% загрузки процессора (а что делать)

  15. Avitoba:

    В общем, выследил я драйвер, который вызывает странное поведение системы. это dnetr7364.sys — D–Link USB Extensible Wireless LAN Cardoh Driver (Ralink 802.11 USB Wireless Adapter Driver Ralink Technology, Corp. windowssystem32driversdnetr7364.sy s)
    Xperf всякий раз показывал максимальную загрузку usbport.sys, а в стеке всегда висел этот dnetr7364, но процессор сам не нагружал.
    Я загрузился в безоп.оежим и заметил, что устройства USB работают нормально, сделал слепок загруженных драйверов. Загрузился в норм.режим, сравнил список драйверов и, отбросив дрова производства майкрософт, обнаружил тот самый драйвер. снял его из автозагрузки и все стало ок. но бля, wifi отключен.
    что сейчас делать — не понимаю. самое интересное, что до некоторого времени все работало совместно и дружно, т.е. дружить дровам мешает чтото еще. видать, придется систему переставлять.

  16. TaCeQ:

    Проверь саму карту. У меня было нечто похожее — умирающая PCIMCA д–линковская карта наглухо вешала всю систему при загрузке, работая только если ее воткнуть в уже загруженную систему.

Добавить комментарий

Ваш e-mail не будет опубликован.