如何判断网卡是否使用NAPI方式

fytzzh 2006-12-18 11:41:07
使用e1000网卡,怎么判断是否启用了NAPI模式
还有e1000最新的驱动能用在所有的e1000网卡上么?
我发现一个客户的e1000网卡驱动程序里没有CONFIG_E1000_NAPI宏,也没有e1000_clean函数.
...全文
537 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playmud 2006-12-20
  • 打赏
  • 举报
回复
老的intel网卡驱动一般都有
77 char e1000_driver_name[] = "e1000";
78 static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
79 #ifndef CONFIG_E1000_NAPI
80 #define DRIVERNAPI
81 #else
82 #define DRIVERNAPI "-NAPI"
83 #endif
84 #define DRV_VERSION "7.1.9"DRIVERNAPI
85 char e1000_driver_version[] = DRV_VERSION;
86 static char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation.";
-------------------------------------------------------------------------------------
308 printk(KERN_INFO "%s - version %s\n",
309 e1000_driver_string, e1000_driver_version);
310
311 printk(KERN_INFO "%s\n", e1000_copyright);
-------------------------------------------------------------------------
而且
288 MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>");
289 MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver");
290 MODULE_LICENSE("GPL");
291 MODULE_VERSION(DRV_VERSION);
---------------------------------------------------------------------------
我看你的驱动似乎没有注册版本信息
这样的话你就只能根据
他的函数去判断了,比如netif_poll_enable
在驱动程序里面是这样的:
546 #ifdef CONFIG_E1000_NAPI
547 netif_poll_enable(netdev);
548 #endif
你objdump一下,看看是否有这个函数。
你说你的驱动没有e1000_clean函数,那他应该不是NAPI方式了。


fytzzh 2006-12-18
  • 打赏
  • 举报
回复
kernel-version: 2.4.20-8smp #1 SMP
[root@localhost root]# /sbin/modinfo e1000
filename: /lib/modules/2.4.20-8smp/kernel/drivers/net/e1000/e1000.o
description: "Intel(R) PRO/1000 Network Driver"
author: "Intel Corporation, <linux.nics@intel.com>"
license: "GPL"
parm: TxDescriptors int array (min = 1, max = 32), description "Number of transmit descriptors"
parm: RxDescriptors int array (min = 1, max = 32), description "Number of receive descriptors"
parm: Speed int array (min = 1, max = 32), description "Speed setting"
parm: Duplex int array (min = 1, max = 32), description "Duplex setting"
parm: AutoNeg int array (min = 1, max = 32), description "Advertised auto-negotiation setting"
parm: FlowControl int array (min = 1, max = 32), description "Flow Control setting"
parm: XsumRX int array (min = 1, max = 32), description "Disable or enable Receive Checksum offload"
parm: TxIntDelay int array (min = 1, max = 32), description "Transmit Interrupt Delay"
parm: TxAbsIntDelay int array (min = 1, max = 32), description "Transmit Absolute Interrupt Delay"
parm: RxIntDelay int array (min = 1, max = 32), description "Receive Interrupt Delay"
parm: RxAbsIntDelay int array (min = 1, max = 32), description "Receive Absolute Interrupt Delay"
playmud 2006-12-18
  • 打赏
  • 举报
回复
什么版本的系统,什么版本的驱动?

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