Subject: Re: [PATCH net-next] net: use jump label patching for ingress qdisc in __netif_receive_skb_core

From: Alexei Starovoitov <[email-masked]>
Date: Sat, 11 Apr 2015 08:40:57 -0700

On 4/10/15 2:07 PM, Daniel Borkmann wrote:
> Even if we make use of classifier and actions from the egress
> path, we're going into handle_ing() executing additional code
> on a per-packet cost for ingress qdisc, just to realize that
> nothing is attached on ingress.
>
> Instead, this can just be blinded out as a no-op entirely with
> the use of a static key. On input fast-path, we already make
> use of static keys in various places, e.g. skb time stamping,
> in RPS, etc. It makes sense to not waste time when we're assured
> that no ingress qdisc is attached anywhere.
>
> Enabling/disabling of that code path is being done via two
> helpers, namely net_{inc,dec}_ingress_queue(), that are being
> invoked under RTNL mutex when a ingress qdisc is being either
> initialized or destructed.
>
> Signed-off-by: Daniel Borkmann <[email-masked]>

tested this patch standalone and with ingress_l2 on top.
Acked-by: Alexei Starovoitov <[email-masked]>