dpdkkni
参考https://blog.csdn.net/sinat_20184565/article/details/92700223
官方文档:
http://doc.dpdk.org/dts/test_plans/kni_test_plan.html [root@localhost dpdk-19.11]# insmod ./build/kmod/rte_kni.ko kthread_mode=multiple insmod: ERROR: could not insert module ./build/kmod/rte_kni.ko: Invalid module format [root@localhost dpdk-19.11]# insmod ./build/build/kernel/linux/kni/rte_kni.ko kthread_mode=multiple insmod: ERROR: could not insert module ./build/build/kernel/linux/kni/rte_kni.ko: Invalid module format [root@localhost dpdk-19.11]# uname -a Linux localhost.localdomain 4.14.0-115.el7a.0.1.aarch64 #1 SMP Sun Nov 25 20:54:21 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux[root@localhost dpdk-19.11]# ls /usr/src/ debug kernels [root@localhost dpdk-19.11]# ls /usr/src/kernels/ 4.18.0-193.28.1.el7.aarch64 [root@localhost dpdk-19.11]# [root@localhost dpdk-19.11]# yum install "kernel-devel-uname-r == $(uname -r)" Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.worria.com * extras: mirror.worria.com * updates: mirror.worria.com file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn"t open file /mnt/repodata/repomd.xml" Trying other mirror. Resolving Dependencies --> Running transaction check ---> Package kernel-devel.aarch64 0:4.14.0-115.el7a.0.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================================================================================================================================ Installing: kernel-devel aarch64 4.14.0-115.el7a.0.1 cdrom 11 M Transaction Summary ================================================================================================================================================================================================================================================================ Install 1 Package Total download size: 11 M Installed size: 43 M Is this ok [y/d/N]: y Downloading packages: Error downloading packages: kernel-devel-4.14.0-115.el7a.0.1.aarch64: [Errno 256] No more mirrors to try. [root@localhost dpdk-19.11]#
挂载CentOS-7-aarch64-Everything-1810.iso [root@localhost dpdk-19.11]# vi /etc/yum yum/ yum.conf yum.repos.d/ [root@localhost dpdk-19.11]# vi /etc/yum yum/ yum.conf yum.repos.d/ [root@localhost dpdk-19.11]# vi /etc/yum.repos.d/ cdrom.repo CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo [root@localhost dpdk-19.11]# vi /etc/yum.repos.d/cdrom.repo [cdrom] name=cdrom baseurl=file:///sr0 enabled=1 gpgcheck=0[root@localhost dpdk-19.11]# yum install "kernel-devel-uname-r == $(uname -r)" Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.worria.com * extras: mirror.worria.com * updates: mirror.worria.com cdrom | 3.6 kB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package kernel-devel.aarch64 0:4.14.0-115.el7a.0.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================================================================================================================================ Installing: kernel-devel aarch64 4.14.0-115.el7a.0.1 cdrom 11 M Transaction Summary ================================================================================================================================================================================================================================================================ Install 1 Package Total download size: 11 M Installed size: 43 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kernel-devel-4.14.0-115.el7a.0.1.aarch64 1/1 Verifying : kernel-devel-4.14.0-115.el7a.0.1.aarch64 1/1 Installed: kernel-devel.aarch64 0:4.14.0-115.el7a.0.1 Complete! [root@localhost dpdk-19.11]#
安装成功 root@localhost dpdk-19.11]# ls /usr/src/kernels/ 4.14.0-115.el7a.0.1.aarch64 4.18.0-193.28.1.el7.aarch64 [root@localhost dpdk-19.11]# [root@localhost dpdk-19.11]# ln -sf /usr/src/kernels/4.14.0-115.el7a.0.1.aarch64/ /lib/modules/4.14.0-115.el7a.0.1.aarch64/build [root@localhost dpdk-19.11]# ls /lib/modules/4.14.0-115.el7a.0.1.aarch64/ -al total 1772 drwxr-xr-x. 7 root root 4096 Jun 10 02:50 . drwxr-xr-x. 3 root root 41 Jun 9 23:17 .. lrwxrwxrwx. 1 root root 45 Jun 10 02:50 build -> /usr/src/kernels/4.18.0-193.28.1.el7.aarch64/ drwxr-xr-x. 2 root root 6 Nov 25 2018 extra drwxr-xr-x. 12 root root 132 Jun 9 23:17 kernel -rw-r--r--. 1 root root 490436 Jun 9 23:18 modules.alias -rw-r--r--. 1 root root 475434 Jun 9 23:18 modules.alias.bin -rw-r--r--. 1 root root 671 Nov 25 2018 modules.block -rw-r--r--. 1 root root 6516 Nov 25 2018 modules.builtin -rw-r--r--. 1 root root 8572 Jun 9 23:18 modules.builtin.bin -rw-r--r--. 1 root root 110565 Jun 9 23:18 modules.dep -rw-r--r--. 1 root root 168102 Jun 9 23:18 modules.dep.bin -rw-r--r--. 1 root root 288 Jun 9 23:18 modules.devname -rw-r--r--. 1 root root 113 Nov 25 2018 modules.drm -rw-r--r--. 1 root root 68 Nov 25 2018 modules.modesetting -rw-r--r--. 1 root root 1091 Nov 25 2018 modules.networking -rw-r--r--. 1 root root 52153 Nov 25 2018 modules.order -rw-r--r--. 1 root root 511 Jun 9 23:18 modules.softdep -rw-r--r--. 1 root root 208659 Jun 9 23:18 modules.symbols -rw-r--r--. 1 root root 248887 Jun 9 23:18 modules.symbols.bin lrwxrwxrwx. 1 root root 5 Jun 9 23:17 source -> build drwxr-xr-x. 2 root root 6 Nov 25 2018 updates drwxr-xr-x. 2 root root 21 Jun 9 23:17 vdso drwxr-xr-x. 2 root root 6 Jun 9 23:17 weak-updates [root@localhost dpdk-19.11]# rm /lib/modules/4.14.0-115.el7a.0.1.aarch64/build rm: remove symbolic link ‘/lib/modules/4.14.0-115.el7a.0.1.aarch64/build’? y [root@localhost dpdk-19.11]# ls /lib/modules/4.14.0-115.el7a.0.1.aarch64/ -al total 1772 drwxr-xr-x. 7 root root 4096 Jun 11 03:37 . drwxr-xr-x. 3 root root 41 Jun 9 23:17 .. drwxr-xr-x. 2 root root 6 Nov 25 2018 extra drwxr-xr-x. 12 root root 132 Jun 9 23:17 kernel -rw-r--r--. 1 root root 490436 Jun 9 23:18 modules.alias -rw-r--r--. 1 root root 475434 Jun 9 23:18 modules.alias.bin -rw-r--r--. 1 root root 671 Nov 25 2018 modules.block -rw-r--r--. 1 root root 6516 Nov 25 2018 modules.builtin -rw-r--r--. 1 root root 8572 Jun 9 23:18 modules.builtin.bin -rw-r--r--. 1 root root 110565 Jun 9 23:18 modules.dep -rw-r--r--. 1 root root 168102 Jun 9 23:18 modules.dep.bin -rw-r--r--. 1 root root 288 Jun 9 23:18 modules.devname -rw-r--r--. 1 root root 113 Nov 25 2018 modules.drm -rw-r--r--. 1 root root 68 Nov 25 2018 modules.modesetting -rw-r--r--. 1 root root 1091 Nov 25 2018 modules.networking -rw-r--r--. 1 root root 52153 Nov 25 2018 modules.order -rw-r--r--. 1 root root 511 Jun 9 23:18 modules.softdep -rw-r--r--. 1 root root 208659 Jun 9 23:18 modules.symbols -rw-r--r--. 1 root root 248887 Jun 9 23:18 modules.symbols.bin lrwxrwxrwx. 1 root root 5 Jun 9 23:17 source -> build drwxr-xr-x. 2 root root 6 Nov 25 2018 updates drwxr-xr-x. 2 root root 21 Jun 9 23:17 vdso drwxr-xr-x. 2 root root 6 Jun 9 23:17 weak-updates [root@localhost dpdk-19.11]# ln -sf /usr/src/kernels/4.14.0-115.el7a.0.1.aarch64/ /lib/modules/4.14.0-115.el7a.0.1.aarch64/build [root@localhost dpdk-19.11]# ls /lib/modules/4.14.0-115.el7a.0.1.aarch64/ -al total 1772 drwxr-xr-x. 7 root root 4096 Jun 11 03:38 . drwxr-xr-x. 3 root root 41 Jun 9 23:17 .. lrwxrwxrwx. 1 root root 45 Jun 11 03:38 build -> /usr/src/kernels/4.14.0-115.el7a.0.1.aarch64/ drwxr-xr-x. 2 root root 6 Nov 25 2018 extra drwxr-xr-x. 12 root root 132 Jun 9 23:17 kernel -rw-r--r--. 1 root root 490436 Jun 9 23:18 modules.alias -rw-r--r--. 1 root root 475434 Jun 9 23:18 modules.alias.bin -rw-r--r--. 1 root root 671 Nov 25 2018 modules.block -rw-r--r--. 1 root root 6516 Nov 25 2018 modules.builtin -rw-r--r--. 1 root root 8572 Jun 9 23:18 modules.builtin.bin -rw-r--r--. 1 root root 110565 Jun 9 23:18 modules.dep -rw-r--r--. 1 root root 168102 Jun 9 23:18 modules.dep.bin -rw-r--r--. 1 root root 288 Jun 9 23:18 modules.devname -rw-r--r--. 1 root root 113 Nov 25 2018 modules.drm -rw-r--r--. 1 root root 68 Nov 25 2018 modules.modesetting -rw-r--r--. 1 root root 1091 Nov 25 2018 modules.networking -rw-r--r--. 1 root root 52153 Nov 25 2018 modules.order -rw-r--r--. 1 root root 511 Jun 9 23:18 modules.softdep -rw-r--r--. 1 root root 208659 Jun 9 23:18 modules.symbols -rw-r--r--. 1 root root 248887 Jun 9 23:18 modules.symbols.bin lrwxrwxrwx. 1 root root 5 Jun 9 23:17 source -> build drwxr-xr-x. 2 root root 6 Nov 25 2018 updates drwxr-xr-x. 2 root root 21 Jun 9 23:17 vdso drwxr-xr-x. 2 root root 6 Jun 9 23:17 weak-updates [root@localhost dpdk-19.11]#
重新编译dpdk [root@localhost dpdk-19.11]# export EXTRA_CFLAGS="-O0 -g" [root@localhost dpdk-19.11]# export RTE_TARGET=arm64-armv8a-linuxapp-gcc [root@localhost dpdk-19.11]# xport RTE_SDK=`pwd` -bash: xport: command not found [root@localhost dpdk-19.11]# export RTE_SDK=`pwd` [root@localhost dpdk-19.11]# make install T=$RTE_TARGET -j 128
make clean -j 128 make install T=$RTE_TARGET -j 128[root@localhost dpdk-19.11]# find ./ -name rte_kni.ko ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/kni/rte_kni.ko ./arm64-armv8a-linuxapp-gcc/kmod/rte_kni.ko [root@localhost dpdk-19.11]# insmod ./arm64-armv8a-linuxapp-gcc/kmod/rte_kni.ko[root@localhost dpdk-19.11]# rmmod rte_kni.ko [root@localhost dpdk-19.11]# insmod arm64-armv8a-linuxapp-gcc/kmod/rte_kni.ko kthread_mode=multiple [root@localhost dpdk-19.11]# [root@localhost dpdk-19.11]# insmod ./arm64-armv8a-linuxapp-gcc/kmod/igb_uio.ko insmod: ERROR: could not insert module ./arm64-armv8a-linuxapp-gcc/kmod/igb_uio.ko: Unknown symbol in module [root@localhost dpdk-19.11]# insmod ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko insmod: ERROR: could not insert module ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko: Unknown symbol in module [root@localhost dpdk-19.11]# modinfo ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko filename: /root/dpdk-19.11/./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko author: Intel Corporation license: GPL description: UIO driver for Intel IGB PCI cards rhelversion: 7.6 srcversion: 26C63DAE2104091D5DE47C6 depends: uio name: igb_uio vermagic: 4.14.0-115.el7a.0.1.aarch64 SMP mod_unload modversions aarch64 parm: intr_mode:igb_uio interrupt mode (default=msix): msix Use MSIX interrupt msi Use MSI interrupt legacy Use Legacy interrupt (charp) parm: wc_activate:Activate support for write combining (WC) (default=0) 0 - disable other - enable (int)
原来igb uio依赖uio,uio没有加载 [root@localhost dpdk-19.11]# modprobe uio [root@localhost dpdk-19.11]# modinfo ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko filename: /root/dpdk-19.11/./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko author: Intel Corporation license: GPL description: UIO driver for Intel IGB PCI cards rhelversion: 7.6 srcversion: 26C63DAE2104091D5DE47C6 depends: uio name: igb_uio vermagic: 4.14.0-115.el7a.0.1.aarch64 SMP mod_unload modversions aarch64 parm: intr_mode:igb_uio interrupt mode (default=msix): msix Use MSIX interrupt msi Use MSI interrupt legacy Use Legacy interrupt (charp) parm: wc_activate:Activate support for write combining (WC) (default=0) 0 - disable other - enable (int) [root@localhost dpdk-19.11]# modinfo ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko filename: /root/dpdk-19.11/./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko author: Intel Corporation license: GPL description: UIO driver for Intel IGB PCI cards rhelversion: 7.6 srcversion: 26C63DAE2104091D5DE47C6 depends: uio name: igb_uio vermagic: 4.14.0-115.el7a.0.1.aarch64 SMP mod_unload modversions aarch64 parm: intr_mode:igb_uio interrupt mode (default=msix): msix Use MSIX interrupt msi Use MSI interrupt legacy Use Legacy interrupt (charp) parm: wc_activate:Activate support for write combining (WC) (default=0) 0 - disable other - enable (int) [root@localhost dpdk-19.11]# insmod ./arm64-armv8a-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.ko [root@localhost dpdk-19.11]# DPDK KNI内核模块
KNI内核可加载模块rte_kni为DPDK应用提供内核接口。
当rte_kni模块加载时,创建/dev/kni设备节点(rte_kni模块创建kni杂项设备,文件系统节点/dev/kni需要手动或者通过udev机制创建),藉此节点,DPDK KNI应用可控制和与内核rte_kni模块交互。
在内核模块rte_kni加载时,可指定一些可选的参数以控制其行为:
# modinfo rte_kni.ko
lo_mode: KNI loopback mode (default=lo_mode_none):
lo_mode_none Kernel loopback disabled
lo_mode_fifo Enable kernel loopback with fifo
lo_mode_fifo_skb Enable kernel loopback with fifo and skb buffer
kthread_mode: Kernel thread mode (default=single):
single Single kernel thread mode enabled.
multiple Multiple kernel thread mode enabled.
carrier: Default carrier state for KNI interface (default=off):
off Interfaces will be created with carrier state set to off.
on Interfaces will be created with carrier state set to on.
典型的情况是,在加载rte_kni模块时不指定任何参数,DPDK应用可由内核网络协议栈获取和向其发送报文。不指定任何参数,意味着仅创建一个内核线程处理所有的KNI虚拟设备在内核侧的报文接收,并且禁用回环模式,KNI接口的默认链路状态为关闭off。
# insmod kmod/rte_kni.ko ports cores: e.g.: --config="(0,1,2),(1,3,4)" No kernel thread specified. --config="(0,1,2,21),(1,3,4,23)" One kernel thread in use. --config="(0,1,2,21,22),(1,3,4,23,25) Two kernel threads in use.回环模式
以测试为目的,在加载rte_kni模块式可指定lo_mode参数:
# insmod kmod/rte_kni.ko lo_mode=lo_mode_fifo lo_mode_fifo回环模式将在内核空间中操作FIFO环队列,由函数kni_fifo_get(kni->rx_q,...)和kni_fifo_put(kni->tx_q,...)实现从rx_q接收队列读取报文,再写入发送队列tx_q来实现回环操作。
# insmod kmod/rte_kni.ko lo_mode=lo_mode_fifo_skb
lo_mode_fifo_skb回环模式在以上lo_mode_fifo的基础之上,增加了sk_buff缓存的相关拷贝操作。具体包括将rx_q接收队列的数据拷贝到分配的接收skb缓存中。以及分配发送skb缓存,将之前由rx_q队列接收数据拷贝到发送skb缓存中,使用函数kni_net_tx(skb, dev)发送skb缓存数据。最终将数据报文拷贝到mbuf结构中,使用kni_fifo_put函数加入到tx_q发送队列。可见此回环测试模式,更加接近真实的使用场景。
如果没有指定lo_mode参数,回环模式将禁用。 内核线程模式
为了提供性能的灵活性,内核模块rte_kni在加载时刻指定kthread_mode参数。rte_kni模块支持两个选项:单内核线程模式和多内核线程模式。
如下,使能单内核线程模式:
# insmod kmod/rte_kni.ko kthread_mode=single
此模式为所有的KNI虚拟接口创建唯一的内核线程在内核侧接收数据。默认情况下,此内核线程不绑定在特定的核心上,但是,用户可在创建第一个KNI虚拟接口时通过指定结构体rte_kni_conf的core_id和force_bind成员参数,设置此线程的亲核性。
为达到更高性能,内核线程绑定的核心应当与应用中DPDK的核心在同一个socket上。
KNI内核模块也可配置成为每个DPDK应用创建的KNI虚拟接口启动一个单独的内核线程。以下,使能多内核线程模式:
# insmod kmod/rte_kni.ko kthread_mode=multiple
此模式为每个KNI虚拟接口创建一个单独的内核线程在内核侧接收数据。内核线程的亲核性通过每个KNI虚拟接口创建时的结构体rte_kni_conf成员core_id和force_bind变量参数指定。
如果系统中由足够的未使用核心,多内核线程模式可提供具有扩展性的高性能。
如果kthread_mode参数未指定,使用单内核线程模式。 默认链路状态
内核模块rte_kni创建的KNI虚拟接口的链路状态,可通过模块加装时的carrier选项控制。
如果指定了carrier=off,当接口管理使能时,内核模块将接口的链路状态设置为关闭。DPDK应用可通过函数rte_kni_update_link设置KNI虚拟接口的链路状态。这对于需要KNI虚拟接口状态与对应的物理接口实际状态一致的应用是有用的。
如果指定了carrier=on,当接口管理使能时,内核模块将自动设置接口的链路状态为启用。这对于仅将KNI接口作为纯虚拟接口,而不对应任何物理硬件;或者并不想通过rte_kni_update_link函数显示设置接口链路状态的DPDK应用是有用的。对于物理口为连接任何链路而进行的回环模式测试也是有用的。
以下,设置默认的链路状态为启用:
# insmod kmod/rte_kni.ko carrier=on
以下,设置默认的链路状态为关闭:
# insmod kmod/rte_kni.ko carrier=off
如果carrier参数没有指定,KNI虚拟接口的默认链路状态为关闭。 The following kernel module options are available in case if a loopback mode is required. kthread_mode=single/multiple – number of kernel threads lo_mode=lo_mode_fifo/lo_mode_fifo_skb – loopback mode以下命令首先以多线程模式加载rte_kni内核模块。其次,kni应用指定两个接口(-p 0x3)启动;根据--config参数可知,接口0(0,4,6,8)使用核心4运行接收任务,核心6运行发送任务,并且创建一个KNI虚拟接口vEth0_0,启动一个内核处理线程绑定在核心8上。类似的接口1(0,5,7,9)使用核心5运行接收任务,核心7运行发送任务,并且创建一个KNI虚拟接口vEth1_0,启动一个内核处理线程绑定在核心9上。 # rmmod rte_kni # insmod kmod/rte_kni.ko kthread_mode=multiple # ./build/kni -l 4-7 -n 4 -- -P -p 0x3 -m --config="(0,4,6,8),(1,5,7,9)#/bin/sh #setup path to DPDK export RTE_SDK=/home/dpdk export RTE_TARGET=x86_64-native-linuxapp-gcc #setup 512 huge pages mkdir -p /mnt/huge umount -t hugetlbfs nodev /mnt/huge mount -t hugetlbfs nodev /mnt/huge echo 512 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages #bind eth1 and eth2 to Linux generic UIO modprobe uio_pci_generic ${RTE_SDK}/tools/dpdk_nic_bind.py --bind=uio_pci_generic eth1 ${RTE_SDK}/tools/dpdk_nic_bind.py --bind=uio_pci_generic eth2 #insert KNI kernel driver insmod ${RTE_SDK}/${RTE_TARGET}/kmod/rte_kni.ko #start KNI sample application export LD_LIBRARY_PATH=${RTE_SDK}/${RTE_TARGET}/lib/ ${RTE_SDK}/examples/kni/build/kni -c 0x0f -n 4 -- -P -p 0x3 --config="(0,0,1),(1,2,3)"[root@localhost dpdk-19.11]# export RTE_SDK=`pwd` [root@localhost dpdk-19.11]# export RTE_TARGET=arm64-armv8a-linuxapp-gcc [root@localhost dpdk-19.11]# make -C examples/kni -j 8 make: Entering directory `/data1/dpdk-19.11/examples/kni" CC main.o LD kni INSTALL-APP kni INSTALL-MAP kni.map make: Leaving directory `/data1/dpdk-19.11/examples/kni" [root@localhost dpdk-19.11]# ./examples/kni/build/app/kni -c 0xFFFFF -n 4 -- -P -p 0x3 --config="(0,0,1), (1,2,3)" EAL: Detected 128 lcore(s) EAL: Detected 4 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode "VA" EAL: No free hugepages reported in hugepages-524288kB EAL: No free hugepages reported in hugepages-524288kB EAL: No free hugepages reported in hugepages-524288kB EAL: No free hugepages reported in hugepages-524288kB EAL: No available hugepages reported in hugepages-524288kB EAL: No available hugepages reported in hugepages-2048kB EAL: FATAL: Cannot get hugepage information. EAL: Cannot get hugepage information. EAL: Error - exiting with code: 1 Cause: Could not initialise EAL (-1) [root@localhost dpdk-19.11]# [root@localhost dpdk-19.11]# cat /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages 0 [root@localhost dpdk-19.11]# echo 256 > /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages [root@localhost dpdk-19.11]# cat /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages 256 [root@localhost dpdk-19.11]#
运行./usertools/dpdk-setup.sh
[root@localhost dpdk-19.11]# cat /sys/devices/system/node/*/hugepages/hugepages-524288kB/nr_hugepages 64 64 64 64 [root@localhost dpdk-19.11]#[root@localhost dpdk-19.11]# ./examples/kni/build/app/kni -c 0xFFFFF -n 4 -- -P -p 0x3 --config="(0,0,1), (1,2,3)" EAL: Detected 128 lcore(s) EAL: Detected 4 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode "VA" EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: PCI device 0000:05:00.0 on NUMA socket 0 EAL: probe driver: 19e5:200 net_hinic EAL: PCI device 0000:06:00.0 on NUMA socket 0 EAL: probe driver: 19e5:200 net_hinic EAL: PCI device 0000:7d:00.0 on NUMA socket 0 EAL: probe driver: 19e5:a222 net_hns3 EAL: PCI device 0000:7d:00.1 on NUMA socket 0 EAL: probe driver: 19e5:a221 net_hns3 EAL: PCI device 0000:7d:00.2 on NUMA socket 0 EAL: probe driver: 19e5:a222 net_hns3 EAL: PCI device 0000:7d:00.3 on NUMA socket 0 EAL: probe driver: 19e5:a221 net_hns3 EAL: Error - exiting with code: 1 Cause: No supported Ethernet device found [root@localhost dpdk-19.11]# # ls -al /dev/kni crw------- 1 root root 10, 57 Sep 26 12:15 /dev/kni # cat /proc/misc 57 kni //minor number # dmidecode -t memory | grep Size
原文链接:https://www.cnblogs.com/dream397/p/13565649.html
脾虚湿气重?多因为是肝郁,逍遥丸巧搭配,从头到脚祛湿气大家好,我是屈医生,最近有很多粉丝问我,说自己脾虚湿气重,但是尝试了很多健脾祛湿的方法,效果都不明显,或者总是反反复复的,这是怎么回事呢?这主要还是没找对方法,很多脾虚湿气重的人呀
手脚冰凉除了虚还要警惕三种病冬季到了,有很多朋友都有手脚冰凉的问题,入冬后更是感觉雪上加霜。为什么有些人一年四季手脚冰凉?冰凉说明缺乏火力滋养,火力来自哪里?气血是原料,这个原料不够,火力自然不旺原料够了,仍
男子痿症,六大病因病机,你是哪种?历代医家对于阳痿一病的论述既全面又详细,治疗经验相当丰富,限于时代及患者群体不同,各家的证治思路又各有侧重。阳痿的发病与肾肝心脾功能失调及情志异常有关。究其病因病机,可概括为以下几
排位中阵容到底该怎么选(二)排位中阵容到底该怎么选(二)上篇我们说了阵容搭配的合理性可以从低到高分为三个层次,并且说完了第一层,最基本的阵容。那么本篇继续来说第二层,符合基本功能的阵容。很多英雄他或许适合这个
清朝慈禧出殡场面太壮观,摄像师混入送葬队伍,冒死拍下了全程1909年,慈禧出殡,走在最前面的是310柄万民伞和万民旗,后面是带着数百种器物的仪仗队以及带着各种乐器的乐队,再后面的便是将近八千人的抬棺队伍以及数千辆轿子晚清最有权势的女人也只
自由与生命自由与生命,这两个词可以说是对等的。如果只看到外面的自由,却看不到自由的背后是用无数无辜的生命作为代价换来的。人性的抉择,自己的生命没有受到威胁的时候那事不关己,高高挂起。用别人的
央视直播!上海男篮全新阵容亮相,丁彦雨航受伤,李春江全力出击第一阶段结束之后,上海男篮无疑是最让人失望的球队,李春江甚至一度面临下课危机。这个窗口期,上海男篮也进行了一次大调整,在外援方面,比斯利和富兰克林都已经被裁掉,取而代之的是布莱德索
阿根廷20挖出中场大师!21岁新星攻防俱佳,解放梅西全力冲冠2022世界杯北京时间12月1日凌晨,世界杯小组赛第3轮继续展开交锋,在其中一场比赛中,由阿根廷队对阵波兰队。整场比赛,阿根廷队的控球率达到了73,在射门次数上以234领先,这是一
各地铁路公安加大线路治安隐患排查确保运输安全畅通央视网消息针对近期全国大部分地区出现的降温降雪等低温天气,公安部铁路公安局部署各地铁路公安机关进一步细化各项措施,严格落实责任,全力确保铁路安全运输畅通。根据公安部铁路公安局统一部
风吹半夏再婚家庭多坎坷?许友仁都为倩倩着想,女主很坚强我想对你说赵丽颖风吹半夏文罗小可虽然风吹半夏是一部年代剧,但在赵丽颖的倾情演绎下,完美诠释出女主角许半夏那坚韧又勇敢的一面。从造型来看,赵丽颖毫无疑问是该剧的颜值担当,而她和王劲松
准女婿送酒攻略这8款白酒酒品好有牌面,赶紧收藏准备入手吧准女婿送酒攻略这8款白酒酒品好有牌面,赶紧收藏准备入手吧!每个准女婿在上门拜访老丈人的时候,总是提心吊胆,生怕自己做的不好,被责骂。其实马上就是一家人了,也不必太担忧,只要准备几款
新西兰旅行3。瓦纳卡梦幻小镇南岛旅游篇24122022世界上最孤独的一棵树瓦纳卡的标志性树瓦纳卡梦幻世界瓦纳卡湖在上一篇文章2。带你走进蒂卡普星空小镇23122022中,蒂卡普星空小镇属于坎特伯雷区(CANTERBURY)。同时蒂卡普
知乎者也丨朝颜月牙湾生命中有许多邂逅,都是完全没有准备的。正如我遇见月牙湾。其实我原本是要将它命名为月亮湾的。我将拍下的图片发到班级群里,东北大妞翟妍立即跳出来说月牙湾。我望着眼前那一处弧度优美的河湾
甘肃民乐呆萌狍子觅食欢这是近日在甘肃省张掖市民乐县境内拍摄的狍子。新华网发(吴开春摄)冬日的祁连山国家公园里,成群的狍子或悠然觅食,或奔跑跳跃,呈现出一幅和谐的生态画面。近年来,随着当地生态环境持续改善
我的出国旅游回忆之一越南芒街上世纪80至90年代我国正处于改革开放初期,那时严格意义上的普通中国公民出国旅游并不存在。1987年原国家旅游局和原对外经济贸易部批准了辽宁省丹东市至朝鲜新义州的出国一日游(也称为
天府广场以前是湖?关于四川的小知识,你晓得几个?说起四川,人们首先反应是美食美景但其实四川还藏着好多四川人不晓得的事!这些关于四川的小知识,你晓得几个?No。1最早的丝绸是哪里来的?四川盐亭是嫘祖的故里,是丝绸的源头。世界上最早
自驾游新疆14古稀老夫妻自驾游新疆14第32天(7月17日)星期日晴库车(库车王府)阿图什服务区早11时从大馕城到库车王府游览,到下午1时结束,驱车前往喀什。走G3012吐和高速晚1010分到达
周末游丨本周川内游玩地推荐,来这里可以看滚滚哦又到周末,可以出去浪了,不过朋友们想好去哪里了吗?生活的意义就在于享受生活的状态,周末的时候出去玩耍,让我们尽情的享受出去玩耍,给自己带来的一份开心的心情,从而让自己的人生有一份更
中国研发又一种绕开EUV光刻机的技术,让外媒惊叹提升芯片性能的主要途径就是通过在相同体积的芯片内塞入更多晶体管,这方面除了以先进工艺制造更小的晶体管之外,晶体管结构设计同样能有助于在同样体积里容纳更多晶体管,而中国的复旦大学研发
NVMe协议原理NVMExpress(NVMe),或称非易失性内存主机控制器接口规范(英语NonVolatileMemoryHostControllerInterfaceSpecification
厦门火炬高新区召开金砖科技园区发展论坛本报讯(见习记者黄鑫文林梓健图通讯员管轩雷飏吴玲玲)12月23日,值金砖创新基地建立两周年之际,厦门火炬高新区管理委员会联合长城战略咨询国际科技产业园区共同体(CISIP)共同举办
1万亿元投资,俄想生产芯片,但台积电暴的雷,给中国提了个醒中俄达成了1600亿美元(约1。1万亿人民币)的投资组合,但俄罗斯科技行业落后这个短板,终于暴雷了。俄罗斯官员表示,他们委托台积电生产的自研芯片,被台积电拒绝发货。俄罗斯之所以委托