All of lore.kernel.org
 help / color / mirror / Atom feed
* Regression - Xen ACPI CPU hotplug processor causes the Xen ACPI P and C-states to stop working.
@ 2013-03-22 13:58 Konrad Rzeszutek Wilk
  0 siblings, 0 replies; only message in thread
From: Konrad Rzeszutek Wilk @ 2013-03-22 13:58 UTC (permalink / raw)
  To: jinsong.liu; +Cc: xen-devel


The reason is that the Xen CPU hotplug (xen-acpi-cpuhotplug.c)
registers itself as the "processor" type object. That means the
generic processor (processor_driver.c) stops working and it does
not call (acpi_processor_add) which populates the
         per_cpu(processors, pr->id) = pr;

structure. Previous to the population (acpi_processor_add) also calls
'acpi_processor_get_info' which does the job of finding the C-states and
figuring out PBLK address and all of that ends up in the 'pr' structure.

The 'processors->pr' is then used by Xen ACPI Processor (the one that
uploads C and P states to the hypervisor) to gather the data. Since it
is NULL, it skips the gathering of _PSD, _PSS, _PCT, etc and we never
end up uploading said data.

The end is that enabling the CONFIG_XEN_STUB means that xen-acpi-processor
is not working anymore.

This temporary patch:


diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 5a32232..67af155 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -182,7 +182,7 @@ config XEN_PRIVCMD
 
 config XEN_STUB
 	bool "Xen stub drivers"
-	depends on XEN && X86_64
+	depends on XEN && X86_64 && BROKEN
 	default n
 	help
 	  Allow kernel to install stub drivers, to reserve space for Xen drivers,

fixes the regression, but this problem needs to be fixed long-term.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-03-22 13:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-22 13:58 Regression - Xen ACPI CPU hotplug processor causes the Xen ACPI P and C-states to stop working Konrad Rzeszutek Wilk

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.