* [Qemu-devel] [PATCH 0/3] some numa & memory related fixes @ 2014-08-04 8:16 Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 1/3] hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE Hu Tao ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Hu Tao @ 2014-08-04 8:16 UTC (permalink / raw) To: qemu-devel; +Cc: Igor Mammedov, Michael S. Tsirkin See each patch for the detail. Hu Tao (3): hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE pc-dimm: check if node property exceeds available numa nodes numa: show hex number in error message for consistency and prefix them with 0x hw/i386/acpi-dsdt.dsl | 4 ++-- hw/i386/acpi-dsdt.hex.generated | 8 ++++---- hw/i386/q35-acpi-dsdt.dsl | 4 ++-- hw/i386/ssdt-mem.dsl | 16 ++++++++-------- hw/i386/ssdt-misc.dsl | 2 +- hw/mem/pc-dimm.c | 5 +++++ include/hw/acpi/pc-hotplug.h | 2 +- numa.c | 4 ++-- 8 files changed, 25 insertions(+), 20 deletions(-) -- 1.9.3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 1/3] hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE 2014-08-04 8:16 [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Hu Tao @ 2014-08-04 8:16 ` Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property Hu Tao ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Hu Tao @ 2014-08-04 8:16 UTC (permalink / raw) To: qemu-devel; +Cc: Igor Mammedov, Michael S. Tsirkin Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> --- hw/i386/acpi-dsdt.dsl | 4 ++-- hw/i386/acpi-dsdt.hex.generated | 8 ++++---- hw/i386/q35-acpi-dsdt.dsl | 4 ++-- hw/i386/ssdt-mem.dsl | 16 ++++++++-------- hw/i386/ssdt-misc.dsl | 2 +- include/hw/acpi/pc-hotplug.h | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl index 6ba0170..559f4b6 100644 --- a/hw/i386/acpi-dsdt.dsl +++ b/hw/i386/acpi-dsdt.dsl @@ -302,7 +302,7 @@ DefinitionBlock ( /**************************************************************** * General purpose events ****************************************************************/ - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) + External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) Scope(\_GPE) { Name(_HID, "ACPI0006") @@ -321,7 +321,7 @@ DefinitionBlock ( } Method(_E03) { // Memory hotplug event - \_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD() + \_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD() } Method(_L04) { } diff --git a/hw/i386/acpi-dsdt.hex.generated b/hw/i386/acpi-dsdt.hex.generated index 6c8a1fc..a21bf41 100644 --- a/hw/i386/acpi-dsdt.hex.generated +++ b/hw/i386/acpi-dsdt.hex.generated @@ -8,7 +8,7 @@ static unsigned char AcpiDsdtAmlCode[] = { 0x0, 0x0, 0x1, -0x2e, +0x1f, 0x42, 0x58, 0x50, @@ -31,9 +31,9 @@ static unsigned char AcpiDsdtAmlCode[] = { 0x4e, 0x54, 0x4c, -0x13, -0x9, -0x12, +0x28, +0x5, +0x10, 0x20, 0x10, 0x49, diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl index 8c3eae7..054b035 100644 --- a/hw/i386/q35-acpi-dsdt.dsl +++ b/hw/i386/q35-acpi-dsdt.dsl @@ -410,7 +410,7 @@ DefinitionBlock ( /**************************************************************** * General purpose events ****************************************************************/ - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) + External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD, MethodObj) Scope(\_GPE) { Name(_HID, "ACPI0006") @@ -425,7 +425,7 @@ DefinitionBlock ( } Method(_E03) { // Memory hotplug event - \_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD() + \_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_SCAN_METHOD() } Method(_L04) { } diff --git a/hw/i386/ssdt-mem.dsl b/hw/i386/ssdt-mem.dsl index 8e17bd1..22ff5dd 100644 --- a/hw/i386/ssdt-mem.dsl +++ b/hw/i386/ssdt-mem.dsl @@ -39,10 +39,10 @@ ACPI_EXTRACT_ALL_CODE ssdm_mem_aml DefinitionBlock ("ssdt-mem.aml", "SSDT", 0x02, "BXPC", "CSSDT", 0x1) { - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_CRS_METHOD, MethodObj) - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_STATUS_METHOD, MethodObj) - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_OST_METHOD, MethodObj) - External(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_PROXIMITY_METHOD, MethodObj) + External(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_CRS_METHOD, MethodObj) + 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) Scope(\_SB) { /* v------------------ DO NOT EDIT ------------------v */ @@ -58,19 +58,19 @@ DefinitionBlock ("ssdt-mem.aml", "SSDT", 0x02, "BXPC", "CSSDT", 0x1) Name(_HID, EISAID("PNP0C80")) Method(_CRS, 0) { - Return(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_CRS_METHOD(_UID)) + Return(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_CRS_METHOD(_UID)) } Method(_STA, 0) { - Return(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_STATUS_METHOD(_UID)) + Return(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_STATUS_METHOD(_UID)) } Method(_PXM, 0) { - Return(\_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_PROXIMITY_METHOD(_UID)) + Return(\_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_PROXIMITY_METHOD(_UID)) } Method(_OST, 3) { - \_SB.PCI0.MEMORY_HOPTLUG_DEVICE.MEMORY_SLOT_OST_METHOD(_UID, Arg0, Arg1, Arg2) + \_SB.PCI0.MEMORY_HOTPLUG_DEVICE.MEMORY_SLOT_OST_METHOD(_UID, Arg0, Arg1, Arg2) } } } diff --git a/hw/i386/ssdt-misc.dsl b/hw/i386/ssdt-misc.dsl index d329b8b..0fd4480 100644 --- a/hw/i386/ssdt-misc.dsl +++ b/hw/i386/ssdt-misc.dsl @@ -120,7 +120,7 @@ DefinitionBlock ("ssdt-misc.aml", "SSDT", 0x01, "BXPC", "BXSSDTSUSP", 0x1) External(MEMORY_SLOT_NOTIFY_METHOD, MethodObj) Scope(\_SB.PCI0) { - Device(MEMORY_HOPTLUG_DEVICE) { + Device(MEMORY_HOTPLUG_DEVICE) { Name(_HID, "PNP0A06") Name(_UID, "Memory hotplug resources") diff --git a/include/hw/acpi/pc-hotplug.h b/include/hw/acpi/pc-hotplug.h index bf5157d..b9db295 100644 --- a/include/hw/acpi/pc-hotplug.h +++ b/include/hw/acpi/pc-hotplug.h @@ -32,7 +32,7 @@ #define ACPI_MEMORY_HOTPLUG_IO_LEN 24 #define ACPI_MEMORY_HOTPLUG_BASE 0x0a00 -#define MEMORY_HOPTLUG_DEVICE MHPD +#define MEMORY_HOTPLUG_DEVICE MHPD #define MEMORY_SLOTS_NUMBER MDNR #define MEMORY_HOTPLUG_IO_REGION HPMR #define MEMORY_SLOT_ADDR_LOW MRBL -- 1.9.3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property 2014-08-04 8:16 [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 1/3] hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE Hu Tao @ 2014-08-04 8:16 ` Hu Tao 2014-08-04 12:22 ` Michael S. Tsirkin 2014-08-04 8:16 ` [Qemu-devel] [PATCH 3/3] numa: show hex number in error message for consistency and prefix them with 0x Hu Tao 2014-08-04 12:23 ` [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Michael S. Tsirkin 3 siblings, 1 reply; 7+ messages in thread From: Hu Tao @ 2014-08-04 8:16 UTC (permalink / raw) To: qemu-devel; +Cc: Igor Mammedov, Michael S. Tsirkin If user specifies a node number that exceeds the available numa nodes in emulated system for pc-dimm device, the device will reports an invalid _PXM to OSPM. Fix it by checking the node value. Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> --- hw/mem/pc-dimm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index 08f49ed..92e276f 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -252,6 +252,11 @@ static void pc_dimm_realize(DeviceState *dev, Error **errp) error_setg(errp, "'" PC_DIMM_MEMDEV_PROP "' property is not set"); return; } + if (dimm->node >= nb_numa_nodes) { + error_setg(errp, "'" PC_DIMM_NODE_PROP + "' exceeds numa node number: %" PRId32, nb_numa_nodes); + return; + } } static MemoryRegion *pc_dimm_get_memory_region(PCDIMMDevice *dimm) -- 1.9.3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property 2014-08-04 8:16 ` [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property Hu Tao @ 2014-08-04 12:22 ` Michael S. Tsirkin 2014-08-05 1:12 ` Hu Tao 0 siblings, 1 reply; 7+ messages in thread From: Michael S. Tsirkin @ 2014-08-04 12:22 UTC (permalink / raw) To: Hu Tao; +Cc: Igor Mammedov, qemu-devel On Mon, Aug 04, 2014 at 04:16:08PM +0800, Hu Tao wrote: > If user specifies a node number that exceeds the available numa nodes in > emulated system for pc-dimm device, the device will reports an invalid _PXM > to OSPM. Fix it by checking the node value. > > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > --- > hw/mem/pc-dimm.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c > index 08f49ed..92e276f 100644 > --- a/hw/mem/pc-dimm.c > +++ b/hw/mem/pc-dimm.c > @@ -252,6 +252,11 @@ static void pc_dimm_realize(DeviceState *dev, Error **errp) > error_setg(errp, "'" PC_DIMM_MEMDEV_PROP "' property is not set"); > return; > } > + if (dimm->node >= nb_numa_nodes) { > + error_setg(errp, "'" PC_DIMM_NODE_PROP > + "' exceeds numa node number: %" PRId32, nb_numa_nodes); PRId32 is wrong here, this variable is int, use %d. Also, this message isn't very clear, I fixed it up with a patch on top. > + return; > + } > } > > static MemoryRegion *pc_dimm_get_memory_region(PCDIMMDevice *dimm) > -- > 1.9.3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property 2014-08-04 12:22 ` Michael S. Tsirkin @ 2014-08-05 1:12 ` Hu Tao 0 siblings, 0 replies; 7+ messages in thread From: Hu Tao @ 2014-08-05 1:12 UTC (permalink / raw) To: Michael S. Tsirkin; +Cc: Igor Mammedov, qemu-devel On Mon, Aug 04, 2014 at 02:22:48PM +0200, Michael S. Tsirkin wrote: > On Mon, Aug 04, 2014 at 04:16:08PM +0800, Hu Tao wrote: > > If user specifies a node number that exceeds the available numa nodes in > > emulated system for pc-dimm device, the device will reports an invalid _PXM > > to OSPM. Fix it by checking the node value. > > > > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > > --- > > hw/mem/pc-dimm.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c > > index 08f49ed..92e276f 100644 > > --- a/hw/mem/pc-dimm.c > > +++ b/hw/mem/pc-dimm.c > > @@ -252,6 +252,11 @@ static void pc_dimm_realize(DeviceState *dev, Error **errp) > > error_setg(errp, "'" PC_DIMM_MEMDEV_PROP "' property is not set"); > > return; > > } > > + if (dimm->node >= nb_numa_nodes) { > > + error_setg(errp, "'" PC_DIMM_NODE_PROP > > + "' exceeds numa node number: %" PRId32, nb_numa_nodes); > > PRId32 is wrong here, this variable is int, use %d. > Also, this message isn't very clear, I fixed it up > with a patch on top. Thanks! > > > + return; > > + } > > } > > > > static MemoryRegion *pc_dimm_get_memory_region(PCDIMMDevice *dimm) > > -- > > 1.9.3 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 3/3] numa: show hex number in error message for consistency and prefix them with 0x 2014-08-04 8:16 [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 1/3] hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property Hu Tao @ 2014-08-04 8:16 ` Hu Tao 2014-08-04 12:23 ` [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Michael S. Tsirkin 3 siblings, 0 replies; 7+ messages in thread From: Hu Tao @ 2014-08-04 8:16 UTC (permalink / raw) To: qemu-devel; +Cc: Igor Mammedov, Michael S. Tsirkin The error messages before and after patch are: before: qemu-system-x86_64: total memory for NUMA nodes (134217728) should equal RAM size (20000000) after: qemu-system-x86_64: total memory for NUMA nodes (0x8000000) should equal RAM size (0x20000000) Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> --- numa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/numa.c b/numa.c index 7bf7834..c78cec9 100644 --- a/numa.c +++ b/numa.c @@ -210,8 +210,8 @@ void set_numa_nodes(void) numa_total += numa_info[i].node_mem; } if (numa_total != ram_size) { - error_report("total memory for NUMA nodes (%" PRIu64 ")" - " should equal RAM size (" RAM_ADDR_FMT ")", + error_report("total memory for NUMA nodes (0x%" PRIx64 ")" + " should equal RAM size (0x" RAM_ADDR_FMT ")", numa_total, ram_size); exit(1); } -- 1.9.3 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] some numa & memory related fixes 2014-08-04 8:16 [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Hu Tao ` (2 preceding siblings ...) 2014-08-04 8:16 ` [Qemu-devel] [PATCH 3/3] numa: show hex number in error message for consistency and prefix them with 0x Hu Tao @ 2014-08-04 12:23 ` Michael S. Tsirkin 3 siblings, 0 replies; 7+ messages in thread From: Michael S. Tsirkin @ 2014-08-04 12:23 UTC (permalink / raw) To: Hu Tao; +Cc: Igor Mammedov, qemu-devel On Mon, Aug 04, 2014 at 04:16:06PM +0800, Hu Tao wrote: > See each patch for the detail. > > Hu Tao (3): > hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE > pc-dimm: check if node property exceeds available numa nodes > numa: show hex number in error message for consistency and prefix them > with 0x Thanks, applied. > hw/i386/acpi-dsdt.dsl | 4 ++-- > hw/i386/acpi-dsdt.hex.generated | 8 ++++---- > hw/i386/q35-acpi-dsdt.dsl | 4 ++-- > hw/i386/ssdt-mem.dsl | 16 ++++++++-------- > hw/i386/ssdt-misc.dsl | 2 +- > hw/mem/pc-dimm.c | 5 +++++ > include/hw/acpi/pc-hotplug.h | 2 +- > numa.c | 4 ++-- > 8 files changed, 25 insertions(+), 20 deletions(-) > > -- > 1.9.3 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-08-05 1:15 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-08-04 8:16 [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 1/3] hw:i386: typo fix: MEMORY_HOPTLUG_DEVICE -> MEMORY_HOTPLUG_DEVICE Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 2/3] pc-dimm: check if the value of node property Hu Tao 2014-08-04 12:22 ` Michael S. Tsirkin 2014-08-05 1:12 ` Hu Tao 2014-08-04 8:16 ` [Qemu-devel] [PATCH 3/3] numa: show hex number in error message for consistency and prefix them with 0x Hu Tao 2014-08-04 12:23 ` [Qemu-devel] [PATCH 0/3] some numa & memory related fixes Michael S. Tsirkin
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).