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 5D8A1A04B5 for ; Thu, 29 Oct 2020 07:30:47 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5700872E7; Thu, 29 Oct 2020 07:30:46 +0100 (CET) Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by dpdk.org (Postfix) with ESMTP id CEA8F72E7 for ; Thu, 29 Oct 2020 07:30:43 +0100 (CET) Received: by mail-pf1-f178.google.com with SMTP id e7so1483188pfn.12 for ; Wed, 28 Oct 2020 23:30:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OoxPKJPk5tvZ5UdOp1GPSmdr+sra6eagFdcWQqpbUFc=; b=Yv5ElcVhYe4MRcs6ouVPdMM2Ot1B0Ag6HO2CGGj5hP2rgktG3916VB2uzn4OvsTZJx wBuDZtGn2BKHCJfyh0cQamz5TNw8HkeaHXOitXiVZxNjOs53zVK/40+elAmMDMigCrb6 bV3F2PS42fhCJRW1iNrLC5pX1n9KSwklVnF7U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OoxPKJPk5tvZ5UdOp1GPSmdr+sra6eagFdcWQqpbUFc=; b=sdNlhEMdxvROKOBZuOlWdvOcJamZ4+NzcvM04cE1NilJC9L79X2mySFA2jzBMC1+vc WmvOpiO5OCwR7wuL4oug2Scdh/10QEbltS3jnXyNMA6ku70qsX7NEUoi6q9Zr3KoLoH/ 0NTvuySurNibIS9FLbYHvsNKlSNQq0ISX2VPCjU6SD7P3y5CPD5r2LZCSR3HY6fqK1f3 lY9/Ff4noe4/iQwzgno5uYiPAzftm/i2em0563bVrajoS0AfIla2gsgpMtbgMSm65zPK LJz6RFkQO0puTLWt+FUEVxkWcCvUA4kMLSdw0/MVmLVJxqj5YSUjQRgA16QiLpfkA6jy bzYg== X-Gm-Message-State: AOAM530J8lTYZQ3i/oYkkfepVOZhtnPsixtFuJm3uIzC85fSJur+kP9Z FjK3eaDGieqTo9ioRdJs+tMi5l+fXVS53C7cZiC0Zg== X-Google-Smtp-Source: ABdhPJzrZ55iy3/SJjYNvRxFChJjqsNnbSpLYwtHugOPNCQ5aaMihS6Nf0KMYyKKc4Q28ezL6NZ1oT+ouVrnB1QHRKE= X-Received: by 2002:a17:90a:4587:: with SMTP id v7mr2755925pjg.217.1603953041917; Wed, 28 Oct 2020 23:30:41 -0700 (PDT) MIME-Version: 1.0 References: <20201028104606.3504127-1-luca.boccassi@gmail.com> <20201028104606.3504127-45-luca.boccassi@gmail.com> In-Reply-To: <20201028104606.3504127-45-luca.boccassi@gmail.com> From: Somnath Kotur Date: Thu, 29 Oct 2020 12:00:29 +0530 Message-ID: To: luca.boccassi@gmail.com Cc: Sriharsha Basavapatna , Kalesh AP , Ajit Khaparde , dpdk stable Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-stable] patch 'net/bnxt: add separate mutex for FW health check' 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" On Wed, Oct 28, 2020 at 4:18 PM wrote: > > 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 10/30/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. > > Thanks. > > Luca Boccassi > > --- > From beb74f5be42aaa494ea6b278091b028043931f69 Mon Sep 17 00:00:00 2001 > From: Somnath Kotur > Date: Thu, 10 Sep 2020 18:56:03 -0700 > Subject: [PATCH] net/bnxt: add separate mutex for FW health check > > [ upstream commit 2993075dc253484ba3c87996981f32468aa86cbd ] > > def_cp_lock was added to sync race between dev_configure and > int_handler. It should not be used to synchronize scheduling of FW > health check between dev_start and async event handler as well, > use a separate mutex for the same. > > Fixes: a73b8e939f10 ("net/bnxt: fix race between start and interrupt handler") > > Signed-off-by: Somnath Kotur > Reviewed-by: Sriharsha Basavapatna > Reviewed-by: Kalesh AP > Reviewed-by: Ajit Khaparde > --- > drivers/net/bnxt/bnxt.h | 1 + > drivers/net/bnxt/bnxt_ethdev.c | 17 +++++++++++++---- > 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h > index 46cf418647..cdb3e2d3ff 100644 > --- a/drivers/net/bnxt/bnxt.h > +++ b/drivers/net/bnxt/bnxt.h > @@ -593,6 +593,7 @@ struct bnxt { > rte_iova_t hwrm_short_cmd_req_dma_addr; > rte_spinlock_t hwrm_lock; > pthread_mutex_t def_cp_lock; > + pthread_mutex_t health_check_lock; > uint16_t max_req_len; > uint16_t max_resp_len; > uint16_t hwrm_max_ext_req_len; > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > index fe240b6ccc..d6afd03e56 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -885,9 +885,8 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev) > eth_dev->rx_pkt_burst = bnxt_receive_function(eth_dev); > eth_dev->tx_pkt_burst = bnxt_transmit_function(eth_dev); > > - pthread_mutex_lock(&bp->def_cp_lock); > bnxt_schedule_fw_health_check(bp); > - pthread_mutex_unlock(&bp->def_cp_lock); > + > return 0; > > error: > @@ -4205,17 +4204,22 @@ void bnxt_schedule_fw_health_check(struct bnxt *bp) > { > uint32_t polling_freq; > > + pthread_mutex_lock(&bp->health_check_lock); > + > if (!bnxt_is_recovery_enabled(bp)) > - return; > + goto done; > > if (bp->flags & BNXT_FLAG_FW_HEALTH_CHECK_SCHEDULED) > - return; > + goto done; > > polling_freq = bp->recovery_info->driver_polling_freq; > > rte_eal_alarm_set(US_PER_MS * polling_freq, > bnxt_check_fw_health, (void *)bp); > bp->flags |= BNXT_FLAG_FW_HEALTH_CHECK_SCHEDULED; > + > +done: > + pthread_mutex_unlock(&bp->health_check_lock); > } > > static void bnxt_cancel_fw_health_check(struct bnxt *bp) > @@ -4747,6 +4751,10 @@ bnxt_init_locks(struct bnxt *bp) > err = pthread_mutex_init(&bp->def_cp_lock, NULL); > if (err) > PMD_DRV_LOG(ERR, "Unable to initialize def_cp_lock\n"); > + > + err = pthread_mutex_init(&bp->health_check_lock, NULL); > + if (err) > + PMD_DRV_LOG(ERR, "Unable to initialize health_check_lock\n"); > return err; > } > > @@ -4888,6 +4896,7 @@ bnxt_uninit_locks(struct bnxt *bp) > { > pthread_mutex_destroy(&bp->flow_lock); > pthread_mutex_destroy(&bp->def_cp_lock); > + pthread_mutex_destroy(&bp->health_check_lock); > } > > static int > -- > 2.20.1 > > --- > Diff of the applied patch vs upstream commit (please double-check if non-empty: > --- > --- - 2020-10-28 10:35:13.193181379 +0000 > +++ 0045-net-bnxt-add-separate-mutex-for-FW-health-check.patch 2020-10-28 10:35:11.508830082 +0000 > @@ -1,15 +1,16 @@ > -From 2993075dc253484ba3c87996981f32468aa86cbd Mon Sep 17 00:00:00 2001 > +From beb74f5be42aaa494ea6b278091b028043931f69 Mon Sep 17 00:00:00 2001 > From: Somnath Kotur > Date: Thu, 10 Sep 2020 18:56:03 -0700 > Subject: [PATCH] net/bnxt: add separate mutex for FW health check > > +[ upstream commit 2993075dc253484ba3c87996981f32468aa86cbd ] > + > def_cp_lock was added to sync race between dev_configure and > int_handler. It should not be used to synchronize scheduling of FW > health check between dev_start and async event handler as well, > use a separate mutex for the same. > > Fixes: a73b8e939f10 ("net/bnxt: fix race between start and interrupt handler") > -Cc: stable@dpdk.org > > Signed-off-by: Somnath Kotur > Reviewed-by: Sriharsha Basavapatna > @@ -17,14 +18,14 @@ > Reviewed-by: Ajit Khaparde > --- > drivers/net/bnxt/bnxt.h | 1 + > - drivers/net/bnxt/bnxt_ethdev.c | 16 ++++++++++++---- > - 2 files changed, 13 insertions(+), 4 deletions(-) > + drivers/net/bnxt/bnxt_ethdev.c | 17 +++++++++++++---- > + 2 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h > -index f0b0800151..bb265999d4 100644 > +index 46cf418647..cdb3e2d3ff 100644 > --- a/drivers/net/bnxt/bnxt.h > +++ b/drivers/net/bnxt/bnxt.h > -@@ -712,6 +712,7 @@ struct bnxt { > +@@ -593,6 +593,7 @@ struct bnxt { > rte_iova_t hwrm_short_cmd_req_dma_addr; > rte_spinlock_t hwrm_lock; > pthread_mutex_t def_cp_lock; > @@ -33,20 +34,21 @@ > uint16_t max_resp_len; > uint16_t hwrm_max_ext_req_len; > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > -index 7c27e2435a..05e9a6abbf 100644 > +index fe240b6ccc..d6afd03e56 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > -@@ -1252,9 +1252,7 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev) > +@@ -885,9 +885,8 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev) > eth_dev->rx_pkt_burst = bnxt_receive_function(eth_dev); > eth_dev->tx_pkt_burst = bnxt_transmit_function(eth_dev); > > - pthread_mutex_lock(&bp->def_cp_lock); > bnxt_schedule_fw_health_check(bp); > - pthread_mutex_unlock(&bp->def_cp_lock); > - > ++ > return 0; > > -@@ -4675,17 +4673,22 @@ void bnxt_schedule_fw_health_check(struct bnxt *bp) > + error: > +@@ -4205,17 +4204,22 @@ void bnxt_schedule_fw_health_check(struct bnxt *bp) > { > uint32_t polling_freq; > > @@ -71,7 +73,7 @@ > } > > static void bnxt_cancel_fw_health_check(struct bnxt *bp) > -@@ -5473,6 +5476,10 @@ bnxt_init_locks(struct bnxt *bp) > +@@ -4747,6 +4751,10 @@ bnxt_init_locks(struct bnxt *bp) > err = pthread_mutex_init(&bp->def_cp_lock, NULL); > if (err) > PMD_DRV_LOG(ERR, "Unable to initialize def_cp_lock\n"); > @@ -82,14 +84,14 @@ > return err; > } > > -@@ -5884,6 +5891,7 @@ bnxt_uninit_locks(struct bnxt *bp) > +@@ -4888,6 +4896,7 @@ bnxt_uninit_locks(struct bnxt *bp) > { > pthread_mutex_destroy(&bp->flow_lock); > pthread_mutex_destroy(&bp->def_cp_lock); > + pthread_mutex_destroy(&bp->health_check_lock); > - if (bp->rep_info) { > - pthread_mutex_destroy(&bp->rep_info->vfr_lock); > - pthread_mutex_destroy(&bp->rep_info->vfr_start_lock); > + } > + > + static int > -- > 2.20.1 > Luca, I see that the rebase is not correct, you'd want me to re-spin the corrected version and send it to the 'stable' mailing list, right? Thanks Som