天天看点

DPDK中文-EAL层

多进程模型 linux app EAL允许 多进程与多线程开发模型一样;可以查看2.20章 Muti-prcess Support查看更多细节; 内存映射发现和内存预留 分配大量且连续的内存永固哦是用hugetlbfs 内核文件系统。EAL提供了API去预留命名的内存区域在这个连续内存中。 意思应该是这块内存可以命名;通过名字分配的意思;

支持Xen Dom0技术,不使用hugetbls

PCI访问 EAL使用 /sys/bus/pci 工具,这个工具是有内核提供的扫描PCI bus上下文的。去访问PCI的内存;通过使用两个ko模块,提供了两个device文件/dev/uiox和/sys下面的资源文件;这样就可以访问PCI的地址在应用空间中。

每个lcore和共享变量 lcore的意思是处理器的逻辑调用单元。通常被叫做硬件线程;

共享变量是一种默认的行为,pre-lcore变量是通过使用 Thread Local Storage  来实现的每个线程本地存储。

log EAP提供LOG的API,在linux系统应用中发送给syslog也可以发送给串口,也可以被用户指定的其他log函数来替换;

追终于调试 一些是glibc提供的dump stack,rte_panic函数能够提供自动触发SIG_ABORT信号,能够产生一个core文件。gdb可以读; 用户空间中断事件

情况1用户空间中断和警告事件处理在主线程中; EAL创建了主线程去poll UID设备的文件描述符。去检测中断。主要机制就是异步事件驱动模型;可以设定定时callback为NIC借口。 注意: 只有那些链路状态变化的通知在主线程中使用中断回调。

RX 中断事件