netmap
高晓伟_Steven
wx_cangying1988的博客
展开
-
netmap分析(1)
文章版权归属yynote.com.转载请标明出处.原文发表在 YYNOTE.COM 本文地址: http://yynote.com/blog/detail/networking/netmap-study-1在工作中用到netmap这个高性能IO框架,觉得不错,就整理了一些分析笔记,和大家共享,欢迎交流.Netmap简介Netmap是一款高性能网络IO转载 2016-03-30 16:04:44 · 1702 阅读 · 0 评论 -
Centos7安装netmap
因为工作需要,要在Centos上安装netmap,也许是自己太菜了,整了一天多才OK,现在把整个流程几下来,方便大家学习交流。1. 首先介绍一下我的环境: 我是在virtualbox上安装的Centos7, 内核版本为3.10.0-327.10.1.el7.x86_64 内核版本使用命令uname -r可以查看 其实原本的版本不是这个,由于查到的资料太杂乱了,期间用yum inst...原创 2016-03-25 14:12:54 · 9966 阅读 · 1 评论 -
关于Netmap打patch时报错的解决方法二
还是关于打patch的问题。这次我还是编译ixgbe的驱动,可make的时候总提示()的问题。没办法只能把ixgbe_main.c和patch文件一行一行对了,这一对还真发现了大问题。默认的patch和实际的系统驱动对不上,在函数()中没有(),而()应该在函数()中。找一个比较符合的patch进行修改,或者干脆直接把符合的patch改名成默认寻找的patch。不管怎么样总算是原创 2016-08-22 20:17:32 · 2018 阅读 · 1 评论 -
关于Netmap打patch时报错的解决方法
我在之前的篇文章中提到过Natmap执行完./configure之后,执行make命令时会因为patch的问题导致不能生成驱动文件。这里写一下解决方法:在执行完make后如果不成功一般都会报如下错误:cp -Rp /root/rpmbuild/BUILD/kernel-3.10.0-229.el7/linux-3.10.0-229.el7.centos.x86_64/drivers/n原创 2016-04-23 15:46:53 · 4058 阅读 · 0 评论 -
Netmap分析(六)
netmap.cNIOCTXSYNC和NIOCRXSYNC这两个使用相同的代码,同步ringcase NIOCTXSYNC: case NIOCRXSYNC: nifp = priv->np_nifp; if (nifp == NULL) { error = ENXIO; break; } mb(); /* make sure following rea原创 2016-04-23 10:48:19 · 1355 阅读 · 0 评论 -
Netmap分析(五)
实际设置netmap配置的函数/* * possibly move the interface to netmap-mode. * If success it returns a pointer to netmap_if, otherwise NULL. * This must be called with NMG_LOCK held. * * The following na ca原创 2016-04-23 10:46:14 · 1436 阅读 · 0 评论 -
Netmap分析(四)
netmap.cNIOCGINFO用于返回netmap的基本信息case NIOCGINFO: /* return capabilities etc */ if (nmr->nr_cmd == NETMAP_BDG_LIST) { error = netmap_bdg_ctl(nmr, NULL); break; } NMG_LOCK(); do {原创 2016-04-23 10:42:31 · 1428 阅读 · 0 评论 -
Netmap分析(三)
Netmap_linux.c两个重要的结构struct miscdevice netmap_cdevsw = { /* same name as FreeBSD */ MISC_DYNAMIC_MINOR, "netmap", &netmap_fops,};static struct file_operations netm原创 2016-04-23 10:37:36 · 1319 阅读 · 0 评论 -
Netmap分析(二)
netmap_linux.c://初始化netmapstatic int linux_netmap_init(void){ int err; /* Errors have negative values on linux. *//* 申请netmap的各个内存池,包括netmap_if,netmap_ring,netmap_buf以及内存池的管理结构*/原创 2016-04-23 10:10:27 · 1827 阅读 · 0 评论 -
Netmap分析(一)
工作原理Netmap是基于零拷贝思想的高速网络I/O架构,它能够在千兆或万兆网卡上达到网卡的线速收发包速率。并且能够有效地节省cpu等计算机资源。零拷贝(zero-copy)是指主机、路由器等设备与网卡交互时,CPU不需要将数据从和个内存区域拷贝到另一个内存区域。零拷贝通过减少数据拷贝或共享总线操作次数,消除通信数据的不必要的拷贝过程,能够有效地提高通信效率、节省存储空间和处理时间。因原创 2016-04-23 10:08:04 · 8825 阅读 · 0 评论 -
netmap分析(2)-原理分析之内存管理
本文发表在 YYNOTE.COM, 地址 : http://yynote.com/blog/detail/networking/netmap-study-2-memory-mgt在工作中用到netmap这个高性能IO框架,觉得不错,就整理了一些分析笔记,和大家共享,欢迎交流.内存池方案 Netmap为了避免内存的频繁申请和释放,采用了内存池方案。预先在内核申请转载 2016-03-30 17:05:32 · 1493 阅读 · 0 评论 -
netmap分析(3)-原理分析之数据结构关系
Netmap在内核中针对每一个网卡(也即每一个net_ device)维护一个netmap_ adapter结构,该结构主要用于维护在此网卡上的所有可用数据接收队列以及发送队列。而在用户空间是通过netmap_ if结构来处理对应的接收或发送队列。Netmap_ kring 是内核中用来描述一个缓冲队列的结构,且只有在内核空间才能访问,实际指向的是netmap_ ring结构,该结构在用户空间可访转载 2016-03-30 17:06:48 · 1658 阅读 · 0 评论