@@ -38,44 +38,59 @@ Currently, besides authorized DNS server of DNSPod, there are various products i
38
38
yum install numactl-devel # on Centos
39
39
#sudo apt-get install libnuma-dev # on Ubuntu
40
40
41
+ # Install dependencies (FreeBSD only)
42
+ #pkg install meson pkgconf py38-pyelftools
43
+
41
44
cd f-stack
42
45
# Compile DPDK
43
46
cd dpdk/
44
47
meson -Denable_kmods=true build
45
48
ninja -C build
46
49
ninja -C build install
47
50
48
- # Set hugepage
51
+ # Set hugepage (Linux only)
49
52
# single-node system
50
53
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
51
54
52
- # or NUMA
55
+ # or NUMA (Linux only)
53
56
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
54
57
echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
55
58
56
- # Using Hugepage with the DPDK
59
+ # Using Hugepage with the DPDK (Linux only)
57
60
mkdir /mnt/huge
58
61
mount -t hugetlbfs nodev /mnt/huge
59
62
60
- # Close ASLR; it is necessary in multiple process
63
+ # Close ASLR; it is necessary in multiple process (Linux only)
61
64
echo 0 > /proc/sys/kernel/randomize_va_space
62
65
63
66
# Install python for running DPDK python scripts
64
67
sudo apt install python # On ubuntu
68
+ #sudo pkg install python # On FreeBSD
65
69
66
70
# Offload NIC
71
+ # For Linux:
67
72
modprobe uio
68
73
insmod /data/f-stack/dpdk/build/kernel/linux/igb_uio/igb_uio.ko
69
74
insmod /data/f-stack/dpdk/build/kernel/linux/kni/rte_kni.ko carrier=on # carrier=on is necessary, otherwise need to be up `veth0` via `echo 1 > /sys/class/net/veth0/carrier`
70
75
python dpdk-devbind.py --status
71
76
ifconfig eth0 down
72
77
python dpdk-devbind.py --bind=igb_uio eth0 # assuming that use 10GE NIC and eth0
73
78
79
+ # For FreeBSD:
80
+ # Refer DPDK FreeBSD guide to set tunables in /boot/loader.conf
81
+ # Below is an example used for our testing machine
82
+ #echo "hw.nic_uio.bdfs=\"2:0:0\"" >> /boot/loader.conf
83
+ #echo "hw.contigmem.num_buffers=1" >> /boot/loader.conf
84
+ #echo "hw.contigmem.buffer_size=1073741824" >> /boot/loader.conf
85
+ #kldload contigmem
86
+ #kldload nic_uio
87
+
74
88
# On Ubuntu, use gawk instead of the default mawk.
75
89
#sudo apt-get install gawk # or execute `sudo update-alternatives --config awk` to choose gawk.
76
90
77
91
# Install dependencies for F-Stack
78
- sudo apt install gcc make libssl-dev # On ubuntu
92
+ sudo apt install gcc make libssl-dev # On ubuntu
93
+ #sudo pkg install gcc gmake openssl pkgconf libepoll-shim # On FreeBSD
79
94
80
95
# Upgrade pkg-config while version < 0.28
81
96
#cd /data
@@ -92,14 +107,16 @@ Currently, besides authorized DNS server of DNSPod, there are various products i
92
107
export FF_PATH=/data/f-stack
93
108
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib/pkgconfig
94
109
cd /data/f-stack/lib/
95
- make
110
+ make # On Linux
111
+ #gmake # On FreeBSD
96
112
97
113
# Install F-STACK
98
114
# libfstack.a will be installed to /usr/local/lib
99
115
# ff_*.h will be installed to /usr/local/include
100
116
# start.sh will be installed to /usr/local/bin/ff_start
101
117
# config.ini will be installed to /etc/f-stack.conf
102
- make install
118
+ make install # On Linux
119
+ #gmake install # On FreeBSD
103
120
104
121
#### Nginx
105
122
0 commit comments