All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Yuan Yao <yuan.yao@intel.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Yang Zhong" <yang.zhong@intel.com>,
	"Connor Kuehl" <ckuehl@redhat.com>,
	qemu-devel@nongnu.org,
	"Yamahata Isaku" <isaku.yamahata@intel.com>
Subject: Re: [PATCH 1/1] i386/monitor: Fix page table walking issue for LA57 enabled guest
Date: Fri, 24 Jun 2022 07:35:00 +0200	[thread overview]
Message-ID: <87czeyd3p7.fsf@pond.sub.org> (raw)
In-Reply-To: <20220609083456.77946-1-yuan.yao@intel.com> (Yuan Yao's message of "Thu, 9 Jun 2022 16:34:56 +0800")

Yuan Yao <yuan.yao@intel.com> writes:

> Don't skip next leve page table for pdpe/pde when the

level

> PG_PRESENT_MASK is set.
>
> This fixs the issue that no mapping information was

fixes

> collected from "info mem" for guest with LA57 enabled.
>
> Signed-off-by: Yuan Yao <yuan.yao@intel.com>

Should we add

  Fixes: 6c7c3c21f95dd9af8a0691c0dd29b07247984122

?

> ---
>  target/i386/monitor.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target/i386/monitor.c b/target/i386/monitor.c
> index 8e4b4d600c..3339550bbe 100644
> --- a/target/i386/monitor.c
> +++ b/target/i386/monitor.c
> @@ -489,7 +489,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
>                  cpu_physical_memory_read(pdp_addr + l2 * 8, &pdpe, 8);
>                  pdpe = le64_to_cpu(pdpe);
>                  end = (l0 << 48) + (l1 << 39) + (l2 << 30);
> -                if (pdpe & PG_PRESENT_MASK) {
> +                if (!(pdpe & PG_PRESENT_MASK)) {
>                      prot = 0;
>                      mem_print(mon, env, &start, &last_prot, end, prot);
>                      continue;
> @@ -508,7 +508,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env)
>                      cpu_physical_memory_read(pd_addr + l3 * 8, &pde, 8);
>                      pde = le64_to_cpu(pde);
>                      end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21);
> -                    if (pde & PG_PRESENT_MASK) {
> +                    if (!(pde & PG_PRESENT_MASK)) {
>                          prot = 0;
>                          mem_print(mon, env, &start, &last_prot, end, prot);
>                          continue;
>
> base-commit: 6d940eff4734bcb40b1a25f62d7cec5a396f994a

The commit message talks about not skipping something when the flag is
set.  However, the patch *flips* the sense of conditions, which means
were *also* changing behavior when the flag is unset.  How?



  parent reply	other threads:[~2022-06-24  5:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-09  8:34 [PATCH 1/1] i386/monitor: Fix page table walking issue for LA57 enabled guest Yuan Yao
2022-06-24  2:04 ` Zhang, Chen
2022-06-24  6:22   ` Yao, Yuan
2022-06-24  5:35 ` Markus Armbruster [this message]
2022-06-24  6:21   ` Yao, Yuan

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=87czeyd3p7.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=ckuehl@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=isaku.yamahata@intel.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yang.zhong@intel.com \
    --cc=yuan.yao@intel.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.