[PATCH][BZ #11787] Fix stack guard size accounting

Szabolcs Nagy szabolcs.nagy@arm.com
Tue Dec 12 14:21:00 GMT 2017


Previously if user requested S stack and G guard when creating a
thread, the total mapping was S and the actual available stack was
S - G - static_tls, which is not what the user requested.

This patch fixes the guard size accounting by pretending the user
requested S + G stack.  This way all later logic works out except
when reporting the user requested stack size (pthread_getattr_np)
or when computing the minimal stack size (__pthread_get_minstack).

Normally this will increase thread stack allocations by one page.
TLS accounting is not affected, that will require a separate fix.

2017-12-12  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	[BZ #11787]
	* nptl/allocatestack.c (allocate_stack): Add guardsize to stacksize.
	* nptl/nptl-init.c (__pthread_get_minstack): Remove guardsize from
	stacksize.
	* nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: guardsize.diff
Type: text/x-patch
Size: 1989 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20171212/777d913e/attachment.bin>


More information about the Libc-alpha mailing list