adlan / BCM5722D

Unofficial Mac OS X driver for Broadcom's BCM5722 NetXtreme and NetLink family of Gigabit Ethernet controllers
http://osx86.co/f36/bcm5754-m-bcm5755-m-bcm5787-m-bcm5906-m-t6946/
GNU General Public License v2.0
36 stars 16 forks source link

After an intese traffic it stops working. Have no clue how to fix it. #14

Open Alex009988 opened 11 years ago

Alex009988 commented 11 years ago

The only thing i hate about is after an intese traffic it stops working. Have no clue how to fix it. My card is BCM57780. After sleep work of this driver resumes.

adlan commented 11 years ago

yep, i'm aware of the problem, however i cannot promise any fix for your model as the driver is not intended for it. I will still look into it though.

Alex009988 commented 11 years ago

Xcode says that your code have a five issues. Maybe is it a reason of this problem. I can try to correct it kFlowControlDisabled = 1, ..... kMediumTypeIndexAuto = 1, It didn't help kMaxPacketSize = kIOEthernetMaxPacketSize + 4, kTxBDCount = 512, kRxBDCount = 512, kTxMaxSegmentCount = 384, // 0.75 *ring size(512) = 384 kRxMaxSegmentCount = 1, kWatchDogTimeout = 5000 // ms Increasing of these numbers lead to the Kernel panic Maybe should we increase the global limit of connection. Maybe should we increase these number. I didn't understand what is that. enum { kAutoNegotiationDelay = 50, kAutoNegotiationTimeout = 10000 };

Alex009988 commented 11 years ago

I think that the problem is with the Global maximum connection. The point is that when I use transmission(bittorrent client) with 370 connections. I downloaded easily 6.5Gb. But when I had set up 600 connections, BCM5722D stopped working. [CODE] kFlowControlDisabled = 1, ..... kMediumTypeIndexAuto = 1, It didn't help kMaxPacketSize = kIOEthernetMaxPacketSize + 4, kTxBDCount = 512, kRxBDCount = 512, kTxMaxSegmentCount = 384, // 0.75 *ring size(512) = 384 kRxMaxSegmentCount = 1, kWatchDogTimeout = 5000 // ms Increasing of these numbers lead to the Kernel panic Maybe should we increase the global limit of connection. Maybe should we increase these number. I didn't understand what is that. enum { kAutoNegotiationDelay = 50, kAutoNegotiationTimeout = 10000 }; [/CODE] Does that part of code correlate with number of connections?

Alex009988 commented 11 years ago

This issue was solved! http://www.insanelymac.com/forum/topic/247470-bcm5722-bcm5754m-bcm5755m-bcm5787m-and-bcm5906m-nic-driver-3264-bit/page__st__80#entry1909632

Alex009988 commented 11 years ago

Message for everybody. Unfortunately driver still stops during working of torrents. But not so often how it was in the past. I think it is problem with queue of pakets and we should create extra condition. Namely restaring queue in the case of stalling }

if (dirty_tx != ldirty_tx) { DLog("R1000TxInterrupt cleaned up %d Tx packets\n", ldirty_tx - dirty_tx); dirty_tx = ldirty_tx; // restart transmit queue in case we had been stalled transmitQueue->start(); } } https://github.com/p...ltekR1000SL.cpp I took this part of code from here. But I don't know how to make it correctly for BCM5722D.cpp. What should dirty_tx and inirty_tx be for the case of BCM5722D. Later I'll try to solve it but for me it is very hard.