On Wed 2008-11-05 17:56:52, Eduardo Habkost wrote: > This patch adds an interface to set a function that can be used to > disable virtualization extensions on the CPU on emergency cases, such > as on kdump or emergency reboot. > > The function will be set by code that enables virtualization extensions > on the CPUs (i.e. KVM), and should do the very least to disable virt > extensions on the CPU where it is being called. > > The functions that set the function pointer uses RCU synchronization, > just in case the crash NMI is triggered while KVM is unloading. > > We can't just use the same notifiers used at reboot time (that are used > by non-crash-dump kexec), because at crash time some CPUs may have IRQs > disabled, so we can't use IPIs. The crash shutdown code use NMIs to tell > the other CPUs to be halted, so the notifier call will be hooked into > the CPU halting code that is on the crash shutdown NMI handler. > > [v2: drop 'unsigned int cpu' arg from function] > [v3: make emergency_virt_disable() non-static] > [v4: add a config option for it: CPU_VIRT_EXTENSIONS] > [v5: add has_virt_extensions() function] > [v6: don't define the registering functions if CPU_VIRT_EXTENSIONS is > not enabled] > [v7: use EXPORT_SYMBOL_GPL] > > --- /dev/null > +++ b/arch/x86/kernel/virtext.c > @@ -0,0 +1,89 @@ > +/* Core CPU virtualization extensions handling > + * > + * This should carry the code for handling CPU virtualization extensions > + * that needs to live in the kernel core. > + * > + * Author: Eduardo Habkost <ehabkost at redhat.com> > + * > + * Copyright (C) 2008, Red Hat Inc. > + */ GPL? -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html