* [dpdk-dev] [PATCH v2 09/13] eal: replace rte_panic instances in common_memzone
2018-04-04 22:01 [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Arnon Warshavsky
@ 2018-04-04 22:01 ` Arnon Warshavsky
2018-04-04 22:01 ` [dpdk-dev] [PATCH v2 01/13] crypto: replace rte_panic instances in crypto driver Arnon Warshavsky
2018-04-13 9:16 ` [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Burakov, Anatoly
2 siblings, 0 replies; 5+ messages in thread
From: Arnon Warshavsky @ 2018-04-04 22:01 UTC (permalink / raw)
To: thomas, anatoly.burakov, wenzhuo.lu, declan.doherty, jerin.jacob,
bruce.richardson, ferruh.yigit
Cc: dev, arnon
replace panic calls with log and return value.
--
v2:
- update doxigen to include new error value
- reformat error message to include literal string in a single line
Signed-off-by: Arnon Warshavsky <arnon@qwilt.com>
---
lib/librte_eal/common/eal_common_memzone.c | 3 ++-
lib/librte_eal/common/include/rte_memzone.h | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
index 1ab3ade..fe058cc 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -314,8 +314,9 @@
if (addr == NULL)
ret = -EINVAL;
else if (mcfg->memzone_cnt == 0) {
- rte_panic("%s(): memzone address not NULL but memzone_cnt is 0!\n",
+ RTE_LOG(CRIT, EAL, "%s(): memzone address not NULL but memzone_cnt is 0!\n",
__func__);
+ return -1;
} else {
memset(&mcfg->memzone[idx], 0, sizeof(mcfg->memzone[idx]));
mcfg->memzone_cnt--;
diff --git a/lib/librte_eal/common/include/rte_memzone.h b/lib/librte_eal/common/include/rte_memzone.h
index 2bfb273..e2b4c7d 100644
--- a/lib/librte_eal/common/include/rte_memzone.h
+++ b/lib/librte_eal/common/include/rte_memzone.h
@@ -234,6 +234,7 @@ const struct rte_memzone *rte_memzone_reserve_bounded(const char *name,
* A pointer to the memzone
* @return
* -EINVAL - invalid parameter.
+ * -1 - internal state error
* 0 - success
*/
int rte_memzone_free(const struct rte_memzone *mz);
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-dev] [PATCH v2 01/13] crypto: replace rte_panic instances in crypto driver
2018-04-04 22:01 [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Arnon Warshavsky
2018-04-04 22:01 ` [dpdk-dev] [PATCH v2 09/13] eal: replace rte_panic instances in common_memzone Arnon Warshavsky
@ 2018-04-04 22:01 ` Arnon Warshavsky
2018-04-13 9:16 ` [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Burakov, Anatoly
2 siblings, 0 replies; 5+ messages in thread
From: Arnon Warshavsky @ 2018-04-04 22:01 UTC (permalink / raw)
To: thomas, anatoly.burakov, wenzhuo.lu, declan.doherty, jerin.jacob,
bruce.richardson, ferruh.yigit
Cc: dev, arnon
replace panic calls with log and return value.
--
v2:
- reformat error message to include literal string in a single line
Signed-off-by: Arnon Warshavsky <arnon@qwilt.com>
---
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++---
drivers/crypto/dpaa_sec/dpaa_sec.c | 8 +++++---
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 784b96d..9e0ca7f 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -2861,9 +2861,11 @@ struct rte_security_ops dpaa2_sec_security_ops = {
RTE_CACHE_LINE_SIZE,
rte_socket_id());
- if (cryptodev->data->dev_private == NULL)
- rte_panic("Cannot allocate memzone for private "
- "device data");
+ if (cryptodev->data->dev_private == NULL) {
+ RTE_LOG(ERR, PMD, "%s() Cannot allocate memzone for private device data",
+ __func__);
+ return -1;
+ }
}
dpaa2_dev->cryptodev = cryptodev;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index c5191ce..793891a 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -2374,9 +2374,11 @@ struct rte_security_ops dpaa_sec_security_ops = {
RTE_CACHE_LINE_SIZE,
rte_socket_id());
- if (cryptodev->data->dev_private == NULL)
- rte_panic("Cannot allocate memzone for private "
- "device data");
+ if (cryptodev->data->dev_private == NULL) {
+ RTE_LOG(ERR, PMD, "%s() Cannot allocate memzone for private device data",
+ __func__);
+ return -1;
+ }
}
dpaa_dev->crypto_dev = cryptodev;
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances
2018-04-04 22:01 [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Arnon Warshavsky
2018-04-04 22:01 ` [dpdk-dev] [PATCH v2 09/13] eal: replace rte_panic instances in common_memzone Arnon Warshavsky
2018-04-04 22:01 ` [dpdk-dev] [PATCH v2 01/13] crypto: replace rte_panic instances in crypto driver Arnon Warshavsky
@ 2018-04-13 9:16 ` Burakov, Anatoly
2018-04-13 18:21 ` Arnon Warshavsky
2 siblings, 1 reply; 5+ messages in thread
From: Burakov, Anatoly @ 2018-04-13 9:16 UTC (permalink / raw)
To: Arnon Warshavsky, thomas, wenzhuo.lu, declan.doherty,
jerin.jacob, bruce.richardson, ferruh.yigit
Cc: dev
On 04-Apr-18 11:01 PM, Arnon Warshavsky wrote:
>
> The purpose of this patch series is to cleanup the library code
> from paths that end up aborting the process,
> and move to checking error values, in order to allow the running process
> perform an orderly teardown or other mitigation of the event.
>
> This patch modifies the majority of rte_panic calls
> under lib and drivers, and replaces them with a log message
> and an error return code according to context,
> that can be propagated up the call stack.
>
> - Focus was given to the dpdk initialization path
> - Some of the panic calls within drivers were left in place where
> the call is from within an interrupt or calls that are
> on the data path,where there is no simple applicative
> route to propagate the error to temination.
> These should be handled by the driver maintainers.
> - In order to avoid breaking ABI where panic was called from public
> void functions, a panic state variable was introduced so that
> it can be queried after calling these void functions.
> This tool place for a single function call.
> - local void functions with no api were changed to retrun a value
> where needed
> - No change took place in example and test files
> - No change took place for debug assertions calling panic
> - A new function was added to devtools/checkpatches.sh
> in order to prevent new additions of calls to rte_panic
> under lib and drivers.
>
> Keep calm and don't panic
>
> ---
>
> v2:
> - reformat error messages so that literal string are in the same line
> - fix typo in commit message
> - add new return code to doxigen of rte_memzone_free()
Hi Arnon,
When sending new versions, the entire patchset must be sent. It makes it
easier for maintainers to apply patches this way.
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances
2018-04-13 9:16 ` [dpdk-dev] [PATCH v2 00/13] eal: replace calls to rte_panic and refrain from new instances Burakov, Anatoly
@ 2018-04-13 18:21 ` Arnon Warshavsky
0 siblings, 0 replies; 5+ messages in thread
From: Arnon Warshavsky @ 2018-04-13 18:21 UTC (permalink / raw)
To: Burakov, Anatoly
Cc: Thomas Monjalon, wenzhuo.lu, declan.doherty, jerin.jacob,
Bruce Richardson, ferruh.yigit, dev
Hi Arnon,
>
> When sending new versions, the entire patchset must be sent. It makes it
> easier for maintainers to apply patches this way.
>
> Thanks Anatoly
Will do
^ permalink raw reply [flat|nested] 5+ messages in thread