From: Zhao Liu <zhao1.liu@intel.com>
To: Zide Chen <zide.chen@intel.com>
Cc: qemu-devel@nongnu.org, pbonzini@redhat.com, mst@redhat.com,
thuth@redhat.com, cfontana@suse.de, xiaoyao.li@intel.com,
qemu-trivial@nongnu.org, seanjc@google.com
Subject: Re: [PATCH V3 2/2] target/i386: Advertise MWAIT iff host supports
Date: Tue, 4 Jun 2024 12:02:43 +0800 [thread overview]
Message-ID: <Zl6R47mj8T7nlWMc@intel.com> (raw)
In-Reply-To: <20240604000222.75065-3-zide.chen@intel.com>
On Mon, Jun 03, 2024 at 05:02:22PM -0700, Zide Chen wrote:
> Date: Mon, 3 Jun 2024 17:02:22 -0700
> From: Zide Chen <zide.chen@intel.com>
> Subject: [PATCH V3 2/2] target/i386: Advertise MWAIT iff host supports
> X-Mailer: git-send-email 2.34.1
>
> host_cpu_realizefn() sets CPUID_EXT_MONITOR without consulting host/KVM
> capabilities. This may cause problems:
>
> - If MWAIT/MONITOR is not available on the host, advertising this
> feature to the guest and executing MWAIT/MONITOR from the guest
> triggers #UD and the guest doesn't boot. This is because typically
> #UD takes priority over VM-Exit interception checks and KVM doesn't
> emulate MONITOR/MWAIT on #UD.
>
> - If KVM doesn't support KVM_X86_DISABLE_EXITS_MWAIT, MWAIT/MONITOR
> from the guest are intercepted by KVM, which is not what cpu-pm=on
> intends to do.
>
> In these cases, MWAIT/MONITOR should not be exposed to the guest.
>
> The logic in kvm_arch_get_supported_cpuid() to handle CPUID_EXT_MONITOR
> is correct and sufficient, and we can't set CPUID_EXT_MONITOR after
> x86_cpu_filter_features().
>
> This was not an issue before commit 662175b91ff ("i386: reorder call to
> cpu_exec_realizefn") because the feature added in the accel-specific
> realizefn could be checked against host availability and filtered out.
>
> Additionally, it seems not a good idea to handle guest CPUID leaves in
> host_cpu_realizefn(), and this patch merges host_cpu_enable_cpu_pm()
> into kvm_cpu_realizefn().
>
> Fixes: f5cc5a5c1686 ("i386: split cpu accelerators from cpu.c, using AccelCPUClass")
> Fixes: 662175b91ff2 ("i386: reorder call to cpu_exec_realizefn")
> Signed-off-by: Zide Chen <zide.chen@intel.com>
> ---
LGTM,
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
next prev parent reply other threads:[~2024-06-04 3:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-04 0:02 [PATCH V3 0/2] improve -overcommit cpu-pm=on|off Zide Chen
2024-06-04 0:02 ` [PATCH V3 1/2] vl: Allow multiple -overcommit commands Zide Chen
2024-06-05 13:34 ` Igor Mammedov
2024-06-04 0:02 ` [PATCH V3 2/2] target/i386: Advertise MWAIT iff host supports Zide Chen
2024-06-04 4:02 ` Zhao Liu [this message]
2024-06-04 15:08 ` Xiaoyao Li
2024-06-05 13:41 ` Igor Mammedov
2024-06-05 13:49 ` [PATCH V3 0/2] improve -overcommit cpu-pm=on|off Igor Mammedov
2024-06-05 18:33 ` Chen, Zide
2024-06-17 12:47 ` Michael Tokarev
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=Zl6R47mj8T7nlWMc@intel.com \
--to=zhao1.liu@intel.com \
--cc=cfontana@suse.de \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=seanjc@google.com \
--cc=thuth@redhat.com \
--cc=xiaoyao.li@intel.com \
--cc=zide.chen@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.