From patchwork Thu Dec 3 20:34:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Boyer X-Patchwork-Id: 84743 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 70D8DA04B0; Thu, 3 Dec 2020 21:36:33 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 37542CA08; Thu, 3 Dec 2020 21:34:59 +0100 (CET) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by dpdk.org (Postfix) with ESMTP id 509A6C9FA for ; Thu, 3 Dec 2020 21:34:56 +0100 (CET) Received: by mail-pl1-f195.google.com with SMTP id l11so1827822plt.1 for ; Thu, 03 Dec 2020 12:34:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=qmxIh6cdNdLLa2XdNRfpBmQWwzN+8fOiAnW4//T+ShM=; b=pEjfaHTpb4+tlOAHZCTsPPo5ZH0ydzl7GahHeXDezGsOrOVoAI681AXAjbSfpduYtl HjaHhD00vU7R3O7luEv9h7AJaN3I9iaf5h62P4t76RT1RcKZt9G2hTWRSlQ99wao0D3r +QDzdvBuR0YD01kL9MT3whWcXj8snHuIcHt6RUuBmULtASkkN3oWY7nPXflb/qXOZe6X nM9e+LBJcE0ABvRXgsIVXy9ogi5i4iApX0zDH5i+9q6p7JC8fAu8kH6Lv8XXX6xtdZIz uQUOIuzs2fv6yB1XPIbYPpv+kcPpLTimdfLO9CO35ZOp01PUsIIJk8l6W0MNv3u2/p0R NLEQ== 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:in-reply-to:references; bh=qmxIh6cdNdLLa2XdNRfpBmQWwzN+8fOiAnW4//T+ShM=; b=ZSUiI4QlU+Y85AQTXGygU0aii6K77IIjM944Soc2hV//+feeDNFJGPNrQhsAyzsd20 5zE71k3NQ6PvQ1GJHx0S0rZxKmxY8z7w/8O+KwCawb+sqJQUY2orNfGl6bybgsJnNMHm TmfRU7Mx0OlsK0AR9h9SSn0d2GkvhnFFMymognNZiDE5kdtCrc2tYBlN/eph9L2n02D8 4sQhzK+kUxhysmaLNpUq5HYhiE0QFmoGnGw5c1B6nJGNPwNWmISEz7RzlefhQ4+CBtq0 ofszGQng+w3+0+Xqw0TuI6jT4X3/8o43wNpN9Ixx7JpqrI43BBPN3GpS7ycV4t+L1u+Q Do8A== X-Gm-Message-State: AOAM53096HlZxAxN2MlbO3U2VJ+TG3W3JQLwBmT5EA8+IuCJOuXl/Kdp +eZ/MRQkSu/cicux4FeL0YlzMm6uE0wPjA== X-Google-Smtp-Source: ABdhPJw0uPCR8n1Qa3T3sQs1hVKwQwzKKLf9DCqUNrvt6vt0ZimzZfGGQ3eBch3VcXT4iV7uAFwHfQ== X-Received: by 2002:a17:902:9a88:b029:d8:dd93:5846 with SMTP id w8-20020a1709029a88b02900d8dd935846mr919532plp.28.1607027695336; Thu, 03 Dec 2020 12:34:55 -0800 (PST) Received: from driver-dev1.pensando.io ([12.226.153.42]) by smtp.gmail.com with ESMTPSA id w145sm2709770pff.75.2020.12.03.12.34.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Dec 2020 12:34:54 -0800 (PST) From: Andrew Boyer To: dev@dpdk.org Cc: Alfredo Cardigliano , Andrew Boyer Date: Thu, 3 Dec 2020 12:34:15 -0800 Message-Id: <20201203203418.15064-7-aboyer@pensando.io> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201203203418.15064-1-aboyer@pensando.io> References: <20201203203418.15064-1-aboyer@pensando.io> In-Reply-To: <20201102183527.69209-1-aboyer@pensando.io> References: <20201102183527.69209-1-aboyer@pensando.io> Subject: [dpdk-dev] [PATCH v2 6/9] net/ionic: convert 'deferred' boolean to a flag bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This conserves resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 4 ++-- drivers/net/ionic/ionic_lif.h | 2 +- drivers/net/ionic/ionic_rxtx.c | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index bc15d75fd..2e33fb8d9 100644 --- a/drivers/net/ionic/ionic_lif.c +++ b/drivers/net/ionic/ionic_lif.c @@ -1590,7 +1590,7 @@ ionic_lif_start(struct ionic_lif *lif) for (i = 0; i < lif->nrxqcqs; i++) { struct ionic_qcq *rxq = lif->rxqcqs[i]; - if (!rxq->deferred_start) { + if (!(rxq->flags & IONIC_QCQ_F_DEFERRED)) { err = ionic_dev_rx_queue_start(lif->eth_dev, i); if (err) @@ -1600,7 +1600,7 @@ ionic_lif_start(struct ionic_lif *lif) for (i = 0; i < lif->ntxqcqs; i++) { struct ionic_qcq *txq = lif->txqcqs[i]; - if (!txq->deferred_start) { + if (!(txq->flags & IONIC_QCQ_F_DEFERRED)) { err = ionic_dev_tx_queue_start(lif->eth_dev, i); if (err) diff --git a/drivers/net/ionic/ionic_lif.h b/drivers/net/ionic/ionic_lif.h index 4e091719f..8e2b42443 100644 --- a/drivers/net/ionic/ionic_lif.h +++ b/drivers/net/ionic/ionic_lif.h @@ -50,6 +50,7 @@ struct ionic_rx_stats { #define IONIC_QCQ_F_SG BIT(1) #define IONIC_QCQ_F_INTR BIT(2) #define IONIC_QCQ_F_NOTIFYQ BIT(3) +#define IONIC_QCQ_F_DEFERRED BIT(4) /* Queue / Completion Queue */ struct ionic_qcq { @@ -68,7 +69,6 @@ struct ionic_qcq { uint32_t total_size; uint32_t flags; struct ionic_intr_info intr; - bool deferred_start; }; #define IONIC_Q_TO_QCQ(q) container_of(q, struct ionic_qcq, q) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index 2592f5cab..b953aff49 100644 --- a/drivers/net/ionic/ionic_rxtx.c +++ b/drivers/net/ionic/ionic_rxtx.c @@ -64,7 +64,7 @@ ionic_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id, qinfo->nb_desc = q->num_descs; qinfo->conf.offloads = txq->offloads; - qinfo->conf.tx_deferred_start = txq->deferred_start; + qinfo->conf.tx_deferred_start = txq->flags & IONIC_QCQ_F_DEFERRED; } static inline void __rte_cold @@ -196,7 +196,8 @@ ionic_dev_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t tx_queue_id, } /* Do not start queue with rte_eth_dev_start() */ - txq->deferred_start = tx_conf->tx_deferred_start; + if (tx_conf->tx_deferred_start) + txq->flags |= IONIC_QCQ_F_DEFERRED; txq->offloads = offloads; @@ -605,7 +606,7 @@ ionic_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id, qinfo->mp = rxq->mb_pool; qinfo->scattered_rx = dev->data->scattered_rx; qinfo->nb_desc = q->num_descs; - qinfo->conf.rx_deferred_start = rxq->deferred_start; + qinfo->conf.rx_deferred_start = rxq->flags & IONIC_QCQ_F_DEFERRED; qinfo->conf.offloads = rxq->offloads; } @@ -703,7 +704,8 @@ ionic_dev_rx_queue_setup(struct rte_eth_dev *eth_dev, */ /* Do not start queue with rte_eth_dev_start() */ - rxq->deferred_start = rx_conf->rx_deferred_start; + if (rx_conf->rx_deferred_start) + rxq->flags |= IONIC_QCQ_F_DEFERRED; rxq->offloads = offloads;