2006-09-20 21:40:16

by Toyo Abe

[permalink] [raw]
Subject: [PATCH for 2.4] x86_64: Fix missing delay when the TSC counter just overflowed

I'd seen a problem that *delay functions return in too short delay.
It happens when the lower 32bit of TSC counter is overflowed.
This patch fixes the problem. This is back-port of Andi Kleen's
2.6 fix.

http://www.kernel.org/git/?p=linux/kernel/git/tglx/history.git;a=commit;h=6c51e28ffbbebf49437ec63ac4f9e385d60827e5

Signed-off-by: Toyo Abe <[email protected]>

---

arch/x86_64/lib/delay.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86_64/lib/delay.c b/arch/x86_64/lib/delay.c
index cc845d2..91345ee 100644
--- a/arch/x86_64/lib/delay.c
+++ b/arch/x86_64/lib/delay.c
@@ -19,7 +19,7 @@ #endif

void __delay(unsigned long loops)
{
- unsigned long bclock, now;
+ unsigned bclock, now;

rdtscl(bclock);
do


2006-09-20 21:46:19

by Willy Tarreau

[permalink] [raw]
Subject: Re: [PATCH for 2.4] x86_64: Fix missing delay when the TSC counter just overflowed

On Wed, Sep 20, 2006 at 02:43:54PM -0700, Toyo Abe wrote:
> I'd seen a problem that *delay functions return in too short delay.
> It happens when the lower 32bit of TSC counter is overflowed.
> This patch fixes the problem. This is back-port of Andi Kleen's
> 2.6 fix.
>
> http://www.kernel.org/git/?p=linux/kernel/git/tglx/history.git;a=commit;h=6c51e28ffbbebf49437ec63ac4f9e385d60827e5
>
> Signed-off-by: Toyo Abe <[email protected]>
>
> ---
>
> arch/x86_64/lib/delay.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86_64/lib/delay.c b/arch/x86_64/lib/delay.c
> index cc845d2..91345ee 100644
> --- a/arch/x86_64/lib/delay.c
> +++ b/arch/x86_64/lib/delay.c
> @@ -19,7 +19,7 @@ #endif
>
> void __delay(unsigned long loops)
> {
> - unsigned long bclock, now;
> + unsigned bclock, now;
>
> rdtscl(bclock);
> do

Queued.

Thanks Toyo,
Willy