[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080805122340.GB6541@ff.dom.local>
Date: Tue, 5 Aug 2008 12:23:40 +0000
From: Jarek Poplawski <jarkao2@...il.com>
To: Denys Fedoryshchenko <denys@...p.net.lb>
Cc: netdev@...r.kernel.org
Subject: Re: thousands of classes, e1000 TX unit hang
On Tue, Aug 05, 2008 at 02:13:58PM +0300, Denys Fedoryshchenko wrote:
> On Tuesday 05 August 2008, Jarek Poplawski wrote:
> > On 05-08-2008 12:05, Denys Fedoryshchenko wrote:
> > > I found, that packetloss happening when i am deleting/adding classes.
> > > I attach result of oprofile as file.
> >
> > ...
> >
> > Deleting of estimators (gen_kill_estimator) isn't optimized for
> > a large number of them, and it's a known issue. Adding of classes
> > shouldn't be such a problem, but maybe you could try to do this
> > before adding filters directing to those classes.
> >
> > Since you can control rate with htb, I'm not sure you really need
> > policing: at least you could try if removing this changes anything.
> > And I'm not sure: do these tx hangs happen only when classes are
> > added/deleted or otherwise too?
> >
> > Jarek P.
>
> Policer is creating burst for me.
> For example first 2Mbyte(+rate*time if need more precision) will pass on high
> speed (1Mbit), then if flow is still using maximum bandwidth will be
> throttled to rate of HTB. When i tried to play with cburst/burst values in
> HTB i was not able to archieve same results. I can do same with TBF and his
> peakrate/burst, but not with HTB.
Very interesting. Anyway tbf doesn't use gen estimators, so you could
test if it makes big difference for you.
>
> It happens when root qdisc deleted(which holds around 130 child classes).
> Probably gen_kill_estimator taking all resources while i am deleting root
> class.
> I did some test, on machine with 150 ppp interfaces (Pentium 4 3.2 Ghz),
> just by deleting root qdisc and i got huge packetloss. When i am just adding
> classes - there is no significant packetloss.
> Probably it is not right thing, when i am deleting qdisc on ppp - causing
> packetloss on whole system? Is it possible to workaround, till
> gen_kill_estimator will be rewritten?
>
> But sure i can try to avoid "mass deleting" classes, but i think many people
> will hit this bug, especially newbies, who implement "many class" setup.
Actually, gen_kill_estimator was rewritten already, but for some
reason it wasn't merged. Maybe there isn't so much users with such a
number of classes or they don't delete them, anyway this subject isn't
reported often to the list (I remember once). Some workaround could be
probably deleting individual classes (and filters) to give away a lock
and soft interrupts for a while), before deleting the root, but I
didn't test this. BTW, you are using quite long queues (3000), so there
would be interesting to make them less and check if doesn't add to the
problem (with retransmits).
Jarek P.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists