All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org,
	Gleb Natapov <gleb@redhat.com>
Subject: [PATCH 22/21] kvm: x86: Only read/write MSR_KVM_ASYNC_PF_EN if supported
Date: Wed, 05 Jan 2011 13:28:42 +0100	[thread overview]
Message-ID: <4D2463FA.6030404@web.de> (raw)
In-Reply-To: <cover.1294129949.git.jan.kiszka@web.de>

From: Jan Kiszka <jan.kiszka@siemens.com>

If the kernel does not support KVM_CAP_ASYNC_PF, it also does not know
about the related MSR. So skip it during state synchronization in that
case. Fixes annoying kernel warnings.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 target-i386/kvm.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 79a1da8..af79526 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -64,6 +64,9 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
 
 static bool has_msr_star;
 static bool has_msr_hsave_pa;
+#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
+static bool has_msr_async_pf_en;
+#endif
 static int lm_capable_kernel;
 
 static struct kvm_cpuid2 *try_get_cpuid(int max)
@@ -165,6 +168,7 @@ static int get_para_features(void)
             features |= (1 << para_features[i].feature);
         }
     }
+    has_msr_async_pf_en = features & (1 << KVM_FEATURE_ASYNC_PF);
     return features;
 }
 #endif
@@ -917,7 +921,9 @@ static int kvm_put_msrs(CPUState *env, int level)
                           env->system_time_msr);
         kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
 #if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
-        kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN, env->async_pf_en_msr);
+        if (has_msr_async_pf_en) {
+            kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN, env->async_pf_en_msr);
+        }
 #endif
     }
 #ifdef KVM_CAP_MCE
@@ -1149,7 +1155,9 @@ static int kvm_get_msrs(CPUState *env)
     msrs[n++].index = MSR_KVM_SYSTEM_TIME;
     msrs[n++].index = MSR_KVM_WALL_CLOCK;
 #if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
-    msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
+    if (has_msr_async_pf_en) {
+        msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
+    }
 #endif
 
 #ifdef KVM_CAP_MCE

WARNING: multiple messages have this Message-ID (diff)
From: Jan Kiszka <jan.kiszka@web.de>
To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>,
	qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: [Qemu-devel] [PATCH 22/21] kvm: x86: Only read/write MSR_KVM_ASYNC_PF_EN if supported
Date: Wed, 05 Jan 2011 13:28:42 +0100	[thread overview]
Message-ID: <4D2463FA.6030404@web.de> (raw)
In-Reply-To: <cover.1294129949.git.jan.kiszka@web.de>

From: Jan Kiszka <jan.kiszka@siemens.com>

If the kernel does not support KVM_CAP_ASYNC_PF, it also does not know
about the related MSR. So skip it during state synchronization in that
case. Fixes annoying kernel warnings.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 target-i386/kvm.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 79a1da8..af79526 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -64,6 +64,9 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
 
 static bool has_msr_star;
 static bool has_msr_hsave_pa;
+#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
+static bool has_msr_async_pf_en;
+#endif
 static int lm_capable_kernel;
 
 static struct kvm_cpuid2 *try_get_cpuid(int max)
@@ -165,6 +168,7 @@ static int get_para_features(void)
             features |= (1 << para_features[i].feature);
         }
     }
+    has_msr_async_pf_en = features & (1 << KVM_FEATURE_ASYNC_PF);
     return features;
 }
 #endif
@@ -917,7 +921,9 @@ static int kvm_put_msrs(CPUState *env, int level)
                           env->system_time_msr);
         kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
 #if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
-        kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN, env->async_pf_en_msr);
+        if (has_msr_async_pf_en) {
+            kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN, env->async_pf_en_msr);
+        }
 #endif
     }
 #ifdef KVM_CAP_MCE
@@ -1149,7 +1155,9 @@ static int kvm_get_msrs(CPUState *env)
     msrs[n++].index = MSR_KVM_SYSTEM_TIME;
     msrs[n++].index = MSR_KVM_WALL_CLOCK;
 #if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
