From: Igor Mammedov <imammedo@redhat.com>
To: Tang Chen <tangchen@cn.fujitsu.com>
Cc: zhugh.fnst@cn.fujitsu.com, mst@redhat.com, hutao@cn.fujitsu.com,
qemu-devel@nongnu.org, isimatu.yasuaki@jp.fujitsu.com,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [RESEND PATCH v3 7/8] pc, acpi bios: Add memory hot unplug interface.
Date: Thu, 4 Sep 2014 15:53:53 +0200 [thread overview]
Message-ID: <20140904155353.1929e8a6@nial.usersys.redhat.com> (raw)
In-Reply-To: <1409126919-22233-8-git-send-email-tangchen@cn.fujitsu.com>
On Wed, 27 Aug 2014 16:08:38 +0800
Tang Chen <tangchen@cn.fujitsu.com> wrote:
> From: Hu Tao <hutao@cn.fujitsu.com>
>
> This patch implements MEMORY_SLOT_EJECT_METHOD according to ACPI spec.
>
> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> ---
> hw/i386/ssdt-mem.dsl | 5 +++++
> hw/i386/ssdt-misc.dsl | 15 ++++++++++++++-
> include/hw/acpi/pc-hotplug.h | 2 ++
> 3 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/hw/i386/ssdt-mem.dsl b/hw/i386/ssdt-mem.dsl
> index 22ff5dd..1416639 100644
> --- a/hw/i386/ssdt-mem.dsl
> +++ b/hw/i386/ssdt-mem.dsl
> @@ -43,6 +43,7 @@ DefinitionBlock ("ssdt-mem.aml", "SSDT", 0x02, "BXPC", "CSSDT", 0x1)
> External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_STATUS_METHOD, MethodObj)
> External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_OST_METHOD, MethodObj)
> External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_PROXIMITY_METHOD, MethodObj)
> + External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_EJECT_METHOD, MethodObj)
>
> Scope(\_SB) {
> /* v------------------ DO NOT EDIT ------------------v */
> @@ -72,6 +73,10 @@ DefinitionBlock ("ssdt-mem.aml", "SSDT", 0x02, "BXPC", "CSSDT", 0x1)
> Method(_OST, 3) {
> \_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_OST_METHOD(_UID, Arg0, Arg1, Arg2)
> }
> +
> + Method(_EJ0, 1) {
> + \_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_EJECT_METHOD(_UID, Arg0)
> + }
> }
> }
> }
> diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl
> index 0fd4480..79228ac 100644
> --- a/hw/i386/ssdt-misc.dsl
> +++ b/hw/i386/ssdt-misc.dsl
> @@ -156,6 +156,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> Offset(20),
> MEMORY_SLOT_ENABLED, 1, // 1 if enabled, read only
> MEMORY_SLOT_INSERT_EVENT, 1, // (read) 1 if has a insert event. (write) 1 to clear event
> + MEMORY_SLOT_REMOVE_EVENT, 1, // 1 if DIMM has a remove request, read only
> }
>
> Mutex (MEMORY_SLOT_LOCK, 0)
> @@ -174,11 +175,16 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> Acquire(MEMORY_SLOT_LOCK, 0xFFFF)
> while (LLess(Local0, MEMORY_SLOTS_NUMBER)) {
> Store(Local0, MEMORY_SLOT_SLECTOR) // select Local0 DIMM
> +
> If (LEqual(MEMORY_SLOT_INSERT_EVENT, One)) { // Memory device needs check
> MEMORY_SLOT_NOTIFY_METHOD(Local0, 1)
> Store(1, MEMORY_SLOT_INSERT_EVENT)
> }
> - // TODO: handle memory eject request
> +
> + If (LEqual(MEMORY_SLOT_REMOVE_EVENT, One)) { // Ejection request
please use ELSE IF here, otherwise OSPM could try to do insert/remove simultaneously
> + MTFY(Local0, 3)
use MEMORY_SLOT_NOTIFY_METHOD here
> + }
> +
> Add(Local0, One, Local0) // goto next DIMM
> }
> Release(MEMORY_SLOT_LOCK)
> @@ -278,6 +284,13 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1)
> Store(Arg2, MEMORY_SLOT_OST_STATUS)
> Release(MEMORY_SLOT_LOCK)
> }
> +
> + Method(MEMORY_SLOT_EJECT_METHOD, 2) {
> + Acquire(MLCK, 0xFFFF)
> + Store(ToInteger(Arg0), MSEL) // select DIMM
> + Store(One, MEMORY_SLOT_REMOVE_EVENT)
> + Release(MLCK)
use macros here too, see Method(MEMORY_SLOT_OST_METHOD, 4) for example
> + }
> } // Device()
> } // Scope()
> }
> diff --git a/include/hw/acpi/pc-hotplug.h b/include/hw/acpi/pc-hotplug.h
> index b9db295..b3770a1 100644
> --- a/include/hw/acpi/pc-hotplug.h
> +++ b/include/hw/acpi/pc-hotplug.h
> @@ -42,6 +42,7 @@
> #define MEMORY_SLOT_PROXIMITY MPX
> #define MEMORY_SLOT_ENABLED MES
> #define MEMORY_SLOT_INSERT_EVENT MINS
> +#define MEMORY_SLOT_REMOVE_EVENT MRMV
> #define MEMORY_SLOT_SLECTOR MSEL
> #define MEMORY_SLOT_OST_EVENT MOEV
> #define MEMORY_SLOT_OST_STATUS MOSC
> @@ -50,6 +51,7 @@
> #define MEMORY_SLOT_CRS_METHOD MCRS
> #define MEMORY_SLOT_OST_METHOD MOST
> #define MEMORY_SLOT_PROXIMITY_METHOD MPXM
> +#define MEMORY_SLOT_EJECT_METHOD MDEJ
maybe s/MDEJ/MEJ0/ to be clearer what eject method is implied
> #define MEMORY_SLOT_NOTIFY_METHOD MTFY
> #define MEMORY_SLOT_SCAN_METHOD MSCN
>
next prev parent reply other threads:[~2014-09-04 13:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-27 8:08 [Qemu-devel] [RESEND PATCH v3 0/8] QEmu memory hot unplug support Tang Chen
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 1/8] acpi, piix4: Add memory hot unplug support for piix4 Tang Chen
2014-09-04 12:15 ` Igor Mammedov
2014-09-16 3:17 ` Tang Chen
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 2/8] acpi, ich9: Add memory hot unplug support for ich9 Tang Chen
2014-09-04 12:25 ` Igor Mammedov
2014-09-16 3:18 ` Tang Chen
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 3/8] pc: Add memory hot unplug support for pc machine Tang Chen
2014-09-04 12:44 ` Igor Mammedov
2014-09-04 13:16 ` Igor Mammedov
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 4/8] qdev: Add memory hot unplug support for bus-less devices Tang Chen
2014-09-04 13:22 ` Igor Mammedov
2014-09-16 8:42 ` Tang Chen
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 5/8] pc-dimm: Add pc_dimm_unrealize() for memory hot unplug support Tang Chen
2014-09-04 13:28 ` Igor Mammedov
2014-09-12 5:30 ` zhanghailiang
2014-09-12 13:17 ` Igor Mammedov
2014-09-24 7:02 ` Tang Chen
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 6/8] acpi: Add hardware implementation for memory hot unplug Tang Chen
2014-09-04 14:20 ` Igor Mammedov
2014-09-16 10:12 ` Tang Chen
2014-09-16 11:34 ` Igor Mammedov
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 7/8] pc, acpi bios: Add memory hot unplug interface Tang Chen
2014-09-04 13:53 ` Igor Mammedov [this message]
2014-08-27 8:08 ` [Qemu-devel] [RESEND PATCH v3 8/8] monitor: Add memory hot unplug support for device_del command Tang Chen
2014-09-04 14:02 ` Igor Mammedov
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=20140904155353.1929e8a6@nial.usersys.redhat.com \
--to=imammedo@redhat.com \
--cc=hutao@cn.fujitsu.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=tangchen@cn.fujitsu.com \
--cc=zhugh.fnst@cn.fujitsu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.