任何人都可以解释在

Linux网络驱动程序中是否需要在以下两种情况下进行额外的同步(例如锁定)?我对内核2.6.32和更新版本感兴趣.

1.probe VS .ndo_open

在PCI网卡的驱动程序中,net_device实例通常在.probe()回调中注册.假设驱动程序在net_device_ops中指定.ndo_open回调,执行其他必要的操作,然后调用register_netdev().

是否可以在register_netdev()之后但在.probe回调结束之前由内核调用.ndo_open回调?我认为它是,但可能是,有更强的保证,确保设备可以在.probe结束之前打开?

换句话说,如果.probe回调访问,例如,在register_netdev()和ndo_open回调之后的net_device结构的私有部分也访问该部分,我是否需要使用锁或其他方法来同步这些访问?

2. .ndo_start_xmit VS NAPI民意调查

是否有任何保证,对于给定的网络设备,驱动程序提供的.ndo_start_xmit回调和NAPI轮询回调永远不会同时执行?

我知道.ndo_start_xmit执行时至少禁用BH,并且在softirq中运行poll,因此BH上下文.但是这只序列化了这些回调在本地CPU上的执行.同一网络设备的.ndo_start_xmit和poll是否可以在不同的CPU上同时执行?

如上所述,如果这些回调访问相同的数据,是否需要用锁或其他东西保护数据?

欢迎参考内核代码和/或文档.

编辑:

为了检查第一种情况,我进行了一项实验,并在e1000驱动程序(内核:3.11-rc1)中调用register_netdev()之前添加了1分钟的延迟.我还在.probe和.ndo_open回调中添加了调试打印.然后我加载了e1000.ko,并尝试在延迟结束之前访问它服务的网络设备(实际上,NetworkManager在我之前做了),然后检查了系统日志.

结果:是的,甚至可以在.probe结束之前调用.ndo_open,尽管“竞赛窗口”通常很小.

第二种情况(.ndo_start_xmit VS NAPI民意调查)仍然不清楚,任何帮助表示赞赏.

linux网络驱动 poll,网络 – Linux网络驱动程序中的并发:probe()VS ndo_open(),ndo_start_xmit()VS NAPI poll()...相关推荐

  1. Linux系统驱动全吗,linux系统需要给硬件安装驱动程序么?谁推荐一下linux系统阿~要驱动最全...

    需要,不过大部分linux都自带,少量的也都有自动安装文件 比如ati的显卡驱动什么的. 之前还自己写过驱动,linux的驱动比windows的驱动透明度高很多 大部分硬件基本上 都可以识别的 也可以 ...

  2. linux设备驱动归纳总结(八):2.match.probe.remove

    CU首页 ┊ fh265>>博客 微博 相册 个人中心 好友 消息 [退出] ┊ 随便看看 公告:缅怀Dennis Ritchie活动开赛啦! 小白的博客--提升自已,分享别人 xiaob ...

  3. linux内核网络驱动框架(linux驱动开发篇)

    网络驱动的核心: 1.就是初始化 net_device 结构体中的各个成员变量, 2.然后将初始化完成以后的 net_device 注册到 Linux 内核中 1.网络设备(用net_device结构 ...

  4. linux内核下网络驱动流程,基于Linux内核驱动的网络带宽测速方法与流程

    本发明涉及一种测速方法,尤其是一种网络带宽测速方法. 背景技术: :电信运营商为客户提供一定带宽的Internet接入:为了检验带宽是否达标,一般均由客户使用个人电脑在网页上直接测速.但是随着智能网关 ...

  5. linux网卡驱动开发视频,Linux下网卡驱动程序的开发.doc

    Linux下网卡驱动程序的开发 论文题目:Linux下网卡驱动程序的开发 专 业: 年 级: 学生学号: 学生姓名: 指导教师: 完成时间: Linux下网卡驱动程序的开发 八年经验 专业指导毕业设计 ...

  6. linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...

    11.3  GPIO驱动程序实例 11.3.1  GPIO工作原理 FS2410开发板的S3C2410处理器具有117个多功能通用I/O(GPIO)端口管脚,包括GPIO 8个端口组,分别为GPA(2 ...

  7. 嵌入式linux设备驱动程序是,嵌入式Linux设备驱动开发之:按键驱动程序实例-嵌入式系统-与非网...

    11.6  按键驱动程序实例 11.6.1  按键工作原理 LED和蜂鸣器是最简单的GPIO的应用,都不需要任何外部输入或控制.按键同样使用GPIO接口,但按键本身需要外部的输入,即在驱动程序中要处理 ...

  8. linux内核驱动ldd3_走进linux 驱动开发 之 内核模块

    一.Linux内核简介 1.宏内核与微内核 内核分为四大类:单内核(宏内核):微内核:混合内核:外内核. 宏内核(Monolithickernel)是将内核从整体上作为一个大过程来实现,所有的内核服务 ...

  9. linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究

    摘    要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...

  10. linux无线网卡驱动文件安装,linux无线网卡驱动安装

    环境  在笔记本里的虚拟机10.0版本,centos-6.5 无线网卡fast-fw300um 第一步要查看芯片  lsusb  当你得到芯片之后接下来查看内核,如果内核已经有芯片模块就不用再装了,如 ...

最新文章

  1. [异常笔记] spring cloud 服务消费者启动-2018040501
  2. 2021年最后几天,使用SSM实现网上购物商城系统
  3. 学python入门书-如何学习Python,以及新手如何入门?
  4. 如何一站式解决“人财物事”管理难题?
  5. qsort()与sort的用法(收藏)
  6. 英国文化影响管理风格_文化如何影响用户体验
  7. win32键盘输入python_python-win32api键盘输入教程
  8. 安装计算机主板应注意,组装计算机并仅更换主板时要注意的事项
  9. 定时让电脑进入休眠状态
  10. matlab 高级函数 —— circshift、squeeze
  11. VGG19识别CIFAR10数据集(Pytorch实战)
  12. HTML基本结构标签
  13. ArcGIS Server manger管理页面无法打开问题解决
  14. 安徽大学计算机专业全国大学排名,2017安徽大学优势专业排名
  15. 无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。
  16. 【风马一族_构思】时光穿梭机
  17. 使用BENCHMARKSQL工具对kingbase灌数据执行语句删除这些外键时报错constraint does not exist
  18. 从国企到阿里的面试经历(一)
  19. Golang mgo 剖析之 Session
  20. 人工智能生态交易平台

热门文章

  1. RAKsmart云服务器全场7折
  2. 弹性网卡支持私网多IP
  3. 2021-09-10 网安实验-文件修复-BMP图片隐写
  4. 流量卡之家:英国运营商推出5G无限流量套餐 每月约300元
  5. vhs预设_vhs vs beta原始格式大战的故事
  6. 推荐!十个好用的百度网盘搜索引擎
  7. Ubuntu16.04 与本地Win7共享文件夹
  8. c语言实例--打渔晒网问题
  9. 搜索引擎广告和信息流广告有什么区别?
  10. 怎样打开VOIP与SIP