參考:
翻譯與理解吧
5 使能額外功能
5.1 high precision event timer hpet(高精度定時器)
5.1.1bios 支援
條件:time stamp counter (tsc)(時間戳計數器)預設開啟了
進入bios:通常在機子啟動時按f2進入bios(不同平台進入bios方式不一樣,自己搞定)
流程:advanced -> pch-io configuration -> high precision timer -> (change from disabled to enabled if necessary)(使能或不使能)
命令檢視使能狀態:grep hpet /proc/timer_list,有以下顯示說明使能成功,若沒有,就使能重啟機子
5.1.2 linux核心支援
編譯核心時,要使能hpet_mmap編譯選項,fedora和ubuntu等相同發布版本預設是不使能的
5.1.3 dpdk中對hpet支援
config_rte_libeal_use_hpet=y,
rte_eal_hpet_init()的使用前提就是要核心,dpdk支援hpet
5.2非root許可權下執行dpdk應用
盡量用root許可權執行dpdk應用,如果不用root許可權應用,必須保證執行使用者對一下檔案有訪問許可權:
大頁目錄,eg /mnt/huge
使用者空間io裝置目錄,eg /dev,/dev/uio0,/dev/uio1等
使用者空間io sysfs檔案目錄,eg uio0
/sys/class/uio/uio0/device/config
/sys/class/uio/uio0/device/resource*
hpet目錄,/dev/hpet
5.3 電源管理和節能功能
enhanced intel speedstep® technology功能,/sys/devices/system/cpu/cpu0/cpufreq
存在表明使能了,具體情況參考原文。
5.4 隔離cpu核減少上下文切換
在linux的grub檔案中新增isolcpus=2,4,6,表明將核2,4,6隔離出來,不會被系統呼叫,專門用於dpdk收發包,
centos 7 修改
/etc/grub2.cfg
5.5 載入dpdk kni模組
5.6開啟iommu支援intel® vt-d
intel vt技術,主要由三部分技術組成:vtx、vtd和vtc。其中,vtx是處理器技術,提供記憶體以及虛擬機器
的硬體隔離,
所涉及的技術有頁表管理以及位址空間的保護。vtd是處理有關晶元組的技術,它提供一些針對虛
擬機的特殊應用,如支
持某些特定的虛擬機器應用跨過處理器i/o管理程式,直接呼叫i/o資源,從而提高效率,
通過直接連線i/o帶來近乎完美的
i/o效能。vtc是針對網路提供的管理,它可以在乙個物理網絡卡上,建立針對
開啟核心支援選項:
為了dpdk使用intel® vt-d,在使用igb_uio驅動時必須設定核心引數
iommu=pt
使用vfio-pci驅動可以設定iommu=pt or iommu=on
網絡卡是intel的,如果核心選項沒有預設設定intel_iommu_default_on,
可以設定核心引數
intel_iommu=on,
引數保證intel iommu能正常初始化
5.7 40g nic上小包高效**
40g nic對應驅動是i40e driver,將網絡卡的韌體公升級到對應最新的,驅動也公升級到最新的,
才能保證網絡卡高效**資料
5.7.1 使用16位元組描述符
i40e pmd支援16和32位元組大小的接收描述符,16位元組描述符能提高小包**效率,
通過在dpdk配置檔案裡設定
config_rte_librte_i40e_16byte_rx_desc = y
使能5.7.2 高效能
和延遲的權衡
可以根據需要設定config_rte_librte_i40e_itr_interval = 引數(
0-8160us)
來改變資料報的中斷間隔,由於硬體設計,引數必須是2的冪
dpdk環境搭建之命令搭建
我使用的是centos7和dpdk16.07,centos7剛搭建完成後會有一些安裝一些工具,還有一些在配置過程中會出現的其它的錯誤在這篇文章中我就不重複說了,可以看我的 dpdk環境搭建 文章。用於交流學習,如果有錯,希望大家可以指出。1 先修訂dpdk的bug 否則在測試的時候會報錯 2.igb...
dpdk環境搭建
步驟一 yum update yum install libpcap devel kernel 安裝程式依賴 config rte librte vhost numa y改為 config rte librte vhost numa n config rte kni kmod y改為 config ...
DPDK環境搭建和測試
gnumake coreutils cmp,sed,grep,arch gcc versions 4.5.x libcheaders glibc devel.i686 libc6 dev i386 glibc devel.x86 64 for 64 bitcompilation linuxkerne...