[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/21] numa: hmat: require parent cache description before the nex
From: |
Eduardo Habkost |
Subject: |
[PULL 01/21] numa: hmat: require parent cache description before the next level one |
Date: |
Mon, 5 Oct 2020 17:09:40 -0400 |
From: Igor Mammedov <imammedo@redhat.com>
Spec[1] defines 0 - 3 level memory side cache, however QEMU
CLI allows to specify an intermediate cache level without
specifying previous level. Such option(s) silently ignored
when building HMAT table, which leads to incomplete cache
information.
Make sure that previous level exists and error out
if it hasn't been provided.
1) ACPI 6.2A 5.2.27.5 Memory Side Cache Information Structure
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1842877
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200924091406.1321012-1-imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/core/numa.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/core/numa.c b/hw/core/numa.c
index 7d5d4130016..6dc3d19d282 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -424,7 +424,13 @@ void parse_numa_hmat_cache(MachineState *ms,
NumaHmatCacheOptions *node,
}
if ((node->level > 1) &&
- ms->numa_state->hmat_cache[node->node_id][node->level - 1] &&
+ ms->numa_state->hmat_cache[node->node_id][node->level - 1] == NULL) {
+ error_setg(errp, "Cache level=%" PRIu8 " shall be defined first",
+ node->level - 1);
+ return;
+ }
+
+ if ((node->level > 1) &&
(node->size <=
ms->numa_state->hmat_cache[node->node_id][node->level - 1]->size))
{
error_setg(errp, "Invalid size=%" PRIu64 ", the size of level=%" PRIu8
--
2.26.2
- [PULL 00/21] machine + QOM queue, 2020-10-05, Eduardo Habkost, 2020/10/05
- [PULL 01/21] numa: hmat: require parent cache description before the next level one,
Eduardo Habkost <=
- [PULL 03/21] hw/core/qdev-properties: Use qemu_strtoul() in set_pci_host_devaddr(), Eduardo Habkost, 2020/10/05
- [PULL 02/21] hw/core/qdev-properties: Use qemu_strtol() in set_mac() handler, Eduardo Habkost, 2020/10/05
- [PULL 04/21] hw/core/qdev-properties: Fix code style, Eduardo Habkost, 2020/10/05
- [PULL 05/21] hw/core/qdev-properties: Export enum-related functions, Eduardo Habkost, 2020/10/05
- [PULL 06/21] hw/core/qdev-properties: Export qdev_prop_enum, Eduardo Habkost, 2020/10/05
- [PULL 07/21] hw/core/qdev-properties: Export some integer-related functions, Eduardo Habkost, 2020/10/05
- [PULL 09/21] hw/core/cpu: Add missing 'exec/cpu-common.h' include, Eduardo Habkost, 2020/10/05
- [PULL 11/21] qom: Fix DECLARE_*CHECKER documentation, Eduardo Habkost, 2020/10/05
- [PULL 08/21] hw/core/qdev-properties: Extract system-mode specific properties, Eduardo Habkost, 2020/10/05
- [PULL 13/21] docs/devel/qom: Fix indentation of code blocks, Eduardo Habkost, 2020/10/05