On Mon, Oct 02, 2017 at 06:05:29PM +0200, Jesper Dangaard Brouer wrote:
> +             while ((xdp_pkt = __ptr_ring_consume(rcpu->queue))) {
> +                     struct sk_buff *skb;
> +                     int ret;
> +
> +                     /* Allow busy polling again */
> +                     empty_cnt = 0;
> +
> +                     skb = cpu_map_build_skb(rcpu, xdp_pkt);
> +                     if (!skb) {
> +                             page_frag_free(xdp_pkt);
> +                             continue;
> +                     }
> +
> +                     /* Inject into network stack */
> +                     ret = netif_receive_skb(skb);
> +                     if (ret == NET_RX_DROP)
> +                             drops++;

I thought the whole thing is an alternative to RPS,
but netif_receive_skb_internal() will call into RPS logic.
So the user has to make sure it disabled or they will
conflict in some weird way?
Or you're calling netif_receive_skb() to be able to call
generic XDP on that cpu again ?
But that prog can do cpumap redirect again?
sort-of recursive redirect? Is it really useful?
May be call into __netif_receive_skb_core() directly?
not sure.
I'm asking all these questions to make sure we think through
these implications before it becomes an abi.

Reply via email to