[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171211085811.00c3cbaf@xeon-e3>
Date: Mon, 11 Dec 2017 08:58:11 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: yuan linyu <cugyly@....com>
Cc: netdev@...r.kernel.org, "David S . Miller" <davem@...emloft.net>,
yuan linyu <Linyu.Yuan@...atel-sbell.com.cn>
Subject: Re: [PATCH net-next 1/2] net: tap: replay while() loop with %
operator in tap_get_queue()
On Mon, 11 Dec 2017 21:26:41 +0800
yuan linyu <cugyly@....com> wrote:
> From: yuan linyu <Linyu.Yuan@...atel-sbell.com.cn>
>
> Signed-off-by: yuan linyu <Linyu.Yuan@...atel-sbell.com.cn>
> ---
> drivers/net/tap.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/net/tap.c b/drivers/net/tap.c
> index 0a886fda..78900a0 100644
> --- a/drivers/net/tap.c
> +++ b/drivers/net/tap.c
> @@ -275,11 +275,7 @@ static struct tap_queue *tap_get_queue(struct tap_dev *tap,
>
> if (likely(skb_rx_queue_recorded(skb))) {
> rxq = skb_get_rx_queue(skb);
> -
> - while (unlikely(rxq >= numvtaps))
> - rxq -= numvtaps;
> -
> - queue = rcu_dereference(tap->taps[rxq]);
> + queue = rcu_dereference(tap->taps[rxq % numvtaps]);
> goto out;
> }
>
Modulus is slower than the loop.
Powered by blists - more mailing lists