From owner-freebsd-questions Mon Nov 17 07:38:08 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id HAA18486 for questions-outgoing; Mon, 17 Nov 1997 07:38:08 -0800 (PST) (envelope-from owner-freebsd-questions) Received: from federation.addy.com (federation.addy.com [207.239.68.2]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id HAA18481 for ; Mon, 17 Nov 1997 07:38:06 -0800 (PST) (envelope-from fbsdlist@federation.addy.com) Received: from localhost (fbsdlist@localhost) by federation.addy.com (8.8.5/8.6.12) with SMTP id KAA19478 for ; Mon, 17 Nov 1997 10:38:05 -0500 (EST) Date: Mon, 17 Nov 1997 10:38:04 -0500 (EST) From: Cliff Addy To: questions@freebsd.org Subject: Cyrix 6x86 lockup bug Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-questions@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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?