Re: [Xen-devel] [PATCH 1/2] Xen acpi pad implement

From: Konrad Rzeszutek Wilk
Date: Wed Oct 31 2012 - 10:04:24 EST


On Tue, Oct 30, 2012 at 03:18:59PM +0000, Liu, Jinsong wrote:
> Konrad Rzeszutek Wilk wrote:
> >>> +config XEN_ACPI_PAD_STUB
> >>> + bool
> >>> + depends on XEN_DOM0 && X86_64 && ACPI
> >>> + default n
> >>> +
> >>
> >> This Kconfig is pointless, if CONFIG_XEN_ACPI_PAD_STUB = n, native
> >> pad would successfully registerred, and then mwait #UD (we would
> >> revert df88b2d96e36d9a9e325bfcd12eb45671cbbc937, right?). So xen
> >> stub logic should unconditionally built-in kernel.
> >
> >
> > Potentially. Keep in mind that there is no need to built this if the
> > kernel is not built with ACPI.
>
> Sure, 'obj-$(CONFIG_XEN_DOM0) +=' is enough.
> (XEN_DOM0 depends on ACPI).
>
> >>> +subsys_initcall(xen_acpi_pad_stub_init);
> >>
> >> I'm still confused. In this way there are xen-acpi-pad-stub.c and
> >> xen-acpi-pad.c, and you want to let xen-acpi-pad loaded as module,
> >> right? how can xen-acpi-pad logic work when it was insmoded?
> >
> > Via the register/unregister calls that this provides? Or does ACPI bus
> > drivers get immediately called once the call acpi_bus_register_driver?
>
> But when xen stub driver registerred, real xen pad ops has not been hooked to stub ops.
>
> >
> > Or can one 'poke' the 'add' and 'remove' calls so that once the "true"
> > PAD driver is loaded it will restart the ops->add call?
>
> I think we'd better not to use xen pad stub approach. Technically it's complicated, say, how to match xen_acpi_pad driver w/ pad device? when and how to invoke .add method? how to avoid native pad loading risk? etc. I didn't find its obivous advantages, so how about keep simpler approach?

OK. Lets go with that one for right now. The one thing I don't like about it is
that it is built-in. It would be so much better if it was a module, but I am just
not sure how to make that work with the acpi_pad. Unless the mwait CPUID capability
is not exported (so drop your patch 1 that reverts a commit).

Perhaps there is a way to make it a module/built-in with some Kconfig
magic options? Say if ACPI_PROCESSOR_AGGREGATOR is not set, then we can
make it a module. But if ACPI_PROCESSOR_AGGREGATOR=m|y then we do it
as built-in?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/