[Bug 253337] Linuxulator: glibc's pthread_getattr_np reports stack size as 124K

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 06 Jul 2022 11:04:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253337

--- Comment #15 from commit-hook@FreeBSD.org ---
A commit in branch stable/13 references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=b1d0fe755bb11be36d97885dbab0ac66aabb5877

commit b1d0fe755bb11be36d97885dbab0ac66aabb5877
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2022-06-22 11:49:40 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2022-07-06 11:02:15 +0000

    linprocfs: Skip printing of the guard page in the /proc/self/maps

    To calculate the base (lowest addressable) address of the stack of the
    initial thread glibc parses /proc/self/maps.
    In fact, the base address is calculated as 'to' value of stack entry of the
    /proc/self/maps - stack size limit (if the stack grows down).
    The base address should fit in between preceding entry and stack entry of
    the /proc/self/maps.
    In FreeBSD, since 19bd0d9 (Implement address space guards), we actually
    have two mappings for the stack region. The first one is the no-access
    mapping for the region the stack can grow into (guard page), and the
    second - initial stack region with size sgrowsiz.
    The first mapping confuses Glibc, in the end which is improperly
    calculate stack size and the base address.

    PR:                     253337
    Reviewed by:            kib
    Differential revision:  https://reviews.freebsd.org/D35537
    MFC after:              2 week

    (cherry picked from commit ef1976ccf5420d0912afcb49733c7a88643069da)

 sys/compat/linprocfs/linprocfs.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.