From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Sasha Levin <sasha.levin@oracle.com>
Cc: "Ingo Molnar" <mingo@kernel.org>, "David Lang" <david@lang.hm>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Dave Jones" <davej@redhat.com>, "Chris Mason" <clm@fb.com>,
"Mike Galbraith" <umgwanakikbuti@gmail.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Dâniel Fraga" <fragabr@gmail.com>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: frequent lockups in 3.18rc4
Date: Sun, 14 Dec 2014 16:11:23 -0800 [thread overview]
Message-ID: <20141215001123.GK5310@linux.vnet.ibm.com> (raw)
In-Reply-To: <548E214D.6040706@oracle.com>
On Sun, Dec 14, 2014 at 06:46:21PM -0500, Sasha Levin wrote:
> On 12/14/2014 12:50 PM, Paul E. McKenney wrote:
> > rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors
> >
> > Although cond_resched_rcu_qs() only applies to TASKS_RCU, it is used
> > in places where it would be useful for it to apply to the normal RCU
> > flavors, rcu_preempt, rcu_sched, and rcu_bh. This is especially the
> > case for workloads that aggressively overload the system, particularly
> > those that generate large numbers of RCU updates on systems running
> > NO_HZ_FULL CPUs. This commit therefore communicates quiescent states
> > from cond_resched_rcu_qs() to the normal RCU flavors.
> >
> > Note that it is unfortunately necessary to leave the old ->passed_quiesce
> > mechanism in place to allow quiescent states that apply to only one
> > flavor to be recorded. (Yes, we could decrement ->rcu_qs_ctr_snap in
> > that case, but that is not so good for debugging of RCU internals.)
> >
> > Reported-by: Sasha Levin <sasha.levin@oracle.com>
> > Reported-by: Dave Jones <davej@redhat.com>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>
> Does it depend on anything not currently in -next? My build fails with
>
> kernel/rcu/tree.c: In function ‘rcu_report_qs_rdp’:
> kernel/rcu/tree.c:2099:6: error: ‘struct rcu_data’ has no member named ‘gpwrap’
> rdp->gpwrap) {
Indeed it does. Please see below for a port to current mainline.
> On an unrelated subject, I've tried disabling preemption, and am seeing different
> stalls even when I have the testfiles fuzzing in trinity disabled (which means I'm
> not seeing hangs in the preempt case):
>
> [ 332.920142] INFO: rcu_sched self-detected stall on CPU
> [ 332.920142] 19: (2099 ticks this GP) idle=f7d/140000000000001/0 softirq=21726/21726 fqs=1751
> [ 332.920142] (t=2100 jiffies g=10656 c=10655 q=212427)
More than 200K RCU callbacks queued. Impressive! ;-)
> [ 332.920142] Task dump for CPU 19:
> [ 332.920142] trinity-c522 R running task 13544 9447 8279 0x1008000a
> [ 332.920142] 00000000000034e8 00000000000034e8 ffff8808a678a000 ffff8808bc203c18
> [ 332.920142] ffffffff814b66f6 dfffe900000054de 0000000000000013 ffff8808bc215800
> [ 332.920142] 0000000000000013 ffffffff9cb5d018 dfffe90000000000 ffff8808bc203c48
> [ 332.920142] Call Trace:
> [ 332.920142] <IRQ> sched_show_task (kernel/sched/core.c:4541)
> [ 332.920142] dump_cpu_task (kernel/sched/core.c:8383)
> [ 332.940081] INFO: rcu_sched detected stalls on CPUs/tasks:
> [ 332.920142] rcu_dump_cpu_stacks (kernel/rcu/tree.c:1093)
> [ 332.920142] rcu_check_callbacks (kernel/rcu/tree.c:1199 kernel/rcu/tree.c:1261 kernel/rcu/tree.c:3194 kernel/rcu/tree.c:3254 kernel/rcu/tree.c:2507)
> [ 332.920142] update_process_times (./arch/x86/include/asm/preempt.h:22 kernel/time/timer.c:1386)
> [ 332.920142] tick_sched_timer (kernel/time/tick-sched.c:152 kernel/time/tick-sched.c:1128)
> [ 332.920142] __run_hrtimer (kernel/time/hrtimer.c:1216 (discriminator 3))
> [ 332.920142] ? tick_init_highres (kernel/time/tick-sched.c:1115)
> [ 332.920142] hrtimer_interrupt (include/linux/timerqueue.h:37 kernel/time/hrtimer.c:1275)
> [ 332.920142] ? acct_account_cputime (kernel/tsacct.c:168)
> [ 332.920142] local_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:921)
> [ 332.920142] smp_apic_timer_interrupt (./arch/x86/include/asm/apic.h:660 arch/x86/kernel/apic/apic.c:945)
> [ 332.920142] apic_timer_interrupt (arch/x86/kernel/entry_64.S:983)
> [ 332.920142] <EOI> ? retint_restore_args (arch/x86/kernel/entry_64.S:844)
> [ 332.920142] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/paravirt.h:809 include/linux/spinlock_api_smp.h:160 kernel/locking/spinlock.c:191)
> [ 332.920142] __debug_check_no_obj_freed (lib/debugobjects.c:713)
> [ 332.920142] debug_check_no_obj_freed (lib/debugobjects.c:727)
> [ 332.920142] free_pages_prepare (mm/page_alloc.c:829)
> [ 332.920142] free_hot_cold_page (mm/page_alloc.c:1496)
> [ 332.920142] __free_pages (mm/page_alloc.c:2982)
If this still appears after applying the below patch, I would be tempted
to place a few cond_resched_rcu_qs() calls in the above three functions.
Thanx, Paul
> [ 332.920142] ? __vunmap (mm/vmalloc.c:1459 (discriminator 2))
> [ 332.920142] __vunmap (mm/vmalloc.c:1455 (discriminator 2))
> [ 332.920142] vfree (mm/vmalloc.c:1500)
> [ 332.920142] SyS_init_module (kernel/module.c:2483 kernel/module.c:3359 kernel/module.c:3346)
> [ 332.920142] ia32_do_call (arch/x86/ia32/ia32entry.S:446)
------------------------------------------------------------------------
rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors
Although cond_resched_rcu_qs() only applies to TASKS_RCU, it is used
in places where it would be useful for it to apply to the normal RCU
flavors, rcu_preempt, rcu_sched, and rcu_bh. This is especially the
case for workloads that aggressively overload the system, particularly
those that generate large numbers of RCU updates on systems running
NO_HZ_FULL CPUs. This commit therefore communicates quiescent states
from cond_resched_rcu_qs() to the normal RCU flavors.
Note that it is unfortunately necessary to leave the old ->passed_quiesce
mechanism in place to allow quiescent states that apply to only one
flavor to be recorded. (Yes, we could decrement ->rcu_qs_ctr_snap in
that case, but that is not so good for debugging of RCU internals.)
Reported-by: Sasha Levin <sasha.levin@oracle.com>
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
diff --git a/Documentation/RCU/trace.txt b/Documentation/RCU/trace.txt
index b63b9bb3bc0c..08651da15448 100644
--- a/Documentation/RCU/trace.txt
+++ b/Documentation/RCU/trace.txt
@@ -56,14 +56,14 @@ rcuboost:
The output of "cat rcu/rcu_preempt/rcudata" looks as follows:
- 0!c=30455 g=30456 pq=1 qp=1 dt=126535/140000000000000/0 df=2002 of=4 ql=0/0 qs=N... b=10 ci=74572 nci=0 co=1131 ca=716
- 1!c=30719 g=30720 pq=1 qp=0 dt=132007/140000000000000/0 df=1874 of=10 ql=0/0 qs=N... b=10 ci=123209 nci=0 co=685 ca=982
- 2!c=30150 g=30151 pq=1 qp=1 dt=138537/140000000000000/0 df=1707 of=8 ql=0/0 qs=N... b=10 ci=80132 nci=0 co=1328 ca=1458
- 3 c=31249 g=31250 pq=1 qp=0 dt=107255/140000000000000/0 df=1749 of=6 ql=0/450 qs=NRW. b=10 ci=151700 nci=0 co=509 ca=622
- 4!c=29502 g=29503 pq=1 qp=1 dt=83647/140000000000000/0 df=965 of=5 ql=0/0 qs=N... b=10 ci=65643 nci=0 co=1373 ca=1521
- 5 c=31201 g=31202 pq=1 qp=1 dt=70422/0/0 df=535 of=7 ql=0/0 qs=.... b=10 ci=58500 nci=0 co=764 ca=698
- 6!c=30253 g=30254 pq=1 qp=1 dt=95363/140000000000000/0 df=780 of=5 ql=0/0 qs=N... b=10 ci=100607 nci=0 co=1414 ca=1353
- 7 c=31178 g=31178 pq=1 qp=0 dt=91536/0/0 df=547 of=4 ql=0/0 qs=.... b=10 ci=109819 nci=0 co=1115 ca=969
+ 0!c=30455 g=30456 pq=1/0 qp=1 dt=126535/140000000000000/0 df=2002 of=4 ql=0/0 qs=N... b=10 ci=74572 nci=0 co=1131 ca=716
+ 1!c=30719 g=30720 pq=1/0 qp=0 dt=132007/140000000000000/0 df=1874 of=10 ql=0/0 qs=N... b=10 ci=123209 nci=0 co=685 ca=982
+ 2!c=30150 g=30151 pq=1/1 qp=1 dt=138537/140000000000000/0 df=1707 of=8 ql=0/0 qs=N... b=10 ci=80132 nci=0 co=1328 ca=1458
+ 3 c=31249 g=31250 pq=1/1 qp=0 dt=107255/140000000000000/0 df=1749 of=6 ql=0/450 qs=NRW. b=10 ci=151700 nci=0 co=509 ca=622
+ 4!c=29502 g=29503 pq=1/0 qp=1 dt=83647/140000000000000/0 df=965 of=5 ql=0/0 qs=N... b=10 ci=65643 nci=0 co=1373 ca=1521
+ 5 c=31201 g=31202 pq=1/0 qp=1 dt=70422/0/0 df=535 of=7 ql=0/0 qs=.... b=10 ci=58500 nci=0 co=764 ca=698
+ 6!c=30253 g=30254 pq=1/0 qp=1 dt=95363/140000000000000/0 df=780 of=5 ql=0/0 qs=N... b=10 ci=100607 nci=0 co=1414 ca=1353
+ 7 c=31178 g=31178 pq=1/0 qp=0 dt=91536/0/0 df=547 of=4 ql=0/0 qs=.... b=10 ci=109819 nci=0 co=1115 ca=969
This file has one line per CPU, or eight for this 8-CPU system.
The fields are as follows:
@@ -188,14 +188,14 @@ o "ca" is the number of RCU callbacks that have been adopted by this
Kernels compiled with CONFIG_RCU_BOOST=y display the following from
/debug/rcu/rcu_preempt/rcudata:
- 0!c=12865 g=12866 pq=1 qp=1 dt=83113/140000000000000/0 df=288 of=11 ql=0/0 qs=N... kt=0/O ktl=944 b=10 ci=60709 nci=0 co=748 ca=871
- 1 c=14407 g=14408 pq=1 qp=0 dt=100679/140000000000000/0 df=378 of=7 ql=0/119 qs=NRW. kt=0/W ktl=9b6 b=10 ci=109740 nci=0 co=589 ca=485
- 2 c=14407 g=14408 pq=1 qp=0 dt=105486/0/0 df=90 of=9 ql=0/89 qs=NRW. kt=0/W ktl=c0c b=10 ci=83113 nci=0 co=533 ca=490
- 3 c=14407 g=14408 pq=1 qp=0 dt=107138/0/0 df=142 of=8 ql=0/188 qs=NRW. kt=0/W ktl=b96 b=10 ci=121114 nci=0 co=426 ca=290
- 4 c=14405 g=14406 pq=1 qp=1 dt=50238/0/0 df=706 of=7 ql=0/0 qs=.... kt=0/W ktl=812 b=10 ci=34929 nci=0 co=643 ca=114
- 5!c=14168 g=14169 pq=1 qp=0 dt=45465/140000000000000/0 df=161 of=11 ql=0/0 qs=N... kt=0/O ktl=b4d b=10 ci=47712 nci=0 co=677 ca=722
- 6 c=14404 g=14405 pq=1 qp=0 dt=59454/0/0 df=94 of=6 ql=0/0 qs=.... kt=0/W ktl=e57 b=10 ci=55597 nci=0 co=701 ca=811
- 7 c=14407 g=14408 pq=1 qp=1 dt=68850/0/0 df=31 of=8 ql=0/0 qs=.... kt=0/W ktl=14bd b=10 ci=77475 nci=0 co=508 ca=1042
+ 0!c=12865 g=12866 pq=1/0 qp=1 dt=83113/140000000000000/0 df=288 of=11 ql=0/0 qs=N... kt=0/O ktl=944 b=10 ci=60709 nci=0 co=748 ca=871
+ 1 c=14407 g=14408 pq=1/0 qp=0 dt=100679/140000000000000/0 df=378 of=7 ql=0/119 qs=NRW. kt=0/W ktl=9b6 b=10 ci=109740 nci=0 co=589 ca=485
+ 2 c=14407 g=14408 pq=1/0 qp=0 dt=105486/0/0 df=90 of=9 ql=0/89 qs=NRW. kt=0/W ktl=c0c b=10 ci=83113 nci=0 co=533 ca=490
+ 3 c=14407 g=14408 pq=1/0 qp=0 dt=107138/0/0 df=142 of=8 ql=0/188 qs=NRW. kt=0/W ktl=b96 b=10 ci=121114 nci=0 co=426 ca=290
+ 4 c=14405 g=14406 pq=1/0 qp=1 dt=50238/0/0 df=706 of=7 ql=0/0 qs=.... kt=0/W ktl=812 b=10 ci=34929 nci=0 co=643 ca=114
+ 5!c=14168 g=14169 pq=1/0 qp=0 dt=45465/140000000000000/0 df=161 of=11 ql=0/0 qs=N... kt=0/O ktl=b4d b=10 ci=47712 nci=0 co=677 ca=722
+ 6 c=14404 g=14405 pq=1/0 qp=0 dt=59454/0/0 df=94 of=6 ql=0/0 qs=.... kt=0/W ktl=e57 b=10 ci=55597 nci=0 co=701 ca=811
+ 7 c=14407 g=14408 pq=1/0 qp=1 dt=68850/0/0 df=31 of=8 ql=0/0 qs=.... kt=0/W ktl=14bd b=10 ci=77475 nci=0 co=508 ca=1042
This is similar to the output discussed above, but contains the following
additional fields:
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index ed4f5939a452..04eb366ab7fa 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -331,6 +331,7 @@ static inline void rcu_init_nohz(void)
extern struct srcu_struct tasks_rcu_exit_srcu;
#define rcu_note_voluntary_context_switch(t) \
do { \
+ rcu_all_qs(); \
if (ACCESS_ONCE((t)->rcu_tasks_holdout)) \
ACCESS_ONCE((t)->rcu_tasks_holdout) = false; \
} while (0)
diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h
index 0e5366200154..fabd3fad8516 100644
--- a/include/linux/rcutiny.h
+++ b/include/linux/rcutiny.h
@@ -154,7 +154,10 @@ static inline bool rcu_is_watching(void)
return true;
}
-
#endif /* #else defined(CONFIG_DEBUG_LOCK_ALLOC) || defined(CONFIG_RCU_TRACE) */
+static inline void rcu_all_qs(void)
+{
+}
+
#endif /* __LINUX_RCUTINY_H */
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index 52953790dcca..3344783af1f2 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -97,4 +97,10 @@ extern int rcu_scheduler_active __read_mostly;
bool rcu_is_watching(void);
+DECLARE_PER_CPU(unsigned long, rcu_qs_ctr);
+static inline void rcu_all_qs(void)
+{
+ this_cpu_inc(rcu_qs_ctr);
+}
+
#endif /* __LINUX_RCUTREE_H */
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 7680fc275036..38f0009b999b 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -215,6 +215,9 @@ static DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = {
#endif /* #ifdef CONFIG_NO_HZ_FULL_SYSIDLE */
};
+DEFINE_PER_CPU_SHARED_ALIGNED(unsigned long, rcu_qs_ctr);
+EXPORT_PER_CPU_SYMBOL_GPL(rcu_qs_ctr);
+
/*
* Let the RCU core know that this CPU has gone through the scheduler,
* which is a quiescent state. This is called when the need for a
@@ -1554,6 +1557,7 @@ static bool __note_gp_changes(struct rcu_state *rsp, struct rcu_node *rnp,
rdp->gpnum = rnp->gpnum;
trace_rcu_grace_period(rsp->name, rdp->gpnum, TPS("cpustart"));
rdp->passed_quiesce = 0;
+ rdp->rcu_qs_ctr_snap = __this_cpu_read(rcu_qs_ctr);
rdp->qs_pending = !!(rnp->qsmask & rdp->grpmask);
zero_cpu_stall_ticks(rdp);
}
@@ -2020,6 +2024,7 @@ rcu_report_qs_rdp(int cpu, struct rcu_state *rsp, struct rcu_data *rdp)
* within the current grace period.
*/
rdp->passed_quiesce = 0; /* need qs for new gp. */
+ rdp->rcu_qs_ctr_snap = __this_cpu_read(rcu_qs_ctr);
raw_spin_unlock_irqrestore(&rnp->lock, flags);
return;
}
@@ -2064,7 +2069,8 @@ rcu_check_quiescent_state(struct rcu_state *rsp, struct rcu_data *rdp)
* Was there a quiescent state since the beginning of the grace
* period? If no, then exit and wait for the next call.
*/
- if (!rdp->passed_quiesce)
+ if (!rdp->passed_quiesce &&
+ rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_qs_ctr))
return;
/*
@@ -3109,9 +3115,12 @@ static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
/* Is the RCU core waiting for a quiescent state from this CPU? */
if (rcu_scheduler_fully_active &&
- rdp->qs_pending && !rdp->passed_quiesce) {
+ rdp->qs_pending && !rdp->passed_quiesce &&
+ rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_qs_ctr)) {
rdp->n_rp_qs_pending++;
- } else if (rdp->qs_pending && rdp->passed_quiesce) {
+ } else if (rdp->qs_pending &&
+ (rdp->passed_quiesce ||
+ rdp->rcu_qs_ctr_snap != __this_cpu_read(rcu_qs_ctr))) {
rdp->n_rp_report_qs++;
return 1;
}
@@ -3444,6 +3453,7 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
rdp->gpnum = rnp->completed;
rdp->completed = rnp->completed;
rdp->passed_quiesce = 0;
+ rdp->rcu_qs_ctr_snap = __this_cpu_read(rcu_qs_ctr);
rdp->qs_pending = 0;
trace_rcu_grace_period(rsp->name, rdp->gpnum, TPS("cpuonl"));
}
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index 8e7b1843896e..c259a0bc0d97 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -257,6 +257,8 @@ struct rcu_data {
/* in order to detect GP end. */
unsigned long gpnum; /* Highest gp number that this CPU */
/* is aware of having started. */
+ unsigned long rcu_qs_ctr_snap;/* Snapshot of rcu_qs_ctr to check */
+ /* for rcu_all_qs() invocations. */
bool passed_quiesce; /* User-mode/idle loop etc. */
bool qs_pending; /* Core waits for quiesc state. */
bool beenonline; /* CPU online at least once. */
diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
index 5cdc62e1beeb..4ec028a9987a 100644
--- a/kernel/rcu/tree_trace.c
+++ b/kernel/rcu/tree_trace.c
@@ -115,11 +115,13 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
if (!rdp->beenonline)
return;
- seq_printf(m, "%3d%cc=%ld g=%ld pq=%d qp=%d",
+ seq_printf(m, "%3d%cc=%ld g=%ld pq=%d/%d qp=%d",
rdp->cpu,
cpu_is_offline(rdp->cpu) ? '!' : ' ',
ulong2long(rdp->completed), ulong2long(rdp->gpnum),
- rdp->passed_quiesce, rdp->qs_pending);
+ rdp->passed_quiesce,
+ rdp->rcu_qs_ctr_snap == __this_cpu_read(rcu_qs_ctr),
+ rdp->qs_pending);
seq_printf(m, " dt=%d/%llx/%d df=%lu",
atomic_read(&rdp->dynticks->dynticks),
rdp->dynticks->dynticks_nesting,
next prev parent reply other threads:[~2014-12-15 0:11 UTC|newest]
Thread overview: 486+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 21:31 frequent lockups in 3.18rc4 Dave Jones
2014-11-14 22:01 ` Linus Torvalds
2014-11-14 22:30 ` Dave Jones
2014-11-14 22:55 ` Thomas Gleixner
2014-11-14 23:32 ` Dave Jones
2014-11-15 0:36 ` Thomas Gleixner
2014-11-15 2:40 ` Dave Jones
2014-11-16 12:16 ` Thomas Gleixner
2014-11-15 1:59 ` Linus Torvalds
2014-11-17 21:22 ` Linus Torvalds
2014-11-17 22:31 ` Thomas Gleixner
2014-11-17 22:43 ` Thomas Gleixner
2014-11-17 22:58 ` Jens Axboe
2014-11-17 23:59 ` Linus Torvalds
2014-11-18 0:15 ` Thomas Gleixner
2014-11-17 23:04 ` Jens Axboe
2014-11-17 23:17 ` Thomas Gleixner
2014-11-18 2:23 ` Jens Axboe
2014-11-15 21:34 ` Dave Jones
2014-11-16 1:40 ` Dave Jones
2014-11-16 6:33 ` Linus Torvalds
2014-11-16 10:06 ` Markus Trippelsdorf
2014-11-16 18:33 ` Linus Torvalds
2014-11-17 17:03 ` Dave Jones
2014-11-17 19:59 ` Linus Torvalds
2014-11-18 2:09 ` Dave Jones
2014-11-18 2:21 ` Linus Torvalds
2014-11-18 2:39 ` Dave Jones
2014-11-18 2:51 ` Linus Torvalds
2014-11-18 14:52 ` Dave Jones
2014-11-18 17:20 ` Linus Torvalds
2014-11-18 19:28 ` Thomas Gleixner
2014-11-18 21:25 ` Don Zickus
2014-11-18 21:31 ` Dave Jones
2014-11-18 18:54 ` Thomas Gleixner
2014-11-18 21:55 ` Don Zickus
2014-11-18 22:02 ` Dave Jones
2014-11-19 14:41 ` Don Zickus
2014-11-19 15:03 ` Vivek Goyal
2014-11-19 15:38 ` Dave Jones
2014-11-19 16:28 ` Vivek Goyal
2014-11-20 16:10 ` Dave Jones
2014-11-20 16:48 ` Vivek Goyal
2014-11-20 17:38 ` Dave Jones
2014-11-21 9:46 ` Dave Young
2014-11-20 16:54 ` Vivek Goyal
2014-11-20 9:54 ` Dave Young
2014-11-19 2:19 ` Dave Jones
2014-11-19 4:40 ` Linus Torvalds
2014-11-19 4:59 ` Dave Jones
2014-11-19 5:15 ` Dave Jones
2014-11-20 14:36 ` Frederic Weisbecker
2014-11-19 14:59 ` Dave Jones
2014-11-19 17:22 ` Linus Torvalds
2014-11-19 17:40 ` Linus Torvalds
2014-11-19 19:02 ` Frederic Weisbecker
2014-11-19 19:03 ` Andy Lutomirski
2014-11-19 23:00 ` Frederic Weisbecker
2014-11-19 23:07 ` Andy Lutomirski
2014-11-19 23:13 ` Frederic Weisbecker
2014-11-19 21:56 ` Thomas Gleixner
2014-11-19 22:56 ` Frederic Weisbecker
2014-11-19 22:59 ` Andy Lutomirski
2014-11-19 23:07 ` Frederic Weisbecker
2014-11-19 23:09 ` Thomas Gleixner
2014-11-19 23:50 ` Frederic Weisbecker
2014-11-20 12:23 ` Tejun Heo
2014-11-20 21:58 ` Thomas Gleixner
2014-11-20 22:06 ` Andy Lutomirski
2014-11-20 22:11 ` Tejun Heo
2014-11-20 22:42 ` Thomas Gleixner
2014-11-20 23:05 ` Tejun Heo
2014-11-20 23:08 ` Andy Lutomirski
2014-11-20 23:34 ` Linus Torvalds
2014-11-20 23:39 ` Tejun Heo
2014-11-20 23:55 ` Andy Lutomirski
2014-11-21 16:27 ` Tejun Heo
2014-11-21 16:38 ` Andy Lutomirski
2014-11-21 16:48 ` Linus Torvalds
2014-11-21 17:08 ` Steven Rostedt
2014-11-21 17:19 ` Linus Torvalds
2014-11-21 17:22 ` Andy Lutomirski
2014-11-21 18:22 ` Linus Torvalds
2014-11-21 18:28 ` Andy Lutomirski
2014-11-21 19:06 ` Linus Torvalds
2014-11-21 19:23 ` Steven Rostedt
2014-11-21 19:34 ` Linus Torvalds
2014-11-21 19:46 ` Linus Torvalds
2014-11-21 19:52 ` Andy Lutomirski
2014-11-21 20:14 ` Josh Boyer
2014-11-21 20:16 ` Andy Lutomirski
2014-11-21 20:23 ` Josh Boyer
2014-11-24 18:48 ` Konrad Rzeszutek Wilk
2014-11-24 19:07 ` Josh Boyer
2014-11-25 5:36 ` Jürgen Groß
2014-11-25 17:22 ` Linus Torvalds
2014-11-21 20:00 ` Dave Jones
2014-11-21 20:02 ` Andy Lutomirski
2014-11-21 19:51 ` Thomas Gleixner
2014-11-21 20:00 ` Linus Torvalds
2014-11-21 20:16 ` Thomas Gleixner
2014-11-21 20:41 ` Linus Torvalds
2014-11-21 21:11 ` Thomas Gleixner
2014-11-21 22:55 ` Linus Torvalds
2014-11-21 23:03 ` Andy Lutomirski
2014-11-21 23:33 ` Linus Torvalds
2014-12-16 19:28 ` Peter Zijlstra
2014-12-16 20:46 ` Linus Torvalds
2014-12-16 21:19 ` Mel Gorman
2014-12-16 23:02 ` Peter Zijlstra
2014-12-17 0:00 ` Linus Torvalds
2014-12-17 0:41 ` Andy Lutomirski
2014-12-17 17:01 ` Konrad Rzeszutek Wilk
2014-12-17 17:14 ` Peter Zijlstra
2014-11-21 22:33 ` Konrad Rzeszutek Wilk
2014-11-22 1:17 ` Thomas Gleixner
2014-11-21 17:34 ` Steven Rostedt
2014-11-21 18:24 ` Linus Torvalds
2014-11-21 22:10 ` Frederic Weisbecker
2014-11-21 2:33 ` Steven Rostedt
2014-11-21 0:54 ` Thomas Gleixner
2014-11-21 14:13 ` Frederic Weisbecker
2014-11-21 16:25 ` Tejun Heo
2014-11-21 17:01 ` Steven Rostedt
2014-11-21 17:11 ` Steven Rostedt
2014-11-21 21:32 ` Frederic Weisbecker
2014-11-21 21:34 ` Andy Lutomirski
2014-11-21 21:50 ` Frederic Weisbecker
2014-11-21 22:45 ` Steven Rostedt
2014-11-21 21:44 ` Frederic Weisbecker
2014-11-22 0:11 ` Tejun Heo
2014-11-22 0:18 ` Linus Torvalds
2014-11-22 0:41 ` Andy Lutomirski
2014-11-19 23:54 ` Andy Lutomirski
2014-11-20 0:00 ` Thomas Gleixner
2014-11-20 0:30 ` Andy Lutomirski
2014-11-20 0:40 ` Linus Torvalds
2014-11-20 0:49 ` Andy Lutomirski
2014-11-20 1:07 ` Linus Torvalds
2014-11-20 1:16 ` Andy Lutomirski
2014-11-20 2:42 ` Linus Torvalds
2014-11-20 6:16 ` Andy Lutomirski
2014-11-19 19:15 ` Andy Lutomirski
2014-11-19 19:38 ` Linus Torvalds
2014-11-19 22:18 ` Dave Jones
2014-11-19 21:01 ` Andy Lutomirski
2014-11-19 21:47 ` Dave Jones
2014-11-19 21:58 ` Borislav Petkov
2014-11-19 22:18 ` Dave Jones
2014-11-20 10:33 ` Borislav Petkov
2014-11-19 21:56 ` [PATCH] x86, syscall: Fix _TIF_NOHZ handling in syscall_trace_enter_phase1 Andy Lutomirski
2014-11-19 22:13 ` Thomas Gleixner
2014-11-20 20:33 ` Linus Torvalds
2014-11-20 22:07 ` Thomas Gleixner
2014-11-20 22:04 ` [tip:x86/urgent] " tip-bot for Andy Lutomirski
2014-11-20 15:25 ` frequent lockups in 3.18rc4 Dave Jones
2014-11-20 19:43 ` Linus Torvalds
2014-11-20 20:06 ` Dave Jones
2014-11-20 20:37 ` Don Zickus
2014-11-20 20:51 ` Linus Torvalds
2014-11-21 6:37 ` Ingo Molnar
2014-11-21 14:50 ` Dave Jones
2014-11-25 12:22 ` Will Deacon
2014-12-01 11:48 ` Will Deacon
2014-12-01 17:05 ` Linus Torvalds
2014-12-01 17:10 ` Will Deacon
2014-12-01 17:53 ` Linus Torvalds
2014-12-01 18:25 ` Kirill A. Shutemov
2014-12-01 18:36 ` Linus Torvalds
2014-12-04 10:51 ` Will Deacon
2014-12-04 14:56 ` Dave Jones
2014-12-05 13:49 ` Will Deacon
2014-11-20 15:04 ` Frederic Weisbecker
2014-11-20 15:08 ` Frederic Weisbecker
2014-11-20 16:19 ` Dave Jones
2014-11-20 16:42 ` Frederic Weisbecker
2014-11-26 0:25 ` Dave Jones
2014-11-26 1:48 ` Linus Torvalds
2014-11-26 2:40 ` Dave Jones
2014-11-26 22:57 ` Dave Jones
2014-11-27 0:46 ` Linus Torvalds
2014-11-27 19:17 ` Linus Torvalds
2014-11-27 22:56 ` Dave Jones
2014-11-29 20:38 ` Dâniel Fraga
2014-11-30 20:45 ` Linus Torvalds
2014-11-30 21:21 ` Dâniel Fraga
2014-12-01 0:21 ` Linus Torvalds
2014-12-01 1:02 ` Dâniel Fraga
2014-12-01 19:14 ` Paul E. McKenney
2014-12-01 20:28 ` Dâniel Fraga
2014-12-01 20:36 ` Linus Torvalds
2014-12-01 23:08 ` Chris Mason
2014-12-01 23:25 ` Linus Torvalds
2014-12-01 23:44 ` Chris Mason
2014-12-02 0:39 ` Linus Torvalds
2014-12-02 14:13 ` Mike Galbraith
2014-12-02 16:33 ` Linus Torvalds
2014-12-02 17:14 ` Chris Mason
2014-12-03 18:41 ` Dave Jones
2014-12-03 18:45 ` Linus Torvalds
2014-12-03 19:00 ` Dave Jones
2014-12-03 19:25 ` Linus Torvalds
2014-12-03 19:30 ` Dave Jones
2014-12-03 19:48 ` Linus Torvalds
2014-12-03 20:09 ` Dave Jones
2014-12-03 20:37 ` Linus Torvalds
2014-12-03 20:55 ` Thomas Gleixner
2014-12-03 21:14 ` Linus Torvalds
2014-12-03 22:19 ` Thomas Gleixner
2014-12-03 23:21 ` Dave Jones
2014-12-03 23:49 ` Thomas Gleixner
2014-12-04 0:19 ` Linus Torvalds
2014-12-04 1:02 ` Thomas Gleixner
2014-12-04 0:20 ` Dave Jones
2014-12-04 0:59 ` Thomas Gleixner
2014-12-04 1:32 ` Dave Jones
2014-12-04 3:45 ` Dave Jones
2014-12-03 19:56 ` John Stultz
2014-12-03 20:37 ` Thomas Gleixner
2014-12-03 20:44 ` Dave Jones
2014-12-03 20:59 ` Thomas Gleixner
2014-12-03 21:05 ` Dave Jones
2014-12-03 21:48 ` Thomas Gleixner
2014-12-03 20:39 ` Thomas Gleixner
2014-12-04 3:15 ` Chris Mason
2014-12-04 5:49 ` Linus Torvalds
2014-12-04 14:57 ` Chris Mason
2014-12-04 15:22 ` Dave Hansen
2014-12-04 15:30 ` Chris Mason
2014-12-03 19:59 ` Chris Mason
2014-12-03 20:11 ` Dave Jones
2014-12-03 20:56 ` Chris Mason
2014-12-04 0:27 ` Dave Jones
2014-12-05 17:15 ` Dave Jones
2014-12-05 18:38 ` Linus Torvalds
2014-12-05 18:48 ` Dave Jones
2014-12-05 19:31 ` Linus Torvalds
2014-12-05 19:37 ` Dave Jones
2014-12-06 22:38 ` Thomas Gleixner
2014-12-06 9:37 ` Chuck Ebbert
2014-12-06 16:22 ` Martin van Es
2014-12-06 20:09 ` Linus Torvalds
2014-12-06 20:41 ` Linus Torvalds
2014-12-06 21:14 ` Martin van Es
2014-12-12 12:58 ` Martin van Es
2014-12-15 12:07 ` Martin van Es
2014-12-06 22:14 ` Thomas Gleixner
2014-12-05 19:04 ` Chris Mason
2014-12-05 19:29 ` Linus Torvalds
2014-12-11 14:54 ` Dave Jones
2014-12-11 21:49 ` Linus Torvalds
2014-12-11 21:52 ` Sasha Levin
2014-12-11 21:57 ` Chris Mason
2014-12-11 22:00 ` Sasha Levin
2014-12-11 22:36 ` Linus Torvalds
2014-12-11 22:57 ` Sasha Levin
2014-12-12 6:54 ` Ingo Molnar
2014-12-12 23:54 ` Sasha Levin
2014-12-13 0:23 ` Linus Torvalds
2014-12-13 0:34 ` Sasha Levin
2014-12-13 0:44 ` Linus Torvalds
2014-12-13 16:28 ` Jeff Chua
2014-12-13 2:32 ` Dave Jones
2014-12-11 21:57 ` Borislav Petkov
2014-12-12 3:03 ` Dave Jones
2014-12-12 4:45 ` Dave Jones
2014-12-12 14:38 ` Dave Jones
2014-12-12 18:24 ` Paul E. McKenney
2014-12-12 18:10 ` Paul E. McKenney
2014-12-12 18:42 ` Dave Jones
2014-12-12 18:54 ` Dave Jones
2014-12-12 19:14 ` Linus Torvalds
2014-12-12 19:23 ` Dave Jones
2014-12-12 19:58 ` David Lang
2014-12-12 20:20 ` Linus Torvalds
2014-12-13 7:43 ` Ingo Molnar
2014-12-12 20:34 ` Paul E. McKenney
2014-12-12 21:23 ` Sasha Levin
2014-12-13 0:58 ` Paul E. McKenney
2014-12-13 12:08 ` Paul E. McKenney
2014-12-13 8:30 ` Ingo Molnar
2014-12-13 15:53 ` Sasha Levin
2014-12-13 18:07 ` Paul E. McKenney
2014-12-14 17:50 ` Paul E. McKenney
2014-12-14 23:46 ` Sasha Levin
2014-12-15 0:11 ` Paul E. McKenney [this message]
2014-12-15 1:20 ` Sasha Levin
2014-12-15 6:33 ` Paul E. McKenney
2014-12-15 12:56 ` Paul E. McKenney
2014-12-15 13:16 ` Sasha Levin
2014-12-16 3:40 ` Paul E. McKenney
2014-12-13 7:36 ` [PATCH] sched: Fix lost reschedule in __cond_resched() Ingo Molnar
2014-12-14 18:04 ` Frederic Weisbecker
2014-12-14 19:43 ` Ingo Molnar
2014-12-14 19:50 ` Linus Torvalds
2014-12-14 20:30 ` Frederic Weisbecker
2014-12-13 8:19 ` frequent lockups in 3.18rc4 Ingo Molnar
2014-12-13 8:27 ` Ingo Molnar
2014-12-13 14:15 ` Sasha Levin
2014-12-13 16:59 ` Dave Jones
2014-12-13 18:04 ` Paul E. McKenney
2014-12-13 20:41 ` Dave Jones
2014-12-14 4:04 ` Paul E. McKenney
2014-12-13 22:36 ` Dave Jones
2014-12-13 22:40 ` Linus Torvalds
2014-12-13 22:59 ` Linus Torvalds
2014-12-13 23:09 ` Linus Torvalds
2014-12-13 23:35 ` Al Viro
2014-12-13 23:38 ` Linus Torvalds
2014-12-13 23:47 ` Al Viro
2014-12-14 0:14 ` Linus Torvalds
2014-12-14 0:33 ` Al Viro
2014-12-14 1:35 ` Linus Torvalds
2014-12-14 3:14 ` Al Viro
2014-12-15 0:18 ` Al Viro
2014-12-13 23:39 ` Al Viro
2014-12-14 23:46 ` Dave Jones
2014-12-15 0:38 ` Linus Torvalds
2014-12-15 0:42 ` Dave Jones
2014-12-15 5:47 ` Linus Torvalds
2014-12-15 5:57 ` Dave Jones
2014-12-15 18:21 ` Linus Torvalds
2014-12-15 23:46 ` Linus Torvalds
2014-12-18 2:42 ` Sasha Levin
2014-12-18 2:45 ` Linus Torvalds
2014-12-18 5:13 ` Dave Jones
2014-12-18 15:54 ` Chris Mason
2014-12-18 16:12 ` Dave Jones
2014-12-19 2:45 ` Dave Jones
2014-12-19 3:49 ` Linus Torvalds
2014-12-19 3:58 ` Dave Jones
2014-12-19 4:03 ` Dave Jones
2014-12-19 4:48 ` Linus Torvalds
2014-12-19 11:35 ` Peter Zijlstra
2014-12-19 14:55 ` Dave Jones
2014-12-19 15:14 ` Chris Mason
2014-12-19 19:15 ` Linus Torvalds
2014-12-19 19:44 ` Peter Zijlstra
2014-12-19 19:51 ` Linus Torvalds
2014-12-19 20:46 ` Linus Torvalds
2014-12-19 20:54 ` Dave Jones
2014-12-19 22:05 ` Linus Torvalds
2014-12-20 16:49 ` Dave Jones
2014-12-19 20:31 ` Chris Mason
2014-12-19 20:36 ` Dave Jones
2014-12-19 23:22 ` Thomas Gleixner
2014-12-20 0:12 ` Chris Mason
2014-12-20 1:06 ` Thomas Gleixner
2014-12-19 23:14 ` Thomas Gleixner
2014-12-19 23:55 ` Linus Torvalds
2014-12-20 1:00 ` Thomas Gleixner
2014-12-20 1:57 ` Linus Torvalds
2014-12-20 18:25 ` Linus Torvalds
2014-12-20 21:16 ` Linus Torvalds
2014-12-21 3:52 ` Paul E. McKenney
2014-12-21 21:22 ` Linus Torvalds
2014-12-21 22:19 ` Linus Torvalds
2014-12-21 22:32 ` Dave Jones
2014-12-21 23:58 ` Linus Torvalds
2014-12-22 0:41 ` Linus Torvalds
2014-12-22 0:52 ` Linus Torvalds
2014-12-22 1:22 ` Dave Jones
2014-12-22 3:11 ` Paul E. McKenney
2014-12-22 19:47 ` Linus Torvalds
2014-12-22 20:06 ` Linus Torvalds
2014-12-22 22:57 ` Dave Jones
2014-12-22 23:59 ` Linus Torvalds
2014-12-23 14:56 ` Dave Jones
2014-12-24 13:58 ` Sasha Levin
2014-12-24 3:01 ` Dave Jones
2014-12-26 16:34 ` Dave Jones
2014-12-26 18:12 ` Dave Jones
2014-12-26 20:57 ` Linus Torvalds
2014-12-26 21:20 ` Dave Jones
2014-12-26 22:57 ` Dave Jones
2014-12-26 23:16 ` Linus Torvalds
2014-12-27 0:36 ` Dave Jones
2014-12-27 3:14 ` Linus Torvalds
2014-12-27 16:48 ` Dave Jones
2014-12-26 23:30 ` Linus Torvalds
2014-12-27 0:39 ` Dave Jones
2014-12-27 2:53 ` Dave Jones
2015-01-03 0:27 ` John Stultz
2015-01-03 14:58 ` Sasha Levin
2015-01-04 19:46 ` Linus Torvalds
2015-01-06 1:17 ` John Stultz
2015-01-06 1:25 ` Linus Torvalds
2015-01-06 2:05 ` John Stultz
2014-12-22 23:59 ` John Stultz
2014-12-23 0:46 ` Linus Torvalds
2014-12-27 20:33 ` Paul E. McKenney
2015-01-12 10:05 ` Thomas Gleixner
2014-12-19 14:30 ` Chris Mason
2014-12-19 15:12 ` Dave Jones
2014-12-18 18:54 ` Linus Torvalds
2014-12-15 14:00 ` Borislav Petkov
2014-12-18 21:17 ` save_xstate_sig (Re: frequent lockups in 3.18rc4) Andy Lutomirski
2014-12-18 21:34 ` Linus Torvalds
2014-12-18 21:41 ` Andy Lutomirski
2014-12-18 21:37 ` Dave Jones
2014-12-17 18:22 ` frequent lockups in 3.18rc4 Dave Jones
2014-12-17 18:57 ` Dave Jones
2014-12-17 19:24 ` Dave Jones
2014-12-17 19:51 ` Linus Torvalds
2014-12-17 20:16 ` Dave Jones
2014-12-17 19:41 ` Linus Torvalds
2014-12-06 5:04 ` Gene Heskett
2014-12-02 17:47 ` Mike Galbraith
2014-12-13 8:11 ` Ingo Molnar
2014-12-13 9:57 ` Mike Galbraith
2014-12-17 11:13 ` Peter Zijlstra
2014-12-02 19:32 ` Dave Jones
2014-12-02 23:32 ` Sasha Levin
2014-12-03 0:09 ` Linus Torvalds
2014-12-03 0:25 ` Sasha Levin
2014-12-05 5:00 ` Sasha Levin
2014-12-05 6:38 ` Linus Torvalds
2014-12-05 15:03 ` Sasha Levin
2014-12-05 18:15 ` Linus Torvalds
2014-12-07 14:58 ` Sasha Levin
2014-12-07 18:24 ` Paul E. McKenney
2014-12-07 19:43 ` Paul E. McKenney
2014-12-07 23:28 ` Sasha Levin
2014-12-08 5:20 ` Paul E. McKenney
2014-12-08 14:33 ` Sasha Levin
2014-12-08 15:28 ` Sasha Levin
2014-12-08 15:57 ` Paul E. McKenney
2014-12-08 16:34 ` Sasha Levin
2014-12-08 15:56 ` Paul E. McKenney
2014-12-07 23:53 ` Linus Torvalds
2014-12-02 19:31 ` Dave Jones
2014-12-02 21:17 ` Linus Torvalds
2014-12-02 20:30 ` Dave Jones
2014-12-02 20:48 ` Paul E. McKenney
2014-12-01 23:08 ` Paul E. McKenney
2014-12-02 16:43 ` Dâniel Fraga
2014-12-02 17:04 ` Paul E. McKenney
2014-12-02 17:14 ` Dâniel Fraga
2014-12-02 18:42 ` Paul E. McKenney
2014-12-02 18:47 ` Dâniel Fraga
2014-12-02 19:11 ` Paul E. McKenney
2014-12-02 19:24 ` Dâniel Fraga
2014-12-02 20:56 ` Paul E. McKenney
2014-12-02 22:01 ` Dâniel Fraga
2014-12-02 22:10 ` Paul E. McKenney
2014-12-02 22:18 ` Dâniel Fraga
2014-12-02 22:35 ` Paul E. McKenney
2014-12-02 22:10 ` Linus Torvalds
2014-12-02 22:16 ` Dâniel Fraga
2014-12-03 3:21 ` Dâniel Fraga
2014-12-03 4:14 ` Linus Torvalds
2014-12-03 4:51 ` Dâniel Fraga
2014-12-03 6:02 ` Chris Rorvick
2014-12-03 15:22 ` Linus Torvalds
2014-12-04 8:43 ` Dâniel Fraga
2014-12-04 16:18 ` Linus Torvalds
2014-12-04 16:52 ` Frederic Weisbecker
2014-12-04 17:25 ` Dâniel Fraga
2014-12-04 17:47 ` Linus Torvalds
2014-12-04 18:07 ` Dâniel Fraga
2014-12-03 14:54 ` Tejun Heo
2014-12-02 18:09 ` Paul E. McKenney
2014-12-02 18:41 ` Dâniel Fraga
2014-12-02 17:08 ` Linus Torvalds
2014-12-02 17:16 ` Dâniel Fraga
2014-12-02 8:40 ` Lai Jiangshan
2014-12-02 16:58 ` Paul E. McKenney
2014-12-02 16:58 ` Dâniel Fraga
2014-12-02 17:17 ` Paul E. McKenney
2014-12-03 2:03 ` Lai Jiangshan
2014-12-03 5:22 ` Paul E. McKenney
2014-12-01 16:56 ` Don Zickus
2014-11-26 4:39 ` Jürgen Groß
[not found] ` <CA+55aFx1SiFBzmA=k9jHxi3cZE3Ei_+2NHepujgf86KEvkz8eQ@mail.gmail.com>
2014-11-26 5:11 ` Dave Jones
2014-11-26 5:24 ` Juergen Gross
2014-11-26 5:52 ` Linus Torvalds
2014-11-26 6:21 ` Linus Torvalds
2014-11-26 6:52 ` Juergen Gross
2014-11-26 9:44 ` Juergen Gross
2014-11-26 14:34 ` Dave Jones
2014-11-26 17:37 ` Linus Torvalds
2014-11-20 15:28 ` Frederic Weisbecker
2014-11-17 15:07 ` Don Zickus
-- strict thread matches above, loose matches on Subject: below --
2014-12-16 3:04 Hillf Danton
2015-02-12 11:09 Martin van Es
2015-02-12 16:01 ` Linus Torvalds
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=20141215001123.GK5310@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=clm@fb.com \
--cc=davej@redhat.com \
--cc=david@lang.hm \
--cc=fragabr@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=sasha.levin@oracle.com \
--cc=torvalds@linux-foundation.org \
--cc=umgwanakikbuti@gmail.com \
/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).