All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>,
	kvm@vger.kernel.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rjw@sisk.pl>,
	Haren Myneni <hbabu@us.ibm.com>,
	Simon Horman <horms@verge.net.au>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Ingo Molnar <mingo@elte.hu>, Andrey Borzenkov <arvidjaar@mail.ru>,
	mingo@redhat.com, Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [PATCH 08/16] x86: Emergency virtualization disable function
Date: Sun, 09 Nov 2008 13:23:14 +0200	[thread overview]
Message-ID: <4916C822.4080609@redhat.com> (raw)
In-Reply-To: <20081106174538.GU5247@blackpad>

Eduardo Habkost wrote:
> On Thu, Nov 06, 2008 at 12:30:51PM +0200, Avi Kivity wrote:
>   
>> Eric W. Biederman wrote:
>>     
>>>> If you want to be extra simple and safe, remove kvm from the equation.  Make the
>>>> disabling code part of kdump/emergency_restart and only rely on the convention
>>>> that cr3.vmxe == vmxon.
>>>>     
>>>>         
>>> Convention?
>>>   
>>>       
>> There is a de-facto convention supported by at least vmware and kvm.  If  
>> cr4.vmxe is 1, then we are in vmx operation.  If cr4.vmxe is 0, then we  
>> are not in vmx operation.  This allows us to determine whether we need  
>> to execute vmxoff without any APIs.
>>     
>
> I am just worried about the probing needed to make sure CR4 is available
> (and that the CR4.VMXE bit means what we expect it to mean),

That's cpu_has_kvm_support() in vmx.c.  Should compile to three 
instructions.

>  before we
> try to read it and check VMXE. The same for SVM and the MSRs we need to
> touch to disable SVM.
>   

That's has_svm() in svm.c; slightly longer but not any more dangerous.

> I prefer to reuse code that already exists on KVM and is working than
> adding new probing code that I won't be able to test on all hardware
> configurations.
>   

We could move the code to a header file, and so compile it both for kvm 
and for emergency_restart/kdump.

-- 
error compiling committee.c: too many arguments to function


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	Ingo Molnar <mingo@elte.hu>, Simon Horman <horms@verge.net.au>,
	Andrew Morton <akpm@osdl.org>, Vivek Goyal <vgoyal@redhat.com>,
	Haren Myneni <hbabu@us.ibm.com>,
	Andrey Borzenkov <arvidjaar@mail.ru>,
	mingo@redhat.com, "Rafael J. Wysocki" <rjw@sisk.pl>,
	kexec@lists.infradead.org, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 08/16] x86: Emergency virtualization disable function
Date: Sun, 09 Nov 2008 13:23:14 +0200	[thread overview]
Message-ID: <4916C822.4080609@redhat.com> (raw)
In-Reply-To: <20081106174538.GU5247@blackpad>

Eduardo Habkost wrote:
> On Thu, Nov 06, 2008 at 12:30:51PM +0200, Avi Kivity wrote:
>   
>> Eric W. Biederman wrote:
>>     
>>>> If you want to be extra simple and safe, remove kvm from the equation.  Make the
>>>> disabling code part of kdump/emergency_restart and only rely on the convention
>>>> that cr3.vmxe == vmxon.
>>>>     
>>>>         
>>> Convention?
>>>   
>>>       
>> There is a de-facto convention supported by at least vmware and kvm.  If  
>> cr4.vmxe is 1, then we are in vmx operation.  If cr4.vmxe is 0, then we  
>> are not in vmx operation.  This allows us to determine whether we need  
>> to execute vmxoff without any APIs.
>>     
>
> I am just worried about the probing needed to make sure CR4 is available
> (and that the CR4.VMXE bit means what we expect it to mean),

That's cpu_has_kvm_support() in vmx.c.  Should compile to three 
instructions.

>  before we
> try to read it and check VMXE. The same for SVM and the MSRs we need to
> touch to disable SVM.
>   

That's has_svm() in svm.c; slightly longer but not any more dangerous.

> I prefer to reuse code that already exists on KVM and is working than
> adding new probing code that I won't be able to test on all hardware
> configurations.
>   

We could move the code to a header file, and so compile it both for kvm 
and for emergency_restart/kdump.

-- 
error compiling committee.c: too many arguments to function


WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Eduardo Habkost <ehabkost-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Andrew Morton <akpm-3NddpPZAyC0@public.gmane.org>,
	kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org>,
	Haren Myneni <hbabu-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	Simon Horman <horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>,
	"Eric W. Biederman"
	<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>,
	Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>,
	Andrey Borzenkov <arvidjaar-JGs/UdohzUI@public.gmane.org>,
	mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 08/16] x86: Emergency virtualization disable function
Date: Sun, 09 Nov 2008 13:23:14 +0200	[thread overview]
Message-ID: <4916C822.4080609@redhat.com> (raw)
In-Reply-To: <20081106174538.GU5247@blackpad>

Eduardo Habkost wrote:
> On Thu, Nov 06, 2008 at 12:30:51PM +0200, Avi Kivity wrote:
>   
>> Eric W. Biederman wrote:
>>     
>>>> If you want to be extra simple and safe, remove kvm from the equation.  Make the
>>>> disabling code part of kdump/emergency_restart and only rely on the convention
>>>> that cr3.vmxe == vmxon.
>>>>     
>>>>         
>>> Convention?
>>>   
>>>       
>> There is a de-facto convention supported by at least vmware and kvm.  If  
>> cr4.vmxe is 1, then we are in vmx operation.  If cr4.vmxe is 0, then we  
>> are not in vmx operation.  This allows us to determine whether we need  
>> to execute vmxoff without any APIs.
>>     
>
> I am just worried about the probing needed to make sure CR4 is available
> (and that the CR4.VMXE bit means what we expect it to mean),

