From patchwork Tue May 5 12:27:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Farman X-Patchwork-Id: 11528909 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D2FC17E8 for ; Tue, 5 May 2020 12:27:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7F5B820735 for ; Tue, 5 May 2020 12:27:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728842AbgEEM1y (ORCPT ); Tue, 5 May 2020 08:27:54 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:51822 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728695AbgEEM1w (ORCPT ); Tue, 5 May 2020 08:27:52 -0400 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 045CRP3X076301; Tue, 5 May 2020 08:27:51 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 30s28g962u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 May 2020 08:27:51 -0400 Received: from m0098393.ppops.net (m0098393.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 045CRe9j077859; Tue, 5 May 2020 08:27:51 -0400 Received: from ppma05fra.de.ibm.com (6c.4a.5195.ip4.static.sl-reverse.com [149.81.74.108]) by mx0a-001b2d01.pphosted.com with ESMTP id 30s28g960y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 May 2020 08:27:50 -0400 Received: from pps.filterd (ppma05fra.de.ibm.com [127.0.0.1]) by ppma05fra.de.ibm.com (8.16.0.27/8.16.0.27) with SMTP id 045CQ4Su012085; Tue, 5 May 2020 12:27:48 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma05fra.de.ibm.com with ESMTP id 30s0g5jt0h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 May 2020 12:27:48 +0000 Received: from b06wcsmtp001.portsmouth.uk.ibm.com (b06wcsmtp001.portsmouth.uk.ibm.com [9.149.105.160]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 045CQZ69197336 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 May 2020 12:26:35 GMT Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 72D71A4064; Tue, 5 May 2020 12:27:45 +0000 (GMT) Received: from b06wcsmtp001.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6081EA4054; Tue, 5 May 2020 12:27:45 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by b06wcsmtp001.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Tue, 5 May 2020 12:27:45 +0000 (GMT) Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 4958) id 16DB6E01C6; Tue, 5 May 2020 14:27:45 +0200 (CEST) From: Eric Farman To: linux-s390@vger.kernel.org, kvm@vger.kernel.org Cc: Cornelia Huck , Halil Pasic , Jason Herne , Jared Rossi , Eric Farman Subject: [PATCH v4 0/8] s390x/vfio-ccw: Channel Path Handling [KVM] Date: Tue, 5 May 2020 14:27:37 +0200 Message-Id: <20200505122745.53208-1-farman@linux.ibm.com> X-Mailer: git-send-email 2.17.1 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-05-05_06:2020-05-04,2020-05-05 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 mlxscore=0 malwarescore=0 bulkscore=0 adultscore=0 mlxlogscore=999 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005050093 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Here is a new pass at the channel-path handling code for vfio-ccw. Changes from previous versions are recorded in git notes for each patch. Patches 5 through 7 got swizzled a little bit, in order to better compartmentalize the code they define. Basically, the IRQ definitions were moved from patch 7 to 5, and then patch 6 was placed ahead of patch 5. I have put Conny's r-b's on patches 1, 3, 4, (new) 5, and 8, and believe I have addressed all comments from v3, with two exceptions: > I'm wondering if we should make this [vfio_ccw_schib_region_{write,release}] > callback optional (not in this patch). I have that implemented on top of this series, and will send later as part of a larger cleanup series. > One thing though that keeps coming up: do we need any kind of > serialization? Can there be any confusion from concurrent reads from > userspace, or are we sure that we always provide consistent data? I _think_ this is in good shape, though as suggested another set of eyeballs would be nice. There is still a problem on the main interrupt/FSM path, which I'm not attempting to address here. With this code plus the corresponding QEMU series (posted momentarily) applied I am able to configure off/on a CHPID (for example, by issuing "chchp -c 0/1 xx" on the host), and the guest is able to see both the events and reflect the updated path masks in its structures. v3: https://lore.kernel.org/kvm/20200417023001.65006-1-farman@linux.ibm.com/ v2: https://lore.kernel.org/kvm/20200206213825.11444-1-farman@linux.ibm.com/ v1: https://lore.kernel.org/kvm/20191115025620.19593-1-farman@linux.ibm.com/ Eric Farman (3): vfio-ccw: Refactor the unregister of the async regions vfio-ccw: Refactor IRQ handlers vfio-ccw: Add trace for CRW event Farhan Ali (5): vfio-ccw: Introduce new helper functions to free/destroy regions vfio-ccw: Register a chp_event callback for vfio-ccw vfio-ccw: Introduce a new schib region vfio-ccw: Introduce a new CRW region vfio-ccw: Wire up the CRW irq and CRW region Documentation/s390/vfio-ccw.rst | 38 ++++++- drivers/s390/cio/Makefile | 2 +- drivers/s390/cio/vfio_ccw_chp.c | 148 +++++++++++++++++++++++++ drivers/s390/cio/vfio_ccw_drv.c | 165 ++++++++++++++++++++++++++-- drivers/s390/cio/vfio_ccw_ops.c | 65 ++++++++--- drivers/s390/cio/vfio_ccw_private.h | 16 +++ drivers/s390/cio/vfio_ccw_trace.c | 1 + drivers/s390/cio/vfio_ccw_trace.h | 30 +++++ include/uapi/linux/vfio.h | 3 + include/uapi/linux/vfio_ccw.h | 18 +++ 10 files changed, 458 insertions(+), 28 deletions(-) create mode 100644 drivers/s390/cio/vfio_ccw_chp.c