All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"will@kernel.org" <will@kernel.org>,
	"marcan@marcan.st" <marcan@marcan.st>,
	"sven@svenpeter.dev" <sven@svenpeter.dev>,
	"robdclark@gmail.com" <robdclark@gmail.com>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"orsonzhai@gmail.com" <orsonzhai@gmail.com>,
	"baolin.wang7@gmail.com" <baolin.wang7@gmail.com>,
	"zhang.lyra@gmail.com" <zhang.lyra@gmail.com>,
	"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	"alyssa@rosenzweig.io" <alyssa@rosenzweig.io>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	"yong.wu@mediatek.com" <yong.wu@mediatek.com>,
	"mjrosato@linux.ibm.com" <mjrosato@linux.ibm.com>,
	"gerald.schaefer@linux.ibm.com" <gerald.schaefer@linux.ibm.com>,
	"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
	"vdumpa@nvidia.com" <vdumpa@nvidia.com>,
	"jonathanh@nvidia.com" <jonathanh@nvidia.com>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	"thunder.leizhen@huawei.com" <thunder.leizhen@huawei.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"christophe.jaillet@wanadoo.fr" <christophe.jaillet@wanadoo.fr>,
	"john.garry@huawei.com" <john.garry@huawei.com>,
	"chenxiang66@hisilicon.com" <chenxiang66@hisilicon.com>,
	"saiprakash.ranjan@codeaurora.org"
	<saiprakash.ranjan@codeaurora.org>,
	"isaacm@codeaurora.org" <isaacm@codeaurora.org>,
	"yangyingliang@huawei.com" <yangyingliang@huawei.com>,
	"jordan@cosmicpenguin.net" <jordan@cosmicpenguin.net>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"linux-mediatek@lists.infradead.org" 
	<linux-mediatek@lists.infradead.org>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"virtualization@lists.linux-foundation.org" 
	<virtualization@lists.linux-foundation.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH v2 3/5] vfio/iommu_type1: Remove the domain->ops comparison
Date: Fri, 24 Jun 2022 15:46:09 -0300	[thread overview]
Message-ID: <20220624184609.GX4147@nvidia.com> (raw)
In-Reply-To: <c9dee5e3-4525-b9bf-3775-30995d59af9e@arm.com>

On Fri, Jun 24, 2022 at 07:31:47PM +0100, Robin Murphy wrote:

> > > Oh, physical platforms with mixed IOMMUs definitely exist already. The main
> > > point is that while bus_set_iommu still exists, the core code effectively
> > > *does* prevent multiple drivers from registering - even in emulated cases
> > > like the example above, virtio-iommu and VT-d would both try to
> > > bus_set_iommu(&pci_bus_type), and one of them will lose. The aspect which
> > > might warrant clarification is that there's no combination of supported
> > > drivers which claim non-overlapping buses *and* could appear in the same
> > > system - even if you tried to contrive something by emulating, say, VT-d
> > > (PCI) alongside rockchip-iommu (platform), you could still only describe one
> > > or the other due to ACPI vs. Devicetree.
> > 
> > Right, and that is still something we need to protect against with
> > this ops check. VFIO is not checking that the bus's are the same
> > before attempting to re-use a domain.
> > 
> > So it is actually functional and does protect against systems with
> > multiple iommu drivers on different busses.
> 
> But as above, which systems *are* those? 

IDK it seems wrong that the system today will allow different buses to
have different IOMMU drivers and not provide a trivial protection
check.

> FWIW my iommu/bus dev branch has got as far as the final bus ops removal and
> allowing multiple driver registrations, and before it allows that, it does
> now have the common attach check that I sketched out in the previous
> discussion of this.

If you want to put the check in your series that seems fine too, as
long as we get it in the end.

> It's probably also noteworthy that domain->ops is no longer the same
> domain->ops that this code was written to check, and may now be different
> between domains from the same driver.

Yes, the vfio check is not good anymore.

Jason

WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe via iommu <iommu@lists.linux-foundation.org>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "cohuck@redhat.com" <cohuck@redhat.com>,
	"jordan@cosmicpenguin.net" <jordan@cosmicpenguin.net>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
	"will@kernel.org" <will@kernel.org>,
	"alyssa@rosenzweig.io" <alyssa@rosenzweig.io>,
	"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
	"saiprakash.ranjan@codeaurora.org"
	<saiprakash.ranjan@codeaurora.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"zhang.lyra@gmail.com" <zhang.lyra@gmail.com>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"jonathanh@nvidia.com" <jonathanh@nvidia.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"yangyingliang@huawei.com" <yangyingliang@huawei.com>,
	"orsonzhai@gmail.com" <orsonzhai@gmail.com>,
	"gerald.schaefer@linux.ibm.com" <gerald.schaefer@linux.ibm.com>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"christophe.jaillet@wanadoo.fr" <christophe.jaillet@wanadoo.fr>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	"isaacm@codeaurora.org" <isaacm@codeaurora.org>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"marcan@marcan.st" <marcan@marcan.st>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"baolin.wang7@gmail.com" <baolin.wang7@gmail.com>,
	"linux-mediatek@lists.infradead.org"
	<linux-mediatek@lists.infradead.org>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>
Subject: Re: [PATCH v2 3/5] vfio/iommu_type1: Remove the domain->ops comparison
Date: Fri, 24 Jun 2022 15:46:09 -0300	[thread overview]
Message-ID: <20220624184609.GX4147@nvidia.com> (raw)
In-Reply-To: <c9dee5e3-4525-b9bf-3775-30995d59af9e@arm.com>

On Fri, Jun 24, 2022 at 07:31:47PM +0100, Robin Murphy wrote:

> > > Oh, physical platforms with mixed IOMMUs definitely exist already. The main
> > > point is that while bus_set_iommu still exists, the core code effectively
> > > *does* prevent multiple drivers from registering - even in emulated cases
> > > like the example above, virtio-iommu and VT-d would both try to
> > > bus_set_iommu(&pci_bus_type), and one of them will lose. The aspect which
> > > might warrant clarification is that there's no combination of supported
> > > drivers which claim non-overlapping buses *and* could appear in the same
> > > system - even if you tried to contrive something by emulating, say, VT-d
> > > (PCI) alongside rockchip-iommu (platform), you could still only describe one
> > > or the other due to ACPI vs. Devicetree.
> > 
> > Right, and that is still something we need to protect against with
> > this ops check. VFIO is not checking that the bus's are the same
> > before attempting to re-use a domain.
> > 
> > So it is actually functional and does protect against systems with
> > multiple iommu drivers on different busses.
> 
> But as above, which systems *are* those? 

IDK it seems wrong that the system today will allow different buses to
have different IOMMU drivers and not provide a trivial protection
check.

> FWIW my iommu/bus dev branch has got as far as the final bus ops removal and
> allowing multiple driver registrations, and before it allows that, it does
> now have the common attach check that I sketched out in the previous
> discussion of this.

If you want to put the check in your series that seems fine too, as
long as we get it in the end.

> It's probably also noteworthy that domain->ops is no longer the same
> domain->ops that this code was written to check, and may now be different
> between domains from the same driver.

Yes, the vfio check is not good anymore.

Jason
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "cohuck@redhat.com" <cohuck@redhat.com>,
	"mjrosato@linux.ibm.com" <mjrosato@linux.ibm.com>,
	"jordan@cosmicpenguin.net" <jordan@cosmicpenguin.net>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
	"will@kernel.org" <will@kernel.org>,
	"alyssa@rosenzweig.io" <alyssa@rosenzweig.io>,
	"jean-philippe@linaro.org" <jean-philippe@linaro.org>,
	"saiprakash.ranjan@codeaurora.org"
	<saiprakash.ranjan@codeaurora.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"zhang.lyra@gmail.com" <zhang.lyra@gmail.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"jonathanh@nvidia.com" <jonathanh@nvidia.com>,
	Nicolin Chen <nicolinc@nvidia.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"yangyingliang@huawei.com" <yangyingliang@huawei.com>,
	"orsonzhai@gmail.com" <orsonzhai@gmail.com>,
	"gerald.schaefer@linux.ibm.com" <gerald.schaefer@linux.ibm.com>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	"sven@svenpeter.dev" <sven@svenpeter.dev>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"john.garry@huawei.com" <john.garry@huawei.com>,
	"christophe.jaillet@wanadoo.fr" <christophe.jaillet@wanadoo.fr>,
	"thunder.leizhen@huawei.com" <thunder.leizhen@huawei.com>,
	"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	"yong.wu@mediatek.com" <yong.wu@mediatek.com>,
	"isaacm@codeaurora.org" <isaacm@codeaurora.org>,
	"chenxiang66@hisilicon.com" <chenxiang66@hisilicon.com>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"marcan@marcan.st" <marcan@marcan.st>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"robdclark@gmail.com" <robdclark@gmail.com>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	"baolin.wang7@gmail.com" <baolin.wang7@gmail.com>,
	"linux-mediatek@lists.infradead.org"
	<linux-mediatek@lists.infradead.org>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>
