All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Galbraith <efault@gmx.de>
To: Guenter Roeck <linux@roeck-us.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, shuahkh@osg.samsung.com,
	patches@kernelci.org, ben.hutchings@codethink.co.uk,
	lkft-triage@lists.linaro.org, stable@vger.kernel.org,
	Tao Wu <lepton@google.com>
Subject: Re: [PATCH 4.4 00/37] 4.4.110-stable review
Date: Fri, 05 Jan 2018 05:37:54 +0100	[thread overview]
Message-ID: <1515127074.7787.12.camel@gmx.de> (raw)
In-Reply-To: <20180104234555.GA4143@roeck-us.net>

On Thu, 2018-01-04 at 15:45 -0800, Guenter Roeck wrote:
> 
> The crash part of this problem may be solved with the following patch
> (thanks to Hugh for the hint). There is still another problem, though -
> with this patch applied, the qemu session aborts with "VCPU Shutdown
> request", whatever that means.

The crash part is not fixed by your patch here, w/wo I get this, and it
is PTI, as virgin 109 boots/works with identical everything else.  My
shiny new PTI equipped enterprise 4.4 RT kernels also boot/work fine,
which seems a bit odd.. and not particularly comforting.

[    1.244354] Freeing unused kernel memory: 1192K
[    1.245278] Write protecting the kernel read-only data: 10240k
[    1.247626] Freeing unused kernel memory: 1152K
[    1.251318] Freeing unused kernel memory: 1476K
[    1.253393] init[1]: segfault at ffffffffff5ff100 ip 00007fffb7ffac6e sp 00007fffb7fa07d8 error 5
[    1.254629] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.254629] 
[    1.256202] CPU: 4 PID: 1 Comm: init Not tainted 4.4.110-rc1-smp #4
[    1.257169] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
[    1.258563]  0000000000000000 ffffffff8125a9c0 ffffffff817de7c8 ffff880197e83cf0
[    1.260850]  ffffffff8112bb2d ffffffff00000010 ffff880197e83d00 ffff880197e83ca0
[    1.263091]  ffffffff81c3cf30 000000000000000b ffff880197e90010 0000000000000000
[    1.264580] Call Trace:
[    1.265617]  [<ffffffff8125a9c0>] ? dump_stack+0x5c/0x7c
[    1.266671]  [<ffffffff8112bb2d>] ? panic+0xc8/0x20f
[    1.267799]  [<ffffffff81060af0>] ? do_exit+0xa50/0xa50
[    1.268971]  [<ffffffff810618e9>] ? do_group_exit+0x39/0xa0
[    1.270281]  [<ffffffff8106c8a0>] ? get_signal+0x1d0/0x600
[    1.271347]  [<ffffffff810041e3>] ? do_signal+0x23/0x5b0
[    1.272259]  [<ffffffff8106ade9>] ? __send_signal+0x179/0x460
[    1.273235]  [<ffffffff8104b88f>] ? force_sig_info_fault+0x5f/0x70
[    1.274258]  [<ffffffff8104bf6c>] ? __bad_area_nosemaphore+0x1cc/0x200
[    1.275268]  [<ffffffff8105a052>] ? exit_to_usermode_loop+0x54/0x95
[    1.276262]  [<ffffffff81001961>] ? prepare_exit_to_usermode+0x31/0x40
[    1.277266]  [<ffffffff814d9dbe>] ? retint_user+0x8/0x2c
[    1.278274] Dumping ftrace buffer:
[    1.279011]    (ftrace buffer empty)
[    1.279728] Kernel Offset: disabled
[    1.280432] Rebooting in 60 seconds..

virsh # exit
 
