[PATCH 2/3] core/fiber: Mark stack as unneeded on creation
Cyrill Gorcunov
gorcunov at gmail.com
Wed Mar 6 01:38:53 MSK 2019
Since we've increased the default stack size we hope
the whole 256K won't be used for regular loads thus
we mark the stack area as unneeded to minimize rss
pressure.
Note we do this on fiber creation at the moment, more
detailed stack usage analisys will be in next patches
since it doesn't depend on this change.
Closes #3418
---
src/lib/core/fiber.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/lib/core/fiber.c b/src/lib/core/fiber.c
index d4d16c05e..64bcda26a 100644
--- a/src/lib/core/fiber.c
+++ b/src/lib/core/fiber.c
@@ -749,6 +749,13 @@ fiber_stack_create(struct fiber *fiber, size_t stack_size)
fiber->stack_id = VALGRIND_STACK_REGISTER(fiber->stack,
(char *)fiber->stack +
fiber->stack_size);
+#ifndef TARGET_OS_DARWIN
+ /*
+ * We don't expect the whole stack usage in regular
+ * loads, lets try to minimize rss pressure.
+ */
+ madvise(fiber->stack, fiber->stack_size, MADV_DONTNEED);
+#endif
mprotect(guard, page_size, PROT_NONE);
return 0;
--
2.20.1
More information about the Tarantool-patches
mailing list