Re: [PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Stephen Hemminger
On Wed, 22 Jun 2016 12:03:55 +0200 Florian Westphal wrote: > Currently classification and enqueue is done in a single step. > > core acquires the qdisc lock, then calls the ->enqueue() function > of the qdisc. > > Its the job of the qdisc and its attached classifiers to figure out what > to do

Re: [PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Florian Westphal
Alexei Starovoitov wrote: > On Wed, Jun 22, 2016 at 3:03 AM, Florian Westphal wrote: > > Currently classification and enqueue is done in a single step. > > > > core acquires the qdisc lock, then calls the ->enqueue() function > > of the qdisc. > > > > Its the job of the qdisc and its attached cla

Re: [PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Alexei Starovoitov
On Wed, Jun 22, 2016 at 3:03 AM, Florian Westphal wrote: > Currently classification and enqueue is done in a single step. > > core acquires the qdisc lock, then calls the ->enqueue() function > of the qdisc. > > Its the job of the qdisc and its attached classifiers to figure out what > to do next.

Re: [PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Florian Westphal
Cong Wang wrote: > On Wed, Jun 22, 2016 at 3:03 AM, Florian Westphal wrote: > > > > This (unfinished!) hack splits classification and enqueue into > > two steps. > > > > Before enqueueing the packet and *before* acquiring the root qdisc lock, > > the new qdisc ->classify() function is invoked. >

Re: [PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Cong Wang
On Wed, Jun 22, 2016 at 3:03 AM, Florian Westphal wrote: > > This (unfinished!) hack splits classification and enqueue into > two steps. > > Before enqueueing the packet and *before* acquiring the root qdisc lock, > the new qdisc ->classify() function is invoked. > > This function -- much like enq

[PATCH RFC] sched: split classification and enqueue

2016-06-22 Thread Florian Westphal
Currently classification and enqueue is done in a single step. core acquires the qdisc lock, then calls the ->enqueue() function of the qdisc. Its the job of the qdisc and its attached classifiers to figure out what to do next. Typically the enqueue function will call tc_classify() to lookup a c