[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1430455610.3711.118.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Thu, 30 Apr 2015 21:46:50 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alexei Starovoitov <ast@...mgrid.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, netdev@...r.kernel.org
Subject: Re: [PATCH v2 net-next] pktgen: introduce 'rx' mode
On Thu, 2015-04-30 at 18:18 -0700, Alexei Starovoitov wrote:
> + if (pkt_dev->flags & F_DO_RX) {
> + skb = pkt_dev->skb;
> + local_bh_disable();
> + atomic_add(burst, &skb->users);
this atomic_add() could be done before local_bh_disable()
> + do {
> + ret = netif_receive_skb(skb);
> + if (ret == NET_RX_DROP)
> + pkt_dev->errors++;
> + pkt_dev->sofar++;
> + pkt_dev->seq_num++;
> + if (atomic_read(&skb->users) != burst) {
> + /* skb was queued by rps/rfs or taps,
> + * so cannot reuse this skb
> + */
> + atomic_sub(burst - 1, &skb->users);
> + /* get out of the loop and wait
> + * until skb is consumed
> + */
> + pkt_dev->last_ok = 1;
> + pkt_dev->clone_skb = 0;
> + break;
after a break; you don't need the 'else', and therefore can save one
tab/ indent level.
> + } else {
> + /* skb was 'freed' by stack, so clean few
> + * bits and reuse it
> + */
> + skb->tc_verd = 0; /* reset reclass/redir ttl */
tc_verd needs CONFIG_NET_CLS_ACT
> + }
> + } while (--burst > 0);
> + local_bh_enable();
> + goto out;
> + }
> +
> txq = skb_get_tx_queue(odev, pkt_dev->skb);
>
> local_bh_disable();
> @@ -3403,6 +3447,7 @@ unlock:
>
You could put the out: label here, and remove one local_bh_enable()
before "goto out;"
> local_bh_enable();
>
> +out:
> /* If pkt_dev->count is zero, then run forever */
> if ((pkt_dev->count != 0) && (pkt_dev->sofar >= pkt_dev->count)) {
> pktgen_wait_for_skb(pkt_dev);
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists