* [PATCH] raw/ntb: clear all valid DB bits when DB init
@ 2022-02-09 4:35 Junfeng Guo
2022-02-09 4:39 ` [PATCH v2] " Junfeng Guo
0 siblings, 1 reply; 8+ messages in thread
From: Junfeng Guo @ 2022-02-09 4:35 UTC (permalink / raw)
To: jingjing.wu; +Cc: dev, stable, junfeng.guo
Before registering the doorbell interrupt handler callback function,
all the valid doorbell bits within the NTB private data struct should
be cleared to aviod the confusion of the handshake timing sequence
diagram when setting up the NTB connection in back-to-back mode.
Fixes: 62012a76811e ("raw/ntb: add handshake process")
Cc: stable@dpdk.org
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
---
drivers/raw/ntb/ntb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 46ac02e5ab..6f15b13585 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -1398,6 +1398,8 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device *pci_dev)
/* Init doorbell. */
hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
+ /* Clear all valid doorbell bits before registering intr handler*/
+ (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
intr_handle = pci_dev->intr_handle;
/* Register callback func to eal lib */
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2] raw/ntb: clear all valid DB bits when DB init
2022-02-09 4:35 [PATCH] raw/ntb: clear all valid DB bits when DB init Junfeng Guo
@ 2022-02-09 4:39 ` Junfeng Guo
2022-02-09 4:47 ` [PATCH v3] " Junfeng Guo
0 siblings, 1 reply; 8+ messages in thread
From: Junfeng Guo @ 2022-02-09 4:39 UTC (permalink / raw)
To: jingjing.wu; +Cc: dev, stable, junfeng.guo
Before registering the doorbell interrupt handler callback function,
all the valid doorbell bits within the NTB private data struct should
be cleared to avoid the confusion of the handshake timing sequence
diagram when setting up the NTB connection in back-to-back mode.
Fixes: 62012a76811e ("raw/ntb: add handshake process")
Cc: stable@dpdk.org
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
---
drivers/raw/ntb/ntb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 46ac02e5ab..6f15b13585 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -1398,6 +1398,8 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device *pci_dev)
/* Init doorbell. */
hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
+ /* Clear all valid doorbell bits before registering intr handler*/
+ (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
intr_handle = pci_dev->intr_handle;
/* Register callback func to eal lib */
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3] raw/ntb: clear all valid DB bits when DB init
2022-02-09 4:39 ` [PATCH v2] " Junfeng Guo
@ 2022-02-09 4:47 ` Junfeng Guo
2022-02-10 6:50 ` Wu, Jingjing
2022-02-10 7:06 ` [PATCH v4] " Junfeng Guo
0 siblings, 2 replies; 8+ messages in thread
From: Junfeng Guo @ 2022-02-09 4:47 UTC (permalink / raw)
To: jingjing.wu; +Cc: dev, stable, junfeng.guo
Before registering the doorbell interrupt handler callback function,
all the valid doorbell bits within the NTB private data struct should
be cleared to avoid the confusion of the handshake timing sequence
diagram when setting up the NTB connection in back-to-back mode.
Fixes: 62012a76811e ("raw/ntb: add handshake process")
Cc: stable@dpdk.org
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
---
drivers/raw/ntb/ntb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 46ac02e5ab..cc611dfbb9 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -1398,6 +1398,8 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device *pci_dev)
/* Init doorbell. */
hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
+ /* Clear all valid doorbell bits before registering intr handler */
+ (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
intr_handle = pci_dev->intr_handle;
/* Register callback func to eal lib */
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
2022-02-09 4:47 ` [PATCH v3] " Junfeng Guo
@ 2022-02-10 6:50 ` Wu, Jingjing
2022-02-10 7:08 ` Guo, Junfeng
2022-02-10 7:06 ` [PATCH v4] " Junfeng Guo
1 sibling, 1 reply; 8+ messages in thread
From: Wu, Jingjing @ 2022-02-10 6:50 UTC (permalink / raw)
To: Guo, Junfeng; +Cc: dev, stable
> -----Original Message-----
> From: Guo, Junfeng <junfeng.guo@intel.com>
> Sent: Wednesday, February 9, 2022 12:47 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Guo, Junfeng <junfeng.guo@intel.com>
> Subject: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
>
> Before registering the doorbell interrupt handler callback function,
> all the valid doorbell bits within the NTB private data struct should
> be cleared to avoid the confusion of the handshake timing sequence
> diagram when setting up the NTB connection in back-to-back mode.
>
> Fixes: 62012a76811e ("raw/ntb: add handshake process")
> Cc: stable@dpdk.org
>
> Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
> ---
> drivers/raw/ntb/ntb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Better to add changes compared to previous version, which would help reviewers.
> diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
> index 46ac02e5ab..cc611dfbb9 100644
> --- a/drivers/raw/ntb/ntb.c
> +++ b/drivers/raw/ntb/ntb.c
> @@ -1398,6 +1398,8 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device
> *pci_dev)
>
> /* Init doorbell. */
> hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
> + /* Clear all valid doorbell bits before registering intr handler */
> + (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
Check if hw->ntb_ops->db_clear is NULL before call it.
>
> intr_handle = pci_dev->intr_handle;
> /* Register callback func to eal lib */
> --
> 2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v4] raw/ntb: clear all valid DB bits when DB init
2022-02-09 4:47 ` [PATCH v3] " Junfeng Guo
2022-02-10 6:50 ` Wu, Jingjing
@ 2022-02-10 7:06 ` Junfeng Guo
2022-02-10 7:09 ` Wu, Jingjing
1 sibling, 1 reply; 8+ messages in thread
From: Junfeng Guo @ 2022-02-10 7:06 UTC (permalink / raw)
To: jingjing.wu; +Cc: dev, stable, junfeng.guo
Before registering the doorbell interrupt handler callback function,
all the valid doorbell bits within the NTB private data struct should
be cleared to avoid the confusion of the handshake timing sequence
diagram when setting up the NTB connection in back-to-back mode.
Fixes: 62012a76811e ("raw/ntb: add handshake process")
Cc: stable@dpdk.org
v2: fix typo
v3: fix coding style issue
v4: add ops check before calling it
Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
---
drivers/raw/ntb/ntb.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
index 46ac02e5ab..f5e773c53b 100644
--- a/drivers/raw/ntb/ntb.c
+++ b/drivers/raw/ntb/ntb.c
@@ -1398,6 +1398,10 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device *pci_dev)
/* Init doorbell. */
hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
+ /* Clear all valid doorbell bits before registering intr handler */
+ if (hw->ntb_ops->db_clear == NULL)
+ return -ENOTSUP;
+ (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
intr_handle = pci_dev->intr_handle;
/* Register callback func to eal lib */
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
2022-02-10 6:50 ` Wu, Jingjing
@ 2022-02-10 7:08 ` Guo, Junfeng
0 siblings, 0 replies; 8+ messages in thread
From: Guo, Junfeng @ 2022-02-10 7:08 UTC (permalink / raw)
To: Wu, Jingjing; +Cc: dev, stable
> -----Original Message-----
> From: Wu, Jingjing <jingjing.wu@intel.com>
> Sent: Thursday, February 10, 2022 14:51
> To: Guo, Junfeng <junfeng.guo@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: RE: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
>
>
>
> > -----Original Message-----
> > From: Guo, Junfeng <junfeng.guo@intel.com>
> > Sent: Wednesday, February 9, 2022 12:47 PM
> > To: Wu, Jingjing <jingjing.wu@intel.com>
> > Cc: dev@dpdk.org; stable@dpdk.org; Guo, Junfeng
> <junfeng.guo@intel.com>
> > Subject: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
> >
> > Before registering the doorbell interrupt handler callback function,
> > all the valid doorbell bits within the NTB private data struct should
> > be cleared to avoid the confusion of the handshake timing sequence
> > diagram when setting up the NTB connection in back-to-back mode.
> >
> > Fixes: 62012a76811e ("raw/ntb: add handshake process")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
> > ---
> > drivers/raw/ntb/ntb.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> Better to add changes compared to previous version, which would help
> reviewers.
Sure, I'll add the version change commit in the coming version. Thanks!
>
> > diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
> > index 46ac02e5ab..cc611dfbb9 100644
> > --- a/drivers/raw/ntb/ntb.c
> > +++ b/drivers/raw/ntb/ntb.c
> > @@ -1398,6 +1398,8 @@ ntb_init_hw(struct rte_rawdev *dev, struct
> rte_pci_device
> > *pci_dev)
> >
> > /* Init doorbell. */
> > hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
> > + /* Clear all valid doorbell bits before registering intr handler */
> > + (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
>
> Check if hw->ntb_ops->db_clear is NULL before call it.
OK, will add it in the coming version. Thanks for review!
>
> >
> > intr_handle = pci_dev->intr_handle;
> > /* Register callback func to eal lib */
> > --
> > 2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v4] raw/ntb: clear all valid DB bits when DB init
2022-02-10 7:06 ` [PATCH v4] " Junfeng Guo
@ 2022-02-10 7:09 ` Wu, Jingjing
2022-02-13 11:26 ` Thomas Monjalon
0 siblings, 1 reply; 8+ messages in thread
From: Wu, Jingjing @ 2022-02-10 7:09 UTC (permalink / raw)
To: Guo, Junfeng; +Cc: dev, stable
> -----Original Message-----
> From: Guo, Junfeng <junfeng.guo@intel.com>
> Sent: Thursday, February 10, 2022 3:07 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Guo, Junfeng <junfeng.guo@intel.com>
> Subject: [PATCH v4] raw/ntb: clear all valid DB bits when DB init
>
> Before registering the doorbell interrupt handler callback function,
> all the valid doorbell bits within the NTB private data struct should
> be cleared to avoid the confusion of the handshake timing sequence
> diagram when setting up the NTB connection in back-to-back mode.
>
> Fixes: 62012a76811e ("raw/ntb: add handshake process")
> Cc: stable@dpdk.org
>
> v2: fix typo
> v3: fix coding style issue
> v4: add ops check before calling it
>
> Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v4] raw/ntb: clear all valid DB bits when DB init
2022-02-10 7:09 ` Wu, Jingjing
@ 2022-02-13 11:26 ` Thomas Monjalon
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Monjalon @ 2022-02-13 11:26 UTC (permalink / raw)
To: Guo, Junfeng; +Cc: dev, stable, Wu, Jingjing
> > Before registering the doorbell interrupt handler callback function,
> > all the valid doorbell bits within the NTB private data struct should
> > be cleared to avoid the confusion of the handshake timing sequence
> > diagram when setting up the NTB connection in back-to-back mode.
> >
> > Fixes: 62012a76811e ("raw/ntb: add handshake process")
> > Cc: stable@dpdk.org
> >
> > v2: fix typo
> > v3: fix coding style issue
> > v4: add ops check before calling it
The changelog should be below line of ---
> > Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-02-13 11:26 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-09 4:35 [PATCH] raw/ntb: clear all valid DB bits when DB init Junfeng Guo
2022-02-09 4:39 ` [PATCH v2] " Junfeng Guo
2022-02-09 4:47 ` [PATCH v3] " Junfeng Guo
2022-02-10 6:50 ` Wu, Jingjing
2022-02-10 7:08 ` Guo, Junfeng
2022-02-10 7:06 ` [PATCH v4] " Junfeng Guo
2022-02-10 7:09 ` Wu, Jingjing
2022-02-13 11:26 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).