From: Pavan Nikhilesh <pbhagavatula@marvell.com> Since selftest now depends on dynamic mbuf fields it is not feasible to run selftest on device probe. Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> --- drivers/event/octeontx2/otx2_evdev.c | 8 -------- drivers/event/octeontx2/otx2_evdev.h | 1 - 2 files changed, 9 deletions(-) diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index b31c26e95..c1a5916cd 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -1606,7 +1606,6 @@ static struct rte_eventdev_ops otx2_sso_ops = { #define OTX2_SSO_XAE_CNT "xae_cnt" #define OTX2_SSO_SINGLE_WS "single_ws" #define OTX2_SSO_GGRP_QOS "qos" -#define OTX2_SSO_SELFTEST "selftest" static void parse_queue_param(char *value, void *opaque) @@ -1696,8 +1695,6 @@ sso_parse_devargs(struct otx2_sso_evdev *dev, struct rte_devargs *devargs) if (kvlist == NULL) return; - rte_kvargs_process(kvlist, OTX2_SSO_SELFTEST, &parse_kvargs_flag, - &dev->selftest); rte_kvargs_process(kvlist, OTX2_SSO_XAE_CNT, &parse_kvargs_value, &dev->xae_cnt); rte_kvargs_process(kvlist, OTX2_SSO_SINGLE_WS, &parse_kvargs_flag, @@ -1813,10 +1810,6 @@ otx2_sso_init(struct rte_eventdev *event_dev) otx2_sso_dbg("Initializing %s max_queues=%d max_ports=%d", event_dev->data->name, dev->max_event_queues, dev->max_event_ports); - if (dev->selftest) { - event_dev->dev->driver = &pci_sso.driver; - event_dev->dev_ops->dev_selftest(); - } otx2_tim_init(pci_dev, (struct otx2_dev *)dev); @@ -1866,5 +1859,4 @@ RTE_PMD_REGISTER_KMOD_DEP(event_octeontx2, "vfio-pci"); RTE_PMD_REGISTER_PARAM_STRING(event_octeontx2, OTX2_SSO_XAE_CNT "=<int>" OTX2_SSO_SINGLE_WS "=1" OTX2_SSO_GGRP_QOS "=<string>" - OTX2_SSO_SELFTEST "=1" OTX2_NPA_LOCK_MASK "=<1-65535>"); diff --git a/drivers/event/octeontx2/otx2_evdev.h b/drivers/event/octeontx2/otx2_evdev.h index 547e29d4a..210ee89f1 100644 --- a/drivers/event/octeontx2/otx2_evdev.h +++ b/drivers/event/octeontx2/otx2_evdev.h @@ -147,7 +147,6 @@ struct otx2_sso_evdev { uint64_t *timer_adptr_sz; /* Dev args */ uint8_t dual_ws; - uint8_t selftest; uint32_t xae_cnt; uint8_t qos_queue_cnt; struct otx2_sso_qos *qos_parse_data; -- 2.17.1
From: Pavan Nikhilesh <pbhagavatula@marvell.com> Since selftest now depends on dynamic mbuf fields it is not feasible to run selftest on device probe. Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> --- drivers/event/octeontx/ssovf_evdev.c | 22 ++++------------------ drivers/event/octeontx/ssovf_evdev.h | 2 -- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 6f242aac1..e60a7dc69 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -710,8 +710,7 @@ ssovf_close(struct rte_eventdev *dev) } static int -ssovf_selftest(const char *key __rte_unused, const char *value, - void *opaque) +ssovf_parsekv(const char *key __rte_unused, const char *value, void *opaque) { int *flag = opaque; *flag = !!atoi(value); @@ -775,10 +774,8 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) const char *name; const char *params; int ret; - int selftest = 0; static const char *const args[] = { - SSOVF_SELFTEST_ARG, TIMVF_ENABLE_STATS_ARG, NULL }; @@ -799,18 +796,9 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) "Ignoring unsupported params supplied '%s'", name); } else { - int ret = rte_kvargs_process(kvlist, - SSOVF_SELFTEST_ARG, - ssovf_selftest, &selftest); - if (ret != 0) { - ssovf_log_err("%s: Error in selftest", name); - rte_kvargs_free(kvlist); - return ret; - } - - ret = rte_kvargs_process(kvlist, - TIMVF_ENABLE_STATS_ARG, - ssovf_selftest, &timvf_enable_stats); + ret = rte_kvargs_process(kvlist, TIMVF_ENABLE_STATS_ARG, + ssovf_parsekv, + &timvf_enable_stats); if (ret != 0) { ssovf_log_err("%s: Error in timvf stats", name); rte_kvargs_free(kvlist); @@ -877,8 +865,6 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) edev->max_event_ports); ssovf_init_once = 1; - if (selftest) - test_eventdev_octeontx(); return 0; error: diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h index 90d760a54..10163151c 100644 --- a/drivers/event/octeontx/ssovf_evdev.h +++ b/drivers/event/octeontx/ssovf_evdev.h @@ -86,8 +86,6 @@ #define SSO_GRP_GET_PRIORITY 0x7 #define SSO_GRP_SET_PRIORITY 0x8 -#define SSOVF_SELFTEST_ARG ("selftest") - /* * In Cavium OCTEON TX SoC, all accesses to the device registers are * implictly strongly ordered. So, The relaxed version of IO operation is -- 2.17.1
On Thu, Nov 19, 2020 at 1:24 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Since selftest now depends on dynamic mbuf fields it is not
> feasible to run selftest on device probe.
Indeed, this is something that I missed with the seqn rework.
Can't you call rte_event_dev_selftest() from within the pmd?
--
David Marchand
>On Thu, Nov 19, 2020 at 1:24 PM <pbhagavatula@marvell.com> wrote: >> >> From: Pavan Nikhilesh <pbhagavatula@marvell.com> >> >> Since selftest now depends on dynamic mbuf fields it is not >> feasible to run selftest on device probe. > >Indeed, this is something that I missed with the seqn rework. >Can't you call rte_event_dev_selftest() from within the pmd? > We can but generally selftest is run as a safety net before an custom application runs but now since selftest uses dynamic mbuf fields the custom application would be starved of that field since there is no way to unregister it. Regards, Pavan. > >-- >David Marchand
On Thu, Nov 19, 2020 at 2:31 PM Pavan Nikhilesh Bhagavatula
<pbhagavatula@marvell.com> wrote:
> We can but generally selftest is run as a safety net before an
> custom application runs but now since selftest uses dynamic
> mbuf fields the custom application would be starved of that
> field since there is no way to unregister it.
Then please update the documentation accordingly.
doc/guides/eventdevs/octeontx.rst: --vdev="event_octeontx,selftest=1"
doc/guides/eventdevs/octeontx2.rst: -a 0002:0e:00.0,selftest=1
--
David Marchand
> >On Thu, Nov 19, 2020 at 2:31 PM Pavan Nikhilesh Bhagavatula ><pbhagavatula@marvell.com> wrote: >> We can but generally selftest is run as a safety net before an >> custom application runs but now since selftest uses dynamic >> mbuf fields the custom application would be starved of that >> field since there is no way to unregister it. > >Then please update the documentation accordingly. >doc/guides/eventdevs/octeontx.rst: -- >vdev="event_octeontx,selftest=1" >doc/guides/eventdevs/octeontx2.rst: -a 0002:0e:00.0,selftest=1 > Ah! Yes, forgot about docs will send v2. Thanks, Pavan. > >-- >David Marchand
From: Pavan Nikhilesh <pbhagavatula@marvell.com> Since selftest now depends on dynamic mbuf fields it is not feasible to run selftest on device probe. Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> --- v2 Changes: - remove selftest from doc. doc/guides/eventdevs/octeontx2.rst | 9 --------- drivers/event/octeontx2/otx2_evdev.c | 8 -------- drivers/event/octeontx2/otx2_evdev.h | 1 - 3 files changed, 18 deletions(-) diff --git a/doc/guides/eventdevs/octeontx2.rst b/doc/guides/eventdevs/octeontx2.rst index 485a375c4..ce733198c 100644 --- a/doc/guides/eventdevs/octeontx2.rst +++ b/doc/guides/eventdevs/octeontx2.rst @@ -80,15 +80,6 @@ Runtime Config Options -a 0002:0e:00.0,qos=[1-50-50-50] -- ``Selftest`` - - The functionality of OCTEON TX2 eventdev can be verified using this option, - various unit and functional tests are run to verify the sanity. - The tests are run once the vdev creation is successfully complete. - For example:: - - -a 0002:0e:00.0,selftest=1 - - ``TIM disable NPA`` By default chunks are allocated from NPA then TIM can automatically free diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index b31c26e95..c1a5916cd 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -1606,7 +1606,6 @@ static struct rte_eventdev_ops otx2_sso_ops = { #define OTX2_SSO_XAE_CNT "xae_cnt" #define OTX2_SSO_SINGLE_WS "single_ws" #define OTX2_SSO_GGRP_QOS "qos" -#define OTX2_SSO_SELFTEST "selftest" static void parse_queue_param(char *value, void *opaque) @@ -1696,8 +1695,6 @@ sso_parse_devargs(struct otx2_sso_evdev *dev, struct rte_devargs *devargs) if (kvlist == NULL) return; - rte_kvargs_process(kvlist, OTX2_SSO_SELFTEST, &parse_kvargs_flag, - &dev->selftest); rte_kvargs_process(kvlist, OTX2_SSO_XAE_CNT, &parse_kvargs_value, &dev->xae_cnt); rte_kvargs_process(kvlist, OTX2_SSO_SINGLE_WS, &parse_kvargs_flag, @@ -1813,10 +1810,6 @@ otx2_sso_init(struct rte_eventdev *event_dev) otx2_sso_dbg("Initializing %s max_queues=%d max_ports=%d", event_dev->data->name, dev->max_event_queues, dev->max_event_ports); - if (dev->selftest) { - event_dev->dev->driver = &pci_sso.driver; - event_dev->dev_ops->dev_selftest(); - } otx2_tim_init(pci_dev, (struct otx2_dev *)dev); @@ -1866,5 +1859,4 @@ RTE_PMD_REGISTER_KMOD_DEP(event_octeontx2, "vfio-pci"); RTE_PMD_REGISTER_PARAM_STRING(event_octeontx2, OTX2_SSO_XAE_CNT "=<int>" OTX2_SSO_SINGLE_WS "=1" OTX2_SSO_GGRP_QOS "=<string>" - OTX2_SSO_SELFTEST "=1" OTX2_NPA_LOCK_MASK "=<1-65535>"); diff --git a/drivers/event/octeontx2/otx2_evdev.h b/drivers/event/octeontx2/otx2_evdev.h index 547e29d4a..210ee89f1 100644 --- a/drivers/event/octeontx2/otx2_evdev.h +++ b/drivers/event/octeontx2/otx2_evdev.h @@ -147,7 +147,6 @@ struct otx2_sso_evdev { uint64_t *timer_adptr_sz; /* Dev args */ uint8_t dual_ws; - uint8_t selftest; uint32_t xae_cnt; uint8_t qos_queue_cnt; struct otx2_sso_qos *qos_parse_data; -- 2.17.1
From: Pavan Nikhilesh <pbhagavatula@marvell.com> Since selftest now depends on dynamic mbuf fields it is not feasible to run selftest on device probe. Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> --- doc/guides/eventdevs/octeontx.rst | 12 ------------ drivers/event/octeontx/ssovf_evdev.c | 22 ++++------------------ drivers/event/octeontx/ssovf_evdev.h | 2 -- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/doc/guides/eventdevs/octeontx.rst b/doc/guides/eventdevs/octeontx.rst index 79cae9f7d..435e1e953 100644 --- a/doc/guides/eventdevs/octeontx.rst +++ b/doc/guides/eventdevs/octeontx.rst @@ -63,18 +63,6 @@ Example: ./your_eventdev_application --vdev="event_octeontx" -Selftest --------- - -The functionality of OCTEON TX eventdev can be verified using this option, -various unit and functional tests are run to verify the sanity. -The tests are run once the vdev creation is successfully complete. - -.. code-block:: console - - --vdev="event_octeontx,selftest=1" - - Enable TIMvf stats ------------------ TIMvf stats can be enabled by using this option, by default the stats are diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 6f242aac1..e60a7dc69 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -710,8 +710,7 @@ ssovf_close(struct rte_eventdev *dev) } static int -ssovf_selftest(const char *key __rte_unused, const char *value, - void *opaque) +ssovf_parsekv(const char *key __rte_unused, const char *value, void *opaque) { int *flag = opaque; *flag = !!atoi(value); @@ -775,10 +774,8 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) const char *name; const char *params; int ret; - int selftest = 0; static const char *const args[] = { - SSOVF_SELFTEST_ARG, TIMVF_ENABLE_STATS_ARG, NULL }; @@ -799,18 +796,9 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) "Ignoring unsupported params supplied '%s'", name); } else { - int ret = rte_kvargs_process(kvlist, - SSOVF_SELFTEST_ARG, - ssovf_selftest, &selftest); - if (ret != 0) { - ssovf_log_err("%s: Error in selftest", name); - rte_kvargs_free(kvlist); - return ret; - } - - ret = rte_kvargs_process(kvlist, - TIMVF_ENABLE_STATS_ARG, - ssovf_selftest, &timvf_enable_stats); + ret = rte_kvargs_process(kvlist, TIMVF_ENABLE_STATS_ARG, + ssovf_parsekv, + &timvf_enable_stats); if (ret != 0) { ssovf_log_err("%s: Error in timvf stats", name); rte_kvargs_free(kvlist); @@ -877,8 +865,6 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) edev->max_event_ports); ssovf_init_once = 1; - if (selftest) - test_eventdev_octeontx(); return 0; error: diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h index 90d760a54..10163151c 100644 --- a/drivers/event/octeontx/ssovf_evdev.h +++ b/drivers/event/octeontx/ssovf_evdev.h @@ -86,8 +86,6 @@ #define SSO_GRP_GET_PRIORITY 0x7 #define SSO_GRP_SET_PRIORITY 0x8 -#define SSOVF_SELFTEST_ARG ("selftest") - /* * In Cavium OCTEON TX SoC, all accesses to the device registers are * implictly strongly ordered. So, The relaxed version of IO operation is -- 2.17.1
On Thu, Nov 19, 2020 at 7:28 PM <pbhagavatula@marvell.com> wrote: > > From: Pavan Nikhilesh <pbhagavatula@marvell.com> > > Since selftest now depends on dynamic mbuf fields it is not > feasible to run selftest on device probe. > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Series applied to dpdk-next-eventdev/for-main. Thanks. > --- > doc/guides/eventdevs/octeontx.rst | 12 ------------ > drivers/event/octeontx/ssovf_evdev.c | 22 ++++------------------ > drivers/event/octeontx/ssovf_evdev.h | 2 -- > 3 files changed, 4 insertions(+), 32 deletions(-) > > diff --git a/doc/guides/eventdevs/octeontx.rst b/doc/guides/eventdevs/octeontx.rst > index 79cae9f7d..435e1e953 100644 > --- a/doc/guides/eventdevs/octeontx.rst > +++ b/doc/guides/eventdevs/octeontx.rst > @@ -63,18 +63,6 @@ Example: > ./your_eventdev_application --vdev="event_octeontx" > > > -Selftest > --------- > - > -The functionality of OCTEON TX eventdev can be verified using this option, > -various unit and functional tests are run to verify the sanity. > -The tests are run once the vdev creation is successfully complete. > - > -.. code-block:: console > - > - --vdev="event_octeontx,selftest=1" > - > - > Enable TIMvf stats > ------------------ > TIMvf stats can be enabled by using this option, by default the stats are > diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c > index 6f242aac1..e60a7dc69 100644 > --- a/drivers/event/octeontx/ssovf_evdev.c > +++ b/drivers/event/octeontx/ssovf_evdev.c > @@ -710,8 +710,7 @@ ssovf_close(struct rte_eventdev *dev) > } > > static int > -ssovf_selftest(const char *key __rte_unused, const char *value, > - void *opaque) > +ssovf_parsekv(const char *key __rte_unused, const char *value, void *opaque) > { > int *flag = opaque; > *flag = !!atoi(value); > @@ -775,10 +774,8 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) > const char *name; > const char *params; > int ret; > - int selftest = 0; > > static const char *const args[] = { > - SSOVF_SELFTEST_ARG, > TIMVF_ENABLE_STATS_ARG, > NULL > }; > @@ -799,18 +796,9 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) > "Ignoring unsupported params supplied '%s'", > name); > } else { > - int ret = rte_kvargs_process(kvlist, > - SSOVF_SELFTEST_ARG, > - ssovf_selftest, &selftest); > - if (ret != 0) { > - ssovf_log_err("%s: Error in selftest", name); > - rte_kvargs_free(kvlist); > - return ret; > - } > - > - ret = rte_kvargs_process(kvlist, > - TIMVF_ENABLE_STATS_ARG, > - ssovf_selftest, &timvf_enable_stats); > + ret = rte_kvargs_process(kvlist, TIMVF_ENABLE_STATS_ARG, > + ssovf_parsekv, > + &timvf_enable_stats); > if (ret != 0) { > ssovf_log_err("%s: Error in timvf stats", name); > rte_kvargs_free(kvlist); > @@ -877,8 +865,6 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev) > edev->max_event_ports); > > ssovf_init_once = 1; > - if (selftest) > - test_eventdev_octeontx(); > return 0; > > error: > diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h > index 90d760a54..10163151c 100644 > --- a/drivers/event/octeontx/ssovf_evdev.h > +++ b/drivers/event/octeontx/ssovf_evdev.h > @@ -86,8 +86,6 @@ > #define SSO_GRP_GET_PRIORITY 0x7 > #define SSO_GRP_SET_PRIORITY 0x8 > > -#define SSOVF_SELFTEST_ARG ("selftest") > - > /* > * In Cavium OCTEON TX SoC, all accesses to the device registers are > * implictly strongly ordered. So, The relaxed version of IO operation is > -- > 2.17.1 >