trace: fix crash when exiting
Bug scenario: 1. start testpmd: $ dpdk-testpmd -l 4-6 -a 0000:7d:00.0 --trace=.* -- -i 2. quit testpmd and then observed segment fault: Bye... Segmentation fault (core dumped) The root cause is that rte_trace_save() and eal_trace_fini() access the huge pages which were cleanup by rte_eal_memory_detach(). This patch moves rte_trace_save() and eal_trace_fini() before rte_eal_memory_detach() to fix the bug. Fixes: dfbc61a2f9a6 ("mem: detach memsegs on cleanup") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Tested-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
parent
8b59472875
commit
a8f23b444d
@ -893,11 +893,11 @@ rte_eal_cleanup(void)
|
||||
eal_get_internal_configuration();
|
||||
rte_service_finalize();
|
||||
rte_mp_channel_cleanup();
|
||||
rte_trace_save();
|
||||
eal_trace_fini();
|
||||
/* after this point, any DPDK pointers will become dangling */
|
||||
rte_eal_memory_detach();
|
||||
rte_eal_alarm_cleanup();
|
||||
rte_trace_save();
|
||||
eal_trace_fini();
|
||||
eal_cleanup_config(internal_conf);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1266,13 +1266,13 @@ rte_eal_cleanup(void)
|
||||
vfio_mp_sync_cleanup();
|
||||
#endif
|
||||
rte_mp_channel_cleanup();
|
||||
rte_trace_save();
|
||||
eal_trace_fini();
|
||||
/* after this point, any DPDK pointers will become dangling */
|
||||
rte_eal_memory_detach();
|
||||
eal_mp_dev_hotplug_cleanup();
|
||||
rte_eal_malloc_heap_cleanup();
|
||||
rte_eal_alarm_cleanup();
|
||||
rte_trace_save();
|
||||
eal_trace_fini();
|
||||
eal_cleanup_config(internal_conf);
|
||||
rte_eal_log_cleanup();
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user