Re: [PATCH v4 0/5] getcpu_cache system call for 4.6

From: Mathieu Desnoyers
Date: Tue Feb 23 2016 - 23:09:41 EST


----- On Feb 23, 2016, at 8:36 PM, H. Peter Anvin hpa@xxxxxxxxx wrote:

> On 02/23/2016 03:28 PM, Mathieu Desnoyers wrote:
>> Hi,
>>
>> Here is a patchset implementing a cache for the CPU number of the
>> currently running thread in user-space.
>>
>> Benchmarks comparing this approach to a getcpu based on system call on
>> ARM show a 44x speedup. They show a 14x speedup on x86-64 compared to
>> executing lsl from a vDSO through glibc.
>>
>> I'm added a man page in the changelog of patch 1/3, which shows an
>> example usage of this new system call.
>>
>> This series is based on v4.5-rc5, submitted for Linux 4.6.
>>
>> Feedback is welcome,
>>
>
> What is the resulting context switch overhead?

The getcpu_cache only adds code to the thread migration path,
and to the resume notifier. The context switch path per se is
untouched. I would therefore expect the overhead on context
switch to be within the noise, except if stuff like hackbench
would be so sensitive to the size of struct task_struct that
a single extra pointer added at the end of struct task_struct
would throw off the benchmarks.

Is that what you are concerned about ?

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com