[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH]ACPI: re-enable mwait for xen cpuidle



Here is the alternative patch you expected. 

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. Modify xen_cpuid to 
re-enable mwait for xen cpuidle.

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index c3e8bff..565244f 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -189,6 +189,8 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
        unsigned maskebx = ~0;
        unsigned maskecx = ~0;
        unsigned maskedx = ~0;
+       unsigned setecx  =  0;
+       unsigned setedx  =  0;
 
        /*
         * Mask out inconvenient features, to try and disable as many
@@ -198,6 +200,12 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
        case 0x1:
                maskecx = cpuid_leaf1_ecx_mask;
                maskedx = cpuid_leaf1_edx_mask;
+               setecx  = 1 << (X86_FEATURE_MWAIT % 32);
+               break;
+
+       case 0x5: /* MWAIT INFO */
+               setecx  = 0x3; /* EXTENSIONS_SUPPORTED | INTERRUPT_BREAK */
+               setedx  = ~0;
                break;
 
        case 0xb:
@@ -220,6 +228,8 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
        *bx &= maskebx;
        *cx &= maskecx;
        *dx &= maskedx;
+       *cx |= setecx;
+       *dx |= setedx;
 }
 
 static __init void xen_init_cpuid_mask(void)

On Friday, 2010-4-2 2:33 PM, Wei, Gang wrote:
> On Friday, 2010-4-2 1:41 PM, Jeremy Fitzhardinge wrote:
>> 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?
> 
> Yes, you pointed out another approach in dom0 side which has similar
> effect as re-open MWAIT feature for dom0 in xen. I am not sure
> whether exposing the MWAIT feature to whole dom0 kernel is ok. My way
> is just to narrow the impact.   
> 
> Jimmy

Attachment: re-enable-mwait_pv-ops-dom0-v2.patch
Description: re-enable-mwait_pv-ops-dom0-v2.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.