netdev
[Top] [All Lists]

Re: Frozen machine with adding a tc filter

To: kuznet@xxxxxxxxxxxxx
Subject: Re: Frozen machine with adding a tc filter
From: bert hubert <ahu@xxxxxxx>
Date: Mon, 22 Jul 2002 23:21:11 +0200
Cc: Alberto Bertogli <albertogli@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <200207222046.AAA14255@xxxxxxxxxxxxx>
Mail-followup-to: bert hubert <ahu@xxxxxxx>, kuznet@xxxxxxxxxxxxx, Alberto Bertogli <albertogli@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
References: <20020722034919.GH685@xxxxxxxxxxxxx> <200207222046.AAA14255@xxxxxxxxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
On Tue, Jul 23, 2002 at 12:46:44AM +0400, kuznet@xxxxxxxxxxxxx wrote:
> Hello!
> 
> > I know it's weird, but anyway i don't think that a lockup is the error the
> > user deserves =)
> 
> You really deserved this.

I also reported this - should tc check this? Or the kernel? I think each
qdisc implements its own filter hooks and rules, so tc may be a nice place
to do at least simple checking, although it cannot easily spot complicated
loops.

                if ((cl = (void*)res.class) == NULL) {
                        if (TC_H_MAJ(res.classid))
                                cl = cbq_class_lookup(q, res.classid); 
                        else if ((cl = defmap[res.classid&TC_PRIO_MAX]) == NULL
                                cl = defmap[TC_PRIO_BESTEFFORT];

                        if (cl == NULL || cl->level >= head->level)
                                goto fallback;
                }


Aren't the last 2 lines meant to prevent this from happening?
(net/sched/sch_cbq.c).

Please tell me your ideas, I hope to fix this. I know people who've had this
happen by accident and they really hate it.

Regards,

bert

-- 
http://www.PowerDNS.com          Versatile DNS Software & Services
http://www.tk                              the dot in .tk
http://lartc.org           Linux Advanced Routing & Traffic Control HOWTO


<Prev in Thread] Current Thread [Next in Thread>