qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>
Subject: [PULL 21/21] numa: hmat: require parent cache description before the next level one
Date: Tue,  6 Oct 2020 18:09:30 -0400	[thread overview]
Message-ID: <20201006220930.908275-22-ehabkost@redhat.com> (raw)
In-Reply-To: <20201006220930.908275-1-ehabkost@redhat.com>

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>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20201006150002.1601845-1-imammedo@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 7d5d413001..7c4dd4e68e 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=%u 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



  parent reply	other threads:[~2020-10-06 22:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-06 22:09 [PULL 00/21] machine + QOM queue, 2020-10-06 Eduardo Habkost
2020-10-06 22:09 ` [PULL 01/21] hw/core/qdev-properties: Use qemu_strtol() in set_mac() handler Eduardo Habkost
2020-10-06 22:09 ` [PULL 02/21] hw/core/qdev-properties: Use qemu_strtoul() in set_pci_host_devaddr() Eduardo Habkost
2020-10-06 22:09 ` [PULL 03/21] hw/core/qdev-properties: Fix code style Eduardo Habkost
2020-10-06 22:09 ` [PULL 04/21] hw/core/qdev-properties: Export enum-related functions Eduardo Habkost
2020-10-06 22:09 ` [PULL 05/21] hw/core/qdev-properties: Export qdev_prop_enum Eduardo Habkost
2020-10-06 22:09 ` [PULL 06/21] hw/core/qdev-properties: Export some integer-related functions Eduardo Habkost
2020-10-06 22:09 ` [PULL 07/21] hw/core/qdev-properties: Extract system-mode specific properties Eduardo Habkost
2020-10-06 22:09 ` [PULL 08/21] hw/core/cpu: Add missing 'exec/cpu-common.h' include Eduardo Habkost
2020-10-06 22:09 ` [PULL 09/21] qom: Improve error message displayed with missing object properties Eduardo Habkost
2020-10-06 22:09 ` [PULL 10/21] qom: Fix DECLARE_*CHECKER documentation Eduardo Habkost
2020-10-06 22:09 ` [PULL 11/21] docs/devel/qom: Fix indentation of bulleted list Eduardo Habkost
2020-10-06 22:09 ` [PULL 12/21] docs/devel/qom: Fix indentation of code blocks Eduardo Habkost
2020-10-06 22:09 ` [PULL 13/21] docs/devel/qom: Use *emphasis* for emphasis Eduardo Habkost
2020-10-06 22:09 ` [PULL 14/21] docs/devel/qom: Remove usage of <code> Eduardo Habkost
2020-10-06 22:09 ` [PULL 15/21] docs/devel/qom: Avoid long lines Eduardo Habkost
2020-10-06 22:09 ` [PULL 16/21] kernel-doc: Handle function typedefs that return pointers Eduardo Habkost
2020-10-06 22:09 ` [PULL 17/21] kernel-doc: Handle function typedefs without asterisks Eduardo Habkost
2020-10-06 22:09 ` [PULL 18/21] qom: Explicitly tag doc comments for typedefs and structs Eduardo Habkost
2020-10-06 22:09 ` [PULL 19/21] memory: Explicitly tag doc comments for structs Eduardo Habkost
2020-10-06 22:09 ` [PULL 20/21] kernel-doc: Remove $decl_type='type name' hack Eduardo Habkost
2020-10-06 22:09 ` Eduardo Habkost [this message]
2020-10-08 14:26 ` [PULL 00/21] machine + QOM queue, 2020-10-06 Peter Maydell

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=20201006220930.908275-22-ehabkost@redhat.com \
    --to=ehabkost@redhat.com \
    --cc=berrange@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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).