[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080817.213131.62127589.davem@davemloft.net>
Date: Sun, 17 Aug 2008 21:31:31 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: herbert@...dor.apana.org.au
Cc: jarkao2@...il.com, netdev@...r.kernel.org
Subject: Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().
From: Herbert Xu <herbert@...dor.apana.org.au>
Date: Mon, 18 Aug 2008 14:27:31 +1000
> On Sun, Aug 17, 2008 at 06:49:21PM -0700, David Miller wrote:
> > @@ -1800,6 +1805,11 @@ gso:
> >
> > spin_lock(root_lock);
> >
> > + if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, &q->state))) {
> > + spin_unlock(root_lock);
> > + goto resample_qdisc;
> > + }
>
> We could just drop the packet.
True, that would be simpler and have the same effect.
I just noticed that ingress qdisc needs similar code.
Ok, here is what I'll do as a rough plan:
1) Integrate this patch with your drop suggestion and ingress
fixed up.
2) Integrate Jarek's patch that closes the "both bits clear"
hole.
3) Add my bit that makes dev_deactivate() always take the spinlock
so there is just one simple yield() loop.
And, finally, we can be at the point where we can get rid of the
RCU deferral of qdisc_destroy().
Should be fun evening :-)
--
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