Commit ea9c4a16 authored by Tom Lane's avatar Tom Lane

Add more temporary code to record stack usage at server process exit.

After a look at preliminary results from commit 88cf37d2,
I realized it'd be a good idea to spew out the maximum depth measurement
seen by check_stack_depth.  So add some quick-n-dirty code to do that.
Like the previous commit, this will be reverted once we've gathered
a set of buildfarm runs with it.
parent 769159fd
......@@ -35,6 +35,9 @@
#include "storage/ipc.h"
#include "tcop/tcopprot.h"
extern long max_measured_stack_depth;
extern long max_measured_register_stack_depth;
/*
* This flag is set during proc_exit() to change ereport()'s behavior,
......@@ -121,6 +124,15 @@ report_stack_size(void)
(int) getpid());
(void) system(sysbuf);
#endif
#if defined(__ia64__) || defined(__ia64)
fprintf(stderr, "max measured stack depths %ldkB, %ldkB\n",
(max_measured_stack_depth + 1023) / 1024,
(max_measured_register_stack_depth + 1023) / 1024);
#else
fprintf(stderr, "max measured stack depth %ldkB\n",
(max_measured_stack_depth + 1023) / 1024);
#endif
}
......
......@@ -96,6 +96,9 @@ int max_stack_depth = 100;
/* wait N seconds to allow attach from a debugger */
int PostAuthDelay = 0;
/* Exported for use by proc_exit */
long max_measured_stack_depth = 0;
long max_measured_register_stack_depth = 0;
/* ----------------
......@@ -3137,6 +3140,11 @@ stack_is_too_deep(void)
if (stack_depth < 0)
stack_depth = -stack_depth;
/* Track max measured depth for reporting by proc_exit */
if (stack_depth > max_measured_stack_depth &&
stack_base_ptr != NULL)
max_measured_stack_depth = stack_depth;
/*
* Trouble?
*
......@@ -3160,6 +3168,10 @@ stack_is_too_deep(void)
#if defined(__ia64__) || defined(__ia64)
stack_depth = (long) (ia64_get_bsp() - register_stack_base_ptr);
if (stack_depth > max_measured_register_stack_depth &&
register_stack_base_ptr != NULL)
max_measured_register_stack_depth = stack_depth;
if (stack_depth > max_stack_depth_bytes &&
register_stack_base_ptr != NULL)
return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment