On Thu, 2020-06-18 at 12:00 -0700, Eric Dumazet wrote: > > On 6/18/20 10:31 AM, Paolo Abeni wrote: > > The sched layer can use several indirect calls per > > packet, with not work-conservative qdisc being > > more affected due to the lack of the BYPASS path. > > > > This change tries to improve the situation using > > the indirect call wrappers infrastructure for the > > qdisc enqueue end dequeue indirect calls. > > > > To cope with non-trivial scenarios, a compile-time know is > > introduced, so that the qdisc used by ICW can be different > > from the default one. > > > > Tested with pktgen over qdisc, with CONFIG_HINT_FQ_CODEL=y: > > > > qdisc threads vanilla patched delta > > nr Kpps Kpps % > > pfifo_fast 1 3300 3700 12 > > pfifo_fast 2 3940 4070 3 > > fq_codel 1 3840 4110 7 > > fq_codel 2 1920 2260 17 > > fq 1 2230 2210 -1 > > fq 2 1530 1540 1 > > Hi Paolo > > This test is a bit misleading, pktgen has a way to bypass the qdisc.
The above figures were collected using the pktgen_bench_xmit_mode_queue_xmit.sh script, which in turn uses 'xmit_mode queue_xmit': packets traverse the qdisc layer via the usual dev_queue_xmit() > Real numbers for more typical workloads would be more appealing, > before we consider a quite invasive patch ? I'll add figures for netperf UDP single threaded/many threads... > What is the status of static_call infrastructure ? ... unless you prefer waiting for the above. AFAICS, that is under discussion. v4 was posted in May[1] and collected quite a bit of feedback. > > > > +#ifndef CODEL_SCOPE > > +#define CODEL_SCOPE static > > +#endif > > This looks additional burden, just remove the static attribute, > if a function might be called directly. Yep, that will slim down the patch a bit, I will do. Thanks for the feedback, Paolo [1] https://lwn.net/ml/linux-kernel/[email protected]/
