nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1429回复:7

找黄大侠和各位高手解决一个性能问题

楼主#
更多 发布于:2002-11-12 16:11
写了一个IM。
通了。能用。但性能不好。
现在是这个IM控制两个NIC。就是进行数据转发。从A发到B。B发到A。
现在使用的策略是
1。接收到PACKET。复制数据(一定要复制,因为将来这个数据会做过滤功能)。调用NDIS_WORK_ITEM.
2。NDIS开始根据NDIS_WORK_ITEM回调发送函数。

但现在传输速度不够快。:(

黄大侠给点建议吧。

最新喜欢:

utahyjutahyj
==寂寞骆驼==
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-12 23:10
各位大侠给点意见啊
==寂寞骆驼==
lao_o
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-14分
  • 威望110点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-18 18:33
不妨参考WinDump的做法,文档中对于性能问题有很详细的论述。
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
地板#
发布于:2002-11-18 22:22
写了一个IM。
通了。能用。但性能不好。
现在是这个IM控制两个NIC。就是进行数据转发。从A发到B。B发到A。
现在使用的策略是
1。接收到PACKET。复制数据(一定要复制,因为将来这个数据会做过滤功能)。调用NDIS_WORK_ITEM.
2。NDIS开始根据NDIS_WORK_ITEM回调发送函数。

但现在传输速度不够快。:(

黄大侠给点建议吧。


为什么需要work_item?
直接转发有什么不妥?
不再回忆从前,我已经生活在幸福当中。
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-20 10:08
还是胡大侠厉害。
一下搞到正点位置了。前天睡觉迷糊中决定放弃WORK_ITEM。直接转发。速度性能被突破。一切搞定了。

另外请教胡大侠,如果在ProtocolReceive中处理的时间过长。这个时候Miniport会不会直到Receive函数处理完毕后才指示新的数据包接收?
当时设计用WORK_ITEM也就是担心这个问题。怕处理时间过长。而让Miniport把后面的包给扔了。
==寂寞骆驼==
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-20 10:11
另外。。。。。。。。写错了胡大侠的姓。。。嘿嘿。别生气。

前段时间错过了NDIS大会。遗憾。不过你们的报道、图片和MP3我都下了。学习了一下。收益匪浅。谢谢
==寂寞骆驼==
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2002-11-21 13:35
还是胡大侠厉害。
一下搞到正点位置了。前天睡觉迷糊中决定放弃WORK_ITEM。直接转发。速度性能被突破。一切搞定了。

另外请教胡大侠,如果在ProtocolReceive中处理的时间过长。这个时候Miniport会不会直到Receive函数处理完毕后才指示新的数据包接收?
当时设计用WORK_ITEM也就是担心这个问题。怕处理时间过长。而让Miniport把后面的包给扔了。
 



ndis本身是异步的。所以接收函数和发送函数都是可能重如的。
所以,使用work_item不是好主意。应该精确检查代码,保证
所有代码的异步性,保证代码多次重入的安全性。
不再回忆从前,我已经生活在幸福当中。
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-22 04:30
谢谢。那偶就不担心了。
==寂寞骆驼==
游客

返回顶部