Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8fdd2e25
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
8fdd2e25
编写于
4月 26, 2012
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
上级
47d59d01
727c356f
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
54 addition
and
47 deletion
+54
-47
drivers/net/ethernet/intel/e1000e/netdev.c
drivers/net/ethernet/intel/e1000e/netdev.c
+1
-1
drivers/net/ethernet/intel/e1000e/param.c
drivers/net/ethernet/intel/e1000e/param.c
+53
-46
未找到文件。
drivers/net/ethernet/intel/e1000e/netdev.c
浏览文件 @
8fdd2e25
...
...
@@ -3799,7 +3799,7 @@ static int e1000_test_msi_interrupt(struct e1000_adapter *adapter)
/* fire an unusual interrupt on the test handler */
ew32
(
ICS
,
E1000_ICS_RXSEQ
);
e1e_flush
();
msleep
(
5
0
);
msleep
(
10
0
);
e1000_irq_disable
(
adapter
);
...
...
drivers/net/ethernet/intel/e1000e/param.c
浏览文件 @
8fdd2e25
...
...
@@ -106,7 +106,7 @@ E1000_PARAM(RxAbsIntDelay, "Receive Absolute Interrupt Delay");
/*
* Interrupt Throttle Rate (interrupts/sec)
*
* Valid Range: 100-100000
(0=off, 1=dynamic, 3=dynamic conservative)
* Valid Range: 100-100000
or one of: 0=off, 1=dynamic, 3=dynamic conservative
*/
E1000_PARAM
(
InterruptThrottleRate
,
"Interrupt Throttling Rate"
);
#define DEFAULT_ITR 3
...
...
@@ -344,54 +344,61 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)
if
(
num_InterruptThrottleRate
>
bd
)
{
adapter
->
itr
=
InterruptThrottleRate
[
bd
];
/*
* Make sure a message is printed for non-special
* values. And in case of an invalid option, display
* warning, use default and got through itr/itr_setting
* adjustment logic below
*/
if
((
adapter
->
itr
>
4
)
&&
e1000_validate_option
(
&
adapter
->
itr
,
&
opt
,
adapter
))
adapter
->
itr
=
opt
.
def
;
}
else
{
/*
* If no option specified, use default value and go
* through the logic below to adjust itr/itr_setting
*/
adapter
->
itr
=
opt
.
def
;
/*
* Make sure a message is printed for non-special
* default values
*/
if
(
adapter
->
itr
>
40
)
e_info
(
"%s set to default %d
\n
"
,
opt
.
name
,
adapter
->
itr
);
}
adapter
->
itr_setting
=
adapter
->
itr
;
switch
(
adapter
->
itr
)
{
case
0
:
e_info
(
"%s turned off
\n
"
,
opt
.
name
);
break
;
case
1
:
e_info
(
"%s set to dynamic mode
\n
"
,
opt
.
name
);
adapter
->
itr_setting
=
adapter
->
itr
;
adapter
->
itr
=
20000
;
break
;
case
3
:
e_info
(
"%s set to dynamic conservative mode
\n
"
,
opt
.
name
);
adapter
->
itr_setting
=
adapter
->
itr
;
adapter
->
itr
=
20000
;
break
;
case
4
:
e_info
(
"%s set to simplified (2000-8000 ints) "
"mode
\n
"
,
opt
.
name
);
adapter
->
itr_setting
=
4
;
e_info
(
"%s set to simplified (2000-8000 ints) mode
\n
"
,
opt
.
name
);
break
;
default:
/*
* Save the setting, because the dynamic bits
* change itr.
*/
if
(
e1000_validate_option
(
&
adapter
->
itr
,
&
opt
,
adapter
)
&&
(
adapter
->
itr
==
3
))
{
/*
* In case of invalid user value,
* default to conservative mode.
*/
adapter
->
itr_setting
=
adapter
->
itr
;
adapter
->
itr
=
20000
;
}
else
{
/*
*
* Clear the lower two bits because
* they are used as control.
*/
adapter
->
itr_setting
=
adapter
->
itr
&
~
3
;
}
adapter
->
itr_setting
&=
~
3
;
break
;
}
}
else
{
adapter
->
itr_setting
=
opt
.
def
;
adapter
->
itr
=
20000
;
}
}
{
/* Interrupt Mode */
static
struct
e1000_option
opt
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录