All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
To: Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
Cc: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@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>,
	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>,
	Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
	Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>,
	Michael Kerrisk
	<mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Linus Torvalds
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Subject: Re: [PATCH v4 1/5] getcpu_cache system call: cache CPU number of running thread
Date: Fri, 26 Feb 2016 20:24:15 +0000 (UTC)	[thread overview]
Message-ID: <724964987.9217.1456518255392.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1602261855100.3638@nanos>

----- On Feb 26, 2016, at 1:01 PM, Thomas Gleixner tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org wrote:

> On Fri, 26 Feb 2016, Mathieu Desnoyers wrote:
>> ----- On Feb 26, 2016, at 11:29 AM, Thomas Gleixner tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org wrote:
>> > Right. There is no point in having two calls and two update mechanisms for a
>> > very similar purpose.
>> > 
>> > So let userspace have one struct where cpu/seq and whatever is required for
>> > rseq is located and flag at register time which parts of the struct need to be
>> > updated.
>> 
>> If we put both cpu/seq/other in that structure, why not plan ahead and make
>> it extensible then ?
>> 
>> That looks very much like the "Thread-local ABI" series I posted last year.
>> See https://lkml.org/lkml/2015/12/22/464
>> 
>> Here is why I ended up introducing the specialized "getcpu_cache" system call
>> rather than the "generic" system call (quote from the getcpu_cache changelog):
>> 
>>     Rationale for the getcpu_cache system call rather than the thread-local
>>     ABI system call proposed earlier:
>>     
>>     Rather than doing a "generic" thread-local ABI, specialize this system
>>     call for a cpu number cache only. Anyway, the thread-local ABI approach
>>     would have required that we introduce "feature" flags, which would have
>>     ended up reimplementing multiplexing of features on top of a system
>>     call. It seems better to introduce one system call per feature instead.
>> 
>> If everyone end up preferring that we introduce a system call that implements
>> many features at once, that's indeed something we can do, but I remember
>> being told in the past that this is generally a bad idea.
> 
> It's a bad idea if you mix stuff which does not belong together, but if you
> have stuff which shares a substantial amount of things then it makes a lot of
> sense. Especially if it adds similar stuff into hotpathes.
> 
>> For one thing, it would make the interface more cumbersome to deal with
>> from user-space in terms of feature detection: if we want to make this
>> interface extensible, in addition to check -1, errno=ENOSYS, userspace
>> would have to deal with a field containing the length of the structure
>> as expected by user-space and kernel, and feature flags to see the common
>> set of features supported by kernel and user-space.
>>
>> Having one system call per feature seems simpler to handle in terms of
>> feature availability detection from a userspace point of view.
> 
> That might well be, but that does not justify two fastpath updates, two
> seperate pointers to handle, etc ....

Keeping two separate pointers in the task_struct rather than a single one
might indeed be unwelcome, but I'm not sure I fully grasp the fast path
argument in this case: getcpu_cache only sets a notifier thread flag
on thread migration, whereas AFAIU rseq adds code to context switch and signal
delivery, which are prone to have a higher impact.

Indeed both will have their own code in the resume notifier, but is it really
a fast path ?

>From my point of view, making it easy for userspace to just enable getcpu_cache
without having the scheduler and signal delivery fast-path overhead of rseq seems
like a good thing. I'm not all that sure that saving an extra pointer in
task_struct justifies the added system call interface complexity.

Thanks,

Mathieu

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

WARNING: multiple messages have this Message-ID (diff)
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@arm.linux.org.uk>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	linux-kernel@vger.kernel.org,
	linux-api <linux-api@vger.kernel.org>,
	Paul Turner <pjt@google.com>, Andrew Hunter <ahh@google.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Andi Kleen <andi@firstfloor.org>,
	Dave Watson <davejwatson@fb.com>, Chris Lameter <cl@linux.com>,
	Ben Maurer <bmaurer@fb.com>, rostedt <rostedt@goodmis.org>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Josh Triplett <josh@joshtriplett.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Michael Kerrisk <mtk.manpages@gmail.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH v4 1/5] getcpu_cache system call: cache CPU number of running thread
Date: Fri, 26 Feb 2016 20:24:15 +0000 (UTC)	[thread overview]
Message-ID: <724964987.9217.1456518255392.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1602261855100.3638@nanos>

----- On Feb 26, 2016, at 1:01 PM, Thomas Gleixner tglx@linutronix.de wrote:

