[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86, cpuidle: remove assertion on X86_FEATURE_TSC_RELIABLE
x86, cpuidle: remove assertion on X86_FEATURE_TSC_RELIABLE 23228:1329d99b4f16 disables deep cstate to avoid restoring tsc when tsc msr is not writtable on some old platform, which however also adds an assertion on X86_FEATURE_TSC_RELIABLE in cstate_restore_tsc. The two don't match as tsc writtable-ness has nothing to do with whether it's reliable. As long as Xen can use tsc as the time source and it's writable, it should be OK to continue using deep cstate with tsc save/restore. Also mark tsc as reliable for X86_FEATURE_CONSTANT_TSC. Without this fix, one of our platform hits the assertion which only has constant tsc feature. Signed-off-by: Kevin Tian <kevin.tian@xxxxxxxxx> diff -r 0c446850d85e xen/arch/x86/cpu/intel.c --- a/xen/arch/x86/cpu/intel.c Wed May 11 12:58:04 2011 +0100 +++ b/xen/arch/x86/cpu/intel.c Fri May 13 10:01:20 2011 +0800 @@ -221,8 +221,10 @@ if (c->x86 == 6) set_bit(X86_FEATURE_P3, c->x86_capability); if ((c->x86 == 0xf && c->x86_model >= 0x03) || - (c->x86 == 0x6 && c->x86_model >= 0x0e)) + (c->x86 == 0x6 && c->x86_model >= 0x0e)) { set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); + set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability); + } if (cpuid_edx(0x80000007) & (1u<<8)) { set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability); diff -r 0c446850d85e xen/arch/x86/time.c --- a/xen/arch/x86/time.c Wed May 11 12:58:04 2011 +0100 +++ b/xen/arch/x86/time.c Fri May 13 10:01:20 2011 +0800 @@ -686,8 +686,6 @@ if ( boot_cpu_has(X86_FEATURE_NONSTOP_TSC) ) return; - ASSERT(boot_cpu_has(X86_FEATURE_TSC_RELIABLE)); - write_tsc(stime2tsc(read_platform_stime())); } Attachment:
20100513_cpuidle_tsc_reliable.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |