Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>,
	kvm@vger.kernel.org, kexec@lists.infradead.org,
	Haren Myneni <hbabu@us.ibm.com>,
	Simon Horman <horms@verge.net.au>, Avi Kivity <avi@redhat.com>,
	Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [PATCH 0/2] kvm: disable virtualization on kdump
Date: Sun, 26 Oct 2008 19:08:53 -0700	[thread overview]
Message-ID: <m1bpx6bxhm.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <20081026213927.GF23893@blackpad> (Eduardo Habkost's message of "Sun, 26 Oct 2008 19:39:27 -0200")

Eduardo Habkost <ehabkost@redhat.com> writes:

> On Sun, Oct 26, 2008 at 05:07:45PM +0200, Avi Kivity wrote:
>> Eric W. Biederman wrote:
> <snip>
>>>>> Is it possible to disable vmx mode before we enable interrrupts in the
>>>>> kdump kernel?
>>>>>
>>>>>       
>>>> You need IPIs to disable vmx on smp.
>>>>     
>>>
>>> Thank you.  Reading your description and taking a quick look at
>>> the code in hardware disable it does not appear that there is
>>> anything needed (other than restricting ourselves it running
>>> uniprocessor in the kdump kernel) that needs to happen.
>>>
>>> Certainly it would be nice to have kvm disabled in hardware,
>>> but if you are proposing using the existing hardware disable
>>> I must say that the cure looks much worse than the disease.
>>>   
>>
>> Certainly you don't want to issue IPIs when kdump()ing.  It's not  
>> unlikely that the other cpus have interrupts permanently disabled.
>>
>> (we can use NMI IPIs, but that will likely be messy)
>
> NMI IPIs are already used on x86 native_machine_crash_shutdown(), so
> it wouldn't get more messy that it is currently. We just need to add
> another bit of code to the code that already runs on an NMI handler.

Yes.  And handling of those NMIs is best effort.  Nothing fails if
they don't actually run.

> My question is: is a notifier chain too much complexity for a sensible
> piece of code like that? If so, a compile-time hook on that point
> would be safer, but then it wouldn't work when KVM is compiled as a
> out-of-tree module.

Well we could fairly easily have a non-modular function that does.
if (vmx_present && vmx_enabled) {
   turn_off_vmx();
}

Which at first skim looks like it is all of about 10-20 machine
instructions.

There are a few real places where we need code on the kdump
path because there it is not possible to do the work any
other way.  However we need to think long and hard about
that because placing the code anywhere besides in a broken
and failing kernel is going to be easier to maintain and
more reliable.

I oppose an atomic notifier because it makes the review
essentially impossible.  If any module can come in and register
a notifier we can't know what code is running on that code
path and we can't be certain the code is safe in an abnormal
case to run on that code path.

Right now we only need to support vmx on the kdump path because
of what appears to be a hardware design bug.  Enabling vmx
apparently disables standard functions like an INIT IPI.  Things
like this do happen but they should be rare.

> Good point. My problem was a hang when booting the kdump kernel, but it
> may also cause problems later, when the kdump kernel reboots.

What was the cause of the hang when booting the kdump kernel?

Eric


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

  reply	other threads:[~2008-10-27  2:14 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-20 15:01 [PATCH 0/2] kvm: disable virtualization on kdump Eduardo Habkost
2008-10-20 15:01 ` [PATCH 1/2] kdump: crash-time CPU halt notifier interface Eduardo Habkost
2008-10-20 15:01 ` [PATCH 2/2] kvm: disable virtualization when halting CPUs on crash Eduardo Habkost
2008-10-22 23:28 ` [PATCH 0/2] kvm: disable virtualization on kdump Simon Horman
2008-10-23 19:41   ` Eduardo Habkost
2008-10-23 22:29     ` Simon Horman
2008-10-24  1:00       ` Eric W. Biederman
2008-10-26 12:49         ` Avi Kivity
2008-10-26 14:46           ` Eric W. Biederman
2008-10-26 15:07             ` Avi Kivity
2008-10-26 21:39               ` Eduardo Habkost
2008-10-27  2:08                 ` Eric W. Biederman [this message]
2008-10-27  9:13                   ` Avi Kivity
2008-10-27 12:28                     ` Eduardo Habkost
2008-10-27 14:02                       ` Avi Kivity
2008-10-27 17:32                         ` Eric W. Biederman
2008-10-28 19:45                           ` Eduardo Habkost
2008-10-28 20:13                             ` Eric W. Biederman
2008-10-29  9:41                               ` Avi Kivity
2008-10-29 14:54                                 ` Eric W. Biederman
2008-10-29 17:03                                   ` Avi Kivity
2008-10-30  1:33                                     ` Eric W. Biederman
2008-10-30  7:35                                       ` Chris Lalancette
2008-10-30  7:43                                         ` Avi Kivity
2008-10-30  7:52                                       ` Avi Kivity
2008-10-29  9:31                             ` Avi Kivity
2008-10-27 15:05                     ` Eric W. Biederman
2008-10-27 15:50                       ` Eduardo Habkost
2008-10-27  8:54                 ` Avi Kivity
2008-10-27 13:09                   ` Vivek Goyal
2008-10-27 14:04                     ` Avi Kivity
2008-10-29 20:10                     ` Eduardo Habkost
2008-10-29 20:29                       ` Avi Kivity
2008-10-29 21:05                       ` Vivek Goyal
2008-10-30  0:58                         ` Eric W. Biederman
2008-10-26 21:47               ` Eric W. Biederman
2008-10-27  8:59                 ` Avi Kivity
2008-10-27 15:02                   ` Eric W. Biederman
2008-10-27 15:38                     ` Eduardo Habkost
2008-10-26 12:46     ` Avi Kivity

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=m1bpx6bxhm.fsf@frodo.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@osdl.org \
    --cc=avi@redhat.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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox