Re: [PATCH 2/2] net: sched: convert qdisc linked list to hashtable

Jiri Kosina
2016-08-15T23:27:27Z

On Sat, 13 Aug 2016, Cong Wang wrote:

> > How about we actually extend a little bit the TCQ_F_BUILTIN special case
> > test in qdisc_match_from_root()?
> >
> > After the change, the only way how qdisc_dev() could be NULL should be a
> > TCQ_F_BUILTIN case, right?
> >
> > I was thinking about something like the patch below (the reasong being
> > that ->dev would be NULL only in cases of singletonish qdiscs) ...
> > wouldn't that also fix the issue you're seeing? Have to think it through a
> > little bit more ..
>
> I think this is probably why we never show noop qdisc in dump.

Well, partially. A lot of 'default' qdiscs are omitted in a not really
uniform and deterministic way. That's actually the primary point of this
whole effort -- to get rid of the hidden qdiscs entirely.

> So I think we should relax the singleton rule for noop_qdisc, to save
> some code for noop_qdisc case and also for dumping noop_qdisc.

Completely moving away from singleton qdiscs is one of the possibilities,
but OTOH I think that my special-casing of !qdisc_dev(root) in
qdisc_match_from_root() is correct handling of singletons. I've been
completely off the grid for the past three days, but I plan to submit this
as a proper followup fix tomorrow if noone has any objections.

> I will try to work on a patch tomorrow.

What still needs to be looked into are the duplicate clsact entries for
multiqueue.

Thanks,

--
Jiri Kosina
SUSE Labs