Messages in this thread |  | | Date | Mon, 18 Sep 2000 18:49:42 -0700 | From | "David S. Miller" <> | Subject | Re: [PATCH/RFC] (long) network interface changes |
| |
Date: Mon, 18 Sep 2000 21:31:17 -0400 (EDT) From: jamal <hadi@cyberus.ca>
My testing with the included scheme (#ifdef RAND_LIE) indicates that fairness infact goes up; however, the overall throughput when only one interface is utilizing the system goes down under heavy to moderate congestion. I am including it here as a way to highlight the problem. I think there could be better ways to do this. Code is included and can be turned on by defining RAND_LIE in dev.c
Why not keep a counter per-device.
This counter is an atomic_t and initially zero.
When a packet is given to netif_rx and becomes part of the backlog this counter is incremented.
When a packet leaves the backlog, this same counter is decremented.
You can use this counter to approximate queue percentages per-device and use this to decide who gets the little white lies.
Questions are whether this will be cheaper than calling net_random() occaisionally and actually more interesting would be a scheme which did not hurt the single interface case. :-(
Later, David S. Miller davem@redhat.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |