This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: Fix tabort usage in syscalls
- From: "Paul E. Murphy" <murphyp at linux dot vnet dot ibm dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Cc: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, "munroesj at linux dot vnet dot ibm dot com" <munroesj at linux dot vnet dot ibm dot com>, Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>
- Date: Mon, 10 Aug 2015 09:18:12 -0500
- Subject: Re: [PATCH] powerpc: Fix tabort usage in syscalls
- Authentication-results: sourceware.org; auth=none
- References: <55C4C152 dot 8030506 at linux dot vnet dot ibm dot com> <BE414D5D-D103-44D5-968C-4D0F1F1C9ABA at linaro dot org>
On 08/08/2015 01:06 AM, Adhemerval Zanella wrote:
> LGTM, thanks for checking on that.
>
>
>
>> Em 07/08/2015, Ãs 16:31, Paul E. Murphy <murphyp@linux.vnet.ibm.com> escreveu:
>>
>> Fix usage of tabort in generated syscalls. r0 has special meaning
>> when used with this instruction, thus it will not generate
>> persistent errors, nor return an error code. This mitigates poor
>> CPU usage when performing elided critical sections.
> Kinda curious, could you elaborate about this performance issue?
Profiling the case where a lock is used to protect a system call resulted in much higher
CPU usage than expected. Distilling the issue into a test case of the form:
pthread_mutex_lock(&lock);
write( fd, buf, len );
pthread_mutex_unlock(&lock);
This showed about 1 abort per lock, when it should be 1 abort per 4 locks
with the current adaptive lock settings.