From patchwork Tue Jun 13 15:02:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 13278966 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 855A7EB64D7 for ; Tue, 13 Jun 2023 15:06:38 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q95Yv-0004zt-0t; Tue, 13 Jun 2023 11:04:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q95Y5-0003wq-5O for qemu-devel@nongnu.org; Tue, 13 Jun 2023 11:03:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q95Xa-0008Te-NM for qemu-devel@nongnu.org; Tue, 13 Jun 2023 11:02:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686668551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MbKL8R57A8XduGpsnGtnH5IBUyxfFBZo2a9+yyyQ9Ic=; b=TsKEKrmscXifgEnwVAI/ogOKUouBQBuujZZNa9V+/6X14CYMKQS1E3WH0mJFZsIDtqkZ22 HICs+4PNRX7vc8rnLKeSo3XMKccAaJaTIC1dB/7QsHmFySCOG1DxpXeEkXJlf9QDqoaG+P iC7+1BowSmX5YjqMJMPQCz84sGMTMDw= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-665-TmdI9uz0NBSmsRjY9eRUNQ-1; Tue, 13 Jun 2023 11:02:26 -0400 X-MC-Unique: TmdI9uz0NBSmsRjY9eRUNQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ABE383C0F42C; Tue, 13 Jun 2023 15:02:12 +0000 (UTC) Received: from t480s.fritz.box (unknown [10.39.192.249]) by smtp.corp.redhat.com (Postfix) with ESMTP id E121A40C20F5; Tue, 13 Jun 2023 15:02:10 +0000 (UTC) From: David Hildenbrand To: qemu-devel@nongnu.org Cc: David Hildenbrand , Peter Maydell , Paolo Bonzini , Richard Henderson , Eduardo Habkost , "Michael S. Tsirkin" , Marcel Apfelbaum , Igor Mammedov , qemu-arm@nongnu.org, Gavin Shan Subject: [PATCH v1 0/5] virtio-mem: Device unplug support Date: Tue, 13 Jun 2023 17:02:05 +0200 Message-Id: <20230613150210.449406-1-david@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 Received-SPF: pass client-ip=170.10.129.124; envelope-from=david@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 One limitation of virtio-mem is that we cannot currently unplug virtio-mem devices that have all memory unplugged from the VM. Let's properly handle forced unplug (as can be triggered by the VM) and add support for ordinary unplug (requests) of virtio-mem devices that are in a compatible state (no legacy mode, no plugged memory, no plug request). Briefly tested on both, x86_64 and aarch64. Cc: Peter Maydell Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: "Michael S. Tsirkin" Cc: Marcel Apfelbaum Cc: Igor Mammedov Cc: qemu-arm@nongnu.org Cc: Gavin Shan David Hildenbrand (5): pc: Properly handle unplug of virtio based memory devices arm/virt: Properly handle unplug of virtio based memory devices virtio-mem: Prepare for unplug support of virtio-mem-pci devices pc: Support unplug of virtio-mem-pci devices arm/virt: Support unplug of virtio-mem-pci devices hw/arm/virt.c | 60 +++++++++++++++++++++++++++++-- hw/i386/pc.c | 66 ++++++++++++++++++++++++++++++---- hw/virtio/virtio-mem-pci.c | 42 ++++++++++++++++++++-- hw/virtio/virtio-mem-pci.h | 2 ++ hw/virtio/virtio-mem.c | 24 +++++++++++++ include/hw/virtio/virtio-mem.h | 2 ++ 6 files changed, 183 insertions(+), 13 deletions(-)