阅读:3039回复:4
怎么解决网卡驱动的rx中断收包与发包冲突!!!
自己参照其它网卡驱动写的一个网卡驱动程序,利用中断进行收包,注册为快速中断类型,完成后测试发现当以较低发包速度向网卡发包网卡可以工作(偶尔会丢包),但高速对其发包时却发现其一直响应rx中断一直的收包,根本没机会给系统调用发包程序发包,结果一个包都发不出去(以dma方式进行rx/tx),并最终导致系统崩溃!这个问题怎样处理好啊?
request_irq(INT_EXTINT0, &rx_interrupt, SA_INTERRUPT, dev->name, dev) 谢谢! xt0995@21cn.com ----------------- |
|
沙发#
发布于:2005-01-04 22:20
大数据流的时候,可以试用polling的方式。
|
|
板凳#
发布于:2005-01-05 09:35
这个贴比较老了,不过说说自己的看法。
楼主说的中断方式是否是dma的中断?我所接触过的intel的xscale系列的cpu他的dma方式是分优先等级的。同一等级下是应该顺序进行传送的,即使不同等级应该也会有机会传送。所以能否详细描述不能发送的状况? |
|
地板#
发布于:2005-01-05 23:52
我用的cpu是arm7核心的s3c4510b,网卡的中断信号线接到其21个中断源的外部中断上,现在使用中断收包,当有包来到网卡时触发中断通知cpu然后cpu启动dma进行收包,但当有打量包到来时却由于频繁的中断响应而根本无法进行其他发包或包处理动作
|
|
地下室#
发布于:2005-01-06 15:21
我记得好像4510有一个内置的网络处理部分?好像只需要加一个eeprom即可。没试用过快速中断,只用了普通的中断。
我认为一般的中断处理已经能够处理正常的网络包了,不知道你这个系统用在何种场合?视频流? 要不检查一下你的中断处理,频繁的进入中断在一般的系统中是不正常的表现,不行的话把一些处理放到后半部去看看。 |
|