-    msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
+    if (has_msr_async_pf_en) {
+        msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
+    }
 #endif
 
 #ifdef KVM_CAP_MCE

  parent reply	other threads:[~2011-01-05 12:28 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-04  8:32 [PATCH v3 00/21] [uq/master] Prepare for more qemu-kvm merging Jan Kiszka
2011-01-04  8:32 ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 01/21] kvm: Fix coding style violations Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 02/21] kvm: Drop return value of kvm_cpu_exec Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 03/21] kvm: Stop on all fatal exit reasons Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 04/21] kvm: Improve reporting of fatal errors Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 05/21] x86: Optionally dump code bytes on cpu_dump_state Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 06/21] kvm: x86: Align kvm_arch_put_registers code with comment Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 07/21] kvm: x86: Prepare kvm_get_mp_state for in-kernel irqchip Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 08/21] kvm: x86: Remove redundant mp_state initialization Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 09/21] kvm: x86: Fix xcr0 reset mismerge Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 10/21] kvm: x86: Refactor msr_star/hsave_pa setup and checks Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 11/21] kvm: x86: Reset paravirtual MSRs Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04 11:06   ` Glauber Costa
2011-01-04 11:06     ` [Qemu-devel] " Glauber Costa
2011-01-04  8:32 ` [PATCH v3 12/21] kvm: x86: Drop MCE MSRs write back restrictions Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-05  6:42   ` Huang Ying
2011-01-05  6:42     ` [Qemu-devel] " Huang Ying
2011-01-05  8:07     ` Jan Kiszka
2011-01-05  8:07       ` [Qemu-devel] " Jan Kiszka
2011-01-05  8:33       ` Huang Ying
2011-01-05  8:33         ` [Qemu-devel] " Huang Ying
2011-01-05  9:06         ` Jan Kiszka
2011-01-05  9:06           ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 13/21] kvm: Eliminate KVMState arguments Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 14/21] kvm: x86: Fix !CONFIG_KVM_PARA build Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 15/21] kvm: x86: Introduce kvmclock device to save/restore its state Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04 11:08   ` Glauber Costa
2011-01-04 11:08     ` [Qemu-devel] " Glauber Costa
2011-01-04 11:34     ` Jan Kiszka
2011-01-04 11:34       ` [Qemu-devel] " Jan Kiszka
2011-01-04 11:43       ` Glauber Costa
2011-01-04 11:43         ` [Qemu-devel] " Glauber Costa
2011-01-04 11:45         ` Jan Kiszka
2011-01-04 11:45           ` [Qemu-devel] " Jan Kiszka
2011-01-04 11:48           ` Glauber Costa
2011-01-04 11:48             ` [Qemu-devel] " Glauber Costa
2011-01-04  8:32 ` [PATCH v3 16/21] kvm: Drop smp_cpus argument from init functions Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 17/21] kvm: Consolidate must-have capability checks Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 18/21] kvm: x86: Rework identity map and TSS setup for larger BIOS sizes Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 19/21] kvm: Flush coalesced mmio buffer on IO window exits Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 20/21] kvm: Do not use qemu_fair_mutex Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-04  8:32 ` [PATCH v3 21/21] kvm: x86: Implicitly clear nmi_injected/pending on reset Jan Kiszka
2011-01-04  8:32   ` [Qemu-devel] " Jan Kiszka
2011-01-05 12:18 ` [PATCH 11.5/21] Synchronize VCPU states before reset Jan Kiszka
2011-01-05 12:18   ` [Qemu-devel] " Jan Kiszka
2011-01-05 12:28 ` Jan Kiszka [this message]
2011-01-05 12:28   ` [Qemu-devel] [PATCH 22/21] kvm: x86: Only read/write MSR_KVM_ASYNC_PF_EN if supported Jan Kiszka
2011-01-05 16:32 ` [PATCH v3 00/21] [uq/master] Prepare for more qemu-kvm merging Marcelo Tosatti
2011-01-05 16:32   ` [Qemu-devel] " Marcelo Tosatti

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=4D2463FA.6030404@web.de \
    --to=jan.kiszka@web.de \
    --cc=avi@redhat.com \
    --cc=gleb@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@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.