From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DF863A04DB for ; Tue, 17 Nov 2020 12:16:09 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D2E1F4C90; Tue, 17 Nov 2020 12:16:08 +0100 (CET) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by dpdk.org (Postfix) with ESMTP id DAA074C90 for ; Tue, 17 Nov 2020 12:16:05 +0100 (CET) Received: by mail-wr1-f42.google.com with SMTP id p8so22778970wrx.5 for ; Tue, 17 Nov 2020 03:16:05 -0800 (PST) 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 :mime-version:content-transfer-encoding; bh=ApjF91Hoi/JfWNAXVWIAFS/GNi/A2FXf+mGy3jNMSiI=; b=UNO4zz/zHpwxdneMiYs1v/wsDBdaZ32J/mnhyh/8gabce7u44G2sxCC4R/dA0Z6k2u yI2f4LH+Qdi6VNBrexYQdU+FyO0GLRax+5mIrXjrSJBQQpskp4HZiRX43y3CN2X0cxBu ySVA0aSryKCoVSjxMFyj9qRcMOaze8yu6OPV/btCiWwFyG6kVKQoD1Dp/vbIk64AERwx x++4MEmgA0MvnSZvvR6qnyRDV8vaRRxl02QQd7zjzcekD7kHam+1iJa9P/Khh1iOPfWF TAEr59NdimThx6r0psvWYl7K9Y2B4nZva4MMTfimBWxiWSoBUSca7tV99f4HeeFqf3Rx x38Q== 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:mime-version:content-transfer-encoding; bh=ApjF91Hoi/JfWNAXVWIAFS/GNi/A2FXf+mGy3jNMSiI=; b=pw0U6AVRDDo7CK6vGBBh4EWks/L9mQHnHs63IrkIvNWa9BAnG6wue6AU8fuZyKQ9cQ N5XK54R9bVFQb6vS8dprUEFIfPfTBQA3emUwZMvK3bH5lS0mMStxAt2Uz/Plc1Od1H/b dXM6YaIVXYoOaZB1B6Pc4DoNCYlLFvBo6LuK/bOjj2NUE7Mp8l38jHXUcXXlijx06BP2 XkVLRzXeZug5eW783vPHRsDcGeNeLRD9suGjS+XFJRgBKAhaUoNZVBAlTznbNb+Zag5m /Z9UbSvGIhosrpuuZ9zVMH15SxnipFivJFcNZawuSQx4lYgpP5Ele5cEcj+9SVNSAF8x Fc5Q== X-Gm-Message-State: AOAM532m5r1KbYeFsyIVn6z/ruEmbwd+bdraYQxxLq2hSatkzkhHD1ui x20rfVmP0azlIvAicTPnC8Dc4/2+XyRhogFP X-Google-Smtp-Source: ABdhPJzSX1nCNSpEfDwooy0HCHeQyQ5DWtzOA/Fh8EKH5qSIWQRn1dGln7btMLc6vJdN1IocrCz84g== X-Received: by 2002:adf:f3d2:: with SMTP id g18mr25572780wrp.77.1605611764660; Tue, 17 Nov 2020 03:16:04 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id q2sm26307139wru.76.2020.11.17.03.16.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Nov 2020 03:16:04 -0800 (PST) From: luca.boccassi@gmail.com To: Lance Richardson Cc: Ajit Khaparde , dpdk stable Date: Tue, 17 Nov 2020 11:14:06 +0000 Message-Id: <20201117111416.1961049-32-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201117111416.1961049-1-luca.boccassi@gmail.com> References: <20201109185030.3478760-2-luca.boccassi@gmail.com> <20201117111416.1961049-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/bnxt: fix doorbell barrier location' has been queued to stable release 19.11.6 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.6 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/19/20. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/facbbcff2416df315c05f082a861d233aa457f83 Thanks. Luca Boccassi --- >From facbbcff2416df315c05f082a861d233aa457f83 Mon Sep 17 00:00:00 2001 From: Lance Richardson Date: Fri, 13 Nov 2020 11:04:45 -0500 Subject: [PATCH] net/bnxt: fix doorbell barrier location [ upstream commit d1816ceae5a8e483ae3764e800571b57e1dfa960 ] Simplify some doorbell functions now that rte_cio_wmb() has been eliminated and rte_io_wmb() is equivalent for Arm. Fix a performance degradation on x86 platforms caused by a previous Arm performance fix by moving the compiler barrier closer to the I/O write. Fixes: f0f5d844d138 ("eal: remove deprecated coherent IO memory barriers") Fixes: bfc1d45875e2 ("net/bnxt: fix performance for Arm") Signed-off-by: Lance Richardson Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ring.h | 37 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ring.h b/drivers/net/bnxt/bnxt_ring.h index f8442edb66..0a4685d167 100644 --- a/drivers/net/bnxt/bnxt_ring.h +++ b/drivers/net/bnxt/bnxt_ring.h @@ -82,12 +82,10 @@ void bnxt_free_rxtx_nq_ring(struct bnxt *bp); static inline void bnxt_db_write(struct bnxt_db_info *db, uint32_t idx) { - rte_cio_wmb(); - if (db->db_64) - rte_write64_relaxed(db->db_key64 | idx, db->doorbell); + rte_write64(db->db_key64 | idx, db->doorbell); else - rte_write32_relaxed(db->db_key32 | idx, db->doorbell); + rte_write32(db->db_key32 | idx, db->doorbell); } /* Ring an NQ doorbell and disable interrupts for the ring. */ @@ -96,10 +94,9 @@ static inline void bnxt_db_nq(struct bnxt_cp_ring_info *cpr) if (unlikely(!cpr->cp_db.db_64)) return; - rte_cio_wmb(); - rte_write64_relaxed(cpr->cp_db.db_key64 | DBR_TYPE_NQ | - RING_CMP(cpr->cp_ring_struct, cpr->cp_raw_cons), - cpr->cp_db.doorbell); + rte_write64(cpr->cp_db.db_key64 | DBR_TYPE_NQ | + RING_CMP(cpr->cp_ring_struct, cpr->cp_raw_cons), + cpr->cp_db.doorbell); } /* Ring an NQ doorbell and enable interrupts for the ring. */ @@ -108,10 +105,9 @@ static inline void bnxt_db_nq_arm(struct bnxt_cp_ring_info *cpr) if (unlikely(!cpr->cp_db.db_64)) return; - rte_cio_wmb(); - rte_write64_relaxed(cpr->cp_db.db_key64 | DBR_TYPE_NQ_ARM | - RING_CMP(cpr->cp_ring_struct, cpr->cp_raw_cons), - cpr->cp_db.doorbell); + rte_write64(cpr->cp_db.db_key64 | DBR_TYPE_NQ_ARM | + RING_CMP(cpr->cp_ring_struct, cpr->cp_raw_cons), + cpr->cp_db.doorbell); } static inline void bnxt_db_cq(struct bnxt_cp_ring_info *cpr) @@ -119,11 +115,18 @@ static inline void bnxt_db_cq(struct bnxt_cp_ring_info *cpr) struct bnxt_db_info *db = &cpr->cp_db; uint32_t idx = RING_CMP(cpr->cp_ring_struct, cpr->cp_raw_cons); - rte_compiler_barrier(); - if (db->db_64) - rte_write64_relaxed(db->db_key64 | idx, db->doorbell); - else - B_CP_DIS_DB(cpr, cpr->cp_raw_cons); + if (db->db_64) { + uint64_t key_idx = db->db_key64 | idx; + void *doorbell = db->doorbell; + + rte_compiler_barrier(); + rte_write64_relaxed(key_idx, doorbell); + } else { + uint32_t cp_raw_cons = cpr->cp_raw_cons; + + rte_compiler_barrier(); + B_CP_DIS_DB(cpr, cp_raw_cons); + } } #endif -- 2.27.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-11-17 11:13:14.339609646 +0000 +++ 0032-net-bnxt-fix-doorbell-barrier-location.patch 2020-11-17 11:13:12.941117012 +0000 @@ -1 +1 @@ -From d1816ceae5a8e483ae3764e800571b57e1dfa960 Mon Sep 17 00:00:00 2001 +From facbbcff2416df315c05f082a861d233aa457f83 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit d1816ceae5a8e483ae3764e800571b57e1dfa960 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index 3d81f610c1..0a4685d167 100644 +index f8442edb66..0a4685d167 100644 @@ -31 +32 @@ -- rte_io_wmb(); +- rte_cio_wmb(); @@ -46 +47 @@ -- rte_io_wmb(); +- rte_cio_wmb(); @@ -60 +61 @@ -- rte_io_wmb(); +- rte_cio_wmb();