Projet

Général

Profil

DPDK » Historique » Version 9

Mehdi Abaakouk, 02/05/2014 17:01

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. DPDK
4 1 Laurent GUERBY
5 1 Laurent GUERBY
Traitement haute performance en logiciel, 10 Gbit/s en petit paquets line rate
6 1 Laurent GUERBY
7 1 Laurent GUERBY
h2. Liens
8 1 Laurent GUERBY
9 1 Laurent GUERBY
* http://dpdk.org
10 1 Laurent GUERBY
* [[AtelierPPS2012]]
11 2 Laurent GUERBY
12 2 Laurent GUERBY
h2. Misc
13 2 Laurent GUERBY
14 2 Laurent GUERBY
* Intel PCI id http://www.intel.com/support/network/sb/cs-012904.htm
15 3 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-products.html?iid=embed_portal+hdprod_ethernet#s1=Gigabit%20Ethernet&s2=all&s3=all
16 3 Laurent GUERBY
* Intel Pro/1000 PT vs CT http://hardforum.com/showthread.php?t=1386042
17 4 Laurent GUERBY
* http://images.ncix.com/forumimages/C9864B87-583B-10FB-B0DE80742781CE07.jpg
18 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82572EI&s3=all
19 4 Laurent GUERBY
* http://www.intel.com/content/www/us/en/ethernet-controllers/ethernet-controllers.html#s1=all&s2=82574L&s3=all
20 5 Laurent GUERBY
* https://github.com/Pktgen/Pktgen-DPDK
21 6 Laurent GUERBY
* Evaluating the Suitability of Server Network Cards for Software Routers http://kfall.net/ucbpage/papers/snc.pdf
22 7 Mehdi Abaakouk
23 7 Mehdi Abaakouk
24 7 Mehdi Abaakouk
h2. Note sileht dpdk:
25 7 Mehdi Abaakouk
26 7 Mehdi Abaakouk
Extract from: http://www.intel.com/content/dam/www/public/us/en/documents/guides/intel-dpdk-getting-started-guide.pdf
27 7 Mehdi Abaakouk
28 7 Mehdi Abaakouk
h3. configuration hugepages: 
29 7 Mehdi Abaakouk
30 7 Mehdi Abaakouk
* 2M (1024*2k): hugepages=1024 (at runtime: echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages)
31 7 Mehdi Abaakouk
* 4G (4x1G): default_hugepagesz=1G hugepagesz=1G hugepages=4 (only works at boot time via grub)
32 7 Mehdi Abaakouk
33 7 Mehdi Abaakouk
<pre>
34 7 Mehdi Abaakouk
mkdir /mnt/huge
35 7 Mehdi Abaakouk
mount -t hugetlbfs nodev /mnt/huge
36 7 Mehdi Abaakouk
</pre>
37 7 Mehdi Abaakouk
38 7 Mehdi Abaakouk
h3. Compile and load modules: 
39 7 Mehdi Abaakouk
40 7 Mehdi Abaakouk
_Note: source tools/setup.sh is a helper tools for this but works only with IGB driver not e1000e_
41 7 Mehdi Abaakouk
42 1 Laurent GUERBY
<pre>
43 8 Mehdi Abaakouk
# apt-get install make gcc linux-headers-amd64
44 8 Mehdi Abaakouk
# make config T=x86_64-default-linuxapp-gcc
45 7 Mehdi Abaakouk
# make T=x86_64-default-linuxapp-gcc
46 7 Mehdi Abaakouk
..
47 7 Mehdi Abaakouk
Build complete
48 7 Mehdi Abaakouk
49 7 Mehdi Abaakouk
# modprobe uio  (I think this is not useful)
50 7 Mehdi Abaakouk
# insmod build/kmod/rte_kni.ko (I think this is not useful)
51 7 Mehdi Abaakouk
# insmod build/kmod/igb_uio.ko (I think this is not useful)
52 7 Mehdi Abaakouk
# ./tools/pci_unbind.py --status
53 7 Mehdi Abaakouk
54 7 Mehdi Abaakouk
Network devices using IGB_UIO driver
55 7 Mehdi Abaakouk
====================================
56 7 Mehdi Abaakouk
<none>
57 7 Mehdi Abaakouk
58 7 Mehdi Abaakouk
Network devices using kernel driver
59 7 Mehdi Abaakouk
===================================
60 9 Mehdi Abaakouk
0000:00:19.0 '82579LM Gigabit Network Connection' if=eth1 drv=e1000e unused=<none>
61 9 Mehdi Abaakouk
0000:01:00.0 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth6 drv=ixgbe unused=igb_uio *Active*
62 9 Mehdi Abaakouk
0000:01:00.1 '82599EB 10-Gigabit SFI/SFP+ Network Connection' if=eth7 drv=ixgbe unused=igb_uio
63 9 Mehdi Abaakouk
0000:04:00.0 '82571EB Gigabit Ethernet Controller' if=eth2 drv=e1000e unused=igb_uio *Active*
64 9 Mehdi Abaakouk
0000:04:00.1 '82571EB Gigabit Ethernet Controller' if=eth3 drv=e1000e unused=igb_uio
65 9 Mehdi Abaakouk
0000:05:00.0 '82571EB Gigabit Ethernet Controller' if=eth4 drv=e1000e unused=igb_uio
66 9 Mehdi Abaakouk
0000:05:00.1 '82571EB Gigabit Ethernet Controller' if=eth5 drv=e1000e unused=igb_uio
67 9 Mehdi Abaakouk
0000:06:00.0 'RTL8111/8168B PCI Express Gigabit Ethernet controller' if=eth0 drv=r8169 unused=<none> *Active*
68 1 Laurent GUERBY
69 1 Laurent GUERBY
Other network devices
70 1 Laurent GUERBY
=====================
71 1 Laurent GUERBY
<none>
72 9 Mehdi Abaakouk
</pre>
73 7 Mehdi Abaakouk
74 9 Mehdi Abaakouk
test sur eth7:
75 9 Mehdi Abaakouk
76 9 Mehdi Abaakouk
<pre>
77 9 Mehdi Abaakouk
# ip link set eth7 down
78 9 Mehdi Abaakouk
# ./tools/pci_unbind.py --bind=igb_uio 0000:01:00.1
79 7 Mehdi Abaakouk
</pre>
80 7 Mehdi Abaakouk
81 7 Mehdi Abaakouk
h3. Prepare examples programs:
82 7 Mehdi Abaakouk
83 7 Mehdi Abaakouk
<pre>
84 7 Mehdi Abaakouk
# export RTE_SDK=/root/sileht/dpdk-1.6.0r1
85 7 Mehdi Abaakouk
# export RTE_TARGET=build
86 7 Mehdi Abaakouk
# cd /root/sileht/
87 7 Mehdi Abaakouk
# cp -r $RTE_SDK/examples/helloworld my_rte_app
88 7 Mehdi Abaakouk
# cd my_rte_app
89 7 Mehdi Abaakouk
# make
90 7 Mehdi Abaakouk
</pre>
91 7 Mehdi Abaakouk
92 7 Mehdi Abaakouk
93 7 Mehdi Abaakouk
h3. Tests
94 7 Mehdi Abaakouk
95 7 Mehdi Abaakouk
<pre>
96 1 Laurent GUERBY
</pre>