Высокий уровень ввода-вывода на хосте KVM / LXC приведет к зависанию сервера, но не на гостевом (Proxmox / Debian).

Вариант 1 (прямой доступ через /sys/.../resource0)

Хорошо для тестирования, функционально нет ничего плохого, хотя не может делать ничего продвинутого и нет абстракции уровня драйверов. Я считаю этот метод неприглядным из-за того, как пользовательская программа взаимодействует с sysfs, но это может быть мое личное мнение.

Вариант 2 (с использованием uio_pci_generic)

Я не знаю, что делает uio_pci_generic, но, похоже, он добавляет немного функциональности, помимо разрешения вашей пользовательской программе доступа к устаревшим прерываниям pci. Это плохо, потому что в любом случае предпочтение отдается MSI.

Вариант 3 (настраиваемый драйвер uio)

Я не пробовал это, но подозреваю, что это небольшая трата времени по сравнению с вариантом 4

Вариант 4 (настраиваемый драйвер ядра )

Это действительно лучшее решение и единственный способ все делать правильно. Вам нужен драйвер, чтобы иметь возможность правильно обрабатывать такие вещи, как DMA и MSI, и иметь возможность предоставлять любую абстракцию через символьное устройство. Однако существует обширная документация о том, как писать драйверы для карт PCI в Интернете, а ядро ​​обеспечивает большую поддержку для управления вещами.

0
06.01.2018, 12:56
0 ответов

Теги

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