DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation
@ 2019-10-22 13:16 Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nicolas Chautru @ 2019-10-22 13:16 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nicolas Chautru

Failures found when running validation with FPGA HW and the related FPGA PMD driver on latest code base pre 19.11. 

v2: Adding Fixes: and cc: stable to commit messages. (There is no Bugzilla Id for these)

Two bug fixes below :
- The first error is a fatal failure during probing which was missed and would fundamentally prevent using the driver. This was missed as HW validation was still focus on old DPDK release. The assumptions had change on driver assignment during probing and the impact was missed so far. 
- The 2nd failure is not as critical but good to fix as it can cause spurious detection of flushing failure. 
(Resending as previous one did not seem to go through on dpdk ml).


Nic Chautru (2):
  baseband/fpga_lte_fec: fix probing fatal failure
  baseband/fpga_lte_fec: fix to polling of MMIO register

 drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure
  2019-10-22 13:16 [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Nicolas Chautru
@ 2019-10-22 13:16 ` Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
  2019-10-23 13:51 ` [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Akhil Goyal
  2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Chautru @ 2019-10-22 13:16 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nic Chautru, stable

From: Nic Chautru <nicolas.chautru@intel.com>

A change to PCI mapping assumption was missed earlier, this causes
probing to fail with the fpga_lte_fec PMD when checking for name
of the rte_driver (not set yet) instead of the rte_pci_driver.

Fixes: 391797f04208 ("drivers/bus: move driver assignment to end of probing")
Cc: thomas@monjalon.net
Cc: stable@dpdk.org

Signed-off-by: Nic Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
index 7e05b94..2fc7f11 100644
--- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
+++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
@@ -2307,7 +2307,7 @@ struct __rte_cache_aligned fpga_queue {
 
 /* Initialization Function */
 static void
-fpga_lte_fec_init(struct rte_bbdev *dev)
+fpga_lte_fec_init(struct rte_bbdev *dev, struct rte_pci_driver *drv)
 {
 	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
 
@@ -2318,7 +2318,7 @@ struct __rte_cache_aligned fpga_queue {
 	dev->dequeue_dec_ops = fpga_dequeue_dec;
 
 	((struct fpga_lte_fec_device *) dev->data->dev_private)->pf_device =
-			!strcmp(dev->device->driver->name,
+			!strcmp(drv->driver.name,
 					RTE_STR(FPGA_LTE_FEC_PF_DRIVER_NAME));
 	((struct fpga_lte_fec_device *) dev->data->dev_private)->mmio_base =
 			pci_dev->mem_resource[0].addr;
@@ -2331,7 +2331,7 @@ struct __rte_cache_aligned fpga_queue {
 }
 
 static int
-fpga_lte_fec_probe(struct rte_pci_driver *pci_drv __rte_unused,
+fpga_lte_fec_probe(struct rte_pci_driver *pci_drv,
 	struct rte_pci_device *pci_dev)
 {
 	struct rte_bbdev *bbdev = NULL;
@@ -2368,7 +2368,7 @@ struct __rte_cache_aligned fpga_queue {
 	bbdev->data->socket_id = pci_dev->device.numa_node;
 
 	/* Invoke FEC FPGA device initialization function */
-	fpga_lte_fec_init(bbdev);
+	fpga_lte_fec_init(bbdev, pci_drv);
 
 	rte_bbdev_log_debug("bbdev id = %u [%s]",
 			bbdev->data->dev_id, dev_name);
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register
  2019-10-22 13:16 [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
@ 2019-10-22 13:16 ` Nicolas Chautru
  2019-10-23 13:51 ` [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Akhil Goyal
  2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Chautru @ 2019-10-22 13:16 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nic Chautru, stable

From: Nic Chautru <nicolas.chautru@intel.com>

Polling of a MMIO register could misreport the actual value
set dynamically in hardware as the variable was not set explicitly
to volatile integer.

Fixes: efd453698c49 ("baseband/fpga_lte_fec: add driver for FEC on FPGA")
Cc: nicolas.chautru@intel.com
Cc: stable@dpdk.org

Signed-off-by: Nic Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
index 2fc7f11..8bd10b4 100644
--- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
+++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
@@ -889,7 +889,7 @@ struct __rte_cache_aligned fpga_queue {
 	 * completed. If completion flag is not updated within 1ms it is
 	 * considered as a failure.
 	 */
-	while (!(*((uint8_t *)d->flush_queue_status + q->q_idx) & payload)) {
+	while (!(*((volatile uint8_t *)d->flush_queue_status + q->q_idx) & payload)) {
 		if (counter > timeout) {
 			rte_bbdev_log(ERR, "FPGA Queue Flush failed for queue %d",
 					queue_id);
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation
  2019-10-22 13:16 [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
@ 2019-10-23 13:51 ` Akhil Goyal
  2 siblings, 0 replies; 4+ messages in thread
From: Akhil Goyal @ 2019-10-23 13:51 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: ferruh.yigit, thomas



> 
> Failures found when running validation with FPGA HW and the related FPGA PMD
> driver on latest code base pre 19.11.
> 
> v2: Adding Fixes: and cc: stable to commit messages. (There is no Bugzilla Id for
> these)
> 
> Two bug fixes below :
> - The first error is a fatal failure during probing which was missed and would
> fundamentally prevent using the driver. This was missed as HW validation was
> still focus on old DPDK release. The assumptions had change on driver
> assignment during probing and the impact was missed so far.
> - The 2nd failure is not as critical but good to fix as it can cause spurious
> detection of flushing failure.
> (Resending as previous one did not seem to go through on dpdk ml).
> 
> 
> Nic Chautru (2):
>   baseband/fpga_lte_fec: fix probing fatal failure
>   baseband/fpga_lte_fec: fix to polling of MMIO register
> 
>  drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
Applied to dpdk-next-crypto

Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-10-23 13:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-22 13:16 [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Nicolas Chautru
2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
2019-10-22 13:16 ` [dpdk-dev] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
2019-10-23 13:51 ` [dpdk-dev] [PATCH v2 0/2] baseband/fpga_lte_fec: bug fixes from FPGA LTE HW validation Akhil Goyal

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).