From patchwork Mon Jul 23 14:36:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Toshiaki Makita X-Patchwork-Id: 947809 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QKzjIZfv"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Z3wH3Dfmz9s4s for ; Tue, 24 Jul 2018 00:36:47 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388507AbeGWPiS (ORCPT ); Mon, 23 Jul 2018 11:38:18 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:39015 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387877AbeGWPiS (ORCPT ); Mon, 23 Jul 2018 11:38:18 -0400 Received: by mail-pg1-f194.google.com with SMTP id g2-v6so527590pgs.6 for ; Mon, 23 Jul 2018 07:36:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7Y7Dm5ds9y0tbo9HpQ1saXEl5UsFPCCB13NnUF0qhnE=; b=QKzjIZfvNyFcMhy+kP89+3n7oc8hQUS29sQggatCuEHeKKVJZZrJ+9sI3nQ0e8nEz/ 8lVS4PenW+OZyBbCPBnK6+02uLk9suBCVtQ4t0jheKEAeQMGw/MSxn4L/0CQuUHkC+hR jMHBsHUGbT6/5EtPgv9hNSL4NmrjTSyf2Q41eMxnXHz2HcVL4qNAjVErYE/M6pFBh5+E LlEF++2tY9VOeA0y+/IChn0fMoZQToM0D1aO3S5zWlm57/NH4cb3wTqv2gBz+u0nbZvp UwnNSgdQSePXP+dIHjtLZYQKxCkNrkc3NEXGlwXOOaRkX1Qctnh9V5D7BpPj+alOb6ej 1Jtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7Y7Dm5ds9y0tbo9HpQ1saXEl5UsFPCCB13NnUF0qhnE=; b=ng8/bbt/ErZqcej5sjlMyeBZ+htb7tfjpkB2YLhSqm+SNdPJ5oMPe1hoakv0ejZsS4 PUBfrruYongkLQOqhieRFaxzXzG+9rjp/7QIGwgfbG0argZ3cra/QE5u42HlU5gMQAdy zSSoz4G1srGLr4YSBYLOgS57t2FzLijF23gz9mVg9n27505hCxlGwWJF0RDoz7rwzAiy iHqkDBuYNcZPmlyNgXfX0uW+gKZ+8qKxzBM+oQ5PmGVrkKsecil/GdJoi9dV2ue/grU9 3/PnNbuYRP2toQXUljZMaL+bv9+J1a4ShAcbP9NuAXaqH+q6lGuETNaVYq8eSO7vXsUZ j9Ow== X-Gm-Message-State: AOUpUlErbw7C//hMOMoua/8Luo1bJd5XACKB7S2f7L938UYlD1keWpDy bUVfRmPY3yLkXgNMa0vaRXs= X-Google-Smtp-Source: AAOMgpe35+6glABv7oQ8eveXmQ1gSaKdW1w9erE8hwZr6AptiPb81WXXeXuye6d/Cq2fWQEkMlpOQA== X-Received: by 2002:a63:1126:: with SMTP id g38-v6mr12371267pgl.122.1532356605293; Mon, 23 Jul 2018 07:36:45 -0700 (PDT) Received: from localhost.localdomain (i153-145-22-9.s42.a013.ap.plala.or.jp. [153.145.22.9]) by smtp.gmail.com with ESMTPSA id 65-v6sm14415503pfq.81.2018.07.23.07.36.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Jul 2018 07:36:44 -0700 (PDT) From: Toshiaki Makita To: "Michael S. Tsirkin" , Jason Wang , "David S. Miller" Cc: Toshiaki Makita , netdev@vger.kernel.org, virtualization@lists.linux-foundation.org Subject: [PATCH net-next 4/6] virtio_net: Factor out the logic to determine xdp sq Date: Mon, 23 Jul 2018 23:36:07 +0900 Message-Id: <20180723143609.2242-5-toshiaki.makita1@gmail.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180723143609.2242-1-toshiaki.makita1@gmail.com> References: <20180723143609.2242-1-toshiaki.makita1@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Toshiaki Makita Make sure to use the same logic in all places to determine xdp sq. This is useful for xdp counters which the following commit will introduce as well. Signed-off-by: Toshiaki Makita --- drivers/net/virtio_net.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 7a47ce750a43..eca9b13b859e 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -457,16 +457,22 @@ static int __virtnet_xdp_xmit_one(struct virtnet_info *vi, return 0; } +static struct send_queue *virtnet_xdp_sq(struct virtnet_info *vi) +{ + unsigned int qp; + + qp = vi->curr_queue_pairs - vi->xdp_queue_pairs + smp_processor_id(); + return &vi->sq[qp]; +} + static int __virtnet_xdp_tx_xmit(struct virtnet_info *vi, struct xdp_frame *xdpf) { struct xdp_frame *xdpf_sent; struct send_queue *sq; unsigned int len; - unsigned int qp; - qp = vi->curr_queue_pairs - vi->xdp_queue_pairs + smp_processor_id(); - sq = &vi->sq[qp]; + sq = virtnet_xdp_sq(vi); /* Free up any pending old buffers before queueing new ones. */ while ((xdpf_sent = virtqueue_get_buf(sq->vq, &len)) != NULL) @@ -484,7 +490,6 @@ static int virtnet_xdp_xmit(struct net_device *dev, struct bpf_prog *xdp_prog; struct send_queue *sq; unsigned int len; - unsigned int qp; int drops = 0; int err; int i; @@ -492,8 +497,7 @@ static int virtnet_xdp_xmit(struct net_device *dev, if (unlikely(flags & ~XDP_XMIT_FLAGS_MASK)) return -EINVAL; - qp = vi->curr_queue_pairs - vi->xdp_queue_pairs + smp_processor_id(); - sq = &vi->sq[qp]; + sq = virtnet_xdp_sq(vi); /* Only allow ndo_xdp_xmit if XDP is loaded on dev, as this * indicate XDP resources have been successfully allocated. @@ -1349,7 +1353,7 @@ static int virtnet_poll(struct napi_struct *napi, int budget) container_of(napi, struct receive_queue, napi); struct virtnet_info *vi = rq->vq->vdev->priv; struct send_queue *sq; - unsigned int received, qp; + unsigned int received; unsigned int xdp_xmit = 0; virtnet_poll_cleantx(rq); @@ -1364,9 +1368,7 @@ static int virtnet_poll(struct napi_struct *napi, int budget) xdp_do_flush_map(); if (xdp_xmit & VIRTIO_XDP_TX) { - qp = vi->curr_queue_pairs - vi->xdp_queue_pairs + - smp_processor_id(); - sq = &vi->sq[qp]; + sq = virtnet_xdp_sq(vi); virtqueue_kick(sq->vq); }