Сетевая подсистема в l4re и genode
TRANSCRIPT
Вступление
● Ankh● Lwip● l4shmnet● Сетевой контроллер Intel 82574L, пропускная способность 1 Гбит/с
Вступление
l4shmnet
L4Linux
l4shmnet
L4Linux
L4LinuxAnkhPC, Linux
Вступление
L4LinuxAnkh
PC, Linux
L4Linux
Lwip,iperf
AnkhPC, Linux
Ankh
AnkhDDEKit
io
libvbus
Linuxdriver
NIC
Application lwipankh
libankh
lib
Копирование пакета, ankh
Rx ring buffer
Tx ring buffer
Rx ring buffer
Tx ring buffer
Application
Ankh
Rx ring buffer
Rx buffer Tx buffer
NIC
DMA DMARx прерывание
Tx прерываниеRx прерывание
Копирование пакета, l4shmnet
Rx ring buffer1
Rx ring buffer2
L4Linux1
L4Linux2
Rx ring buffer2
Rx ring buffer1
Rx interrupt1 Rx interrupt2
Полученные результаты
L4Linux1->L4Linux2L4Linux1 - 1L4Linux2 - 1
2 Гбит/c
L4Linux1 - 1L4Linux2 - 2
900 Мбит/c
Полученные результаты
PC->L4Linux1 PC->L4Linux2
Ankh - 1L4Linux1 - 1L4Linux2 - 1
900 Мбит/c 900 Мбит/c
Ankh - 1L4Linux1 - 1L4Linux2 - 2
900 Мбит/c 500 Мбит/c
Ankh - 1L4Linux1 - 2L4Linux2 - 2
150 Мбит/с 150 Мбит/с
Полученные результаты
iperf+lwip, ankh 15 Мбит/с
Причины возникновения накладных расходов
● Переключение контекста● Копирование● Блокировки на доступ к памяти● Межпроцессорное взаимодействие
Модификация ankh и shmc
Rx ring buffer
Tx ring buffer
Rx ring buffer
Tx ring buffer
Приложение
NIC
DMADMA
Ankh
Модификация ankh и shmc
Приложение
Ankh
Поллинг Tx прерываний
Флаг
Поллинг Rx прерываний
Флаг
Методы увеличения производительности сетевого
стека● LRO, TSO
● Параллельное выполнение
- Паралельная обработка пакетов
(Message-based)
- Параллельная обработка соединений
(Connection-based)