Сбросьте устройство PCI в Linux

Если многие люди работают над системой, IO может стать большой проблемой: При запуске программы системе, возможно, придется загрузить материал из жесткого диска (программные файлы, библиотеки, ресурсы), и память могла бы быть полной также (ведущий к подкачке, используемой в большой степени). Жесткие диски являются медленными. Как в действительно замедляются.

Существует программа, названная "iotop", который позволяет Вам отслеживать, который использует пользователь, сколько IO и сколько диска IO Вы имеете в целом. Мог бы помочь Вам заставить некоторый материал доказывать администраторам, что система на самом деле работает плохо и почему.

12
23.01.2012, 07:15
4 ответа

Самая близкая вещь, которую шина PCI имеет к сбросу уровня устройств, изменяет состояние электропитания на D3 и назад на D0. После разгрузки драйвера (это было бы плохо для сброса аппаратных средств из-под драйвера), можно использовать setpci для записи в регистры управления для изменения состояния электропитания но я полагаю, что это происходит автоматически при разгрузке драйвера.

5
27.01.2020, 19:56

Так как универсальное устройство PCI не заменяемо в горячем режиме не будет способа сбросить его и иметь ядро, повторно перечисляют его.

Независимо от того, что вид проблем, которые Вы пытаетесь решить, там конечно, является лучшим путем, чем просто сбросить его.

1
27.01.2020, 19:56
  • 1
    , который я моделирую устройство PCI в QEMU и потребности сбросить, это - состояние, поскольку я разрабатываю. Я хотел сделать это из гостя. –  Jonathan 24.01.2012, 07:20
  • 2
    У меня есть ошибочная карта CCTV PCI, она работает, но иногда умирает с segfault. После этого целая система должна быть перезапущена со сбросом PCI, это могло быть преодолимо... Система устойчива, никакой вред, только видеовход получает пробел, поэтому иногда это - лучшее решение сбросить PCI, чем перезапуск целой машины каждый день. (особенно, если Вы на расстоянии в 8000 км от той машины в течение 6 месяцев), отличное решение –  Gipsz Jakab 14.06.2017, 11:41

согласно 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.
6
27.01.2020, 19:56

Проблема с приведенными выше решениями заключается в том, что они требуют совместной работы устройства; однако в большинстве сценариев причиной его сброса является именно его не -кооперативность.

Однако, как описано здесь , есть еще один, "более жесткий" способ его сброса на уровне PCI :мы удаляем его с шины PCI и затем повторно -вставляем путем повторного сканирования.

Этапы:

  1. echo 1 >/sys/bus/pci/<pci-id-of-device>/remove. Мы можем найти его PCI ID с помощью команды lspci.
  2. echo 1 >/sys/bus/pci/rescan

У меня тут глючит pci-устройство, иногда PCI -уровень сбрасывается, иногда этот трюк с удалением -readd исправляет. Я собираюсь написать скрипт, чтобы сделать это автоматически.:-)

6
27.01.2020, 19:56

Теги

Похожие вопросы