From owner-freebsd-threads@FreeBSD.ORG Tue May 12 12:55:27 2015 Return-Path: Delivered-To: freebsd-threads@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D34516C1 for ; Tue, 12 May 2015 12:55:27 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BD27719E5 for ; Tue, 12 May 2015 12:55:27 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t4CCtRcG024079 for ; Tue, 12 May 2015 12:55:27 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-threads@FreeBSD.org Subject: [Bug 200138] [PATCH] Fixed sthread-specific array allocation conflict incurred in libthr by some foreign malloc libraries Date: Tue, 12 May 2015 12:55:27 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: threads X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: kib@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-threads@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 May 2015 12:55:27 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200138 --- Comment #14 from Konstantin Belousov --- (In reply to yuri from comment #13) Around a 2-3KB of data for the thread is not a burden, comparing with the >=1M userspace thread stack allocated for each thread. Also, I believe that any non-trivial threading program does use thread-specific data, not least because libc uses per-thread keys in nss and locale code. But I can suggest to either use the standard libc malloc(3), which does not have the problem, or direct mmap(2) calls. The later would result in some overhead due to unused part of the page for specific array, but this could not be important, since keys are used rarely, according to you previous reply. I tend to think that the mmap(2) is preferred, but __malloc() use would also be fine. -- You are receiving this mail because: You are the assignee for the bug.