From: "Richard W.M. Jones" <rjones@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Lara Lazier <laramglazier@gmail.com>,
qemu-devel@nongnu.org
Subject: Re: [PATCH] target/i386: add missing bits to CR4_RESERVED_MASK
Date: Tue, 31 Aug 2021 18:57:40 +0100 [thread overview]
Message-ID: <20210831175740.GZ26415@redhat.com> (raw)
In-Reply-To: <20210831175033.175584-1-berrange@redhat.com>
On Tue, Aug 31, 2021 at 06:50:33PM +0100, Daniel P. Berrangé wrote:
> Booting Fedora kernels with -cpu max hangs very early in boot. Disabling
> the la57 CPUID bit fixes the problem. git bisect traced the regression to
>
> commit 213ff024a2f92020290296cb9dc29c2af3d4a221 (HEAD, refs/bisect/bad)
> Author: Lara Lazier <laramglazier@gmail.com>
> Date: Wed Jul 21 17:26:50 2021 +0200
>
> target/i386: Added consistency checks for CR4
>
> All MBZ bits in CR4 must be zero. (APM2 15.5)
> Added reserved bitmask and added checks in both
> helper_vmrun and helper_write_crN.
>
> Signed-off-by: Lara Lazier <laramglazier@gmail.com>
> Message-Id: <20210721152651.14683-2-laramglazier@gmail.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
> In this commit CR4_RESERVED_MASK is missing CR4_LA57_MASK and
> two others. Adding this lets Fedora kernels boot once again.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> target/i386/cpu.h | 1 +
> 1 file changed, 1 insertion(+)
>
> I don't know the implications of CR4_VMXE_MASK and CR4_SMXE_MASK
> being missing in CR4_RESERVED_MASK. It didn't cause any ill effects
> either way, but I added them on the assumption that CR4_RESERVED_MASK
> was supposed to contain all define bits.
>
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 6c50d3ab4f..ce85f1a29d 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -257,6 +257,7 @@ typedef enum X86Seg {
> | CR4_DE_MASK | CR4_PSE_MASK | CR4_PAE_MASK \
> | CR4_MCE_MASK | CR4_PGE_MASK | CR4_PCE_MASK \
> | CR4_OSFXSR_MASK | CR4_OSXMMEXCPT_MASK |CR4_UMIP_MASK \
> + | CR4_LA57_MASK | CR4_VMXE_MASK | CR4_SMXE_MASK \
> | CR4_FSGSBASE_MASK | CR4_PCIDE_MASK | CR4_OSXSAVE_MASK \
> | CR4_SMEP_MASK | CR4_SMAP_MASK | CR4_PKE_MASK | CR4_PKS_MASK))
First thing to say is I tested this locally and it fixes the
problem seen in https://bugzilla.redhat.com/show_bug.cgi?id=1999700.
I will also add this patch to Fedora soon. So:
Tested-by: Richard W.M. Jones <rjones@redhat.com>
But my question is, does this mean that every time a new CPU feature
appears we must remember to update this code?
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
next prev parent reply other threads:[~2021-08-31 17:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-31 17:50 [PATCH] target/i386: add missing bits to CR4_RESERVED_MASK Daniel P. Berrangé
2021-08-31 17:57 ` Richard W.M. Jones [this message]
2021-09-06 14:29 ` Paolo Bonzini
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=20210831175740.GZ26415@redhat.com \
--to=rjones@redhat.com \
--cc=berrange@redhat.com \
--cc=laramglazier@gmail.com \
--cc=pbonzini@redhat.com \
--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 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.