Subject: Re: [PATCH v2 3/5] vfio/iommu_type1: Remove the domain->ops comparison
Date: Fri, 24 Jun 2022 15:46:09 -0300	[thread overview]
Message-ID: <20220624184609.GX4147@nvidia.com> (raw)
In-Reply-To: <c9dee5e3-4525-b9bf-3775-30995d59af9e@arm.com>

On Fri, Jun 24, 2022 at 07:31:47PM +0100, Robin Murphy wrote:

> > > Oh, physical platforms with mixed IOMMUs definitely exist already. The main
> > > point is that while bus_set_iommu still exists, the core code effectively
> > > *does* prevent multiple drivers from registering - even in emulated cases
> > > like the example above, virtio-iommu and VT-d would both try to
> > > bus_set_iommu(&pci_bus_type), and one of them will lose. The aspect which
> > > might warrant clarification is that there's no combination of supported
> > > drivers which claim non-overlapping buses *and* could appear in the same
> > > system - even if you tried to contrive something by emulating, say, VT-d
> > > (PCI) alongside rockchip-iommu (platform), you could still only describe one
> > > or the other due to ACPI vs. Devicetree.
> > 
> > Right, and that is still something we need to protect against with
> > this ops check. VFIO is not checking that the bus's are the same
> > before attempting to re-use a domain.
> > 
> > So it is actually functional and does protect against systems with
> > multiple iommu drivers on different busses.
> 
> But as above, which systems *are* those? 

IDK it seems wrong that the system today will allow different buses to
have different IOMMU drivers and not provide a trivial protection
check.

> FWIW my iommu/bus dev branch has got as far as the final bus ops removal and
> allowing multiple driver registrations, and before it allows that, it does
> now have the common attach check that I sketched out in the previous
> discussion of this.

If you want to put the check in your series that seems fine too, as
long as we get it in the end.

> It's probably also noteworthy that domain->ops is no longer the same
> domain->ops that this code was written to check, and may now be different
> between domains from the same driver.

Yes, the vfio check is not good anymore.

