qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Wei Huang <wei@redhat.com>
To: Shannon Zhao <zhaoshenglong@huawei.com>,
	qemu-devel@nongnu.org, peter.maydell@linaro.org,
	pbonzini@redhat.com, christoffer.dall@linaro.org,
	a.spyridakis@virtualopensystems.com, claudio.fontana@huawei.com,
	imammedo@redhat.com, hanjun.guo@linaro.org, mst@redhat.com,
	lersek@redhat.com
Cc: wanghaibin.wang@huawei.com, hangaohuai@huawei.com,
	peter.huangpeng@huawei.com
Subject: Re: [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Add cpu-add way cpu hotplug support
Date: Wed, 18 Feb 2015 11:19:27 -0600	[thread overview]
Message-ID: <54E4C99F.7070403@redhat.com> (raw)
In-Reply-To: <1424167806-8372-1-git-send-email-zhaoshenglong@huawei.com>

[-- Attachment #1: Type: text/plain, Size: 3169 bytes --]

Nice work. I will help review the patches.

Other than the CPU hotplug support, we are also seeking the guest VM
powerdown support via ACPI. This feature is important for management
tool to control guest VMs. In fact I had a similar GPIO patch for
powerdown recently. Given that you already posted a more complete
version, I wonder if you can add this feature to your patchset? FYI, I
attached my powerdown patch in this email. Here is a brief list of items:

* DSDT description of power button (to-be-done)
* Hook up with qemu_qemu_register_powerdown_notifier() with the GPIO IRQ

Feel free to add my name as signed-off-by in this feature if you decide
to add it.

Thanks,
-Wei

On 02/17/2015 04:09 AM, Shannon Zhao wrote:
> Add cpu-add hotplug support in machine virt. As there are some properties
> which are set out of arm_cpu_initfn, so the way of device_add is not
> supported now. This will add at next version. Some good suggestion?
> 
> This patchset is based on below patch:
> [RFC PATCH v3 00/11] Generate ACPI v5.1 tables and	expose it to guest over fw_cfg on ARM
> http://lists.gnu.org/archive/html/qemu-devel/2015-02/msg03290.html
> 
> Have done compile test and start a Linux guest, execute cpu-add in monitor, use info cpu
> to check a new cpu created. But as the guest kernel driver is not ready, so it can't be
> used by guest now.
> 
> Any comments are welcome.
> Thanks,
> Shannon
> 
> Shannon Zhao (7):
>   hw/arm/virt: Add a GPIO controller
>   hw/arm/virt-acpi-build: Add GPIO controller in ACPI DSDT table
>   hw/acpi/virt-hotplug: Add a hotplug device for machine virt
>   topology: Move topology.h to an arch-independent location
>   target-arm/cpu: Add apic_id property for ARMCPU
>   hw/arm/virt: Add cpu hotplug support
>   hw/arm/virt-acpi-build: Add cpu hotplug support in ACPI
> 
>  default-configs/arm-softmmu.mak  |    2 +
>  hw/acpi/Makefile.objs            |    1 +
>  hw/acpi/aml-build.c              |  135 ++++++++++++++++++++++++++
>  hw/acpi/cpu_hotplug.c            |   16 +---
>  hw/acpi/ich9.c                   |   12 +++
>  hw/acpi/piix4.c                  |   12 +++
>  hw/acpi/virt-hotplug.c           |  141 +++++++++++++++++++++++++++
>  hw/arm/virt-acpi-build.c         |  198 +++++++++++++++++++++++++++++++++++++-
>  hw/arm/virt.c                    |  190 ++++++++++++++++++++++++++++++++++++-
>  include/hw/acpi/aml-build.h      |   13 +++
>  include/hw/acpi/cpu_hotplug.h    |    6 +-
>  include/hw/acpi/topology.h       |  134 +++++++++++++++++++++++++
>  include/hw/acpi/virt-hotplug.h   |   11 ++
>  include/hw/arm/virt-acpi-build.h |    3 +
>  target-arm/cpu-qom.h             |    1 +
>  target-arm/cpu.c                 |   77 +++++++++++++++
>  target-arm/cpu.h                 |    2 +
>  target-i386/cpu.c                |    4 +-
>  target-i386/topology.h           |  134 -------------------------
>  tests/test-x86-cpuid.c           |   10 +-
>  20 files changed, 940 insertions(+), 162 deletions(-)
>  create mode 100644 hw/acpi/virt-hotplug.c
>  create mode 100644 include/hw/acpi/topology.h
>  create mode 100644 include/hw/acpi/virt-hotplug.h
>  delete mode 100644 target-i386/topology.h
> 
> 
> 

[-- Attachment #2: 0002-arm-Hook-up-QEMU-powerdown-notifier-to-GPIO-interrup.patch --]
[-- Type: text/x-patch, Size: 1684 bytes --]

>From 17e5319419d845fc5a5e95b1577c38bc2958d633 Mon Sep 17 00:00:00 2001
From: Wei Huang <wei@redhat.com>
Date: Mon, 16 Feb 2015 16:56:12 -0500
Subject: [mach-virt GPIO RFC 2/2] arm: Hook up QEMU powerdown notifier to GPIO
 interrupt line

Currently mach-virt model doesn't support powerdown request. Guest VM
doesn't react to system_powerdown from monitor console (or QMP) because
there is no communication mechanism for such requests. This patch registers
GPIO IRQ with powerdown notification. So guest VM can receive notification
when such powerdown request is triggered.

Signed-off-by: Wei Huang <wei@redhat.com>
---
 hw/arm/virt.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 1e5d792..7234044 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -440,6 +440,16 @@ static void create_rtc(const VirtBoardInfo *vbi, qemu_irq *pic)
     g_free(nodename);
 }
 
+static qemu_irq virt_system_powerdown;
+static void virt_powerdown_req(Notifier *n, void *opaque)
+{
+    qemu_irq_raise(virt_system_powerdown);
+}
+
+static Notifier virt_system_powerdown_notifier = {
+    .notify = virt_powerdown_req
+};
+
 static void create_gpio(const VirtBoardInfo *vbi, qemu_irq *pic)
 {
     char *nodename;
@@ -461,6 +471,10 @@ static void create_gpio(const VirtBoardInfo *vbi, qemu_irq *pic)
     qemu_fdt_setprop_cell(vbi->fdt, nodename, "clocks", vbi->clock_phandle);
     qemu_fdt_setprop_string(vbi->fdt, nodename, "clock-names", "apb_pclk");
 
+    /* connect powerdown request */
+    virt_system_powerdown = pic[irq];
+    qemu_register_powerdown_notifier(&virt_system_powerdown_notifier);
+
     g_free(nodename);
 }
 
-- 
1.8.3.1


  parent reply	other threads:[~2015-02-18 17:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17 10:09 [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Add cpu-add way cpu hotplug support Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 1/7] hw/arm/virt: Add a GPIO controller Shannon Zhao
2015-02-18 17:52   ` Wei Huang
2015-02-26  7:43     ` Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 2/7] hw/arm/virt-acpi-build: Add GPIO controller in ACPI DSDT table Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 3/7] hw/acpi/virt-hotplug: Add a hotplug device for machine virt Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 4/7] topology: Move topology.h to an arch-independent location Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 5/7] target-arm/cpu: Add apic_id property for ARMCPU Shannon Zhao
2015-02-18 17:45   ` Andreas Färber
2015-02-18 19:51     ` Igor Mammedov
2015-02-18 19:57       ` Andreas Färber
2015-02-19  8:22       ` Hanjun Guo
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 6/7] hw/arm/virt: Add cpu hotplug support Shannon Zhao
2015-02-17 10:10 ` [Qemu-devel] [RFC PATCH 7/7] hw/arm/virt-acpi-build: Add cpu hotplug support in ACPI Shannon Zhao
2015-02-18 17:19 ` Wei Huang [this message]
2015-02-18 17:22   ` [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Add cpu-add way cpu hotplug support Wei Huang
2015-02-26  7:32   ` Shannon Zhao
2015-02-28  4:46     ` Wei Huang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54E4C99F.7070403@redhat.com \
    --to=wei@redhat.com \
    --cc=a.spyridakis@virtualopensystems.com \
    --cc=christoffer.dall@linaro.org \
    --cc=claudio.fontana@huawei.com \
    --cc=hangaohuai@huawei.com \
    --cc=hanjun.guo@linaro.org \
    --cc=imammedo@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wanghaibin.wang@huawei.com \
    --cc=zhaoshenglong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).