Re: Sledgehammer fix didn't cut it...

Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 24 Aug 1998 13:48:38 +0100 (BST)


> The TSC in the Cyrix 6x86MX and MII CPUs is stopped when the CPU is Halted, if
> the Suspend-on-Halt feature (unique to Cyrix CPUs) is enabled.

[Not totally. The AMD K5 has this facility accidentally, as does a Step 0
C6 (as you note below)

> This causes a division overflow in do_fast_gettimeoffset(), in
> /arch/i386/kernel/time.c.

> I was just told your solution doesn't work, because time_init() is called
> before setup.c, so do_fast is used all the same, and one still gets the oops.
> :-(

See the AMD K5 note on the jobs list. Its the same problem. The workaround
would work (although the wrong answer) if you re-ordered them. The TSC
is far too useful to disable.

> 2) I have proposed a workaround that works, and also works for the Centaur C6
> step 0 which has an identical problem.
(and AMD K5)

> It actually halves the execution time of do_fast_gettimeoffset() (which you
> would describe as a "100% performance increase"), and solves other
> miscellaneous problems with the present code.

The only reason I didnt put this in 2.0.36pre6 was in case of unexpected
suprises since the 2.0.3x code is bad but works.

> BTW this is my last attempt to solve this problem before 2.2 ships.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html