All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v1 0/2] baseband/fpga_lte_fec: bug fixes from HW validation
@ 2019-10-21 19:24 Nicolas Chautru
  2019-10-21 19:24 ` [dpdk-dev] [PATCH v1 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-21 19:24 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. 
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 spurrious 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 v1 1/2] baseband/fpga_lte_fec: fix probing fatal failure
  2019-10-21 19:24 [dpdk-dev] [PATCH v1 0/2] baseband/fpga_lte_fec: bug fixes from HW validation Nicolas Chautru
@ 2019-10-21 19:24 ` Nicolas Chautru
  2019-10-21 19:24 ` [dpdk-dev] [PATCH v1 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
  2019-10-22  7:58 ` [dpdk-dev] [PATCH v1 0/2] baseband/fpga_lte_fec: bug fixes from HW validation Akhil Goyal
  2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Chautru @ 2019-10-21 19:24 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nic Chautru

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.

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 related	[flat|nested] 4+ messages in thread

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

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 explictly to
volatile integer.

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 related	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH v1 0/2] baseband/fpga_lte_fec: bug fixes from HW validation
  2019-10-21 19:24 [dpdk-dev] [PATCH v1 0/2] baseband/fpga_lte_fec: bug fixes from HW validation Nicolas Chautru
  2019-10-21 19:24 ` [dpdk-dev] [PATCH v1 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
  2019-10-21 19:24 ` [dpdk-dev] [PATCH v1 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
@ 2019-10-22  7:58 ` Akhil Goyal
  2 siblings, 0 replies; 4+ messages in thread
From: Akhil Goyal @ 2019-10-22  7:58 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.
> 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 spurrious
> 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(-)
> 
Add Bugzilla id if available.
Missing fixes line in both of your patches.
Also add cc:stable

Regards,
Akhil

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

end of thread, other threads:[~2019-10-22  7:58 UTC | newest]

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.