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