This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Wed, Aug 19, 2015 at 09:50:29AM -0400, Mike Frysinger wrote: > verified how ? Sorry, I meant to write "verified that there were no regressions on x86_64". Testing this behaviour itself is tricky since you'll need to generate the right amount of load to cause contention, with a single arena or in a retry path. > doesn't this comment explicitly say you don't want to use the avoid arena ? > doesn't it need updating now with this change in logic ? Right, updated patch with comment: Siddhesh diff --git a/malloc/arena.c b/malloc/arena.c index 21ecc5a1..2430d77 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -823,16 +823,20 @@ reused_arena (mstate avoid_arena) /* Make sure that the arena we get is not corrupted. */ mstate begin = result; + bool looped = false; + while (arena_is_corrupt (result) || result == avoid_arena) { result = result->next; if (result == begin) - break; + { + looped = true; + break; + } } - /* We could not find any arena that was either not corrupted or not the one - we wanted to avoid. */ - if (result == begin || result == avoid_arena) + /* We could not find any arena that was not corrupted. */ + if (looped) return NULL; /* No arena available without contention. Wait for the next in line. */
Attachment:
pgpoo2KQJdJ2A.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |