From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 38DD8C98302 for ; Tue, 22 Sep 2026 18:38:01 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x95N0-0007dA-Kd; Tue, 22 Sep 2026 14:37:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x95Ma-0007a0-SV; Tue, 22 Sep 2026 14:37:08 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x95MW-0005vI-TX; Tue, 22 Sep 2026 14:37:08 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68MI70Ye1128772; Tue, 22 Sep 2026 18:37:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:message-id:mime-version :subject:to; s=pp1; bh=JTEbLIh2Gl5V9JUncs1FZPjYaW8mFIb1ARsW+Ub88 zQ=; b=Fm1+d56sl3vnnqY+AgmEoVDf3PPBBBenTl1dL3ZrwYwe8xlavGF1fRRAv Lm3f8VCDWxGsBkholWDK6gairKRL644r08XRTCUO4w7jNVPqMNYozYLaCpbosxEb jy3bjh3BRfWBf2HmRuEabVlbeYips/gt1Rd2+7ZS5KJRphtzx5CDpag/G36YEziS Q/tqYRjIsCzUTX9OiYRJz6OmSPpo6SK3rf30dLkPFBFDH/P8tHs+2PqfEHBdgHCK EjnnlBFogbJeq0WYYZcl9JQECAE453mCbnpD+C0+ALyUWuQxFEWJni2Iz2/MroFD Qx5Hdup9eEZvXxzzo7RHXVYLGpI3w== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4gskgs7dk3-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 22 Sep 2026 18:36:59 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68MIHiu63198696; Tue, 22 Sep 2026 18:36:58 GMT Received: from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gt5qju12k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 22 Sep 2026 18:36:58 +0000 (GMT) Received: from smtpav05.dal12v.mail.ibm.com (smtpav05.dal12v.mail.ibm.com [10.241.53.104]) by smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68MIavCW34538148 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Sep 2026 18:36:57 GMT Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3453158056; Tue, 22 Sep 2026 18:36:57 +0000 (GMT) Received: from smtpav05.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 06C3B58052; Tue, 22 Sep 2026 18:36:57 +0000 (GMT) Received: from WIN-DU0DFC9G5VV.ibm.com (unknown [9.61.251.122]) by smtpav05.dal12v.mail.ibm.com (Postfix) with ESMTP; Tue, 22 Sep 2026 18:36:56 +0000 (GMT) From: Konstantin Shkolnyy To: mjrosato@linux.ibm.com Cc: alifm@linux.ibm.com, farman@linux.ibm.com, richard.henderson@linaro.org, iii@linux.ibm.com, david@kernel.org, cohuck@redhat.com, pasic@linux.ibm.com, borntraeger@linux.ibm.com, qemu-s390x@nongnu.org, qemu-devel@nongnu.org, Konstantin Shkolnyy Subject: [PATCH v9 00/16] s390x/pci: Implement migration for emulated devices Date: Tue, 22 Sep 2026 13:36:38 -0500 Message-Id: <20260922183654.798470-1-kshk@linux.ibm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=V/XoQuni c=1 sm=1 tr=0 ts=6ab2cacb cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=Ao2d2QTnYvyA5xfeocEA:9 X-Proofpoint-ORIG-GUID: 0LdXBthQFXXw3qvGIiOF1qO70ytOnFTk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIyMDI3MyBTYWx0ZWRfX4b0xj9TFq+wa ofynoENSnIdPG8E118gegkJKkLFYo2F0wph+X4cGVxGiU9mmZ9ad14l6ug0J0U2U0Sfq6mF1eIj E7S6j5bDDOEKOovLbG2eA20TBgPcofcmETCusqURq7Tqc0se64w1Myt38mIFmEYiG0IEkYcbka0 /rl38d0KK+regkI8OPD7HR1MStQQef5oC5Uvr8njRyEglVbJfDrwyN1NruIjzuSZnMa1CoOscys 5Wr8OmcfYt0y+By/Mp6A8g6FGRUAA+1cMa6Mlyq4YizoeS8tjEvhf9Tf6BuyEibNUKFvTqL3DOq ClwKEsxcEY8jl3zQAZgBLCkTAe5xp8XM0mHCzfoKkynDW4ykExZm7GgC9V8O9Fg/TaGloIQ7pLC xzWD3+V57U6Thd3Y+WE9PM+oGB1iBDhV807EwjDje4JJc0tTHbgYeKxOuD8Yx4vEt2V3LR3M8hr wo+YoI1wtDb3boVVbjA== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIyMDI3MyBTYWx0ZWRfX/q2OpmA+zSpX CBvWUVVV0dQAFE7eRyOHKEFv2NiWFho4J4QzCh1CXHzVtaAtZfQcMmKm9D8XgDWp58TwktSEcmE rL7mmfBF1Ri7eFyrnOl90RvrE32lNUo= X-Proofpoint-GUID: 0LdXBthQFXXw3qvGIiOF1qO70ytOnFTk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-22_03,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 malwarescore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609220273 Received-SPF: pass client-ip=148.163.156.1; envelope-from=kshk@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Up until now QEMU marked any zPCI device as "unmigratable." This patch series adds support for migrating emulated devices, which are simpler to migrate. It leaves VFIO devices still unmigratable. To enable migration, the device state needs to be saved/restored to/from the migration stream. There are 2 kinds of emulated devices - those that use the zPCI IOMMU page table emulation in QEMU (e.g., Intel IGB NIC), and those that don't (virtio). This is important to note for testing purposes. This change was tested on IGB, virtio-net and virtio-blk devices by running I/O on them while performing "virsh managedsave, virsh start" and also live migration to another host and back. Changes in v9: - patch 14: s390_pci_ioat_validate() now returns Error* instead of printing. - patch 15: - change s390_pci_ioat_validate() usage accordingly to patch 14, - remove added error handling for the unrealistic case that the migration target QEMU has more zpci devices than the source. Konstantin Shkolnyy (15): s390x/pci: Create function to contain translation status check s390x/pci: Move iommu_mr from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move dm_mr from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move iotlb from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Remove a ptr to S390PCIBusDevice from S390PCIIOMMU s390x/pci: Move/rename enabled from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move dma_limit from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move g_iota from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move pba from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move pal from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Move max_dma_limit from S390PCIIOMMU to S390PCIBusDevice s390x/pci: Add a comment explaining S390PCIIOMMU purpose s390x/pci: Factor ioat sanity checks into a separate function s390x/pci: Implement migration for emulated devices s390x/pci: Create function to contain fmb_timer start Matthew Rosato (1): s390x/pci: implement IOMMU replay hw/s390x/s390-pci-bus.c | 454 +++++++++++++++++++++++++++---- hw/s390x/s390-pci-inst.c | 162 ++++++----- hw/s390x/s390-pci-vfio.c | 4 +- hw/s390x/s390-virtio-ccw.c | 4 + include/hw/s390x/s390-pci-bus.h | 47 +++- include/hw/s390x/s390-pci-inst.h | 7 +- 6 files changed, 535 insertions(+), 143 deletions(-) -- 2.34.1