This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] malloc: Fix list_lock/arena lock deadlock [BZ #19182]
- From: Florian Weimer <fweimer at redhat dot com>
- To: "Carlos O'Donell" <carlos at redhat dot com>, Torvald Riegel <triegel at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 22 Dec 2015 20:32:41 +0100
- Subject: Re: [PATCH v2] malloc: Fix list_lock/arena lock deadlock [BZ #19182]
- Authentication-results: sourceware.org; auth=none
- References: <56389C10 dot 6060001 at redhat dot com> <56642691 dot 7060806 at redhat dot com> <1449852593 dot 27311 dot 98 dot camel at localhost dot localdomain> <566F1114 dot 1060706 at redhat dot com> <1450380373 dot 26597 dot 29 dot camel at localhost dot localdomain> <56740C24 dot 90901 at redhat dot com> <5678751E dot 1030605 at redhat dot com>
On 12/21/2015 10:54 PM, Carlos O'Donell wrote:
>> + list_lock also prevents concurrent forks. When list_lock is
>> + acquired, no arena lock must be acquired, but it is permitted to
>> + acquire arena locks after list_lock. */
>
> This last sentence seems ambiguous to me. I assume you mean to say that
> at the point at which list_lock is acquired there are no other arena
> locks held, but that after list_lock is acquired, other arena locks may
> be acquired afterwards?
That was my intent. Is this clearer?
list_lock also prevents concurrent forks. At the time list_lock is
acquired, no arena lock must have been acquired, but it is permitted
to acquire arena locks subsequently, while list_lock is acquired.
I'm following Torvald's earlier guidance not to speak of âheldâ locks.
Florian