Re: [PATCH] x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is read-only

2014-09-24 Thread Thomas Gleixner
On Mon, 22 Sep 2014, Paolo Bonzini wrote:

 On x86_64, kernel text mappings are mapped read-only with CONFIG_DEBUG_RODATA.
 In that case, KVM will fail to patch VMCALL instructions to VMMCALL
 as required on AMD processors.

 The failure mode is currently a divide-by-zero exception, which obviously
 is a KVM bug that has to be fixed.  However, picking the right instruction
 between VMCALL and VMMCALL will be faster and will help if you cannot upgrade
 the hypervisor.

 -/* This instruction is vmcall.  On non-VT architectures, it will generate a
 - * trap that we will then rewrite to the appropriate instruction.
 +#ifdef CONFIG_DEBUG_RODATA
 +#define KVM_HYPERCALL \
 +ALTERNATIVE(.byte 0x0f,0x01,0xc1, .byte 0x0f,0x01,0xd9, 
 X86_FEATURE_VMMCALL)

If we can do it via a feature bit and alternatives, then why do you
want to patch it manually if CONFIG_DEBUG_RODATA=n?

Just because more #ifdeffery makes the code more readable?

Thanks,

tglx
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is read-only

2014-09-23 Thread Paolo Bonzini
Il 22/09/2014 21:43, Borislav Petkov ha scritto:
  On x86_64, kernel text mappings are mapped read-only with 
  CONFIG_DEBUG_RODATA.
 Hmm, that depends on DEBUG_KERNEL.
 
 I think you're actually talking about distro kernels which enable
 CONFIG_DEBUG_RODATA, right?

This is for guest kernels, so it's not necessarily distro kernels.
Anyone who compiles their kernel with CONFIG_DEBUG_RODATA + PV spinlocks
would not be able to run it on AMD.

Paolo
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is read-only

2014-09-23 Thread Borislav Petkov
On Tue, Sep 23, 2014 at 10:00:12AM +0200, Paolo Bonzini wrote:
 Il 22/09/2014 21:43, Borislav Petkov ha scritto:
   On x86_64, kernel text mappings are mapped read-only with 
   CONFIG_DEBUG_RODATA.
  Hmm, that depends on DEBUG_KERNEL.
  
  I think you're actually talking about distro kernels which enable
  CONFIG_DEBUG_RODATA, right?
 
 This is for guest kernels, so it's not necessarily distro kernels.
 Anyone who compiles their kernel with CONFIG_DEBUG_RODATA + PV spinlocks
 would not be able to run it on AMD.

I see. Yeah, so the patch makes sense to me:

Acked-by: Borislav Petkov b...@suse.de

Thanks.

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is read-only

2014-09-22 Thread Borislav Petkov
On Mon, Sep 22, 2014 at 01:17:48PM +0200, Paolo Bonzini wrote:
 On x86_64, kernel text mappings are mapped read-only with CONFIG_DEBUG_RODATA.

Hmm, that depends on DEBUG_KERNEL.

I think you're actually talking about distro kernels which enable
CONFIG_DEBUG_RODATA, right?

-- 
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html