From patchwork Tue Jun 25 12:14:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 167717 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp5492875ilk; Tue, 25 Jun 2019 05:31:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqynzPD0BI2GKKMmZUa42lzRquBa6af7GS0+LrpB5xXTHtFV6ugpDefZKucKK9zLeeXZr27F X-Received: by 2002:a50:e612:: with SMTP id y18mr168704506edm.143.1561465903975; Tue, 25 Jun 2019 05:31:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561465903; cv=none; d=google.com; s=arc-20160816; b=bjpSMqBTBvT0Nr8aEt6hvKah8LN1iHPJ6uoGRppDA4tdoSux7yh/cKeqNzm9FkCGfB 2GLxvGTXKmJkGIGDkQCuq7TyNDrlvU+wfCv5shi/cOo/5cn7hUTcaZy05bHilKxecyxJ imBlVPJwXlXsVD0wqyKQRyK26pugo+o9Wqhw/XjFoE+ahxGhN9HUVUk3fdU326RgidoE dg6DVSPRADKqI1xnm4QAk2l68fCxOnyZ79r/C6aarqJww6EXGJUr+tYK9grtWx6D6lgh 5HGjNWOlJ+QIzng/vVdJaTGyoUVZBbJwniR8X6pj9YHE2L/uKhha0CyLHZmPajUQ+iHj 6QQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:mime-version:message-id :date:to:from; bh=Uxna8vxBlA1ZcXH+Uv/mLVoPQlB8oDyeGHAeo/JcGtM=; b=SyTLeYJ9v5qC2prcvn5dq48JGwUhvzCicZ3b0JG6J1s15XYbzrUCdjN7pPJ7aDKKDy NF8gNS3vMo3Sh4dJjohejNeC7Cs/4HvzCEvBRooiTbvOlDYhhwuU+/JV+UZfQeh3Fcj3 BVSFUSxauFzjFanQP04EkTk1QIx/YbO/913CS2zBng57NTbSrPc7imzeQOFokBbEmEDo 7GFa4QzlNjqABAjkeoHPqahOcFum95MtzcUu3O8TXKpnd4VoBqB/hcUcsr4qySgqdcZC qDgGH9CaPUxWAOpyDIJyOxpJWULf9gCrFJtK2AEA0rwA+glWIJQj+WO9JxR0iP5xEbX8 ekgw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d25si341998eda.172.2019.06.25.05.31.43 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 25 Jun 2019 05:31:43 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:59704 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfkbu-00019u-Uz for patch@linaro.org; Tue, 25 Jun 2019 08:31:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36244) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfkMY-00078v-Py for qemu-devel@nongnu.org; Tue, 25 Jun 2019 08:15:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfkMW-00046m-5X for qemu-devel@nongnu.org; Tue, 25 Jun 2019 08:15:50 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:33532 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hfkMS-0003xO-0W; Tue, 25 Jun 2019 08:15:45 -0400 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 7C5BD68F4B86F0A1E654; Tue, 25 Jun 2019 20:15:34 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.202.227.237) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.439.0; Tue, 25 Jun 2019 20:15:25 +0800 From: Shameer Kolothum To: , , , Date: Tue, 25 Jun 2019 13:14:13 +0100 Message-ID: <20190625121421.22280-1-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 MIME-Version: 1.0 X-Originating-IP: [10.202.227.237] X-CFilter-Loop: Reflected X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 45.249.212.32 Subject: [Qemu-devel] [PATCH v6 0/8] ARM virt: ACPI memory hotplug support 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: peter.maydell@linaro.org, sameo@linux.intel.com, ard.biesheuvel@linaro.org, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, sebastien.boeuf@intel.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This series is an attempt to provide device memory hotplug support on ARM virt platform. This is based on Eric's recent works here[1] and carries some of the pc-dimm related patches dropped from his series. The kernel support for arm64 memory hot add was added recently by Robin and hence the guest kernel should be => 5.0-rc1. NVDIM support is not included currently as we still have an unresolved issue while hot adding NVDIMM[2]. However NVDIMM cold plug patches can be included, but not done for now, for keeping it simple. This makes use of GED device to sent hotplug ACPI events to the Guest. GED code is based on Nemu. Thanks to the efforts of Samuel and Sebastien to add the hardware-reduced support to Nemu using GED device[3]. (Please shout if I got the author/signed-off wrong for those patches or missed any names). This is sanity tested on a HiSilicon ARM64 platform and appreciate any further testing. Thanks, Shameer [1] https://patchwork.kernel.org/cover/10837565/ [2] https://patchwork.kernel.org/cover/10783589/ [3] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/ged.c [4] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html v5 --> v6 -Addressed comments from Eric. -Added R-by from Eric and Igor. v4 --> v5 -Removed gsi/ged-irq routing in virt. -Added Migration support. -Dropped support for DT coldplug case based on the discussions here[4] -Added system_powerdown support through GED. v3 --> v4 Addressed comments from Igor and Eric, -Renamed "virt-acpi" to "acpi-ged". -Changed ged device parent to TYPE_DEVICE. -Introduced DT memory node property "hotpluggable" to resolve device memory being treated as early boot memory issue(patch #7). -Combined patches #3 and #9 from v3 into #3. v2 --> v3 Addressed comments from Igor and Eric, -Made virt acpi device platform independent and moved to hw/acpi/generic_event_device.c -Moved ged specific code into hw/acpi/generic_event_device.c -Introduced an opt-in feature "fdt" to resolve device-memory being treated as early boot memory. -Dropped patch #1 from v2. RFC --> v2 -Use GED device instead of GPIO for ACPI hotplug events. -Removed NVDIMM support for now. -Includes dropped patches from Eric's v9 series. Eric Auger (1): hw/arm/virt: Add memory hotplug framework Samuel Ortiz (2): hw/acpi: Do not create memory hotplug method when handler is not defined hw/acpi: Add ACPI Generic Event Device Support Shameer Kolothum (5): hw/acpi: Make ACPI IO address space configurable hw/arm/virt: Enable device memory cold/hot plug with ACPI boot hw/arm/virt-acpi-build: Add PC-DIMM in SRAT hw/acpi: Add system power down support to GED hw/arm: Use GED for system_powerdown event hw/acpi/Kconfig | 4 + hw/acpi/Makefile.objs | 1 + hw/acpi/generic_event_device.c | 352 +++++++++++++++++++++++++ hw/acpi/memory_hotplug.c | 35 +-- hw/arm/Kconfig | 4 + hw/arm/virt-acpi-build.c | 58 ++-- hw/arm/virt.c | 88 ++++++- hw/i386/acpi-build.c | 3 +- include/hw/acpi/generic_event_device.h | 106 ++++++++ include/hw/acpi/memory_hotplug.h | 9 +- include/hw/arm/virt.h | 3 + 11 files changed, 607 insertions(+), 56 deletions(-) create mode 100644 hw/acpi/generic_event_device.c create mode 100644 include/hw/acpi/generic_event_device.h -- 2.17.1 Tested-by: Eric Auger