> On Fri, 26 Feb 2016, Mathieu Desnoyers wrote:
>> ----- On Feb 26, 2016, at 11:29 AM, Thomas Gleixner tglx@linutronix.de wrote:
>> > Right. There is no point in having two calls and two update mechanisms for a
>> > very similar purpose.
>> > 
>> > So let userspace have one struct where cpu/seq and whatever is required for
>> > rseq is located and flag at register time which parts of the struct need to be
>> > updated.
>> 
>> If we put both cpu/seq/other in that structure, why not plan ahead and make
>> it extensible then ?
>> 
>> That looks very much like the "Thread-local ABI" series I posted last year.
>> See https://lkml.org/lkml/2015/12/22/464
>> 
>> Here is why I ended up introducing the specialized "getcpu_cache" system call
>> rather than the "generic" system call (quote from the getcpu_cache changelog):
>> 
>>     Rationale for the getcpu_cache system call rather than the thread-local
>>     ABI system call proposed earlier:
>>     
>>     Rather than doing a "generic" thread-local ABI, specialize this system
>>     call for a cpu number cache only. Anyway, the thread-local ABI approach
>>     would have required that we introduce "feature" flags, which would have
>>     ended up reimplementing multiplexing of features on top of a system
>>     call. It seems better to introduce one system call per feature instead.
>> 
>> If everyone end up preferring that we introduce a system call that implements
>> many features at once, that's indeed something we can do, but I remember
>> being told in the past that this is generally a bad idea.
> 
> It's a bad idea if you mix stuff which does not belong together, but if you
> have stuff which shares a substantial amount of things then it makes a lot of
> sense. Especially if it adds similar stuff into hotpathes.
> 
>> For one thing, it would make the interface more cumbersome to deal with
>> from user-space in terms of feature detection: if we want to make this
>> interface extensible, in addition to check -1, errno=ENOSYS, userspace
>> would have to deal with a field containing the length of the structure
>> as expected by user-space and kernel, and feature flags to see the common
>> set of features supported by kernel and user-space.
>>
>> Having one system call per feature seems simpler to handle in terms of
>> feature availability detection from a userspace point of view.
> 
> That might well be, but that does not justify two fastpath updates, two
> seperate pointers to handle, etc ....

Keeping two separate pointers in the task_struct rather than a single one
might indeed be unwelcome, but I'm not sure I fully grasp the fast path
argument in this case: getcpu_cache only sets a notifier thread flag
on thread migration, whereas AFAIU rseq adds code to context switch and signal
delivery, which are prone to have a higher impact.

Indeed both will have their own code in the resume notifier, but is it really
a fast path ?

>From my point of view, making it easy for userspace to just enable getcpu_cache
without having the scheduler and signal delivery fast-path overhead of rseq seems
like a good thing. I'm not all that sure that saving an extra pointer in
task_struct justifies the added system call interface complexity.

Thanks,

Mathieu

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

  reply	other threads:[~2016-02-26 20:24 UTC|newest]

Thread overview: 96+ 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
     [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-23 23:28     ` 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-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
2016-02-25  9:56         ` Peter Zijlstra
     [not found]         ` <20160225095635.GO6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-25 16:55           ` Mathieu Desnoyers
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
2016-02-25 17:04                 ` Peter Zijlstra
     [not found]                 ` <20160225170416.GV6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-25 17:17                   ` Mathieu Desnoyers
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
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 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 18:01                                   ` Thomas Gleixner
2016-02-26 20:24                                   ` Mathieu Desnoyers [this message]
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
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
2016-02-27  6:24                                               ` H. Peter Anvin
     [not found]                                               ` <56D14132.5050100-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-02-27 14:15                                                 ` Mathieu Desnoyers
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
2016-02-27 14:58                                                       ` Peter Zijlstra
     [not found]                                                       ` <20160227145809.GD6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-02-27 18:35                                                         ` Linus Torvalds
2016-02-27 18:35                                                           ` Linus Torvalds
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
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
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
2016-02-29 10:35                                                                             ` Peter Zijlstra
     [not found]                                                                             ` <20160229103506.GJ6356-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2016-03-01 20:23                                                                               ` Mathieu Desnoyers
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
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: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
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 10:39                                                                         ` Arnd Bergmann
2016-02-29 12:41                                                                         ` Mathieu Desnoyers
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 13:08                                                                               ` Arnd Bergmann
2016-02-29 18:19                                                                             ` H. Peter Anvin
2016-02-29 18:19                                                                               ` H. Peter Anvin
2016-03-02 10:44                                                                             ` Geert Uytterhoeven
2016-03-02 10:44                                                                               ` Geert Uytterhoeven
2016-03-01 18:25                                                                   ` H. Peter Anvin
2016-03-01 18:25                                                                     ` H. Peter Anvin
     [not found]                                                                     ` <56D5DEA8.3040908-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2016-03-01 18:40                                                                       ` Mathieu Desnoyers
2016-03-01 18:40                                                                         ` Mathieu Desnoyers
     [not found]                                                           ` <CA+55aFysWipEagSdgeXbLx+Au4vomvyttdNFJtM+HffmBECQiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-27 19:01                                                             ` H. Peter Anvin
2016-02-27 19:01                                                               ` H. Peter Anvin
2016-02-28 13:07                                                             ` Geert Uytterhoeven
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-28 16:21                                                                   ` Linus Torvalds
2016-02-29 10:01                                                             ` Peter Zijlstra
2016-02-29 10:01                                                               ` Peter Zijlstra
2016-02-27 15:04                                                     ` H. Peter Anvin
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  1:36     ` 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
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
2016-02-24 22:38               ` 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  0:54       ` kbuild test robot
2016-02-24  1:05     ` [PATCH v4 (updated)] " Mathieu Desnoyers
2016-02-24  1:05       ` 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  5:28           ` kbuild test robot
2016-02-24  6:54         ` 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

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=724964987.9217.1456518255392.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.