[PATCH v2] Single threaded stdio optimization
Szabolcs Nagy
szabolcs.nagy@arm.com
Fri Jul 7 15:02:00 GMT 2017
On 07/07/17 14:38, Szabolcs Nagy wrote:
> On 07/07/17 13:38, Florian Weimer wrote:
>> This patch breaks the attached test case. Not all stream objects are
>> linked into the global list, so the locking upgrade doesn't happen for
>> some of them.
>>
>
> i thought all files need to be flushed on exit
> or on fflush(0), if glibc does not do that that's
> observably non-conforming.
>
>> The global list management is quite expensive because the list is
>> single-linked, so we can't just add all stream objects when not yet
>> running multi-threaded.
>>
>> I fear that this patch may have to be backed out again, until we can
>> address these issues.
>>
>
> i can back it out, or try to create all the
> problematic files with the optimization-disabling
> flag set (in case that's simple.. will look into
> it in a minute).
>
it seems both changing the optimization flag or adding
these streams to the list are easy.
i think glibc should just fix the open_memstream bug,
https://sourceware.org/bugzilla/show_bug.cgi?id=21735
i'll work on a patch.
(i don't expect a large number of open/close memstream
operations, so it should not have a huge impact)
More information about the Libc-alpha
mailing list