Re: Pentium (and Cyrix) DEATH in user-mode

Mike Jagdis (mike@roan.co.uk)
Mon, 10 Nov 1997 11:54:51 +0000 (GMT/BST)


On Sun, 9 Nov 1997, Andre Derrick Balsa wrote:

> Thanks for your feedback. Meanwhile I have tested my 6x86MX rev 1.3 and
> I can confirm that it has the same problem as the 6x86L and your rev 1.7
> 6x86. So it's a family problem ;-)
>
> Note that the 6x86 does not stop like the Pentium; it goes into an
> infinite loop. The Intel part dies, the Cyrix goes into a coma...

That's pipelining for you :-). By the time the first xchg has started
on the write part of its locked cycle the pipeline has already
predicted the branch (maybe no the first time but certainly the
second) and queued the locked read to the memory interface logic.
Now I suspect that the memory glue ought to force one or more
idle cycles between two locked accesses but instead it just happily
steams ahead. With no unlocked time in between there is no chance
to get an interrupt in anywhere and the only way to stop the
processor looping is to reset it. I guess someone should tell
Cyrix so they can fix it _before_ OpenPIC becomes a reality and
we need locked cycles :-).

> > FWIW, the Mike
> > Jagdis patch claims this should be a useful performance-enhancing feature
> > to have on all the time anyway (although since it wasn't working, I guess
> > it wasn't tested very well).

Tested... Hmmm, now where's that dictionary gone...

> Isn't it a lot simpler to just add a line to an rc.cyrix script?

Yes, but that doesn't fix it for the general Joe User case. Maybe
a distribution could put it there by default but how many would
know _why_ it was needed and how many would even notice if
some wan... er, bast..., er fellow sysop took it out? The kernel
should be _safe_ as far as possible. It shouldn't rely on external
operations to make it safe later.

Most of the code in head.S is needed to recognise the Cyrix type
and stepping anyway. The enabling of NO_LOCK (for non-SMP or
no. CPUs == 1) is trivial (if the code is right!).

Mike

-- 
.----------------------------------------------------------------------.
|  Mike Jagdis                  |  Internet:  mailto:mike@roan.co.uk   |
|  Roan Technology Ltd.         |                                      |
|  54A Peach Street, Wokingham  |  Telephone:  +44 118 989 0403        |
|  RG40 1XG, ENGLAND            |  Fax:        +44 118 989 1195        |
`----------------------------------------------------------------------'