Re: [PATCH v2 0/7] s390: vfio-ccw fixes

Cornelia Huck
2019-05-15T12:45:35Z

On Wed, 15 May 2019 01:42:41 +0200
Eric Farman <farman@linux.ibm.com> wrote:

> The attached are a few fixes to the vfio-ccw kernel code for potential
> errors or architecture anomalies. Under normal usage, and even most
> abnormal usage, they don't expose any problems to a well-behaved guest
> and its devices. But, they are deficiencies just the same and could
> cause some weird behavior if they ever popped up in real life.
>
> I have tried to arrange these patches in a "solves a noticeable problem
> with existing workloads" to "solves a theoretical problem with
> hypothetical workloads" order. This way, the bigger ones at the end
> can be discussed without impeding the smaller and more impactful ones
> at the start.
>
> Per the conversations on patch 7, the last several patches remain
> unchanged. They continue to buid an IDAL for each CCW, and only pin
> guest pages and assign the resulting addresses to IDAWs if they are
> expected to cause a data transfer. This will avoid sending an
> unmodified guest address, which may be invalid but anyway is not mapped
> to the same host address, in the IDAL sent to the channel subsystem and
> any unexpected behavior that may result.
>
> They are based on 5.1.0, not Conny's vfio-ccw tree even though there are
> some good fixes pending for 5.2 there. I've run this series both with
> and without that code, but couldn't decide which base would provide an
> easier time applying patches. "I think" they should apply fine to both,
> but I apologize in advance if I guessed wrong! :)

They also should apply on current master, no? My 5.2 branch should be
all merged by now :)

Nothing really jumped out at me; I'm happy to queue the patches if I
get some more feedback.

>
>
> Changelog:
> v1 -> v2:
> - Patch 1:
> - [Cornelia] Added a code comment about why we update the SCSW when
> we've gone past the end of the chain for normal, successful, I/O
> - Patch 2:
> - [Cornelia] Cleaned up the cc info in the commit message
> - [Pierre] Added r-b
> - Patch 3:
> - [Cornelia] Update the return code information in prologue of
> pfn_array_pin(), and then only call vfio_unpin_pages() if we
> pinned anything, rather than silently creating an error
> (this last bit was mentioned on patch 6, but applied here)
> - [Eric] Clean up the error exit in pfn_array_pin()
> - Patch 4-7 unchanged
>
> Eric Farman (7):
> s390/cio: Update SCSW if it points to the end of the chain
> s390/cio: Set vfio-ccw FSM state before ioeventfd
> s390/cio: Split pfn_array_alloc_pin into pieces
> s390/cio: Initialize the host addresses in pfn_array
> s390/cio: Allow zero-length CCWs in vfio-ccw
> s390/cio: Don't pin vfio pages for empty transfers
> s390/cio: Remove vfio-ccw checks of command codes
>
> drivers/s390/cio/vfio_ccw_cp.c | 159 +++++++++++++++++++++++---------
> drivers/s390/cio/vfio_ccw_drv.c | 6 +-
> 2 files changed, 119 insertions(+), 46 deletions(-)
>