From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: [PATCH]ACPI: re-enable mwait for xen cpuidle Date: Thu, 01 Apr 2010 22:40:35 -0700 Message-ID: <4BB58353.5000008@goop.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Wei, Gang" Cc: "xen-devel@lists.xensource.com" , Keir Fraser , "Yu, Ke" List-Id: xen-devel@lists.xenproject.org On 04/01/2010 07:38 PM, Wei, Gang wrote: > I suggest including this patch in Xen 4.0 release. It is quite straightforward, and make sure the better and widely equipped cpu idle entry method MWAIT is used by xen if available. > > BTW, can we consider re-open MWAIT freature for dom0 in xen hypervisor? We can discuss it post 4.0. > > Jimmy > > ACPI: re-enable mwait for xen cpuidle > > Xen hypervisor doesn't export mwait feature to dom0, but latest Linux kernel start to check this feature while initializing _PDC object. Bypass such check in pv-ops case to re-enable mwait for xen cpuidle. > Why not just set or clear the MWAIT feature flag in xen_cpuid? J > Signed-off-by: Wei Gang > Signed-off-by: Yu Ke > > diff --git a/arch/x86/kernel/acpi/processor.c b/arch/x86/kernel/acpi/processor.c > index 8c9526d..d88866c 100644 > --- a/arch/x86/kernel/acpi/processor.c > +++ b/arch/x86/kernel/acpi/processor.c > @@ -60,7 +60,7 @@ static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c) > /* > * If mwait/monitor is unsupported, C2/C3_FFH will be disabled > */ > - if (!cpu_has(c, X86_FEATURE_MWAIT)) > + if (!cpu_has(c, X86_FEATURE_MWAIT)&& !xen_initial_domain()) > buf[2]&= ~(ACPI_PDC_C_C2C3_FFH); > > obj->type = ACPI_TYPE_BUFFER; > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c > index 22baf4c..0a81637 100644 > --- a/drivers/acpi/processor_idle.c > +++ b/drivers/acpi/processor_idle.c > @@ -419,7 +419,8 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr) > cx.entry_method = ACPI_CSTATE_HALT; > snprintf(cx.desc, ACPI_CX_DESC_LEN, "ACPI HLT"); > } else { > - continue; > + if (!xen_initial_domain()) > + continue; > } > if (cx.type == ACPI_STATE_C1&& > (idle_halt || idle_nomwait)) { > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel >