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

Re: altq vs pppoe



On Monday, Jun 9, 2003, at 02:14 US/Pacific, Primož Gabrijelčič wrote:

Trevor Talbot wrote ...

As I don't have a PPPoE setup to work with, I did my own testing with
just tun0, and saw the spin effect.  Below is a patch for if_tun.c,
which fixed the problem I observed.  I'd like to know if it fixes
pppoe queueing for anyone brave enough to try patches from me.  I've
been known to make things explode.

As far as I'm concerned, this patch works just great. I can finally queue on
tun0 with my _upload_ bandwidth (minus the pppoe overhead). PPPoE hasn't
blown up yet and computer still processes packets correctly. Download works
much better over the saturated link now.

Great! Hopefully this will hold for everyone else who's testing it.


The only weird thing I have noticed is that the download started at 127 KB/s
(full DL bandwidth of my ADSL link), but then slowly dropped to the 60 KB/s
and stabilized there. During that slowdown, pppoe CPU% raised to the 26% and
then stabilised. When download completed, pppoe CPU% normalized back to the
< 1%.

Do you know if it does the same thing without queueing enabled? I realize
this would be hard to test with a saturated uplink. I'm wondering if the
CPU usage is in direct response to the queueing, or just a result of the
traffic patterns.


This could, of course, be the result of the user-landness of OBSD ppp.

CPU usage in general, no doubt; but I'm slightly concerned that pppoe's usage went higher as less traffic came through. It's likely that pppoe is contributing to the drop in throughput.

Unless TCP just settled down, and the outbound traffic was more frequent
-- pppoe would then have to wrap packets at a faster rate, which could
account for it.

Something I'm unsure of is the interaction between ppp and pppoe. In the
tun0 case, ppp's spinning should not make pppoe's CPU usage rise. Choke
it, yes; stress it, no. I wonder if ppp is doing something silly itself.


I don't think I can go much farther than the if_tun.c stuff myself, as I
don't understand the other components (ppp in particular). If there's
still a problem with the queueing, I can keep looking, but otherwise this
would probably be a discussion to start on one of the other lists.