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