[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5 of 6] unplug emulated devices
On Thu, Apr 22, 2010 at 04:16:50PM +0100, Stefano Stabellini wrote: > Hi all, > this patch adds a xen_unplug command line option to the kernel to unplug > xen emulated devices. For those folks who don't understand the pain^H^H^Htransition from emulated device to a PV device, can you do a more detailed writeup? Why don't we want this be enabled by default? Perhaps you want to make the parameter only parse the disable option - devices which we _dont_ want to be unplugged. So paramter name would 'xen_keep_plugged='. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > > --- > arch/x86/xen/enlighten.c | 30 +++++++++++++++++++++++++++++- > 1 files changed, 29 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > index 2ce2da1..7acb130 100644 > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -37,6 +37,7 @@ > #include <xen/interface/memory.h> > #include <xen/interface/hvm/hvm_op.h> > #include <xen/interface/hvm/params.h> > +#include <xen/interface/platform_pci.h> > #include <xen/features.h> > #include <xen/page.h> > #include <xen/hvm.h> > @@ -86,6 +87,7 @@ struct shared_info xen_dummy_shared_info; > void *xen_initial_gdt; > > int xen_have_vector_callback; > +int unplug; > > /* > * Point at some empty memory to start with. We map the real shared_info > @@ -1389,9 +1391,35 @@ void __init xen_guest_init(void) > x86_platform_ipi_callback = do_hvm_pv_evtchn_intr; > xen_have_vector_callback = 1; > } > - > + if (unplug) { > + /* unplug emulated devices */ > + outw(UNPLUG_ALL, XEN_IOPORT_UNPLUG); > + } > have_vcpu_info_placement = 0; > x86_init.irqs.intr_init = xen_init_IRQ; > machine_ops = xen_machine_ops; > } > > +static int __init parse_unplug(char *arg) > +{ > + char *p, *q; > + > + for (p = arg; p; p = q) { > + q = strchr(arg, ','); > + if (q) > + *q++ = '\0'; > + if (!strcmp(p, "all")) > + unplug |= UNPLUG_ALL; > + else if (!strcmp(p, "ide-disks")) > + unplug |= UNPLUG_ALL_IDE_DISKS; > + else if (!strcmp(p, "aux-ide-disks")) > + unplug |= UNPLUG_AUX_IDE_DISKS; > + else if (!strcmp(p, "nics")) > + unplug |= UNPLUG_ALL_NICS; > + else > + printk(KERN_WARNING "unrecognised option '%s' " > + "in module parameter 'dev_unplug'\n", p); > + } > + return 0; > +} > +early_param("xen_unplug", parse_unplug); > -- > 1.5.4.3 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |