[20.11] eal: simplify exit functions
Checks
Commit Message
The option RTE_EAL_ALWAYS_PANIC_ON_ERROR was off by default,
and not customizable with meson. It is completely removed.
The function rte_dump_registers is a trace of the bare metal support
era, and was not supported in userland. It is completely removed.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
Because the empty function rte_dump_registers is part of the ABI,
this change is planned for DPDK 20.11.
---
app/test/test_debug.c | 3 ---
config/common_base | 1 -
doc/guides/howto/debug_troubleshoot.rst | 2 +-
lib/librte_eal/common/eal_common_debug.c | 17 +----------------
lib/librte_eal/include/rte_debug.h | 7 -------
lib/librte_eal/rte_eal_version.map | 1 -
6 files changed, 2 insertions(+), 29 deletions(-)
Comments
On 24/06/2020 10:36, Thomas Monjalon wrote:
> The option RTE_EAL_ALWAYS_PANIC_ON_ERROR was off by default,
> and not customizable with meson. It is completely removed.
>
> The function rte_dump_registers is a trace of the bare metal support
> era, and was not supported in userland. It is completely removed.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> Because the empty function rte_dump_registers is part of the ABI,
> this change is planned for DPDK 20.11.
> ---
> app/test/test_debug.c | 3 ---
> config/common_base | 1 -
> doc/guides/howto/debug_troubleshoot.rst | 2 +-
> lib/librte_eal/common/eal_common_debug.c | 17 +----------------
> lib/librte_eal/include/rte_debug.h | 7 -------
> lib/librte_eal/rte_eal_version.map | 1 -
> 6 files changed, 2 insertions(+), 29 deletions(-)
>
> diff --git a/app/test/test_debug.c b/app/test/test_debug.c
> index 25eab97e2a..834a7386f5 100644
> --- a/app/test/test_debug.c
> +++ b/app/test/test_debug.c
> @@ -66,13 +66,11 @@ test_exit_val(int exit_val)
> }
> wait(&status);
> printf("Child process status: %d\n", status);
> -#ifndef RTE_EAL_ALWAYS_PANIC_ON_ERROR
> if(!WIFEXITED(status) || WEXITSTATUS(status) != (uint8_t)exit_val){
> printf("Child process terminated with incorrect status (expected = %d)!\n",
> exit_val);
> return -1;
> }
> -#endif
> return 0;
> }
>
> @@ -113,7 +111,6 @@ static int
> test_debug(void)
> {
> rte_dump_stack();
> - rte_dump_registers();
> if (test_panic() < 0)
> return -1;
> if (test_exit() < 0)
> diff --git a/config/common_base b/config/common_base
> index c7d5c73215..42ad399b17 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -103,7 +103,6 @@ CONFIG_RTE_ENABLE_TRACE_FP=n
> CONFIG_RTE_LOG_HISTORY=256
> CONFIG_RTE_BACKTRACE=y
> CONFIG_RTE_LIBEAL_USE_HPET=n
> -CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
> CONFIG_RTE_EAL_IGB_UIO=n
> CONFIG_RTE_EAL_VFIO=n
> CONFIG_RTE_MAX_VFIO_GROUPS=64
> diff --git a/doc/guides/howto/debug_troubleshoot.rst b/doc/guides/howto/debug_troubleshoot.rst
> index cef016b2fe..1ed8be5a04 100644
> --- a/doc/guides/howto/debug_troubleshoot.rst
> +++ b/doc/guides/howto/debug_troubleshoot.rst
> @@ -313,7 +313,7 @@ Custom worker function :numref:`dtg_distributor_worker`.
> * For high-performance execution logic ensure running it on correct NUMA
> and non-master core.
>
> - * Analyze run logic with ``rte_dump_stack``, ``rte_dump_registers`` and
> + * Analyze run logic with ``rte_dump_stack`` and
> ``rte_memdump`` for more insights.
>
> * Make use of objdump to ensure opcode is matching to the desired state.
> diff --git a/lib/librte_eal/common/eal_common_debug.c b/lib/librte_eal/common/eal_common_debug.c
> index 722468754d..15418e957f 100644
> --- a/lib/librte_eal/common/eal_common_debug.c
> +++ b/lib/librte_eal/common/eal_common_debug.c
> @@ -7,14 +7,6 @@
> #include <rte_log.h>
> #include <rte_debug.h>
>
> -/* not implemented */
> -void
> -rte_dump_registers(void)
> -{
> - return;
> -}
> -
> -/* call abort(), it will generate a coredump if enabled */
> void
> __rte_panic(const char *funcname, const char *format, ...)
> {
> @@ -25,8 +17,7 @@ __rte_panic(const char *funcname, const char *format, ...)
> rte_vlog(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, format, ap);
> va_end(ap);
> rte_dump_stack();
> - rte_dump_registers();
> - abort();
> + abort(); /* generate a coredump if enabled */
> }
>
> /*
> @@ -46,14 +37,8 @@ rte_exit(int exit_code, const char *format, ...)
> rte_vlog(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, format, ap);
> va_end(ap);
>
> -#ifndef RTE_EAL_ALWAYS_PANIC_ON_ERROR
> if (rte_eal_cleanup() != 0)
> RTE_LOG(CRIT, EAL,
> "EAL could not release all resources\n");
> exit(exit_code);
> -#else
> - rte_dump_stack();
> - rte_dump_registers();
> - abort();
> -#endif
> }
> diff --git a/lib/librte_eal/include/rte_debug.h b/lib/librte_eal/include/rte_debug.h
> index 50052c5a90..c4bc71ce28 100644
> --- a/lib/librte_eal/include/rte_debug.h
> +++ b/lib/librte_eal/include/rte_debug.h
> @@ -26,13 +26,6 @@ extern "C" {
> */
> void rte_dump_stack(void);
>
> -/**
> - * Dump the registers of the calling core to the console.
> - *
> - * Note: Not implemented in a userapp environment; use gdb instead.
> - */
> -void rte_dump_registers(void);
> -
> /**
> * Provide notification of a critical non-recoverable error and terminate
> * execution abnormally.
> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
> index 196eef5afa..3f36e46b3b 100644
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -37,7 +37,6 @@ DPDK_20.0 {
> rte_devargs_remove;
> rte_devargs_type_count;
> rte_dump_physmem_layout;
> - rte_dump_registers;
> rte_dump_stack;
> rte_dump_tailq;
> rte_eal_alarm_cancel;
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
@@ -66,13 +66,11 @@ test_exit_val(int exit_val)
}
wait(&status);
printf("Child process status: %d\n", status);
-#ifndef RTE_EAL_ALWAYS_PANIC_ON_ERROR
if(!WIFEXITED(status) || WEXITSTATUS(status) != (uint8_t)exit_val){
printf("Child process terminated with incorrect status (expected = %d)!\n",
exit_val);
return -1;
}
-#endif
return 0;
}
@@ -113,7 +111,6 @@ static int
test_debug(void)
{
rte_dump_stack();
- rte_dump_registers();
if (test_panic() < 0)
return -1;
if (test_exit() < 0)
@@ -103,7 +103,6 @@ CONFIG_RTE_ENABLE_TRACE_FP=n
CONFIG_RTE_LOG_HISTORY=256
CONFIG_RTE_BACKTRACE=y
CONFIG_RTE_LIBEAL_USE_HPET=n
-CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
CONFIG_RTE_EAL_IGB_UIO=n
CONFIG_RTE_EAL_VFIO=n
CONFIG_RTE_MAX_VFIO_GROUPS=64
@@ -313,7 +313,7 @@ Custom worker function :numref:`dtg_distributor_worker`.
* For high-performance execution logic ensure running it on correct NUMA
and non-master core.
- * Analyze run logic with ``rte_dump_stack``, ``rte_dump_registers`` and
+ * Analyze run logic with ``rte_dump_stack`` and
``rte_memdump`` for more insights.
* Make use of objdump to ensure opcode is matching to the desired state.
@@ -7,14 +7,6 @@
#include <rte_log.h>
#include <rte_debug.h>
-/* not implemented */
-void
-rte_dump_registers(void)
-{
- return;
-}
-
-/* call abort(), it will generate a coredump if enabled */
void
__rte_panic(const char *funcname, const char *format, ...)
{
@@ -25,8 +17,7 @@ __rte_panic(const char *funcname, const char *format, ...)
rte_vlog(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, format, ap);
va_end(ap);
rte_dump_stack();
- rte_dump_registers();
- abort();
+ abort(); /* generate a coredump if enabled */
}
/*
@@ -46,14 +37,8 @@ rte_exit(int exit_code, const char *format, ...)
rte_vlog(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, format, ap);
va_end(ap);
-#ifndef RTE_EAL_ALWAYS_PANIC_ON_ERROR
if (rte_eal_cleanup() != 0)
RTE_LOG(CRIT, EAL,
"EAL could not release all resources\n");
exit(exit_code);
-#else
- rte_dump_stack();
- rte_dump_registers();
- abort();
-#endif
}
@@ -26,13 +26,6 @@ extern "C" {
*/
void rte_dump_stack(void);
-/**
- * Dump the registers of the calling core to the console.
- *
- * Note: Not implemented in a userapp environment; use gdb instead.
- */
-void rte_dump_registers(void);
-
/**
* Provide notification of a critical non-recoverable error and terminate
* execution abnormally.
@@ -37,7 +37,6 @@ DPDK_20.0 {
rte_devargs_remove;
rte_devargs_type_count;
rte_dump_physmem_layout;
- rte_dump_registers;
rte_dump_stack;
rte_dump_tailq;
rte_eal_alarm_cancel;