Network 2

  1. 要求是先回答几个问题
    为什么要用大页?
    从逻辑地址到物理地址的转换我们知道,如果采用常规页(4KB)并且使TLB总能命中,那么至少需要在TLB表中存放两个表项,在这种情况下,只要寻址的内容都在该内容页内,那么两个表项就足够了。如果一个程序使用了512个内容页也就是2MB大小,那么需要512个页表表项才能保证不会出现TLB不命中的情况。我们知道TLB大小是很有限的,随着程序的变大或者程序使用内存的增加,那么势必会增加TLB的使用项,最后导致TLB出现不命中的情况。那么,在这种情况下,大页的优势就显现出来了。如果采用2MB作为分页的基本单位,那么只需要一个表项就可以保证不出现TLB不命中的情况;对于消耗内存以GB(230)为单位的大型程序,可以采用1GB为单位作为分页的基本单位,减少TLB不命中的情况。

以helloworld为例,描述一下DPDK的执行流?
主线程运行入口是main函数,调用了rte_eal_init入口函数,启动基础运行环境。
入口参数是启动DPDK的命令行。对于HelloWorld这个实例,最需要的参数是“-c<core mask>”,线程掩码(core mask)指定了需要参与运行的线程(核)集合。rte_eal_init本身所完成的工作很复杂,它读取入口参数,解析并保存作为DPDK运行的系统信息,依赖这些信息,构建一个针对包处理设计的运行环境。RTE_LCORE_FOREACH_SLAVE(lcore_id)遍历所有EAL,指定可以使用的lcore,然后通过rte_eal_remote_launch在每个lcore上,启
动被指定的线程。第一个参数是从线程,是被征召的线程;第二个参数是传给从线程的参数;第三个参数是指定的逻辑核,从线程会执行在这个core上。具体来说,int rte_eal_remote_launch(lcore_hello,NULL,lcore_id);参数lcore_id指定了从线程ID,运行入口函数lcore_hello。运行函数lcore_hello,它读取自己的逻辑核编号(lcore_id),打印出“hello from core#”
读skeleton的代码,描述收发包的API。
static inline uint16_t rte_eth_rx_burst(uint8_t port_id, uint16_t queue_id, struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
static inline uint16_t rte_eth_tx_burst(uint8_t port_id, uint16_t queue_id, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
端口,队列,报文缓冲区以及收发包数

解释rte_mbuf的数据结构。
主要用来封装网络帧缓存,也可用来封装通用控制信息缓存。Mbuf头部的大小为两个Cache Line,之后的部分为缓存内容,其起始地址存储在Mbuf结构的buffer_addr指针中。在Mbuf头部和实际包数据之间有一段控制头空间(head room),用来存储和系统中其他实体交互的信息,如控制信息、帧内容、事件等。Mbuf报头包含包处理所需的所有数据。head room的长度可由RTE_PKTMBUF_HEADROOM定义。head room的起始地址保存在Mbuf的buff_addr指针中。数据帧的起始指针可通过调用rte_pktmbuf_mtod(Mbuf)获得。巨型帧的单
帧长度只由rte_pktmbuf_datalen(Mbuf)返回,而rte_pktmbuf_pktlen(Mbuf)用于访问巨型帧所有帧长度的总和。

image.png

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天是星期六,也是陈庄集,我带着孩子去赶集,孩子在路上和我说妈妈你能给我买点好吃的吗?我说能,你想吃什么?孩子说那...
    海低星阅读 155评论 0 0
  • 《真实的幸福》第3章:幸福的误区 提出的困惑: 1、恐惧、悲伤和愤怒等消极情绪一无是处吗?2、既然消极情绪是人类生...
    大胡子逸舟阅读 1,344评论 0 0
  • 期待走进你的世界,和你共同学习,生活,交流,你与世界的距离,中间只差了一个我,拥有我,你将拥有整个世界!
    一点一滴一世界阅读 194评论 0 1
  • 温暖的阳光照射进来,轻轻抚着托里的脸,他被一阵鸟鸣吵醒。 映入眼帘的不是避雨的洞穴,而是一间陌生的房间...
    青羽飞鸟阅读 179评论 0 0
  • 很多家长都感叹时间过的太快了,孩子好像一眨眼的功夫就从婴儿期进入了幼儿期。从嘤嘤学语到可以清楚表达自己的意见和观点...
    触儿教育阅读 234评论 0 4