<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a777122的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a777122</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a777122]]></copyright><item><title><![CDATA[分页和mmap]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/128998458</link><guid>https://blog.youkuaiyun.com/a777122/article/details/128998458</guid><author>a777122</author><pubDate>Sun, 12 Feb 2023 21:31:01 +0800</pubDate><description><![CDATA[当进程在访问这段地址时，通过查找页表，发现虚拟内存对应的页没有在物理内存中缓存，则产生"缺页"，由内核的缺页异常处理程序处理，将文件对应内容，以页为单位(4096)加载到物理内存，注意是只加载缺页，但也会受操作系统一些调度策略影响，加载的比所需的多。因为物理内存是有限的，mmap在写入数据超过物理内存时，操作系统会进行页置换，根据淘汰算法，将需要淘汰的页置换成所需的新页，所以mmap对应的内存是可以被淘汰的（若内存页是"脏"的，则操作系统会先将数据回写磁盘再淘汰）。这个问题可以通过mmap映射很好的解决。]]></description><category></category></item><item><title><![CDATA[Docker 架构和安装]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/128687726</link><guid>https://blog.youkuaiyun.com/a777122/article/details/128687726</guid><author>a777122</author><pubDate>Sat, 14 Jan 2023 18:51:01 +0800</pubDate><description><![CDATA[Docker 包括三个基本概念:镜像（Image）：Docker 镜像（Image），就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器（Container）：镜像（Image）和容器（Container）的关系，就像是面向对象程序设计中的类和实例一样，镜像是静态的定义，容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。]]></description><category></category></item><item><title><![CDATA[dpdk mbuf]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/128278297</link><guid>https://blog.youkuaiyun.com/a777122/article/details/128278297</guid><author>a777122</author><pubDate>Sun, 11 Dec 2022 22:50:51 +0800</pubDate><description><![CDATA[单 segment 的 mbuf，网卡能够存储的报文大小受限于 dataroom 的大小，而 multi-segmented mbuf 却不存在这一限制，可以用来做报文聚合。这四部分中第一部分用于存储 mbuf 内部的数据结构，第二部分与第四部分的使用由用户控制，第三部分用于存储报文内容。]]></description><category></category></item><item><title><![CDATA[rte_prefetch(报文处理中的指令预取)]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/128277659</link><guid>https://blog.youkuaiyun.com/a777122/article/details/128277659</guid><author>a777122</author><pubDate>Sun, 11 Dec 2022 19:45:16 +0800</pubDate><description><![CDATA[cache的基本操作单位是cache line，如果一个cache line中包含两个不同的数据，那么如果一个线程对其中一个数据进行写操作，那么这个cache line就需要更新，意味着另一个线程需要重新加载另一个数据。所以两个不同的数据不要放在同一个cache line中，这就需要数据定义的时候声明cache对齐，例如cache line的大小是128位（16字节），定义一个8字节的long，剩下8字节使用无用的数据来填充。但是我们在处理本节点时，可以通过CPU指令将下一个节点推送到Cache里。]]></description><category></category></item><item><title><![CDATA[DPDK发包处理流程]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127857279</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127857279</guid><author>a777122</author><pubDate>Mon, 14 Nov 2022 22:44:58 +0800</pubDate><description><![CDATA[DPDK发包处理流程]]></description><category></category></item><item><title><![CDATA[DPDK收包处理流程]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127857197</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127857197</guid><author>a777122</author><pubDate>Mon, 14 Nov 2022 22:34:48 +0800</pubDate><description><![CDATA[DPDK收包处理流程]]></description><category></category></item><item><title><![CDATA[[dpdk] Basic Forwarding Sample Application]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127594418</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127594418</guid><author>a777122</author><pubDate>Sun, 30 Oct 2022 00:22:22 +0800</pubDate><description><![CDATA[【代码】[dpdk] Basic Forwarding Sample Application。]]></description><category></category></item><item><title><![CDATA[dpdk常见错误]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127581226</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127581226</guid><author>a777122</author><pubDate>Sat, 29 Oct 2022 00:27:30 +0800</pubDate><description><![CDATA[dpdk常见错误]]></description><category></category></item><item><title><![CDATA[Poll Mode Driver]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127062418</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127062418</guid><author>a777122</author><pubDate>Wed, 05 Oct 2022 09:49:02 +0800</pubDate><description><![CDATA[Poll Mode Driver]]></description><category></category></item><item><title><![CDATA[Mbuf Library]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127062408</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127062408</guid><author>a777122</author><pubDate>Wed, 05 Oct 2022 08:08:05 +0800</pubDate><description><![CDATA[mbuf]]></description><category></category></item><item><title><![CDATA[Mempool Library]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127062394</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127062394</guid><author>a777122</author><pubDate>Thu, 29 Sep 2022 21:26:22 +0800</pubDate><description><![CDATA[Mempool Library]]></description><category></category></item><item><title><![CDATA[Ring Library]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127061211</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127061211</guid><author>a777122</author><pubDate>Mon, 26 Sep 2022 22:22:16 +0800</pubDate><description><![CDATA[Ring Library]]></description><category></category></item><item><title><![CDATA[RCU Library]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127043999</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127043999</guid><author>a777122</author><pubDate>Sun, 25 Sep 2022 22:31:43 +0800</pubDate><description><![CDATA[RCU Library]]></description><category></category></item><item><title><![CDATA[Environment Abstraction Layer]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127031791</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127031791</guid><author>a777122</author><pubDate>Sat, 24 Sep 2022 23:04:23 +0800</pubDate><description><![CDATA[The Environment Abstraction Layer (EAL) is responsible for gaining access to low-level resources such as hardware and memory space. It provides a generic interface that hides the environment specifics from the applications and libraries.The core initializa]]></description><category></category></item><item><title><![CDATA[DPDK Programmer‘s Guide]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/127018193</link><guid>https://blog.youkuaiyun.com/a777122/article/details/127018193</guid><author>a777122</author><pubDate>Sat, 24 Sep 2022 21:58:52 +0800</pubDate><description><![CDATA[DPDK Programmer’s Guide]]></description><category></category></item><item><title><![CDATA[DPDK EAL参数]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/126899485</link><guid>https://blog.youkuaiyun.com/a777122/article/details/126899485</guid><author>a777122</author><pubDate>Fri, 23 Sep 2022 21:06:06 +0800</pubDate><description><![CDATA[【代码】DPDK EAL参数。]]></description><category></category></item><item><title><![CDATA[dpdk设置]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/126898851</link><guid>https://blog.youkuaiyun.com/a777122/article/details/126898851</guid><author>a777122</author><pubDate>Fri, 16 Sep 2022 23:37:42 +0800</pubDate><description><![CDATA[【代码】dpdk设置。]]></description><category></category></item><item><title><![CDATA[getopt_long_only函数使用]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/126878242</link><guid>https://blog.youkuaiyun.com/a777122/article/details/126878242</guid><author>a777122</author><pubDate>Thu, 15 Sep 2022 19:59:37 +0800</pubDate><description><![CDATA[如果没有设置为NULL，那么它就指向一个变量，这个变量会被赋值为寻找到的长选项在longopts中的索引值，这可以用于错误诊断。，如果该字符串里任一字母后有冒号，那么这个选项就要求有参数。]]></description><category></category></item><item><title><![CDATA[ubuntu dpdk-19.11.10和dperf安装]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/126696564</link><guid>https://blog.youkuaiyun.com/a777122/article/details/126696564</guid><author>a777122</author><pubDate>Sun, 04 Sep 2022 23:44:14 +0800</pubDate><description><![CDATA[【代码】ubuntu dpdk-19.11.10和dperf安装。]]></description><category></category></item><item><title><![CDATA[ntohl()、htonl()、ntohs()、htons()函数]]></title><link>https://blog.youkuaiyun.com/a777122/article/details/126676619</link><guid>https://blog.youkuaiyun.com/a777122/article/details/126676619</guid><author>a777122</author><pubDate>Sat, 03 Sep 2022 13:45:53 +0800</pubDate><description><![CDATA[1、大端存储：在计算机中，数据是按照字节存储的，多于一个字节的数据，把高字节部分存储在低地址，把低字节部分存储在高地址，这种方式称为大端存储。例：0x12345678这个数据，我们一般认为左边是高字节部分，右边是低字节部分，那么在采用大端存储的计算机内部的存储则为下面这样低地址：     0x12(高字节)高地址：     0x78(低字节)即一个整型数据的首地址=高位部分（首地址=低地址）2、小端存储：多于一个字节的数据，把高字节部分存储在高地址，把低字节部分存放在低地址。]]></description><category></category></item></channel></rss>