Messages in this thread | | | Date | Mon, 24 Nov 2008 15:46:23 -0800 (PST) | Subject | adaptive mode in Linux bonding driver | From | "luming" <> |
| |
I am currently working on my project which includes some modification to the kernel bonding driver. I have created a new mode in which each ip packet will be acknowledged by a linklayer acknowledgment. This ack will trigger the sender to increase a counter and when the sender send out packets, it will decrease the SAME counter.
To implement this , I have defined the counter in the structure slave. I have registered to receive ip packet and ack packets. The problem we found is when we bond two links (100Mbps) together with this mode, the sending rate never go above 107Mbps. It seems something slows down the sending rate. After some investigation, we found that if we access the same counter in both the sending function and the receiver handler, this problem will happen. If we only access this counter in one of these two functions, it will be fine. If we decrease the link bandwidth or the ack sending frequency, we will see the sending rate increasing. So we think may be too many acks coming in a very short time that cause too many interrupts and slow down the system. (We are using PIII 700MHz with linux 2.6.15-7)
My question is do you know what causes this problem and how can it be solved? Thanks very much! I am not subscribed in the list so please reply me back at: luming@uvic.ca.
Thanks Ming
| |