Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Nov 1997 14:54:26 -0500 (EST)
From:      Cliff Addy <fbsdlist@federation.addy.com>
To:        freebsd-questions@FreeBSD.ORG
Subject:   Cyrix 6x86 lockup bug
Message-ID:  <Pine.BSF.3.95q.971121145255.16218B-100000@federation.addy.com>

next in thread | raw e-mail | index | archive | help
I posted this message at the beginning of the week, but I don't recall it
showing up and never saw an answer.  Please forgive if this is a
duplicate.

==========================================================================
Supposedly, the Cyrix CPUs suffer a similar bug to the Pentium F0 bug that
has been just been discovered.  It is exploited by locking the cpu into a
loop that contains the xchgl opcode.

"The exchange instruction (xchgl) on the 6x86 will lock the cpu bus and
effectively disable interrupts during its execution. It seems that the
combination of speculative execution and register renaming plus
out-of-order execution and the intelligent pipelines in the 6x86 will
prevent interrupt servicing during the execution of the movl and jmp
instructions. Consequently interrupts routines never get called and the
processor is effectively locked in a loop that runs in its cache line." 

According to a Linux web page (www.tux.org/~balsa/linux/cyrix/p11.html),
the problem can be prevented by setting the NO_LOCK bit in CCR1.  They do
this by using the command "set6x86 -p 0xc1 -s 0x10".

How can we do the same in FreeBSD?






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.971121145255.16218B-100000>