The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..., opennews (??), 18-Ноя-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


20. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +1 +/
Сообщение от Аноним (20), 18-Ноя-19, 13:54 
Кто то может пояснить как DPDK работает с железом в обход ядра?
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +1 +/
Сообщение от Аноним (21), 18-Ноя-19, 14:10 
Регистры железа мапятся в адресное пространство процесса.
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +1 +/
Сообщение от Аноним (48), 18-Ноя-19, 15:31 
в ядре выполняется мини модуль - который представляет user land доступ к некоторому ring buffer.
+ события.
Этот ring - доступен как hugepages для всех - что уменьшает количество страниц требуемых для работы большими объемами данных.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

70. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +/
Сообщение от GentooBoy (ok), 18-Ноя-19, 22:55 
Предоставлять доступ к адресному пространству ядра или работать из ядра с памятью в пространстве пользователя плохая практика, может грозить проблемами с безопастностью
Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +/
Сообщение от Аноним (48), 18-Ноя-19, 23:22 
вам шашечки или ехать?

можно тупить пытаясь пропихать кучу трафика через page cache, а можно использовать раз выделенные буфера замасленные в userspace и иметь z-copy. Второй подход дает пропускную раз в 10-15 выше.

Так что вы уж решите что вам подходит.. хотя для админов Localhost это наверно не важно.

Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +/
Сообщение от Клапауций (ok), 19-Ноя-19, 03:54 
> Предоставлять доступ к адресному пространству ядра или работать из ядра с памятью в пространстве
> пользователя плохая практика, может грозить проблемами с безопастностью

А оно не делает ни того, ни другого, вообще-то. DPDK обычно запирает PCI, и не только, устройства за IOMMU посредством VFIO, так что никакое ядро в память пользователя не лезет, как и сам процесс в адресное пространство ядра. Один из немногих опциональных сервисов, который ядро предлагает DPDK процессу после того, как всё сконфигурировалось - это сообщать о прерываниях, генерируемых устройством для нечастых событий, типа link down/up.

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

89. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +/
Сообщение от Аноним (48), 19-Ноя-19, 06:57 
посмотри плиз что такое VFIO - и посмотри как huge pages мапятся в дескрипторы у сетевухи (hint - то что там называют PMD - не является полным драйвером).
Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск сетевого стека F-Stack 1.13,  выполняемого в простран..."  +/
Сообщение от Клапауций (ok), 21-Ноя-19, 02:20 
> посмотри плиз что такое VFIO - и посмотри как huge pages мапятся
> в дескрипторы у сетевухи (hint - то что там называют PMD
> - не является полным драйвером).

Откройте сокровенное знание, что есть полный драйвер? А то я, написав несколько PMD для наших железок, в недоумении. По моему скромному разумению, то, что называетcя PMD - это именно полный драйвер для управления устройством. Кто-то его, собственно, обязан инициализировать и дёргать, это код в процессе, использующем DPDK и слинкованом с DPDK библиотеками, таком как VPP, F-Stack или какого-то из примеров. Принимает он, понимаете, пакетики из RX rings, запихивает их в TX rings, получает TX status обратно, обрабатывает link status-ы - какой магической субстанции ему не хватает для полноценности в глазах Анонима?

Насчёт как hugepages мапятся в дескрипторы я как бы знаю, сдаётся, как минимум не хуже вас, и у меня для вас сюрприз - точно так же, как и я ядре, с той только разницей, а что собственно выступает в качестве DMA адреса (IOVA). Обычно это либо либо собственно физический адрес (PHYS), либо вообше virtual address в процессе (VA) - это уж зависит от какой IOMMU, и какой режим поддерживается UIO драйвером, что диктует, как соответствующие области памяти процесса будут прописаны в IOMMU, и будет ли IOMMU использоваться вообще. Из предлагаемых vfio-pci, vfio-dpaa[2], uio_pci_generic и uio_idb все чуток разнятся. К примеру, прокси MSI и MSI-X прерываний поддерживает только vfio-pci, а uio_igb и uio_pci_generic могут только в INTx. Режим IOVA == VA могут только vfio-{dpaa2,vpp}, если IOMMU не выключен специально.

Учитывая вышесказанное, таки поделитесь, в какую область DPDK процесса лезет ядро, и в какую область ядра может несанционированно пробраться коварный DPDK process? Плиз.


Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру