Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3052479pxb; Tue, 19 Jan 2021 12:27:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJxKCV2Nc6KbyXPAHw2U3r1pas2tcWeRilhegY8J98gpoctt5RGdnLBeQvsA7GfZw6nbBcnv X-Received: by 2002:a17:906:1a0c:: with SMTP id i12mr4212650ejf.325.1611088051215; Tue, 19 Jan 2021 12:27:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611088051; cv=none; d=google.com; s=arc-20160816; b=e000P3DiD/X40/4+noRO4MHguD+nLdUE29J3kBKxTb+Kf01Mik9exYPNi6Qbp4+IRP ZAlxuAGwXuxrQ9Z3xBU/k7RhruirsA0VAQTXmHZGAWVRWypvbnKCjZypfDM9u8d09Myk McKLp7mlnqS/628tYlFrno90Y7ZZLpbVvrYfNlw/sQHnQPaKCXtVCrLzQ7e8oFvxG0AN Qi3hKlq+PhlLcWTAJO1yTyHuKmvwbI64VZrpO57M13rTg9H8nXvQEUmq67sq1x729Y5F hjvXVirTaFIMY24Xpftcer9nD9OlTkdJW5WiN5uP9OoJMq2p4+kxcI6Vki5AH7IghV3q e14A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=CgSsfo6tp9hSiTZkAFnCJTkRoXKqZJ7jQPMtbVTHtPk=; b=H1QiOvJ4ADbhEI8lnph+F5f48Dm6x246u2MqGbmQaJtiQcaE1ptMUdKsxxo6v5JWtT fQR/ymcrLXW3IKNV1ItzbL6dkKk26c2t1nA/aRUODILzWm56KVClwbcnyci30rtPGkef zWGl1OCoZQ6dKot7UkZ29F6HZUqJ0aqi1v2/oqkatgr8UBJXIL/rslZYEszSFAxo35XV 3N94yoUn/LQ+LW3eBWsWPPOpeBem6e9YbIwsgCXfQrDVJVrdMboonPkqSFb+387ENur3 oMrgHMfRiqxhvd2FvKqb3zsu75pgmz9bu0ZWthASmxwUCrlduyOPj5uYnuZ7AeNDivOr P34A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=ky+EvvPu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f7si3852785ejt.185.2021.01.19.12.27.06; Tue, 19 Jan 2021 12:27:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=ky+EvvPu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390220AbhASUYd (ORCPT + 99 others); Tue, 19 Jan 2021 15:24:33 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:17452 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729879AbhASUYS (ORCPT ); Tue, 19 Jan 2021 15:24:18 -0500 Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 10JK9IDq030472; Tue, 19 Jan 2021 15:23:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id; s=pp1; bh=CgSsfo6tp9hSiTZkAFnCJTkRoXKqZJ7jQPMtbVTHtPk=; b=ky+EvvPueMNC2hLk6CBsStkhxNJ/8OSE32/EWHBN7zz0eOkbVR9Ri1F1Ou3xvo094kRW KyL4KnnYshnpE6U2BYCz9aHbagFwqZITaRJ/+XlnPzcVRMfljKplFTDvaqQCDEOlSQto ge1Zv+sAf+7ukKGbujCU2raBBVZRpwOot1B3roKKKeBLeEqDca+I0e7+mrH4Av1tj6jd 5SF9l9UzyWXDcVh2f8i6L7a5T0YDvYm+dooiM2RLgEabUzNAIMAndoCSOWxyFgu0LVTK lQ0CZvMxSWTd0/i82/k5zQsLN2zM2Z0d/OpOTeLvQLO0zhJHPjcFdagMsrqZt5x6bSBj Ug== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3665wngp45-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 15:23:37 -0500 Received: from m0098394.ppops.net (m0098394.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 10JKAdK3037857; Tue, 19 Jan 2021 15:23:37 -0500 Received: from ppma01wdc.us.ibm.com (fd.55.37a9.ip4.static.sl-reverse.com [169.55.85.253]) by mx0a-001b2d01.pphosted.com with ESMTP id 3665wngp3e-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 15:23:37 -0500 Received: from pps.filterd (ppma01wdc.us.ibm.com [127.0.0.1]) by ppma01wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 10JJqvs9013310; Tue, 19 Jan 2021 20:02:36 GMT Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com [9.57.198.25]) by ppma01wdc.us.ibm.com with ESMTP id 363qs90qq2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 20:02:36 +0000 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 10JK2Zaa31064398 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 Jan 2021 20:02:35 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 414DDAC05E; Tue, 19 Jan 2021 20:02:35 +0000 (GMT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4F4E3AC05B; Tue, 19 Jan 2021 20:02:33 +0000 (GMT) Received: from oc4221205838.ibm.com (unknown [9.211.56.144]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTP; Tue, 19 Jan 2021 20:02:33 +0000 (GMT) From: Matthew Rosato To: alex.williamson@redhat.com, cohuck@redhat.com, schnelle@linux.ibm.com Cc: pmorel@linux.ibm.com, borntraeger@de.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com, gerald.schaefer@linux.ibm.com, linux-s390@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/4] vfio-pci/zdev: Fixing s390 vfio-pci ISM support Date: Tue, 19 Jan 2021 15:02:26 -0500 Message-Id: <1611086550-32765-1-git-send-email-mjrosato@linux.ibm.com> X-Mailer: git-send-email 1.8.3.1 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343,18.0.737 definitions=2021-01-19_09:2021-01-18,2021-01-19 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 mlxscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 clxscore=1015 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2101190110 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Today, ISM devices are completely disallowed for vfio-pci passthrough as QEMU will reject the device due to an (inappropriate) MSI-X check. However, in an effort to enable ISM device passthrough, I realized that the manner in which ISM performs block write operations is highly incompatible with the way that QEMU s390 PCI instruction interception and vfio_pci_bar_rw break up I/O operations into 8B and 4B operations -- ISM devices have particular requirements in regards to the alignment, size and order of writes performed. Furthermore, they require that legacy/non-MIO s390 PCI instructions are used, which is also not guaranteed when the I/O is passed through the typical userspace channels. As a result, this patchset proposes a new VFIO region to allow a guest to pass certain PCI instruction intercepts directly to the s390 host kernel PCI layer for execution, pinning the guest buffer in memory briefly in order to execute the requested PCI instruction. Changes from RFC -> v1: - No functional changes, just minor commentary changes -- Re-posting along with updated QEMU set. Matthew Rosato (4): s390/pci: track alignment/length strictness for zpci_dev vfio-pci/zdev: Pass the relaxed alignment flag s390/pci: Get hardware-reported max store block length vfio-pci/zdev: Introduce the zPCI I/O vfio region arch/s390/include/asm/pci.h | 4 +- arch/s390/include/asm/pci_clp.h | 7 +- arch/s390/pci/pci_clp.c | 2 + drivers/vfio/pci/vfio_pci.c | 8 ++ drivers/vfio/pci/vfio_pci_private.h | 6 ++ drivers/vfio/pci/vfio_pci_zdev.c | 160 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/vfio.h | 4 + include/uapi/linux/vfio_zdev.h | 34 ++++++++ 8 files changed, 222 insertions(+), 3 deletions(-) -- 1.8.3.1