MINOR: debug: remove the redundant process.thread_info array from post_mortem

That one is huge and unneeded since we now have the pointer to the
whole thread_info[] array, which does contain the freshest version
of these info and many more. Let's just get rid of it entirely.
This commit is contained in:
Willy Tarreau 2024-10-28 07:47:23 +01:00
parent da5cf52173
commit 52240680f1
1 changed files with 0 additions and 20 deletions

View File

@ -136,13 +136,6 @@ struct post_mortem {
struct rlimit run_lim_fd; // RLIMIT_NOFILE just before enter in polling loop struct rlimit run_lim_fd; // RLIMIT_NOFILE just before enter in polling loop
struct rlimit run_lim_ram; // RLIMIT_DATA just before enter in polling loop struct rlimit run_lim_ram; // RLIMIT_DATA just before enter in polling loop
char **argv; char **argv;
#if defined(USE_THREAD)
struct {
ullong pth_id; // pthread_t cast to a ullong
void *stack_top; // top of the stack
} thread_info[MAX_THREADS];
#endif
unsigned char argc; unsigned char argc;
} process; } process;
@ -2629,23 +2622,10 @@ void post_mortem_add_component(const char *name, const char *version,
static int feed_post_mortem_late() static int feed_post_mortem_late()
{ {
static int per_thread_info_collected; static int per_thread_info_collected;
int i;
if (HA_ATOMIC_ADD_FETCH(&per_thread_info_collected, 1) != global.nbthread) if (HA_ATOMIC_ADD_FETCH(&per_thread_info_collected, 1) != global.nbthread)
return 1; return 1;
/* Collect thread info, only when we are in the last thread context.
* feed_post_mortem_late() is registered in per_thread_init_list. Each
* thread takes a mutex before looping over this list, so
* feed_post_mortem_late() will be called by each thread in exclusive
* manner, one by one in synchronous order. Thread unlocks mutex only
* after executing all init functions from this list.
*/
for (i = 0; i < global.nbthread; i++) {
post_mortem.process.thread_info[i].pth_id = ha_thread_info[i].pth_id;
post_mortem.process.thread_info[i].stack_top = ha_thread_info[i].stack_top;
}
/* also set runtime process settings. At this stage we are sure, that all /* also set runtime process settings. At this stage we are sure, that all
* config options and limits adjustments are successfully applied. * config options and limits adjustments are successfully applied.
*/ */