Open Alex009988 opened 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.
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 };
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?
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.
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.