All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.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: Mon, 27 Oct 2008 13:38:50 -0200	[thread overview]
Message-ID: <20081027153850.GL23893@blackpad> (raw)
In-Reply-To: <m163neaxo8.fsf@frodo.ebiederm.org>

On Mon, Oct 27, 2008 at 08:02:31AM -0700, Eric W. Biederman wrote:
> Avi Kivity <avi@redhat.com> writes:
> 
> > Eric W. Biederman wrote:
> >
> > We've observed on some machines that keyboard controller reset didn't work, and
> > that the fallback to triple-fault asserted INIT and not RESET (and that this
> > INIT was blocked, hanging the machine).  Switching to acpi reset worked on some
> > machines, but not all.  Either acpi reset was not implemented on the failing
> > machines, or it was wired to INIT and not RESET.
> 
> Right.  INIT does not reset things like the MTRRs, I had forgotten
> that distinction.
> 
> Frequently the firmware when it regains control at 0xffffffff0
> asserts reset, but if we can't get there.  Ouch!
> 
> 
> > Since we already have NMI IPIs, we could disable vmx there.  If it is done
> > unconditionally and without notifiers, there is no chance of having unreviewed
> > surprises sneaking in.
> 
> Sounds good to me.

The problem here is that we can't disable it unconditionally,
so we need to either hack into #UD,  or track on which CPUs it is
enabled. But tracking on which CPUs it is enabled is exactly what KVM
hardware_enable()/hardware_disable() do.

To avoid hacking into #UD only for that, I was being inclined to simply
add core code to track on which CPUs vmx is enabled. But just calling
back into KVM doesn't look too bad, as long as the callback does only
what is strictly necessary. It looks a bit better than moving kvm code
to the core, and looks simple enough to be better than hacking #UD.

Maybe we could have a simple virt-specific callback pointer instead of
a whole notifier chain?

-- 
Eduardo

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

WARNING: multiple messages have this Message-ID (diff)
From: Eduardo Habkost <ehabkost-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: "Eric W. Biederman" <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Cc: Andrew Morton <akpm-3NddpPZAyC0@public.gmane.org>,
	kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Haren Myneni <hbabu-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	Simon Horman <horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>,
	Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 0/2] kvm: disable virtualization on kdump
Date: Mon, 27 Oct 2008 13:38:50 -0200	[thread overview]
Message-ID: <20081027153850.GL23893@blackpad> (raw)
In-Reply-To: <m163neaxo8.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>

On Mon, Oct 27, 2008 at 08:02:31AM -0700, Eric W. Biederman wrote:
> Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> writes:
> 
> > Eric W. Biederman wrote:
> >
> > We've observed on some machines that keyboard controller reset didn't work, and
> > that the fallback to triple-fault asserted INIT and not RESET (and that this
> > INIT was blocked, hanging the machine).  Switching to acpi reset worked on some
> > machines, but not all.  Either acpi reset was not implemented on the failing
> > machines, or it was wired to INIT and not RESET.
> 
> Right.  INIT does not reset things like the MTRRs, I had forgotten
> that distinction.
> 
> Frequently the firmware when it regains control at 0xffffffff0
> asserts reset, but if we can't get there.  Ouch!
> 
> 
> > Since we already have NMI IPIs, we could disable vmx there.  If it is done
> > unconditionally and without notifiers, there is no chance of having unreviewed
> > surprises sneaking in.
> 
> Sounds good to me.

The problem here is that we can't disable it unconditionally,
so we need to either hack into #UD,  or track on which CPUs it is
enabled. But tracking on which CPUs it is enabled is exactly what KVM
hardware_enable()/hardware_disable() do.

To avoid hacking into #UD only for that, I was being inclined to simply
add core code to track on which CPUs vmx is enabled. But just calling
back into KVM doesn't look too bad, as long as the callback does only
what is strictly necessary. It looks a bit better than moving kvm code
to the core, and looks simple enough to be better than hacking #UD.

Maybe we could have a simple virt-specific callback pointer instead of
a whole notifier chain?

-- 
Eduardo

  reply	other threads:[~2008-10-27 15:39 UTC|newest]

