Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3593833
  • 博文数量: 207
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7365
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-23 18:56
个人简介

将晦涩难懂的技术讲的通俗易懂

文章分类

全部博文(207)

文章存档

2024年(10)

2023年(9)

2022年(4)

2021年(12)

2020年(8)

2019年(18)

2018年(19)

2017年(9)

2016年(26)

2015年(18)

2014年(54)

2013年(20)

分类: LINUX

2019-06-16 19:56:35

dpdk内存管理之内存对齐

——lvyilong316

本篇文章主要分析一下dpdk的内存对齐处理,注意这里说的不是“cache对齐”,而是内存对齐。不同于cache处理,我们只要保证数据cache line对齐就好,对于内存对齐我们需要充分了解一定的内存背景知识。关于内存的一些基本知识之前整理过一篇文章,可以参考如下链接:http://blog.chinaunix.net/uid-28541347-id-5795423.html。下面首先对文章的一些要点进行下回顾:

    
dpdk中内存分配中已经为我们考虑了,在创建mempool过程中有以下代码:

点击(此处)折叠或打开

  1. if ((flags & MEMPOOL_F_NO_SPREAD) == 0) {
  2.         unsigned new_size;
  3.         new_size = optimize_object_size(sz->header_size + sz->elt_size +
  4.             sz->trailer_size);
  5.         sz->trailer_size = new_size - sz->header_size - sz->elt_size;
  6. }

可以看到在默认没有设置MEMPOOL_F_NO_SPREAD是会调用optimize_object_size,这个函数就是内存对齐的关键。

optimize_object_size





阅读(7292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~