Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
d4726051
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d4726051
编写于
1月 04, 2011
作者:
B
Ben Hutchings
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sfc: Limit filter search depth further for performance hints (i.e. RFS)
Signed-off-by:
N
Ben Hutchings
<
bhutchings@solarflare.com
>
上级
69a19ee6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
4 deletion
+9
-4
drivers/net/sfc/filter.c
drivers/net/sfc/filter.c
+9
-4
未找到文件。
drivers/net/sfc/filter.c
浏览文件 @
d4726051
...
...
@@ -27,6 +27,10 @@
*/
#define FILTER_CTL_SRCH_MAX 200
/* Don't try very hard to find space for performance hints, as this is
* counter-productive. */
#define FILTER_CTL_SRCH_HINT_MAX 5
enum
efx_filter_table_id
{
EFX_FILTER_TABLE_RX_IP
=
0
,
EFX_FILTER_TABLE_RX_MAC
,
...
...
@@ -325,15 +329,16 @@ static int efx_filter_search(struct efx_filter_table *table,
struct
efx_filter_spec
*
spec
,
u32
key
,
bool
for_insert
,
int
*
depth_required
)
{
unsigned
hash
,
incr
,
filter_idx
,
depth
;
unsigned
hash
,
incr
,
filter_idx
,
depth
,
depth_max
;
struct
efx_filter_spec
*
cmp
;
hash
=
efx_filter_hash
(
key
);
incr
=
efx_filter_increment
(
key
);
depth_max
=
(
spec
->
priority
<=
EFX_FILTER_PRI_HINT
?
FILTER_CTL_SRCH_HINT_MAX
:
FILTER_CTL_SRCH_MAX
);
for
(
depth
=
1
,
filter_idx
=
hash
&
(
table
->
size
-
1
);
depth
<=
FILTER_CTL_SRCH_MAX
&&
test_bit
(
filter_idx
,
table
->
used_bitmap
);
depth
<=
depth_max
&&
test_bit
(
filter_idx
,
table
->
used_bitmap
);
++
depth
)
{
cmp
=
&
table
->
spec
[
filter_idx
];
if
(
efx_filter_equal
(
spec
,
cmp
))
...
...
@@ -342,7 +347,7 @@ static int efx_filter_search(struct efx_filter_table *table,
}
if
(
!
for_insert
)
return
-
ENOENT
;
if
(
depth
>
FILTER_CTL_SRCH_MAX
)
if
(
depth
>
depth_max
)
return
-
EBUSY
;
found:
*
depth_required
=
depth
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录