Jason

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-06-24 18:46 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16  0:02 [PATCH v2 0/5] Simplify vfio_iommu_type1 attach/detach routine Nicolin Chen
2022-06-16  0:02 ` Nicolin Chen
2022-06-16  0:02 ` Nicolin Chen via iommu
2022-06-16  0:03 ` [PATCH v2 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen via iommu
2022-06-16  2:09   ` Baolu Lu
2022-06-16  2:09     ` Baolu Lu
2022-06-16  2:09     ` Baolu Lu
2022-06-16  2:40     ` Nicolin Chen
2022-06-16  2:40       ` Nicolin Chen
2022-06-16  2:40       ` Nicolin Chen via iommu
2022-06-16  6:28   ` Tian, Kevin
2022-06-16  6:28     ` Tian, Kevin
2022-06-16  6:28     ` Tian, Kevin
2022-06-16  6:28     ` Tian, Kevin
2022-06-16  0:03 ` [PATCH v2 2/5] vfio/iommu_type1: Prefer to reuse domains vs match enforced cache coherency Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen via iommu
2022-06-16  6:29   ` Tian, Kevin
2022-06-16  6:29     ` Tian, Kevin
2022-06-16  6:29     ` Tian, Kevin
2022-06-16  6:29     ` Tian, Kevin
2022-06-21 22:46   ` Alex Williamson
2022-06-21 22:46     ` Alex Williamson
2022-06-21 22:46     ` Alex Williamson
2022-06-21 22:46     ` Alex Williamson
2022-06-21 23:47     ` Nicolin Chen
2022-06-21 23:47       ` Nicolin Chen
2022-06-21 23:47       ` Nicolin Chen via iommu
2022-06-16  0:03 ` [PATCH v2 3/5] vfio/iommu_type1: Remove the domain->ops comparison Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen via iommu
2022-06-16  6:40   ` Tian, Kevin
2022-06-16  6:40     ` Tian, Kevin
2022-06-16  6:40     ` Tian, Kevin
2022-06-16  6:40     ` Tian, Kevin
2022-06-16 22:23     ` Nicolin Chen
2022-06-16 22:23       ` Nicolin Chen
2022-06-16 22:23       ` Nicolin Chen via iommu
2022-06-22  7:54       ` Robin Murphy
2022-06-22  7:54         ` Robin Murphy
2022-06-22  7:54         ` Robin Murphy
2022-06-22  7:54         ` Robin Murphy
2022-06-23  3:50         ` Tian, Kevin
2022-06-23  3:50           ` Tian, Kevin
2022-06-23  3:50           ` Tian, Kevin
2022-06-23  3:50           ` Tian, Kevin
2022-06-23  7:47           ` Nicolin Chen
2022-06-23  7:47             ` Nicolin Chen
2022-06-23  7:47             ` Nicolin Chen via iommu
2022-06-24 13:16         ` Jason Gunthorpe
2022-06-24 13:16           ` Jason Gunthorpe
2022-06-24 13:16           ` Jason Gunthorpe via iommu
2022-06-24 18:31           ` Robin Murphy
2022-06-24 18:31             ` Robin Murphy
2022-06-24 18:31             ` Robin Murphy
2022-06-24 18:31             ` Robin Murphy
2022-06-24 18:46             ` Jason Gunthorpe [this message]
2022-06-24 18:46               ` Jason Gunthorpe
2022-06-24 18:46               ` Jason Gunthorpe via iommu
2022-06-16  0:03 ` [PATCH v2 4/5] vfio/iommu_type1: Clean up update_dirty_scope in detach_group() Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen via iommu
2022-06-16  6:45   ` Tian, Kevin
2022-06-16  6:45     ` Tian, Kevin
2022-06-16  6:45     ` Tian, Kevin
2022-06-16  6:45     ` Tian, Kevin
2022-06-16 22:26     ` Nicolin Chen
2022-06-16 22:26       ` Nicolin Chen
2022-06-16 22:26       ` Nicolin Chen via iommu
2022-06-16  0:03 ` [PATCH v2 5/5] vfio/iommu_type1: Simplify group attachment Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen
2022-06-16  0:03   ` Nicolin Chen via iommu
2022-06-16  7:08   ` Tian, Kevin
2022-06-16  7:08     ` Tian, Kevin
2022-06-16  7:08     ` Tian, Kevin
2022-06-16  7:08     ` Tian, Kevin
2022-06-16 22:40     ` Nicolin Chen
2022-06-16 22:40       ` Nicolin Chen
2022-06-16 22:40       ` Nicolin Chen via iommu
2022-06-17  2:53       ` Tian, Kevin
2022-06-17  2:53         ` Tian, Kevin
2022-06-17  2:53         ` Tian, Kevin
2022-06-17  2:53         ` Tian, Kevin
2022-06-17 23:07         ` Nicolin Chen
2022-06-17 23:07           ` Nicolin Chen
2022-06-17 23:07           ` Nicolin Chen via iommu
2022-06-20  4:03           ` Jason Gunthorpe
2022-06-20  4:03             ` Jason Gunthorpe
2022-06-20  4:03             ` Jason Gunthorpe via iommu
2022-06-21 20:59             ` Nicolin Chen via iommu
2022-06-21 20:59               ` Nicolin Chen
2022-06-21 20:59               ` Nicolin Chen
2022-06-20 10:11         ` Robin Murphy
2022-06-20 10:11           ` Robin Murphy
2022-06-20 10:11           ` Robin Murphy
2022-06-20 10:11           ` Robin Murphy
2022-06-21 21:08           ` Nicolin Chen via iommu
2022-06-21 21:08             ` Nicolin Chen
2022-06-21 21:08             ` Nicolin Chen

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=20220624184609.GX4147@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=alex.williamson@redhat.com \
    --cc=alyssa@rosenzweig.io \
    --cc=baolin.wang7@gmail.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chenxiang66@hisilicon.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=cohuck@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=isaacm@codeaurora.org \
    --cc=jean-philippe@linaro.org \
    --cc=john.garry@huawei.com \
    --cc=jonathanh@nvidia.com \
    --cc=jordan@cosmicpenguin.net \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=matthias.bgg@gmail.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=orsonzhai@gmail.com \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=saiprakash.ranjan@codeaurora.org \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=sven@svenpeter.dev \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=thunder.leizhen@huawei.com \
    --cc=vdumpa@nvidia.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=will@kernel.org \
    --cc=yangyingliang@huawei.com \
    --cc=yong.wu@mediatek.com \
    --cc=zhang.lyra@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 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.