From 3747865f669e07ed266101079075b0db3f2b36f8 Mon Sep 17 00:00:00 2001 From: bluhm Date: Sat, 22 May 2021 15:49:36 +0000 Subject: [PATCH] On powerpc64 calling a function needs 64 bytes of stack overhead per recursion. On amd64 it is only 32. Allocate more stack per thread and the stack tests pass everywhere --- regress/sys/kern/fork-exit/fork-exit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/regress/sys/kern/fork-exit/fork-exit.c b/regress/sys/kern/fork-exit/fork-exit.c index 6295b00b100..737e37ef523 100644 --- a/regress/sys/kern/fork-exit/fork-exit.c +++ b/regress/sys/kern/fork-exit/fork-exit.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fork-exit.c,v 1.5 2021/05/21 20:42:21 bluhm Exp $ */ +/* $OpenBSD: fork-exit.c,v 1.6 2021/05/22 15:49:36 bluhm Exp $ */ /* * Copyright (c) 2021 Alexander Bluhm @@ -123,7 +123,7 @@ create_threads(void) if (stack) { /* thread start and function call overhead needs a bit more */ error = pthread_attr_setstacksize(&tattr, - (stack + 2) * (4096 + 32)); + (stack + 2) * (4096 + 64)); if (error) errc(1, error, "pthread_attr_setstacksize"); } @@ -236,7 +236,7 @@ main(int argc, char *argv[]) break; case 's': stack = strtonum(optarg, 0, - (INT_MAX / (4096 + 32)) - 2, &errstr); + (INT_MAX / (4096 + 64)) - 2, &errstr); if (errstr != NULL) errx(1, "number of stack allocations is %s: %s", errstr, optarg); -- 2.20.1