Посмотрел, что там с ресурсами компьютера, — одно ядро занято под завязку. С хрена ли — неясно. В «процессах» ничего такого нет. Внезапно вспомнил про «монитор ресурсов». Вхожу туда, там все ресурсы одного из ядер отъедают «отложенные системные прерывания». Что делать? Без системных прерываний, ясен перец, никуда — их не заанинстоллишь.
В гугла́х и интернетах по этому поводу советы вида «поставьте Хрен-в-Пень дебаггер и дебажте им до посинения». Я-то ожидал простого и понятного совета: «удалите вот такую хрень» или «поставьте галку вон там», — тут у нас не Линукс, фанатов что-то там дебажить в ОС — нет.Или пишут: «а это драйвера». Ну, я и сам догадался, что драйвера, мне легче от этого стало. По поводу драйверов советуют, как обычно, всё обновить, потом удалить, а потом заново установить. Сначала по очереди драйвера всех устройств, потом ещё какие-нибудь программы, а когда и их не останется — операционную систему. Свежепоставленная, пишут, должна работать без этой проблемы. Ну, гарантии, конечно, нет, но шансы есть.
Такой вариант меня, само собой, тоже не устроил. Я был готов на откат к предыдущим конфигурациям или, как максимум, к переустановке Винды поверх текущей, но не более. Таким образом, оставался только отказ от ждущего режима или же пользование им с перезагрузками перед любой ресурсоёмкой операцией: раз в день вроде как не страшно.
В общем, не знаю как, но в процессе разглядывания диспетчера устройств внутренний голос из самых внутренних глубин внутренностей вдруг посоветовал мне отключить некий marvell-драйвер жёсткого диска. Не спрашивайте, как мне удалось до этого догадаться, я сам не в курсе. Для такого у меня не было решительно никаких предпосылок. Я даже не знаю, откуда взялся этот драйвер — должно быть установился вместе с какими-то драйверами материнской платы.
После удаления драйвера проблема внезапно исчезла. Жёсткий диск при этом продолжил работать без изменений.
Данное явление — прерывания, отжирающие все ресурсы ядра — по-английски называется «interrupt storm». Называется уже очень давно. Явление часто возникает при работе под «Продвинутым Программируемом Контроллере Прерываний», что в очередной раз как бы намекает нам: «продвинутыми» в современности зачастую называется проявляющее себя крайне странно.
Говорят, такая штука затрахивает большинство операционных систем до глубокой комы, хотя некоторые ОС иногда всё-таки и пытаются с ней бороться.
Лично же мне при этом непонятно: если это такая распространённая проблема, отчего бы не встроить в ОС простейший способ её решения? ОС ведь знает, какой девайс/драйвер сейчас изводит её прерываниями. Казалось бы, по требованию пользователя можно было бы сказать что-то типа: «а вот сейчас особо активен драйвер марвелл-хренавера, не желаете ли, мы его сейчас сразу же тоталитарно заанинстоллим, переинициализируем или хотя бы на время приподотключим?». Что мешает ровно то же самое сказать даже без требования, обратно же, неясно. Просто, вот, не говорят почему-то. ОС знает, но молчит. Только пытка спец-дебаггером позволяет развязать ей язык, да и то не всегда.
При этом седьмая Винда запросто перезапускает без перезагрузки не только драйвера, но и даже эксплорер, если с ними что-то вдруг стало не так. Но если спамить прерываниями — всё нормально. Видимо, это слишком мало для перезапуска — отожрать все ресурсы всего-то одного ядра. Их ведь у большинства народа минимум два, а у многих даже четыре.
И как в такой ситуации быть пользователю, на которого внезапное озарение от Будды не снизошло?
Свежие комментарии