[<prev] [next>] [day] [month] [year] [list]
Message-ID: <4642F018.7020902@panasas.com>
Date: Thu, 10 May 2007 13:12:40 +0300
From: Benny Halevy <bhalevy@...asas.com>
To: Pete Zaitcev <zaitcev@...hat.com>, Andi Kleen <ak@...e.de>
CC: linux-kernel@...r.kernel.org
Subject: Re: Andi, you broke my laptop :-)
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 <zaitcev@...hat.com> 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 <ak@...e.de>
> 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" <joerg.roedel@....com>
>
> Signed-off-by: Andi Kleen <ak@...e.de>
>
> 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 majordomo@...r.kernel.org
> 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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists