bakalářská práce

XDP ovladač pro platformu NDK

Text práce 1 MB

Autor práce: Bc. Richard Hyroš

Ak. rok: 2024/2025

Vedoucí: Ing. Jiří Matoušek, Ph.D.

Oponent: Ing. Lukáš Kekely, Ph.D.

Abstrakt:

Snahy dosáhnout vysokých internetových rychlostí vedou ke zjištění, že se CPU stává limitujícím prvkem. Jednou z nejnáročnějších částí zpracování paketů na CPU, je posílat je skrze network stack operačního systému. Tato část systému, která implementuje mimo jiné i L3 a L4 protokoly, představuje klasickou směnu rychlosti za pohodlnost. Z tohoto důvodu začaly vznikat technologie pro její obejití. Tyto technologie většinou přenáší celé zpracování do user-space. Toto je hlavní rozdíl XDP (eXpress Data Path), které se snaží dosáhnout stejného výkonu, ale stále fungovat v rámci kernelu. Dosahuje toho tím, že umožňuje vývojáři rozhodnout brzo v kernelovém ovladači, jestli bude paket poslán do network stacku, zahozen, nebo přesměrován přímo do user-space. Implementace tohoto ovladače je hlavním cílem této práce.

Klíčová slova:

XDP, AF_XDP, ovladač, zpracování paketů, Linux

Termín obhajoby

16.06.2025

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Otázky k obhajobě

  1. Jaký je aktuální stav a postup začlenění (Merge Request) vytvořené implementace do hlavní větve softwarového balíčku/repozitáře platformy NDK? Kdy očekáváte dokončení tohoto procesu?
  2. V kapitole 8.1 jsou uvedeny další identifikována rozšíření vytvořené implementace. Jsou některé z nich kritické pro praktické nasazení? Existuje plán s pořadím a časovým odhadem pro jejich postupnou realizaci?
  3. V kapitole 7 je vyhodnocení propustnosti realizováno na starší kartě se 100GbE síťovými porty a jen PCIe gen3. Je možné demonstrovat vyšší výkon XDP implementace na novější kartě se 400GbE portem a PCIe gen4 nebo gen5?
  4. Kolikrát, přibližně, bylo při ladění implementace XDP řadiče dosaženo kernel panic stavu OS nebo zaseknutí PCIe sběrnice počítače?
  5. Jaká byla zpětná vazba z konference?
  6. Z pohledu stability, testoval jste na reálném provozu?

Jazyk práce

angličtina

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. RNDr. Milan Češka, Ph.D. (předseda)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Zdeněk Materna, Ph.D. (člen)
doc. Ing. Jan Kořenek, Ph.D. (člen)
Ing. Jaroslav Rozman, Ph.D. (člen)

Posudek vedoucího
Ing. Jiří Matoušek, Ph.D.

Bakalářskou práci považuji za nadstandardní jak rozsahem vykonaných prací, tak kvalitou implementovaných programových výstupů. To ostatně potvrzuje i přijetí Lightning Talku na konferenci TNC25. Jedinou drobnou vadou na kráse je tak technická zpráva, která by si ještě zasloužila o trochu víc pozornosti. I přesto hodnotím bakalářkou práci známkou A.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Cílem této bakalářské práce bylo implementovat podporu technologie XDP v softwarové části platformy NDK vyvíjené sdružením CESNET. Zavedení této technologie přitom vyžadovalo úpravu nejen v ovladači zařízení využívajících platformu NDK, ale také v softwarových nástrojích využívajících tento ovladač. Spolu s požadavkem na srovnání parametrů implementovaného ovladače s obdobnými implementacemi tak zadání bakalářské práce značně přesahuje běžný rozsah. I přesto bylo zadání kompletně splněno, takže jsem s dosaženými výsledky velmi spokojen.

Práce s literaturou

Od výběru až po využití student pracoval s uvedenými literárními zdroji zcela samostatně.

Aktivita během řešení, konzultace, komunikace

Student na tématu průběžně pracoval již od loňského léta a po celou tuto dobu byl v úzkém kontaktu s odborným konzultantem ze sdružení CESNET. Na konzultace byl vždy řádně připraven.

Aktivita při dokončování

Technická zpráva byla dokončována na poslední chvíli, ale i tak se podařilo zrealizovat alespoň jedno kolo komentářů k její první kompletní verzi. Kromě značného rozsahu prací vyžadovaných zadáním vidím důvody pozdního dokončování především v přípravě na Lightning Talk k tématu bakalářské práce na konferenci TNC25 (viz níže), což považuji za dostatečně dobrý důvod.

Publikační činnost, ocenění

Student se s tématem řešeným v bakalářské práci zapojil do Future Talent Programme organizace GÉANT, v rámci něhož byl vybrán k prezentaci 5minutového Lightning Talku na konferenci TNC25, která se koná 9.-13. 6. 2025 v anglickém Brightonu.

Výsledný počet bodů navržený vedoucím: 98

Známka navržená vedoucím: A

