====== DPDK auf einem Debian installieren ====== Erst ein Debian wie gewohnt installieren. Hugepages einrichten: nano /etc/default/grub Dort dann an an den Inhalt von GRUB_CMDLINE_LINUX_DEFAULT folgendes ergänzen: default_hugepagesz=1G hugepagesz=1G hugepages=4 intel_iommu=on iommu=pt Konfig anwenden: update-grub Dateisystem für Hugetables anlegen: mkdir /mnt/huge_1GB nano /etc/fstab Folgendes am Ende einfügen nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0 rebooten reboot Prüfen ob Hugepages wirklich da sind: cat /proc/meminfo | grep -i huge Ausgabe: AnonHugePages: 28672 kB ShmemHugePages: 0 kB HugePages_Total: 4 HugePages_Free: 4 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 1048576 kB Hugetlb: 4194304 kB Sind die Hugepages gemountet? cat /proc/mounts | grep -i /mnt/huge_1GB Ausgabe: nodev /mnt/huge_1GB hugetlbfs rw,relatime,pagesize=1024M 0 0 Testen, ob iommu läuft: ls -al /sys/kernel/iommu_groups/ Das Verzeichnis sollte nun nicht mehr leer sein. Ein paar Pakete installieren: apt update && apt upgrade apt install build-essential python3 meson ninja-build libnuma-dev Kernelmodule laden modprobe vfio-pci DPDK herunterladen wget http://fast.dpdk.org/rel/dpdk-20.02.tar.xz tar xJf dpdk-20.02.tar.xz cd dpdk-20.02 export RTE_SDK=$(pwd) Geräte anziegen lassen ${RTE_SDK}/usertools/dpdk-devbind.py -s Geräte binden ${RTE_SDK}/usertools/dpdk-devbind.py --bind=vfio-pci 0000:01:00.0 ${RTE_SDK}/usertools/dpdk-devbind.py --bind=vfio-pci 0000:01:00.1 DPDK bauen cd ${RTE_SDK} make defconfig make Ein Beispiel ausführen: cd ${RTE_SDK}/examples/helloworld export RTE_TARGET=build make