- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 DPDK内存之 mbuf
最近在看一些DPDK的东西,因为要做网卡驱动的缘故,所以要弄清楚DPDK原来的一些驱动的做法用以借鉴。在实现网卡进行数据收发的时候,发现用rte_mbuf的时候总有256个字节不可修改,最后结合代码和一些帖子,做了个总结。这就是rte_mbuf、rte_mempool及网卡收到的数据包在内存中的组织结构其中每一个rte_mbuf里面的struct rte_mbuf占128字节,HEADROOM占1...
2018-02-27 11:31:15
1019
原创 常用的连续物理内存的获取方法(一)
获得连续物理内存的方法有很多,在很多地方搜了但是自己拿过来用就是用不了,这里展示几个亲测能用的。包括dma_alloc_coherent和kmalloc等。代码:#include #include #include #include #include #include #include // int direction = PCI_DMA_TODEVICE ;// int
2018-01-12 16:05:56
1832
1
原创 mmap映射物理内存到用户空间的方法
在内核申请一片物理内存,映射到用户空间使用的方法。环境:Linux ubuntu 4.10.0-42-generic。#include #include #include #include #include #include #include #include #include #include #include #includ
2018-01-10 10:12:05
3814
原创 DMA地址获取(二)
测试代码:#include #include #include MODULE_LICENSE("GPL");static int __init test_init(void); static void __exit test_exit(void); int __init test_init(void) { long unsigned int addr,phys_addr,b
2018-01-09 15:37:49
1815
1
原创 DMA地址获取
最近在研究一如何获得连续的物理地址用于DMA,看了很多博客,说是通过kmalloc,get_free_pages等等获取内存空间再通过mmap,ioremap等即可使用,但测试了很多代码,写到DMA寄存器进行DMA操作都没成功。最后发现,其实将获得的物理地址对应的虚拟地址转化成总线地址就可以进行DMA,基于DMA的硬件使用总线地址而非物理地址。操作环境:Linux ubuntu 4.10.0-
2018-01-09 11:45:50
2165
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人