Re: Andi, you broke my laptop :-)

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

 



Andy, Pete, this patch also causes our test machines to hang hard during boot.
x86_64 smp kernel, single cpu Athlon 64 machine,
cpuinfo below.

Benny

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 79
model name      : AMD Athlon(tm) 64 Processor 3800+
stepping        : 2
cpu MHz         : 2412.397
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow up pni cx16 lahf_lm svm cr8_legacy
bogomips        : 4828.89
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

Pete Zaitcev <[email protected]> wrote:
> 
> Hi, Andi:
> 
> The attached patch (actually, git show output) makes my Dell 1501 to hang
> on boot. Sorry, I have no clue why... The culprit is found with git bisect.
> But yes, it's an AMD MK-36. I use an x86_64 kernel. It is 100% reproducible.
> 
> Cheers,
> -- Pete
> 
> commit c5bcb5635a03da3158f121ae20ccbbf72b4fc62a
> Author: Andi Kleen <[email protected]>
> Date:   Wed May 2 19:27:21 2007 +0200
> 
>     [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible
>     
>     RDTSCP is already synchronous and doesn't need an explicit CPUID.
>     This is a little faster and more importantly avoids VMEXITs on Hypervisors.
>     
>     Original patch from Joerg Roedel, but reworked by AK
>     Also includes miscompilation fix by Eric Biederman
>     
>     Cc: "Joerg Roedel" <[email protected]>
>     
>     Signed-off-by: Andi Kleen <[email protected]>
> 
> diff --git a/include/asm-i386/tsc.h b/include/asm-i386/tsc.h
> index 0181f9d..3f3c1fa 100644
> --- a/include/asm-i386/tsc.h
> +++ b/include/asm-i386/tsc.h
> @@ -38,6 +38,15 @@ static __always_inline cycles_t get_cycles_sync(void)
>  	unsigned eax;
>  
>  	/*
> +  	 * Use RDTSCP if possible; it is guaranteed to be synchronous
> + 	 * and doesn't cause a VMEXIT on Hypervisors
> +	 */
> +	alternative_io(ASM_NOP3, ".byte 0x0f,0x01,0xf9", X86_FEATURE_RDTSCP,
> +			 	 "=A" (ret), "0" (0ULL) : "ecx", "memory");
> +	if (ret)
> +		return ret;
> +
> +	/*
>  	 * Don't do an additional sync on CPUs where we know
>  	 * RDTSC is already synchronous:
>  	 */
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux