Если многие люди работают над системой, IO может стать большой проблемой: При запуске программы системе, возможно, придется загрузить материал из жесткого диска (программные файлы, библиотеки, ресурсы), и память могла бы быть полной также (ведущий к подкачке, используемой в большой степени). Жесткие диски являются медленными. Как в действительно замедляются.
Существует программа, названная "iotop", который позволяет Вам отслеживать, который использует пользователь, сколько IO и сколько диска IO Вы имеете в целом. Мог бы помочь Вам заставить некоторый материал доказывать администраторам, что система на самом деле работает плохо и почему.
Самая близкая вещь, которую шина PCI имеет к сбросу уровня устройств, изменяет состояние электропитания на D3 и назад на D0. После разгрузки драйвера (это было бы плохо для сброса аппаратных средств из-под драйвера), можно использовать setpci
для записи в регистры управления для изменения состояния электропитания но я полагаю, что это происходит автоматически при разгрузке драйвера.
Так как универсальное устройство PCI не заменяемо в горячем режиме не будет способа сбросить его и иметь ядро, повторно перечисляют его.
Независимо от того, что вид проблем, которые Вы пытаетесь решить, там конечно, является лучшим путем, чем просто сбросить его.
согласно http://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci можно сбросить отдельные функции устройства, если это поддерживается:
What: /sys/bus/pci/devices/.../reset
Description:
Some devices allow an individual function to be reset
without affecting other functions in the same device.
For devices that have this support, a file named reset
will be present in sysfs. Writing 1 to this file
will perform reset.
Проблема с приведенными выше решениями заключается в том, что они требуют совместной работы устройства; однако в большинстве сценариев причиной его сброса является именно его не -кооперативность.
Однако, как описано здесь , есть еще один, "более жесткий" способ его сброса на уровне PCI :мы удаляем его с шины PCI и затем повторно -вставляем путем повторного сканирования.
Этапы:
echo 1 >/sys/bus/pci/<pci-id-of-device>/remove
. Мы можем найти его PCI ID с помощью команды lspci
. echo 1 >/sys/bus/pci/rescan
У меня тут глючит pci-устройство, иногда PCI -уровень сбрасывается, иногда этот трюк с удалением -readd исправляет. Я собираюсь написать скрипт, чтобы сделать это автоматически.:-)