From: Eric Farman <farman@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>,
Alex Williamson <alex.williamson@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>
Cc: kvm@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org,
Kirti Wankhede <kwankhede@nvidia.com>,
Vineeth Vijayan <vneethv@linux.ibm.com>,
Diana Craciun <diana.craciun@oss.nxp.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
David Airlie <airlied@gmail.com>,
linux-s390@vger.kernel.org, Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
intel-gfx@lists.freedesktop.org,
Jason Herne <jjherne@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Eric Auger <eric.auger@redhat.com>,
Harald Freudenberger <freude@linux.ibm.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
intel-gvt-dev@lists.freedesktop.org,
Tony Krowiak <akrowiak@linux.ibm.com>,
Yishai Hadas <yishaih@nvidia.com>,
Peter Oberparleiter <oberpar@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Daniel Vetter <daniel@ffwll.ch>,
Abhishek Sahu <abhsahu@nvidia.com>
Subject: [Intel-gfx] [PATCH v1 0/7] vfio-ccw parent rework
Date: Wed, 19 Oct 2022 18:21:28 +0200 [thread overview]
Message-ID: <20221019162135.798901-1-farman@linux.ibm.com> (raw)
Hi all,
There have been discussions and attempts [1][2] to rework the vfio-ccw device
lifecycle to better align with the needs/expectations of vfio and mdev.
While those languished, commit cb9ff3f3b84c ("vfio: Add helpers for unifying
vfio_device life cycle") implemented a couple of tricks that help vfio and the
drivers that interact with it, while keeping vfio-ccw as-is. A handful of
commits titled "vfio/xxx: Use the new device life cycle helpers" implemented
those tricks for each of the drivers.
This series attempts to address the oddities/shortcomings of vfio-ccw, such
that vfio-ccw can use the same helpers as everyone else, and the tricks that
were implemented by the other drivers can be removed. It is built on 6.1-rc1,
and thus includes the various changes [3][4] that have occurred in and around
these parts.
Patches 1-5 rework the behavior of the vfio-ccw driver's private struct.
In summary, the mdev pieces are split out of vfio_ccw_private and into a
new vfio_ccw_parent struct that will continue to follow today's lifecycle.
The remainder (bulk) of the private struct moves to follow the mdev
probe/remove pair. There's opportunity for further separation of the
things in the private struct, which would simplify some of the vfio-ccw
code, but it got too hairy as I started that. Once vfio-ccw is no longer
considered unique, those cleanups can happen at our leisure.
Patch 6 removes the trickery where vfio-ccw uses vfio_init_device instead of
vfio_alloc_device, and thus removes vfio_init_device from the outside world.
Patch 7 removes vfio_free_device from vfio-ccw and the other drivers (hello,
CC list!), letting it be handled by vfio_device_release directly.
Looking forward to the feedback.
Thanks,
Eric
[1] https://lore.kernel.org/kvm/0-v3-57c1502c62fd+2190-ccw_mdev_jgg@nvidia.com/
[2] https://lore.kernel.org/kvm/20220602171948.2790690-1-farman@linux.ibm.com/
[3] https://lore.kernel.org/kvm/20220923092652.100656-1-hch@lst.de/
[4] https://lore.kernel.org/kvm/20220921104401.38898-1-kevin.tian@intel.com/
Eric Farman (7):
vfio/ccw: create a parent struct
vfio/ccw: remove private->sch
vfio/ccw: move private initialization to callback
vfio/ccw: move private to mdev lifecycle
vfio/ccw: remove release completion
vfio/ccw: replace vfio_init_device with _alloc_
vfio: Remove vfio_free_device
drivers/gpu/drm/i915/gvt/kvmgt.c | 1 -
drivers/s390/cio/vfio_ccw_chp.c | 5 +-
drivers/s390/cio/vfio_ccw_drv.c | 182 ++++++++++----------------
drivers/s390/cio/vfio_ccw_fsm.c | 27 ++--
drivers/s390/cio/vfio_ccw_ops.c | 108 ++++++++++-----
drivers/s390/cio/vfio_ccw_parent.h | 28 ++++
drivers/s390/cio/vfio_ccw_private.h | 22 ++--
drivers/s390/crypto/vfio_ap_ops.c | 6 -
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 -
drivers/vfio/pci/vfio_pci_core.c | 1 -
drivers/vfio/platform/vfio_amba.c | 1 -
drivers/vfio/platform/vfio_platform.c | 1 -
drivers/vfio/vfio_main.c | 25 +---
include/linux/vfio.h | 1 -
samples/vfio-mdev/mbochs.c | 1 -
samples/vfio-mdev/mdpy.c | 1 -
samples/vfio-mdev/mtty.c | 1 -
17 files changed, 204 insertions(+), 208 deletions(-)
create mode 100644 drivers/s390/cio/vfio_ccw_parent.h
--
2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Eric Farman <farman@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>,
Alex Williamson <alex.williamson@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>,
Zhi Wang <zhi.a.wang@intel.com>,
Jani Nikula <jani.nikula@linux.intel.com>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
Halil Pasic <pasic@linux.ibm.com>,
Vineeth Vijayan <vneethv@linux.ibm.com>,
Peter Oberparleiter <oberpar@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Tony Krowiak <akrowiak@linux.ibm.com>,
Jason Herne <jjherne@linux.ibm.com>,
Harald Freudenberger <freude@linux.ibm.com>,
Diana Craciun <diana.craciun@oss.nxp.com>,
Eric Auger <eric.auger@redhat.com>,
Kirti Wankhede <kwankhede@nvidia.com>,
Abhishek Sahu <abhsahu@nvidia.com>,
Yishai Hadas <yishaih@nvidia.com>,
intel-gvt-dev@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
kvm@vger.kernel.org, Eric Farman <farman@linux.ibm.com>
Subject: [PATCH v1 0/7] vfio-ccw parent rework
Date: Wed, 19 Oct 2022 18:21:28 +0200 [thread overview]
Message-ID: <20221019162135.798901-1-farman@linux.ibm.com> (raw)
Hi all,
There have been discussions and attempts [1][2] to rework the vfio-ccw device
lifecycle to better align with the needs/expectations of vfio and mdev.
While those languished, commit cb9ff3f3b84c ("vfio: Add helpers for unifying
vfio_device life cycle") implemented a couple of tricks that help vfio and the
drivers that interact with it, while keeping vfio-ccw as-is. A handful of
commits titled "vfio/xxx: Use the new device life cycle helpers" implemented
those tricks for each of the drivers.
This series attempts to address the oddities/shortcomings of vfio-ccw, such
that vfio-ccw can use the same helpers as everyone else, and the tricks that
were implemented by the other drivers can be removed. It is built on 6.1-rc1,
and thus includes the various changes [3][4] that have occurred in and around
these parts.
Patches 1-5 rework the behavior of the vfio-ccw driver's private struct.
In summary, the mdev pieces are split out of vfio_ccw_private and into a
new vfio_ccw_parent struct that will continue to follow today's lifecycle.
The remainder (bulk) of the private struct moves to follow the mdev
probe/remove pair. There's opportunity for further separation of the
things in the private struct, which would simplify some of the vfio-ccw
code, but it got too hairy as I started that. Once vfio-ccw is no longer
considered unique, those cleanups can happen at our leisure.
Patch 6 removes the trickery where vfio-ccw uses vfio_init_device instead of
vfio_alloc_device, and thus removes vfio_init_device from the outside world.
Patch 7 removes vfio_free_device from vfio-ccw and the other drivers (hello,
CC list!), letting it be handled by vfio_device_release directly.
Looking forward to the feedback.
Thanks,
Eric
[1] https://lore.kernel.org/kvm/0-v3-57c1502c62fd+2190-ccw_mdev_jgg@nvidia.com/
[2] https://lore.kernel.org/kvm/20220602171948.2790690-1-farman@linux.ibm.com/
[3] https://lore.kernel.org/kvm/20220923092652.100656-1-hch@lst.de/
[4] https://lore.kernel.org/kvm/20220921104401.38898-1-kevin.tian@intel.com/
Eric Farman (7):
vfio/ccw: create a parent struct
vfio/ccw: remove private->sch
vfio/ccw: move private initialization to callback
vfio/ccw: move private to mdev lifecycle
vfio/ccw: remove release completion
vfio/ccw: replace vfio_init_device with _alloc_
vfio: Remove vfio_free_device
drivers/gpu/drm/i915/gvt/kvmgt.c | 1 -
drivers/s390/cio/vfio_ccw_chp.c | 5 +-
drivers/s390/cio/vfio_ccw_drv.c | 182 ++++++++++----------------
drivers/s390/cio/vfio_ccw_fsm.c | 27 ++--
drivers/s390/cio/vfio_ccw_ops.c | 108 ++++++++++-----
drivers/s390/cio/vfio_ccw_parent.h | 28 ++++
drivers/s390/cio/vfio_ccw_private.h | 22 ++--
drivers/s390/crypto/vfio_ap_ops.c | 6 -
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 -
drivers/vfio/pci/vfio_pci_core.c | 1 -
drivers/vfio/platform/vfio_amba.c | 1 -
drivers/vfio/platform/vfio_platform.c | 1 -
drivers/vfio/vfio_main.c | 25 +---
include/linux/vfio.h | 1 -
samples/vfio-mdev/mbochs.c | 1 -
samples/vfio-mdev/mdpy.c | 1 -
samples/vfio-mdev/mtty.c | 1 -
17 files changed, 204 insertions(+), 208 deletions(-)
create mode 100644 drivers/s390/cio/vfio_ccw_parent.h
--
2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Eric Farman <farman@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>,
Alex Williamson <alex.williamson@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
Jason Gunthorpe <jgg@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>
Cc: kvm@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org,
Kirti Wankhede <kwankhede@nvidia.com>,
Vineeth Vijayan <vneethv@linux.ibm.com>,
Diana Craciun <diana.craciun@oss.nxp.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
linux-s390@vger.kernel.org, Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
intel-gfx@lists.freedesktop.org, Zhi Wang <zhi.a.wang@intel.com>,
Jason Herne <jjherne@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
Eric Auger <eric.auger@redhat.com>,
Harald Freudenberger <freude@linux.ibm.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
intel-gvt-dev@lists.freedesktop.org,
Tony Krowiak <akrowiak@linux.ibm.com>,
Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
Yishai Hadas <yishaih@nvidia.com>,
Peter Oberparleiter <oberpar@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Abhishek Sahu <abhsahu@nvidia.com>
Subject: [PATCH v1 0/7] vfio-ccw parent rework
Date: Wed, 19 Oct 2022 18:21:28 +0200 [thread overview]
Message-ID: <20221019162135.798901-1-farman@linux.ibm.com> (raw)
Hi all,
There have been discussions and attempts [1][2] to rework the vfio-ccw device
lifecycle to better align with the needs/expectations of vfio and mdev.
While those languished, commit cb9ff3f3b84c ("vfio: Add helpers for unifying
vfio_device life cycle") implemented a couple of tricks that help vfio and the
drivers that interact with it, while keeping vfio-ccw as-is. A handful of
commits titled "vfio/xxx: Use the new device life cycle helpers" implemented
those tricks for each of the drivers.
This series attempts to address the oddities/shortcomings of vfio-ccw, such
that vfio-ccw can use the same helpers as everyone else, and the tricks that
were implemented by the other drivers can be removed. It is built on 6.1-rc1,
and thus includes the various changes [3][4] that have occurred in and around
these parts.
Patches 1-5 rework the behavior of the vfio-ccw driver's private struct.
In summary, the mdev pieces are split out of vfio_ccw_private and into a
new vfio_ccw_parent struct that will continue to follow today's lifecycle.
The remainder (bulk) of the private struct moves to follow the mdev
probe/remove pair. There's opportunity for further separation of the
things in the private struct, which would simplify some of the vfio-ccw
code, but it got too hairy as I started that. Once vfio-ccw is no longer
considered unique, those cleanups can happen at our leisure.
Patch 6 removes the trickery where vfio-ccw uses vfio_init_device instead of
vfio_alloc_device, and thus removes vfio_init_device from the outside world.
Patch 7 removes vfio_free_device from vfio-ccw and the other drivers (hello,
CC list!), letting it be handled by vfio_device_release directly.
Looking forward to the feedback.
Thanks,
Eric
[1] https://lore.kernel.org/kvm/0-v3-57c1502c62fd+2190-ccw_mdev_jgg@nvidia.com/
[2] https://lore.kernel.org/kvm/20220602171948.2790690-1-farman@linux.ibm.com/
[3] https://lore.kernel.org/kvm/20220923092652.100656-1-hch@lst.de/
[4] https://lore.kernel.org/kvm/20220921104401.38898-1-kevin.tian@intel.com/
Eric Farman (7):
vfio/ccw: create a parent struct
vfio/ccw: remove private->sch
vfio/ccw: move private initialization to callback
vfio/ccw: move private to mdev lifecycle
vfio/ccw: remove release completion
vfio/ccw: replace vfio_init_device with _alloc_
vfio: Remove vfio_free_device
drivers/gpu/drm/i915/gvt/kvmgt.c | 1 -
drivers/s390/cio/vfio_ccw_chp.c | 5 +-
drivers/s390/cio/vfio_ccw_drv.c | 182 ++++++++++----------------
drivers/s390/cio/vfio_ccw_fsm.c | 27 ++--
drivers/s390/cio/vfio_ccw_ops.c | 108 ++++++++++-----
drivers/s390/cio/vfio_ccw_parent.h | 28 ++++
drivers/s390/cio/vfio_ccw_private.h | 22 ++--
drivers/s390/crypto/vfio_ap_ops.c | 6 -
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 -
drivers/vfio/pci/vfio_pci_core.c | 1 -
drivers/vfio/platform/vfio_amba.c | 1 -
drivers/vfio/platform/vfio_platform.c | 1 -
drivers/vfio/vfio_main.c | 25 +---
include/linux/vfio.h | 1 -
samples/vfio-mdev/mbochs.c | 1 -
samples/vfio-mdev/mdpy.c | 1 -
samples/vfio-mdev/mtty.c | 1 -
17 files changed, 204 insertions(+), 208 deletions(-)
create mode 100644 drivers/s390/cio/vfio_ccw_parent.h
--
2.34.1
next reply other threads:[~2022-10-19 16:22 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-19 16:21 Eric Farman [this message]
2022-10-19 16:21 ` [PATCH v1 0/7] vfio-ccw parent rework Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 1/7] vfio/ccw: create a parent struct Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-27 20:32 ` [Intel-gfx] " Eric Farman
2022-10-27 20:32 ` Eric Farman
2022-10-27 20:32 ` Eric Farman
2022-10-28 16:51 ` [Intel-gfx] " Matthew Rosato
2022-10-28 16:51 ` Matthew Rosato
2022-10-28 16:51 ` Matthew Rosato
2022-10-28 17:21 ` [Intel-gfx] " Eric Farman
2022-10-28 17:21 ` Eric Farman
2022-10-28 17:21 ` Eric Farman
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 2/7] vfio/ccw: remove private->sch Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-28 18:43 ` [Intel-gfx] " Matthew Rosato
2022-10-28 18:43 ` Matthew Rosato
2022-10-28 18:43 ` Matthew Rosato
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 3/7] vfio/ccw: move private initialization to callback Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-28 18:52 ` [Intel-gfx] " Matthew Rosato
2022-10-28 18:52 ` Matthew Rosato
2022-10-28 18:52 ` Matthew Rosato
2022-10-28 19:18 ` [Intel-gfx] " Eric Farman
2022-10-28 19:18 ` Eric Farman
2022-10-28 19:18 ` Eric Farman
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 4/7] vfio/ccw: move private to mdev lifecycle Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-11-01 9:08 ` [Intel-gfx] " Tian, Kevin
2022-11-01 9:08 ` Tian, Kevin
2022-11-01 9:08 ` Tian, Kevin
2022-11-01 14:05 ` [Intel-gfx] " Eric Farman
2022-11-01 14:05 ` Eric Farman
2022-11-01 14:05 ` Eric Farman
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 5/7] vfio/ccw: remove release completion Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-11-01 9:09 ` [Intel-gfx] " Tian, Kevin
2022-11-01 9:09 ` Tian, Kevin
2022-11-01 9:09 ` Tian, Kevin
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 6/7] vfio/ccw: replace vfio_init_device with _alloc_ Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 17:15 ` [Intel-gfx] " Jason Gunthorpe
2022-10-19 17:15 ` Jason Gunthorpe
2022-10-19 17:15 ` Jason Gunthorpe
2022-10-19 17:57 ` [Intel-gfx] " Eric Farman
2022-10-19 17:57 ` Eric Farman
2022-10-19 17:57 ` Eric Farman
2022-10-20 12:26 ` [Intel-gfx] " Jason Gunthorpe
2022-10-20 12:26 ` Jason Gunthorpe
2022-10-20 12:26 ` Jason Gunthorpe
2022-11-01 9:10 ` [Intel-gfx] " Tian, Kevin
2022-11-01 9:10 ` Tian, Kevin
2022-11-01 9:10 ` Tian, Kevin
2022-10-19 16:21 ` [Intel-gfx] [PATCH v1 7/7] vfio: Remove vfio_free_device Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 16:21 ` Eric Farman
2022-10-19 17:16 ` [Intel-gfx] " Jason Gunthorpe
2022-10-19 17:16 ` Jason Gunthorpe
2022-10-19 17:16 ` Jason Gunthorpe
2022-11-01 9:11 ` [Intel-gfx] " Tian, Kevin
2022-11-01 9:11 ` Tian, Kevin
2022-11-01 9:11 ` Tian, Kevin
2022-10-19 17:18 ` [Intel-gfx] [PATCH v1 0/7] vfio-ccw parent rework Jason Gunthorpe
2022-10-19 17:18 ` Jason Gunthorpe
2022-10-19 17:18 ` Jason Gunthorpe
2022-10-19 19:04 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2022-10-19 19:38 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
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=20221019162135.798901-1-farman@linux.ibm.com \
--to=farman@linux.ibm.com \
--cc=abhsahu@nvidia.com \
--cc=agordeev@linux.ibm.com \
--cc=airlied@gmail.com \
--cc=akrowiak@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=daniel@ffwll.ch \
--cc=diana.craciun@oss.nxp.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=eric.auger@redhat.com \
--cc=freude@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=jgg@nvidia.com \
--cc=jjherne@linux.ibm.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mjrosato@linux.ibm.com \
--cc=oberpar@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=rodrigo.vivi@intel.com \
--cc=svens@linux.ibm.com \
--cc=vneethv@linux.ibm.com \
--cc=yi.l.liu@intel.com \
--cc=yishaih@nvidia.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.