From patchwork Thu Sep 9 06:06:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Longpeng(Mike)" X-Patchwork-Id: 12482545 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D32EFC433EF for ; Thu, 9 Sep 2021 06:07:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8F52A60F93 for ; Thu, 9 Sep 2021 06:07:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8F52A60F93 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:50246 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mODE2-0006xK-Ny for qemu-devel@archiver.kernel.org; Thu, 09 Sep 2021 02:07:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mODCi-0004A4-MZ for qemu-devel@nongnu.org; Thu, 09 Sep 2021 02:06:32 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:2921) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mODCe-000656-Q4 for qemu-devel@nongnu.org; Thu, 09 Sep 2021 02:06:32 -0400 Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4H4pLf6fltzbmNw; Thu, 9 Sep 2021 14:02:18 +0800 (CST) Received: from dggpeml100016.china.huawei.com (7.185.36.216) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.8; Thu, 9 Sep 2021 14:06:17 +0800 Received: from DESKTOP-27KDQMV.china.huawei.com (10.174.148.223) by dggpeml100016.china.huawei.com (7.185.36.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.8; Thu, 9 Sep 2021 14:06:16 +0800 From: "Longpeng(Mike)" To: , , Subject: [PATCH v2 0/9] optimize the downtime for vfio migration Date: Thu, 9 Sep 2021 14:06:04 +0800 Message-ID: <20210909060613.2815-1-longpeng2@huawei.com> X-Mailer: git-send-email 2.25.0.windows.1 MIME-Version: 1.0 X-Originating-IP: [10.174.148.223] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpeml100016.china.huawei.com (7.185.36.216) X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.187; envelope-from=longpeng2@huawei.com; helo=szxga01-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: chenjiashang@huawei.com, mst@redhat.com, qemu-devel@nongnu.org, arei.gonglei@huawei.com, "Longpeng\(Mike\)" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Hi guys, In vfio migration resume phase, the cost would increase if the vfio device has more unmasked vectors. We try to optimize it in this series. You can see the commit message in PATCH 9 for details. Patch 1-5 are simple cleanups and fixup. Patch 6-8 are the preparations for the optimization. Patch 9 optimizes the vfio msix setup path. Changes v1->v2: - fix several typos and grammatical errors [Alex, Philippe] - split fixups and cleanups into separate patches [Alex, Philippe] - introduce kvm_irqchip_add_deferred_msi_route to minimize code changes [Alex] - enable the optimization in msi setup path [Alex] Longpeng (Mike) (9): vfio: simplify the conditional statements in vfio_msi_enable vfio: move re-enabling INTX out of the common helper vfio: simplify the failure path in vfio_msi_enable msix: simplify the conditional in msix_set/unset_vector_notifiers msix: reset poll_notifier to NULL if fail to set notifiers kvm: irqchip: extract kvm_irqchip_add_deferred_msi_route vfio: add infrastructure to commit the deferred kvm routing Revert "vfio: Avoid disabling and enabling vectors repeatedly in VFIO migration" vfio: defer to commit kvm irq routing when enable msi/msix accel/kvm/kvm-all.c | 15 ++++++- hw/pci/msix.c | 7 ++- hw/vfio/pci.c | 125 +++++++++++++++++++++++++++++++++------------------ hw/vfio/pci.h | 1 + include/sysemu/kvm.h | 6 +++ 5 files changed, 105 insertions(+), 49 deletions(-)