From: Mathieu Desnoyers <mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
To: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
Cc: Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-api <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Paul Turner <pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Andrew Hunter <ahh-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>,
Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>,
Dave Watson <davejwatson-b10kYP2dOMg@public.gmane.org>,
Chris Lameter <cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org>,
Ben Maurer <bmaurer-b10kYP2dOMg@public.gmane.org>,
rostedt <rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org>,
"Paul E. McKenney"
<paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org>,
Linus Torvalds
<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
Michael Kerrisk
<mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v4 0/5] getcpu_cache system call for 4.6
Date: Wed, 24 Feb 2016 22:38:12 +0000 (UTC) [thread overview]
Message-ID: <570153022.7317.1456353492676.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <F6BC367F-127F-4254-8E4E-E7BF60A027F3-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
----- On Feb 24, 2016, at 3:07 PM, H. Peter Anvin hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org wrote:
> On February 23, 2016 8:09:23 PM PST, Mathieu Desnoyers
> <mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org> wrote:
>>----- On Feb 23, 2016, at 8:36 PM, H. Peter Anvin hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org 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
>
> Yes, I'd like to see numbers. It is way easy to handwave small changes away,
> but they add up over time. Without numbers it is a bit hard to quantify the
> pro vs con.
- Speed
Running 10 runs of hackbench -l 100000 on a 2 sockets * 8-core Intel(R) Xeon(R) CPU
E5-2630 v3 @ 2.40GHz (directly on hardware, no virtualization), with
hyperthreading, with a 4.5-rc5 defconfig+localyesconfig, getcpu_cache series
applied, seems to indicate that the sched switch impact of this new configuration
option is within the noise:
* CONFIG_GETCPU_CACHE=n
avg.: 26.63 s
std.dev.: 0.38 s
* CONFIG_GETCPU_CACHE=y
avg.: 26.52 s
std.dev.: 0.47 s
- Size
Between CONFIG_GETCPU_CACHE=n/y, the size delta added to the compressed kernel
zImage is 704 bytes. The text size increase of vmlinux is 512 bytes, and the data
size increase of vmlinux is also 512 bytes.
* CONFIG_GETCPU_CACHE=n
text data bss dec hex filename
16802349 2745968 1564672 21112989 142289d vmlinux
* CONFIG_GETCPU_CACHE=y
text data bss dec hex filename
16802861 2746480 1564672 21114013 1422c9d vmlinux
Am I missing anything ? I plan to add this information to the
changelog for my next round (v5).
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
prev parent reply other threads:[~2016-02-24 22:38 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-23 23:28 [PATCH v4 0/5] getcpu_cache system call for 4.6 Mathieu Desnoyers
2016-02-23 23:28 ` [PATCH v4 2/5] getcpu_cache: ARM resume notifier Mathieu Desnoyers
2016-02-23 23:28 ` [PATCH v4 3/5] getcpu_cache: wire up ARM system call Mathieu Desnoyers
[not found] ` <1456270120-7560-4-git-send-email-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-24 0:54 ` kbuild test robot
2016-02-24 1:05 ` [PATCH v4 (updated)] " Mathieu Desnoyers
[not found] ` <1456275925-12071-1-git-send-email-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-24 5:28 ` kbuild test robot
2016-02-24 6:54 ` kbuild test robot
2016-02-23 23:28 ` [PATCH v4 4/5] getcpu_cache: x86 32/64 resume notifier Mathieu Desnoyers
2016-02-23 23:28 ` [PATCH v4 5/5] getcpu_cache: wire up x86 32/64 system call Mathieu Desnoyers
[not found] ` <1456270120-7560-1-git-send-email-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-23 23:28 ` [PATCH v4 1/5] getcpu_cache system call: cache CPU number of running thread Mathieu Desnoyers
2016-02-24 11:11 ` Thomas Gleixner
2016-02-24 17:17 ` Mathieu Desnoyers
2016-02-25 23:32 ` Rasmus Villemoes
2016-02-26 17:47 ` Mathieu Desnoyers
[not found] ` <1456270120-7560-2-git-send-email-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-25 9:56 ` Peter Zijlstra
[not found] ` <20160225095635.GO6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-25 16:55 ` Mathieu Desnoyers
[not found] ` <390571988.7745.1456419326288.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-25 17:04 ` Peter Zijlstra
[not found] ` <20160225170416.GV6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-25 17:17 ` Mathieu Desnoyers
[not found] ` <2135602720.7810.1456420671941.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-26 11:33 ` Peter Zijlstra
[not found] ` <20160226113304.GA6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-26 16:29 ` Thomas Gleixner
2016-02-26 17:20 ` Mathieu Desnoyers
[not found] ` <967083634.8940.1456507201156.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-26 18:01 ` Thomas Gleixner
2016-02-26 20:24 ` Mathieu Desnoyers
2016-02-26 23:04 ` H. Peter Anvin
[not found] ` <7096DA23-3908-40DC-A46B-C4CF2252CEE8-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-02-27 0:40 ` Mathieu Desnoyers
[not found] ` <1150363257.9781.1456533630895.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-27 6:24 ` H. Peter Anvin
[not found] ` <56D14132.5050100-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-02-27 14:15 ` Mathieu Desnoyers
[not found] ` <2053850250.10158.1456582501604.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-27 14:58 ` Peter Zijlstra
[not found] ` <20160227145809.GD6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-27 18:35 ` Linus Torvalds
[not found] ` <CA+55aFysWipEagSdgeXbLx+Au4vomvyttdNFJtM+HffmBECQiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-27 19:01 ` H. Peter Anvin
2016-02-28 13:07 ` Geert Uytterhoeven
[not found] ` <CAMuHMdV2dHsJfchyHBnQEAVEMSQ+1N7X4-iqGZ7K7J=Lf8qs4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-28 16:21 ` Linus Torvalds
2016-02-29 10:01 ` Peter Zijlstra
2016-02-27 23:53 ` Mathieu Desnoyers
[not found] ` <CA+55aFwcgwRxvVBz5kk_3O8dESXAGJ4KHBkf=pSXjiS7Xh4NwA@mail.gmail.com>
[not found] ` <1082926946.10326.1456619994590.JavaMail.zimbra@efficios.com>
[not found] ` <1082926946.10326.1456619994590.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-28 0:57 ` Linus Torvalds
[not found] ` <CA+55aFwZY1BR5NdjAP-rytd29hE2EZEXgcaBKjepWFFj+oR1SA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-28 14:32 ` Mathieu Desnoyers
[not found] ` <1538518747.10504.1456669948568.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-29 10:35 ` Peter Zijlstra
[not found] ` <20160229103506.GJ6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-03-01 20:23 ` Mathieu Desnoyers
[not found] ` <676569856.13488.1456863792603.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-03-01 21:32 ` Peter Zijlstra
[not found] ` <20160301213202.GY6357-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-03-01 21:36 ` Peter Zijlstra
2016-03-01 21:47 ` H. Peter Anvin
2016-03-02 10:34 ` Peter Zijlstra
2016-02-29 10:32 ` Peter Zijlstra
[not found] ` <20160229103221.GI6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-29 10:39 ` Arnd Bergmann
2016-02-29 12:41 ` Mathieu Desnoyers
[not found] ` <1811549980.11849.1456749709589.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-29 13:08 ` Arnd Bergmann
2016-02-29 18:19 ` H. Peter Anvin
2016-03-02 10:44 ` Geert Uytterhoeven
2016-03-01 18:25 ` H. Peter Anvin
[not found] ` <56D5DEA8.3040908-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-03-01 18:40 ` Mathieu Desnoyers
2016-02-27 15:04 ` H. Peter Anvin
2016-02-24 1:36 ` [PATCH v4 0/5] getcpu_cache system call for 4.6 H. Peter Anvin
2016-02-24 4:09 ` Mathieu Desnoyers
[not found] ` <1452699925.6549.1456286963485.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2016-02-24 20:07 ` H. Peter Anvin
[not found] ` <F6BC367F-127F-4254-8E4E-E7BF60A027F3-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-02-24 22:38 ` Mathieu Desnoyers [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=570153022.7317.1456353492676.JavaMail.zimbra@efficios.com \
--to=mathieu.desnoyers-vg+e7yoek/dwk0htik3j/w@public.gmane.org \
--cc=ahh-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org \
--cc=bmaurer-b10kYP2dOMg@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org \
--cc=davejwatson-b10kYP2dOMg@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).