[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: linux-diffserv and 2.3.x



Perter,

Are you sure these are 2.3 patches? In case you are mistaken, i have attached
the 2.3 patches for the kernel and iproute. Unfortunately, they havent been
merged yet. It would be nice if other people would test these patches as well.
Kernels around 2.3.22 and up to 2.3.25 are broken in a lot of ways. Unless, you
need some feature in these kernels, i would suggest you downgrade to kernel
2.3.21 probably (i had a difficult time with 2.3.20 -- i needed to add the
append "pci=nobios" to lilo config or it doesnt boot; however, 2.3.20 is a good
kernel in which these patches came out of).

De Schrijver Peter wrote:

> Hi,
>
> I am trying to get packet scheduling to work on a 2.3.22 kernel
> (with Werner Almesbergers diffserv patches). I discovered the following problem :
>
> Both dsmark_dequeue and cbq_dequeue (and possibly others, I didn't check them
> all), decrement the queue length after calling a lower layer dequeue function.
> However this lower layer dequeue function also decrements the queue length.
> This results in a negative queue length when the upper dequeueing function exits.
> Unfortunately __qdisc_wakeup will try to dequeue packets as long as qdisc_restart
> returns < 0 and the transmitter is not busy. So this negative queue length results
> in an endless loop. As a quick hack I removed the q.qlen-- from dsmark_dequeue and
> cbq_dequeue. This seems to work, but I didn't verify in depth if this might cause
> other problems.
>
> Ideas ? Comments ?
>
> Peter.
> ---
> In a world without walls and fences  -  who needs Windows and Gates ?

ds-23-patch.gz

patch-iproute.gz