[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