Student vytvořil zajímavou implementaci řadiče XDP datových přenosů jako integrovanou součást open source softwarového vybavení FPGA akcelerační platformy NDK. Kvalitou a výkonem tato implementace nezaostává za realizacemi jiných datových rozhraní na této platformě. Praktické využití je tedy jednoduše možné. Slabším místem práce je textová zpráva, která by mohla být trochu delší a lépe zkontrolována. 


Celkově navrhuji hodnocení stupněm A za 90 bodů. 

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: obtížnější zadání

Student musel nastudovat, navrhnout a implementovat softwarový modul na úrovni jádra operačního systému Linux. Modul navíc přímo spolupracuje se specifickou hardwarovou platformou a zajišťuje realizaci DMA přenosů dat skrze PCIe sběrnici. Nejen samotná rozsáhlá realizace, ale zejména pak ladění takovéto implementace a její podrobné testování přímo vyžadováno zadáním není jednoduché. 

Prezentační úroveň technické zprávy

Zpráva podrobně popisuje XDP rozhraní. Pak jen stručně zmíní vlastnosti NDK platformy a samotné jádro vlastního návrhu řešení. Hlavní objem textu se pak věnuje popisu implementace jednotlivých realizačních částí a jejich testování s vyhodnocením výsledků. Pro implementační práci je popsané rozdělení rozsahu žádoucí. Avšak, jak již bylo zmíněno, rozsáhlejší text v kapitolách 3 a 4 by práci vylepšil. Celkově návaznost kapitol odpovídá bodům zadání, jednoduše se sleduje a čtenář je veden k jasným závěrům zamýšleným autorem. 

85
Formální úprava technické zprávy

Práce je napsané v angličtině na dostatečně kvalitní úrovni. Po typografické stránce bych doporučil odstranění osamocených slov na novém řádku (např. obrázky 2.1 a 2.5 v seznamu nebo první věta kapitoly 4). Z jazykové stránky bych doporučil kontrolu pravopisu a překlepů (např. rovnou nadpisy 7.1.2, 7.2.3 a 7.3.1) spolu s podrobným přečtením textu a doplněním omylem vynechaných slov (např. "For visualization, the plot of L2 speeds is chosen Figure 7.1."). Celkově takto text práce zbytečně působí dojmem dopsání na poslední chvíli bez adekvátní kontroly.

80
Realizační výstup

Výsledkem práce je implementace řadiče XDP API pro datové přenosy paketů mezi operační pamětí počítače a FPGA síťovou kartou NDK platformy. Součástí implementace jsou také uživatelské nástroje pro demonstraci použití tohoto rozhraní. Implementace byla otestována v kombinaci s cílovým hardware v podobě akceleračních síťových FPGA karet. Dosaženo je zároveň propustnosti dostatečné pro praktické vysokorychlostní nasazení na 100GbE a rychlejších sítích. Tento výkon je porovnatelný s existujícími implementacemi alternativních API datové cesty (NDP a DPDK).

100
Využitelnost výsledků

Výsledná realizace bude součástí open source softwarového repozitáře platformy NDK, kde přidává zajímavou novou funkcionalitu. Praktické využití výsledků je možné v řešených výzkumných projektech sdružení Cesnet nebo v komerčním nasazení produktů společnosti DynaNIC. Doporučil bych také zkusit podat informaci o XDP podpoře v NDK a porovnání výkonu jednotlivých API datové cesty jako poster nebo student paper na vhodnou FPGA nebo síťovou konferenci.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Student splnil všechny body zadání. Zejména navrhl a implementoval XDP řadič včetně uživatelských nástrojů, které využil pro testování a měření propustnosti přenosů dat.

Rozsah technické zprávy

Stupeň hodnocení: splňuje pouze minimální požadavky

Text práce má jen asi 41 normostran. Celkově je sice napsaný jasně a nic zásadního v něm nechybí. Ocenil bych ale vyšší míru detail v některých částech, zejména v teoretickém rozboru a návrhu. Konkrétně, kapitola 3 popisuje celou NDK platformu jen na dvou stranách nebo kapitola 4 vysvětluje jádro návrhu implementace také jen na dvou stranách.

Práce s literaturou

Autor používá a cituje relevatní primární zdroje pro všechny potřebné technologie. Celkový počet referencí odpovídá standardu implementační bakalářské práce.

85
Otázky k obhajobě:
  1. Jaký je aktuální stav a postup začlenění (Merge Request) vytvořené implementace do hlavní větve softwarového balíčku/repozitáře platformy NDK? Kdy očekáváte dokončení tohoto procesu?
  2. V kapitole 8.1 jsou uvedeny další identifikována rozšíření vytvořené implementace. Jsou některé z nich kritické pro praktické nasazení? Existuje plán s pořadím a časovým odhadem pro jejich postupnou realizaci?
  3. V kapitole 7 je vyhodnocení propustnosti realizováno na starší kartě se 100GbE síťovými porty a jen PCIe gen3. Je možné demonstrovat vyšší výkon XDP implementace na novější kartě se 400GbE portem a PCIe gen4 nebo gen5?
  4. Kolikrát, přibližně, bylo při ladění implementace XDP řadiče dosaženo kernel panic stavu OS nebo zaseknutí PCIe sběrnice počítače?
Výsledný počet bodů navržený oponentem: 90

Známka navržená oponentem: A

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová