[4.1] d5cf934 thread_pool_stack: better documentation, not experimental but delayed
PÃ¥l Hermunn Johansen
hermunn at varnish-software.com
Fri Nov 18 13:44:04 CET 2016
commit d5cf934f3bdeffce6cd38cb927fabf333b20abb0
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Wed Nov 9 16:27:44 2016 +0100
thread_pool_stack: better documentation, not experimental but delayed
doc-fixes #2129
diff --git a/bin/varnishd/mgt/mgt_pool.c b/bin/varnishd/mgt/mgt_pool.c
index 54407d0..f5a9cf4 100644
--- a/bin/varnishd/mgt/mgt_pool.c
+++ b/bin/varnishd/mgt/mgt_pool.c
@@ -199,8 +199,39 @@ struct parspec WRK_parspec[] = {
NULL, NULL,
"Worker thread stack size.\n"
"This will likely be rounded up to a multiple of 4k"
- " (or whatever the page_size might be) by the kernel.",
- EXPERIMENTAL,
+ " (or whatever the page_size might be) by the kernel.\n"
+ "\n"
+ "The required stack size is primarily driven by the"
+ " depth of the call-tree. The most common relevant"
+ " determining factors in varnish core code are GZIP"
+ " (un)compression, ESI processing and regular"
+ " expression matches. VMODs may also require"
+ " significant amounts of additional stack. The"
+ " nesting depth of VCL subs is another factor,"
+ " although typically not predominant.\n"
+ "\n"
+ "The stack size is per thread, so the maximum total"
+ " memory required for worker thread stacks is in the"
+ " order of size = thread_pools x thread_pool_max x"
+ " thread_pool_stack.\n"
+ "\n"
+ "Thus, in particular for setups with many threads,"
+ " keeping the stack size at a minimum helps reduce"
+ " the amount of memory required by Varnish.\n"
+ "\n"
+ "On the other hand, thread_pool_stack must be large"
+ " enough under all circumstances, otherwise varnish"
+ " will crash due to a stack overflow. Usually, a"
+ " stack overflow manifests itself as a segmentation"
+ " fault (aka segfault / SIGSEGV) with the faulting"
+ " address being near the stack pointer (sp).\n"
+ "\n"
+ "Unless stack usage can be reduced,"
+ " thread_pool_stack must be increased when a stack"
+ " overflow occurs. Setting it in 150%-200%"
+ " increments is recommended until stack overflows"
+ " cease to occur.",
+ DELAYED_EFFECT,
NULL, "bytes" }, // default set in mgt_main.c
{ NULL, NULL, NULL }
};
More information about the varnish-commit
mailing list