Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1167245 > unrolled thread
| Started by | Alex Williamson <alex.williamson@redhat.com> |
|---|---|
| First post | 2015-06-18 00:40 +0200 |
| Last post | 2015-06-19 10:00 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v4 0/4] VFIO platform reset Alex Williamson <alex.williamson@redhat.com> - 2015-06-18 00:40 +0200
Re: [PATCH v4 0/4] VFIO platform reset Baptiste Reynal <b.reynal@virtualopensystems.com> - 2015-06-19 10:00 +0200
| From | Alex Williamson <alex.williamson@redhat.com> |
|---|---|
| Date | 2015-06-18 00:40 +0200 |
| Subject | Re: [PATCH v4 0/4] VFIO platform reset |
| Message-ID | <pCua1-6xN-73@gated-at.bofh.it> |
On Mon, 2015-06-15 at 11:09 +0200, Eric Auger wrote: > In situations where the userspace driver is stopped abnormally and the > VFIO platform device is released, the assigned HW device currently is > left running. As a consequence the HW device might continue issuing IRQs > and performing DMA accesses. > > On release, no physical IRQ handler is setup anymore. Also the DMA buffers > are unmapped leading to IOMMU aborts. So there is no serious consequence. > > However when assigning that HW device again to another userspace driver, > this latter might face some unexpected IRQs and DMA accesses, which are > the result of the previous assignment. > > In virtualization use-case, a VM newly granted with that HW device may be > impacted by the assignment of that device to a previous VM: > - IRQs may be injected very early when booting the new guest, even before > the guest driver has initialized leading to possible driver state > inconsistency. > - DMA accesses may hit the newly mapped VM address space at addresses that > may jeopardize the integrity of the newly installed VM. > > Obviously the criticity depends on the assigned HW device. > > As opposed to PCI, there is no standard mechanism to reset the platform > device. > > This series proposes to implement device specific reset functions in > separate in-kernel vfio reset modules. The vfio-platform driver holds > a whitelist of implemented triplets (compat string, module name, > reset function name). When the vfio-platform driver is probed it identifies > the fellow reset module/function matching the compat string of the > device, if any, and forces the load of this reset module. > > A first reset module is provided: the vfio-platform-calxedaxgmac > module which implements a basic reset for the Calxeda xgmac. > > The series can be found at > https://git.linaro.org/people/eric.auger/linux.git/shortlog/refs/heads/v4.1-rc8-reset-v4 > > History: > v3 -> v4: > - fix the commit message of "VFIO: platform: add reset struct and lookup table" Baptiste, Any comments? Should we also add something like this to MAINTAINERS before we go much further? diff --git a/MAINTAINERS b/MAINTAINERS index d8afd29..c6bf7f6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10545,6 +10545,12 @@ F: drivers/vfio/ F: include/linux/vfio.h F: include/uapi/linux/vfio.h +VFIO PLATFORM DRIVER +M: Baptiste Reynal <b.reynal@virtualopensystems.com> +L: kvm@vger.kernel.org +S: Maintained +F: drivers/vfio/platform/ + VIDEOBUF2 FRAMEWORK M: Pawel Osciak <pawel@osciak.com> M: Marek Szyprowski <m.szyprowski@samsung.com> I'm not sure what you want to be the primary list, maybe it's time to ask for a vfio list. Thanks, Alex > > v2 -> v3: > - remove void module_init/exit functions in calxeda reset module > - remove enum vfio_platform_reset_type > - for reset lookup, use ARRAY_SIZE > - in reset put use symbol_put_addr > > v1 -> v2: > - much simplified compared to v1 although principle of external modules is > kept: removed mechanism of dynamic registration of reset functions > - list is replaced by whitelist lookup table > - name of the reset function also stored in the lookup table > - autoload of reset modules > > RFC -> PATCH v1: > - solution now based on a lookup list instead of specialized driver > > > Eric Auger (4): > VFIO: platform: add reset struct and lookup table > VFIO: platform: add reset callback > VFIO: platform: populate the reset function on probe > VFIO: platform: Calxeda xgmac reset module > > drivers/vfio/platform/Kconfig | 2 + > drivers/vfio/platform/Makefile | 2 + > drivers/vfio/platform/reset/Kconfig | 7 ++ > drivers/vfio/platform/reset/Makefile | 5 ++ > .../platform/reset/vfio_platform_calxedaxgmac.c | 86 ++++++++++++++++++++++ > drivers/vfio/platform/vfio_platform_common.c | 60 ++++++++++++++- > drivers/vfio/platform/vfio_platform_private.h | 7 ++ > 7 files changed, 166 insertions(+), 3 deletions(-) > create mode 100644 drivers/vfio/platform/reset/Kconfig > create mode 100644 drivers/vfio/platform/reset/Makefile > create mode 100644 drivers/vfio/platform/reset/vfio_platform_calxedaxgmac.c > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Baptiste Reynal <b.reynal@virtualopensystems.com> |
|---|---|
| Date | 2015-06-19 10:00 +0200 |
| Message-ID | <pCZns-17v-11@gated-at.bofh.it> |
| In reply to | #1167245 |
[1-4/4] Acked-by: Baptiste Reynal <b.reynal@virtualopensystems.com> Tested-by: Baptiste Reynal <b.reynal@virtualopensystems.com> Reviewed-by: Baptiste Reynal <b.reynal@virtualopensystems.com> On Thu, Jun 18, 2015 at 6:17 PM, Alex Williamson <alex.williamson@redhat.com> wrote: > On Thu, 2015-06-18 at 17:23 +0200, Baptiste Reynal wrote: >> Hello everyone, >> >> I tested and reviewed the patches, everything's fine for me. > > Hi Baptiste, > > Would you like to provide a Sign-off/Ack/Review tag for the series then? > >> I agree to be maintainer of vfio platform drivers, though I don't >> think the volume of patches about VFIO will justify a new mailing >> list. > > Ok, I'll officially post the patch for MAINTAINERS then. Until someone > complains, we'll continue to use the kvm list. Thanks, > > Alex > >> On Thu, Jun 18, 2015 at 12:31 AM, Alex Williamson >> <alex.williamson@redhat.com> wrote: >> > On Mon, 2015-06-15 at 11:09 +0200, Eric Auger wrote: >> >> In situations where the userspace driver is stopped abnormally and the >> >> VFIO platform device is released, the assigned HW device currently is >> >> left running. As a consequence the HW device might continue issuing IRQs >> >> and performing DMA accesses. >> >> >> >> On release, no physical IRQ handler is setup anymore. Also the DMA buffers >> >> are unmapped leading to IOMMU aborts. So there is no serious consequence. >> >> >> >> However when assigning that HW device again to another userspace driver, >> >> this latter might face some unexpected IRQs and DMA accesses, which are >> >> the result of the previous assignment. >> >> >> >> In virtualization use-case, a VM newly granted with that HW device may be >> >> impacted by the assignment of that device to a previous VM: >> >> - IRQs may be injected very early when booting the new guest, even before >> >> the guest driver has initialized leading to possible driver state >> >> inconsistency. >> >> - DMA accesses may hit the newly mapped VM address space at addresses that >> >> may jeopardize the integrity of the newly installed VM. >> >> >> >> Obviously the criticity depends on the assigned HW device. >> >> >> >> As opposed to PCI, there is no standard mechanism to reset the platform >> >> device. >> >> >> >> This series proposes to implement device specific reset functions in >> >> separate in-kernel vfio reset modules. The vfio-platform driver holds >> >> a whitelist of implemented triplets (compat string, module name, >> >> reset function name). When the vfio-platform driver is probed it identifies >> >> the fellow reset module/function matching the compat string of the >> >> device, if any, and forces the load of this reset module. >> >> >> >> A first reset module is provided: the vfio-platform-calxedaxgmac >> >> module which implements a basic reset for the Calxeda xgmac. >> >> >> >> The series can be found at >> >> https://git.linaro.org/people/eric.auger/linux.git/shortlog/refs/heads/v4.1-rc8-reset-v4 >> >> >> >> History: >> >> v3 -> v4: >> >> - fix the commit message of "VFIO: platform: add reset struct and lookup table" >> > >> > Baptiste, >> > >> > Any comments? Should we also add something like this to MAINTAINERS >> > before we go much further? >> > >> > diff --git a/MAINTAINERS b/MAINTAINERS >> > index d8afd29..c6bf7f6 100644 >> > --- a/MAINTAINERS >> > +++ b/MAINTAINERS >> > @@ -10545,6 +10545,12 @@ F: drivers/vfio/ >> > F: include/linux/vfio.h >> > F: include/uapi/linux/vfio.h >> > >> > +VFIO PLATFORM DRIVER >> > +M: Baptiste Reynal <b.reynal@virtualopensystems.com> >> > +L: kvm@vger.kernel.org >> > +S: Maintained >> > +F: drivers/vfio/platform/ >> > + >> > VIDEOBUF2 FRAMEWORK >> > M: Pawel Osciak <pawel@osciak.com> >> > M: Marek Szyprowski <m.szyprowski@samsung.com> >> > >> > I'm not sure what you want to be the primary list, maybe it's time to >> > ask for a vfio list. Thanks, >> > Alex >> > >> >> >> >> v2 -> v3: >> >> - remove void module_init/exit functions in calxeda reset module >> >> - remove enum vfio_platform_reset_type >> >> - for reset lookup, use ARRAY_SIZE >> >> - in reset put use symbol_put_addr >> >> >> >> v1 -> v2: >> >> - much simplified compared to v1 although principle of external modules is >> >> kept: removed mechanism of dynamic registration of reset functions >> >> - list is replaced by whitelist lookup table >> >> - name of the reset function also stored in the lookup table >> >> - autoload of reset modules >> >> >> >> RFC -> PATCH v1: >> >> - solution now based on a lookup list instead of specialized driver >> >> >> >> >> >> Eric Auger (4): >> >> VFIO: platform: add reset struct and lookup table >> >> VFIO: platform: add reset callback >> >> VFIO: platform: populate the reset function on probe >> >> VFIO: platform: Calxeda xgmac reset module >> >> >> >> drivers/vfio/platform/Kconfig | 2 + >> >> drivers/vfio/platform/Makefile | 2 + >> >> drivers/vfio/platform/reset/Kconfig | 7 ++ >> >> drivers/vfio/platform/reset/Makefile | 5 ++ >> >> .../platform/reset/vfio_platform_calxedaxgmac.c | 86 ++++++++++++++++++++++ >> >> drivers/vfio/platform/vfio_platform_common.c | 60 ++++++++++++++- >> >> drivers/vfio/platform/vfio_platform_private.h | 7 ++ >> >> 7 files changed, 166 insertions(+), 3 deletions(-) >> >> create mode 100644 drivers/vfio/platform/reset/Kconfig >> >> create mode 100644 drivers/vfio/platform/reset/Makefile >> >> create mode 100644 drivers/vfio/platform/reset/vfio_platform_calxedaxgmac.c >> >> >> > >> > >> > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web