Thread overview: 80+ 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 ` Eduardo Habkost
2008-10-20 15:01 ` [PATCH 1/2] kdump: crash-time CPU halt notifier interface Eduardo Habkost
2008-10-20 15:01   ` Eduardo Habkost
2008-10-20 15:01 ` [PATCH 2/2] kvm: disable virtualization when halting CPUs on crash Eduardo Habkost
2008-10-20 15:01   ` Eduardo Habkost
2008-10-22 23:28 ` [PATCH 0/2] kvm: disable virtualization on kdump Simon Horman
2008-10-22 23:28   ` Simon Horman
2008-10-23 19:41   ` Eduardo Habkost
2008-10-23 19:41     ` Eduardo Habkost
2008-10-23 22:29     ` Simon Horman
2008-10-23 22:29       ` Simon Horman
2008-10-24  1:00       ` Eric W. Biederman
2008-10-24  1:00         ` Eric W. Biederman
2008-10-26 12:49         ` Avi Kivity
2008-10-26 12:49           ` Avi Kivity
2008-10-26 14:46           ` Eric W. Biederman
2008-10-26 14:46             ` Eric W. Biederman
2008-10-26 15:07             ` Avi Kivity
2008-10-26 15:07               ` Avi Kivity
2008-10-26 21:39               ` Eduardo Habkost
2008-10-26 21:39                 ` Eduardo Habkost
2008-10-27  2:08                 ` Eric W. Biederman
2008-10-27  2:08                   ` Eric W. Biederman
2008-10-27  9:13                   ` Avi Kivity
2008-10-27  9:13                     ` Avi Kivity
2008-10-27 12:28                     ` Eduardo Habkost
2008-10-27 12:28                       ` Eduardo Habkost
2008-10-27 14:02                       ` Avi Kivity
2008-10-27 14:02                         ` Avi Kivity
2008-10-27 17:32                         ` Eric W. Biederman
2008-10-27 17:32                           ` Eric W. Biederman
2008-10-28 19:45                           ` Eduardo Habkost
2008-10-28 19:45                             ` Eduardo Habkost
2008-10-28 20:13                             ` Eric W. Biederman
2008-10-28 20:13                               ` Eric W. Biederman
2008-10-29  9:41                               ` Avi Kivity
2008-10-29  9:41                                 ` Avi Kivity
2008-10-29 14:54                                 ` Eric W. Biederman
2008-10-29 14:54                                   ` Eric W. Biederman
2008-10-29 17:03                                   ` Avi Kivity
2008-10-29 17:03                                     ` Avi Kivity
2008-10-30  1:33                                     ` Eric W. Biederman
2008-10-30  1:33                                       ` Eric W. Biederman
2008-10-30  7:35                                       ` Chris Lalancette
2008-10-30  7:35                                         ` Chris Lalancette
2008-10-30  7:43                                         ` Avi Kivity
2008-10-30  7:43                                           ` Avi Kivity
2008-10-30  7:52                                       ` Avi Kivity
2008-10-30  7:52                                         ` Avi Kivity
2008-10-29  9:31                             ` Avi Kivity
2008-10-29  9:31                               ` Avi Kivity
2008-10-27 15:05                     ` Eric W. Biederman
2008-10-27 15:05                       ` Eric W. Biederman
2008-10-27 15:50                       ` Eduardo Habkost
2008-10-27 15:50                         ` Eduardo Habkost
2008-10-27  8:54                 ` Avi Kivity
2008-10-27  8:54                   ` Avi Kivity
2008-10-27 13:09                   ` Vivek Goyal
2008-10-27 13:09                     ` Vivek Goyal
2008-10-27 14:04                     ` Avi Kivity
2008-10-27 14:04                       ` Avi Kivity
2008-10-29 20:10                     ` Eduardo Habkost
2008-10-29 20:10                       ` Eduardo Habkost
2008-10-29 20:29                       ` Avi Kivity
2008-10-29 20:29                         ` Avi Kivity
2008-10-29 21:05                       ` Vivek Goyal
2008-10-29 21:05                         ` Vivek Goyal
2008-10-30  0:58                         ` Eric W. Biederman
2008-10-30  0:58                           ` Eric W. Biederman
2008-10-26 21:47               ` Eric W. Biederman
2008-10-26 21:47                 ` Eric W. Biederman
2008-10-27  8:59                 ` Avi Kivity
2008-10-27  8:59                   ` Avi Kivity
2008-10-27 15:02                   ` Eric W. Biederman
2008-10-27 15:02                     ` Eric W. Biederman
2008-10-27 15:38                     ` Eduardo Habkost [this message]
2008-10-27 15:38                       ` Eduardo Habkost
2008-10-26 12:46     ` Avi Kivity
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=20081027153850.GL23893@blackpad \
    --to=ehabkost@redhat.com \
    --cc=akpm@osdl.org \
    --cc=avi@redhat.com \
    --cc=ebiederm@xmission.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 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.