That's cpu_has_kvm_support() in vmx.c.  Should compile to three 
instructions.

>  before we
> try to read it and check VMXE. The same for SVM and the MSRs we need to
> touch to disable SVM.
>   

That's has_svm() in svm.c; slightly longer but not any more dangerous.

> I prefer to reuse code that already exists on KVM and is working than
> adding new probing code that I won't be able to test on all hardware
> configurations.
>   

We could move the code to a header file, and so compile it both for kvm 
and for emergency_restart/kdump.

-- 
error compiling committee.c: too many arguments to function

  reply	other threads:[~2008-11-09 11:23 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-04 14:52 [PATCH 00/14] x86: disable virt on kdump and emergency_restart Eduardo Habkost
2008-11-04 14:52 ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 01/16] x86 kdump: Extract kdump-specific code from crash_nmi_callback() Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 02/16] x86 kdump: Move crashing_cpu assignment to nmi_shootdown_cpus() Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 03/16] x86 kdump: Create kdump_nmi_shootdown_cpus() Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 04/16] x86 kdump: Make kdump_nmi_callback() a function ptr on crash_nmi_callback() Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 05/16] x86 kdump: Make nmi_shootdown_cpus() non-static Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 06/16] x86: Move nmi_shootdown_cpus() to reboot.c Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 07/16] x86: Make nmi_shootdown_cpus() available on !SMP and !X86_LOCAL_APIC Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 18:15   ` Eduardo Habkost
2008-11-04 18:15     ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 08/16] x86: Emergency virtualization disable function Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-05 17:33   ` Eric W. Biederman
2008-11-05 17:33     ` Eric W. Biederman
2008-11-05 17:52     ` Eduardo Habkost
2008-11-05 17:52       ` Eduardo Habkost
2008-11-05 17:52       ` Eduardo Habkost
2008-11-06  9:48       ` Avi Kivity
2008-11-06  9:48         ` Avi Kivity
2008-11-06 10:22         ` Eric W. Biederman
2008-11-06 10:22           ` Eric W. Biederman
2008-11-06 10:30           ` Avi Kivity
2008-11-06 10:30             ` Avi Kivity
2008-11-06 10:30             ` Avi Kivity
2008-11-06 17:45             ` Eduardo Habkost
2008-11-06 17:45               ` Eduardo Habkost
2008-11-06 17:45               ` Eduardo Habkost
2008-11-09 11:23               ` Avi Kivity [this message]
2008-11-09 11:23                 ` Avi Kivity
2008-11-09 11:23                 ` Avi Kivity
2008-11-04 14:52 ` [PATCH 09/16] kdump: Hook emergency_virt_disable() on crash shutdown code Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-05 14:41   ` Vivek Goyal
2008-11-05 14:41     ` Vivek Goyal
2008-11-05 14:41     ` Vivek Goyal
2008-11-05 15:07     ` Eduardo Habkost
2008-11-05 15:07       ` Eduardo Habkost
2008-11-05 15:07       ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 10/16] x86: disable virtualization on all CPUs if needed, on emergency_restart Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 11/16] kvm_x86_ops: crash_hardware_disable() operation Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 12/16] kvm: svm: set crash_hardware_disable to svm_hardware_disable Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 13/16] kvm: vmx: crash_hardware_disable function Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 14/16] kvmx: x86: set kvm_x86_ops earlier on kvm_arch_init() Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 14:52 ` [PATCH 15/16] kvm: x86: set kdump virt_disable function on initialization Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-05 17:26   ` Eric W. Biederman
2008-11-05 17:26     ` Eric W. Biederman
2008-11-05 17:50     ` Eduardo Habkost
2008-11-05 17:50       ` Eduardo Habkost
2008-11-05 17:50       ` Eduardo Habkost
2008-11-06  9:44     ` Avi Kivity
2008-11-06  9:44       ` Avi Kivity
2008-11-06  9:44       ` Avi Kivity
2008-11-04 14:52 ` [PATCH 16/16] Revert "x86: default to reboot via ACPI" Eduardo Habkost
2008-11-04 14:52   ` Eduardo Habkost
2008-11-04 16:54 ` [PATCH 00/14] x86: disable virt on kdump and emergency_restart Avi Kivity
2008-11-04 16:54   ` Avi Kivity
2008-11-04 16:54   ` Avi Kivity
2008-11-05 14:44   ` Vivek Goyal
2008-11-05 14:44     ` Vivek Goyal
2008-11-05 15:04     ` Eduardo Habkost
2008-11-05 15:04       ` Eduardo Habkost
2008-11-06  9:52     ` Avi Kivity
2008-11-06  9:52       ` Avi Kivity
2008-11-05 16:33   ` Ingo Molnar
2008-11-05 16:33     ` Ingo Molnar
2008-11-05 16:33     ` Ingo Molnar
2008-11-06  9:49     ` Avi Kivity
2008-11-06  9:49       ` Avi Kivity
2008-11-06  9:49       ` Avi Kivity
2008-11-06 12:28       ` Eduardo Habkost
2008-11-06 12:28         ` Eduardo Habkost
2008-11-06 12:28         ` Eduardo Habkost

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=4916C822.4080609@redhat.com \
    --to=avi@redhat.com \
    --cc=akpm@osdl.org \
    --cc=arvidjaar@mail.ru \
    --cc=ebiederm@xmission.com \
    --cc=ehabkost@redhat.com \
    --cc=hbabu@us.ibm.com \
    --cc=horms@verge.net.au \
    --cc=kexec@lists.infradead.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=rjw@sisk.pl \
    --cc=vgoyal@redhat.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.