> 
> Guenter
> 
> ---
> From: Guenter Roeck <groeck@chromium.org>
> Date: Thu, 4 Jan 2018 13:41:55 -0800
> Subject: [PATCH 2/2] WIP: kaiser: Set _PAGE_NX only if supported
> 
> Change-Id: Ie6ab566c1d725b24c4b3aa80a47c3ff3a5feddb9
> Signed-off-by: Guenter Roeck <groeck@chromium.org>
> ---
>  arch/x86/mm/kaiser.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/mm/kaiser.c b/arch/x86/mm/kaiser.c
> index 7d2f7eb6857f..e4706273d4a1 100644
> --- a/arch/x86/mm/kaiser.c
> +++ b/arch/x86/mm/kaiser.c
> @@ -421,7 +421,8 @@ pgd_t kaiser_set_shadow_pgd(pgd_t *pgdp, pgd_t pgd)
>  			 * get out to userspace running on the kernel CR3,
>  			 * userspace will crash instead of running.
>  			 */
> -			pgd.pgd |= _PAGE_NX;
> +			if (__supported_pte_mask & _PAGE_NX)
> +				pgd.pgd |= _PAGE_NX;
>  		}
>  	} else if (!pgd.pgd) {
>  		/*

WARNING: multiple messages have this Message-ID (diff)
From: Mike Galbraith <efault@gmx.de>
To: Guenter Roeck <linux@roeck-us.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, shuahkh@osg.samsung.com,
	patches@kernelci.org, ben.hutchings@codethink.co.uk,
	lkft-triage@lists.linaro.org, stable@vger.kernel.org,
	Tao Wu <lepton@google.com>
Subject: Re: [PATCH 4.4 00/37] 4.4.110-stable review
Date: Fri, 05 Jan 2018 05:37:54 +0100	[thread overview]
Message-ID: <1515127074.7787.12.camel@gmx.de> (raw)
In-Reply-To: <20180104234555.GA4143@roeck-us.net>

On Thu, 2018-01-04 at 15:45 -0800, Guenter Roeck wrote:
> 
> The crash part of this problem may be solved with the following patch
> (thanks to Hugh for the hint). There is still another problem, though -
> with this patch applied, the qemu session aborts with "VCPU Shutdown
> request", whatever that means.

The crash part is not fixed by your patch here, w/wo I get this, and it
is PTI, as virgin 109 boots/works with identical everything else. ᅵMy
shiny new PTI equipped enterprise 4.4 RT kernels also boot/work fine,
which seems a bit odd.. and not particularly comforting.

[    1.244354] Freeing unused kernel memory: 1192K
[    1.245278] Write protecting the kernel read-only data: 10240k
[    1.247626] Freeing unused kernel memory: 1152K
[    1.251318] Freeing unused kernel memory: 1476K
[    1.253393] init[1]: segfault at ffffffffff5ff100 ip 00007fffb7ffac6e sp 00007fffb7fa07d8 error 5
[    1.254629] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.254629] 
[    1.256202] CPU: 4 PID: 1 Comm: init Not tainted 4.4.110-rc1-smp #4
[    1.257169] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
[    1.258563]  0000000000000000 ffffffff8125a9c0 ffffffff817de7c8 ffff880197e83cf0
[    1.260850]  ffffffff8112bb2d ffffffff00000010 ffff880197e83d00 ffff880197e83ca0
[    1.263091]  ffffffff81c3cf30 000000000000000b ffff880197e90010 0000000000000000
[    1.264580] Call Trace:
[    1.265617]  [<ffffffff8125a9c0>] ? dump_stack+0x5c/0x7c
[    1.266671]  [<ffffffff8112bb2d>] ? panic+0xc8/0x20f
[    1.267799]  [<ffffffff81060af0>] ? do_exit+0xa50/0xa50
[    1.268971]  [<ffffffff810618e9>] ? do_group_exit+0x39/0xa0
[    1.270281]  [<ffffffff8106c8a0>] ? get_signal+0x1d0/0x600
[    1.271347]  [<ffffffff810041e3>] ? do_signal+0x23/0x5b0
[    1.272259]  [<ffffffff8106ade9>] ? __send_signal+0x179/0x460
[    1.273235]  [<ffffffff8104b88f>] ? force_sig_info_fault+0x5f/0x70
[    1.274258]  [<ffffffff8104bf6c>] ? __bad_area_nosemaphore+0x1cc/0x200
[    1.275268]  [<ffffffff8105a052>] ? exit_to_usermode_loop+0x54/0x95
[    1.276262]  [<ffffffff81001961>] ? prepare_exit_to_usermode+0x31/0x40
[    1.277266]  [<ffffffff814d9dbe>] ? retint_user+0x8/0x2c
[    1.278274] Dumping ftrace buffer:
[    1.279011]    (ftrace buffer empty)
[    1.279728] Kernel Offset: disabled
[    1.280432] Rebooting in 60 seconds..

virsh # exit
ᅵ
> 
> Guenter
> 
> ---
> From: Guenter Roeck <groeck@chromium.org>
> Date: Thu, 4 Jan 2018 13:41:55 -0800
> Subject: [PATCH 2/2] WIP: kaiser: Set _PAGE_NX only if supported
> 
> Change-Id: Ie6ab566c1d725b24c4b3aa80a47c3ff3a5feddb9
> Signed-off-by: Guenter Roeck <groeck@chromium.org>
> ---
>  arch/x86/mm/kaiser.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/mm/kaiser.c b/arch/x86/mm/kaiser.c
> index 7d2f7eb6857f..e4706273d4a1 100644
> --- a/arch/x86/mm/kaiser.c
> +++ b/arch/x86/mm/kaiser.c
> @@ -421,7 +421,8 @@ pgd_t kaiser_set_shadow_pgd(pgd_t *pgdp, pgd_t pgd)
>  			 * get out to userspace running on the kernel CR3,
>  			 * userspace will crash instead of running.
>  			 */
> -			pgd.pgd |= _PAGE_NX;
> +			if (__supported_pte_mask & _PAGE_NX)
> +				pgd.pgd |= _PAGE_NX;
>  		}
>  	} else if (!pgd.pgd) {
>  		/*

  parent reply	other threads:[~2018-01-05  4:39 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-03 20:11 [PATCH 4.4 00/37] 4.4.110-stable review Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 01/37] x86/boot: Add early cmdline parsing for options with arguments Greg Kroah-Hartman
2018-01-03 20:11   ` Greg Kroah-Hartman
2018-01-03 20:11   ` Greg Kroah-Hartman
2018-01-03 20:11   ` Greg Kroah-Hartman
2018-01-03 20:11 ` [kernel-hardening] [PATCH 4.4 02/37] KAISER: Kernel Address Isolation Greg Kroah-Hartman
2018-01-03 20:11   ` Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 03/37] kaiser: merged update Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 04/37] kaiser: do not set _PAGE_NX on pgd_none Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 05/37] kaiser: stack map PAGE_SIZE at THREAD_SIZE-PAGE_SIZE Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 06/37] kaiser: fix build and FIXME in alloc_ldt_struct() Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 07/37] kaiser: KAISER depends on SMP Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 08/37] kaiser: fix regs to do_nmi() ifndef CONFIG_KAISER Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 09/37] kaiser: fix perf crashes Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 10/37] kaiser: ENOMEM if kaiser_pagetable_walk() NULL Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 11/37] kaiser: tidied up asm/kaiser.h somewhat Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 12/37] kaiser: tidied up kaiser_add/remove_mapping slightly Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 13/37] kaiser: kaiser_remove_mapping() move along the pgd Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 14/37] kaiser: cleanups while trying for gold link Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 15/37] kaiser: name that 0x1000 KAISER_SHADOW_PGD_OFFSET Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 16/37] kaiser: delete KAISER_REAL_SWITCH option Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 17/37] kaiser: vmstat show NR_KAISERTABLE as nr_overhead Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 18/37] kaiser: enhanced by kernel and user PCIDs Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 19/37] kaiser: load_new_mm_cr3() let SWITCH_USER_CR3 flush user Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 20/37] kaiser: PCID 0 for kernel and 128 for user Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 21/37] kaiser: x86_cr3_pcid_noflush and x86_cr3_pcid_user Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 22/37] kaiser: paranoid_entry pass cr3 need to paranoid_exit Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 23/37] kaiser: _pgd_alloc() without __GFP_REPEAT to avoid stalls Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 24/37] kaiser: fix unlikely error in alloc_ldt_struct() Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 25/37] kaiser: add "nokaiser" boot option, using ALTERNATIVE Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 26/37] x86/kaiser: Rename and simplify X86_FEATURE_KAISER handling Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 27/37] x86/kaiser: Check boottime cmdline params Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 28/37] kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 29/37] kaiser: drop is_atomic arg to kaiser_pagetable_walk() Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 30/37] kaiser: asm/tlbflush.h handle noPGE at lower level Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 31/37] kaiser: kaiser_flush_tlb_on_return_to_user() check PCID Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 32/37] x86/paravirt: Dont patch flush_tlb_single Greg Kroah-Hartman
2018-01-03 20:11   ` Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 33/37] x86/kaiser: Reenable PARAVIRT Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 34/37] kaiser: disabled on Xen PV Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 35/37] x86/kaiser: Move feature detection up Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 36/37] KPTI: Rename to PAGE_TABLE_ISOLATION Greg Kroah-Hartman
2018-01-03 20:11 ` [PATCH 4.4 37/37] KPTI: Report when enabled Greg Kroah-Hartman
2018-01-03 22:08 ` [PATCH 4.4 00/37] 4.4.110-stable review Nathan Chancellor
2018-01-04  8:10   ` Greg Kroah-Hartman
2018-01-04  6:50 ` Naresh Kamboju
2018-01-04  9:27 ` kernelci.org bot
2018-01-05  0:06   ` Kevin Hilman
2018-01-08 15:06     ` Guillaume Tucker
2018-01-04 16:38 ` Pavel Tatashin
2018-01-04 16:53   ` Greg Kroah-Hartman
2018-01-04 17:01     ` Guenter Roeck
2018-01-04 17:09       ` Greg Kroah-Hartman
2018-01-04 17:02     ` Pavel Tatashin
2018-01-04 17:03     ` Willy Tarreau
2018-01-04 17:11       ` Greg Kroah-Hartman
2018-01-04 17:13         ` Willy Tarreau
2018-01-04 17:14         ` Greg Kroah-Hartman
2018-01-04 17:16           ` Greg Kroah-Hartman
2018-01-04 17:56             ` Guenter Roeck
2018-01-05 15:00               ` Greg Kroah-Hartman
2018-01-05 18:12                 ` Guenter Roeck
2018-01-05 20:53                   ` Greg Kroah-Hartman
2018-01-04 20:11   ` Linus Torvalds
2018-01-04 17:03 ` Guenter Roeck
2018-01-04 19:38 ` Thomas Voegtle
2018-01-04 19:50   ` Greg Kroah-Hartman
2018-01-04 20:16     ` Thomas Voegtle
2018-01-04 20:29       ` Linus Torvalds
2018-01-04 20:43         ` Andy Lutomirski
2018-01-04 20:57           ` Hugh Dickins
2018-01-04 21:16             ` Andy Lutomirski
2018-01-04 21:23             ` Pavel Tatashin
2018-01-04 21:37               ` Hugh Dickins
2018-01-04 21:48                 ` Pavel Tatashin
2018-01-04 22:33                   ` Linus Torvalds
2018-01-05 14:59                   ` Greg Kroah-Hartman
2018-01-05 15:32                     ` Pavel Tatashin
2018-01-05 15:51                       ` Greg Kroah-Hartman
2018-01-05 15:57                         ` Willy Tarreau
2018-01-05 18:01                           ` Greg Kroah-Hartman
2018-01-05 16:26                         ` Pavel Tatashin
2018-01-05 16:57                       ` Andy Lutomirski
2018-01-05 17:14                         ` Pavel Tatashin
2018-01-05 17:43                           ` Andy Lutomirski
2018-01-05 17:48                             ` Pavel Tatashin
2018-01-05 17:52                               ` Greg Kroah-Hartman
2018-01-05 18:15                                 ` Andy Lutomirski
2018-01-05 18:21                                   ` Pavel Tatashin
2018-01-05 19:14                                     ` Pavel Tatashin
2018-01-05 19:18                                       ` Pavel Tatashin
2018-01-05 20:45                                         ` Greg Kroah-Hartman
2018-01-05 21:03                                           ` Pavel Tatashin
2018-01-05 23:15                                             ` Hugh Dickins
2018-01-06  1:16                                               ` Pavel Tatashin
2018-01-07 10:45                                             ` Greg Kroah-Hartman
2018-01-07 14:17                                               ` Pavel Tatashin
2018-01-07 15:06                                                 ` Pavel Tatashin
2018-01-08  7:46                                                   ` Greg Kroah-Hartman
2018-01-08 20:38                                                     ` Pavel Tatashin
2018-01-08 21:24                                                       ` Pavel Tatashin
2018-01-11 18:36                                                         ` Pavel Tatashin
2018-01-11 18:40                                                           ` Pavel Tatashin
2018-01-11 19:09                                                             ` Linus Torvalds
2018-01-11 20:37                                                               ` Thomas Gleixner
2018-01-11 20:46                                                                 ` Linus Torvalds
2018-01-11 21:32                                                                   ` Thomas Gleixner
2018-01-11 22:30                                                                     ` Thomas Gleixner
2018-01-11 22:42                                                                       ` Steven Sistare
2018-01-11 22:47                                                                         ` Thomas Gleixner
2018-01-12  1:15                                                                           ` Guenter Roeck
2018-01-11 22:59                                                                         ` Linus Torvalds
2018-01-11 23:03                                                                       ` Thomas Gleixner
2018-01-12  7:19                                                                         ` Greg Kroah-Hartman
2018-01-12  8:03                                                                           ` Thomas Gleixner
2018-01-11 21:35                                                                   ` Steven Sistare
2018-01-11 21:44                                                                     ` Thomas Gleixner
2018-01-11 21:49                                                                       ` Linus Torvalds
2018-01-11 20:10                                                           ` Greg Kroah-Hartman
2018-01-11 20:17                                                             ` Linus Torvalds
2018-01-11 20:18                                                             ` Pavel Tatashin
2018-01-05 20:48                                   ` Greg Kroah-Hartman
2018-01-05  5:33           ` Andy Lutomirski
2018-01-05 10:12             ` Kees Cook
2018-01-05 12:14               ` Greg Kroah-Hartman
2018-01-05 13:08               ` Greg Kroah-Hartman
2018-01-04 20:10   ` Guenter Roeck
2018-01-05 14:58   ` Greg Kroah-Hartman
2018-01-05 15:25     ` Thomas Voegtle
2018-01-05 15:48       ` Greg Kroah-Hartman
2018-01-04 22:00 ` Shuah Khan
2018-01-05  7:55   ` Greg Kroah-Hartman
2018-01-04 23:45 ` Guenter Roeck
2018-01-04 23:58   ` Linus Torvalds
2018-01-05  4:37   ` Mike Galbraith [this message]
2018-01-05  4:37     ` Mike Galbraith
2018-01-05 12:17     ` Greg Kroah-Hartman
2018-01-05 12:17       ` Greg Kroah-Hartman
2018-01-05 13:03       ` Mike Galbraith
2018-01-05 13:03         ` Mike Galbraith
2018-01-05 13:34         ` Greg Kroah-Hartman
2018-01-05 13:34           ` Greg Kroah-Hartman
2018-01-05 14:03           ` Mike Galbraith
2018-01-05 23:28             ` Hugh Dickins
2018-01-06  2:58               ` Mike Galbraith
2018-01-05 13:41   ` Greg Kroah-Hartman
2018-01-05 17:51     ` Guenter Roeck
2018-01-05 17:20 ` Alice Ferrazzi
2018-01-05 18:01   ` Greg Kroah-Hartman
2018-01-09 19:49     ` Serge E. Hallyn
2018-01-10  8:48       ` Greg Kroah-Hartman
2018-01-10 16:45         ` Serge E. Hallyn
2018-01-05 17:56 ` Guenter Roeck
2018-01-05 20:54   ` Greg Kroah-Hartman
2018-01-05 21:21     ` Guenter Roeck
2018-01-06  1:35     ` Guenter Roeck

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=1515127074.7787.12.camel@gmx.de \
    --to=efault@gmx.de \
    --cc=akpm@linux-foundation.org \
    --cc=ben.hutchings@codethink.co.uk \
    --cc=gregkh@linuxfoundation.org \
    --cc=lepton@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lkft-triage@lists.linaro.org \
    --cc=patches@kernelci.org \
    --cc=shuahkh@osg.samsung.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.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.