From owner-freebsd-smp Tue Dec 3 19:02:19 1996 Return-Path: owner-smp Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA01454 for smp-outgoing; Tue, 3 Dec 1996 19:02:19 -0800 (PST) Received: from spinner.DIALix.COM (root@spinner.DIALix.COM [192.203.228.67]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id TAA01416; Tue, 3 Dec 1996 19:02:10 -0800 (PST) Received: from spinner.DIALix.COM (peter@localhost.DIALix.oz.au [127.0.0.1]) by spinner.DIALix.COM (8.8.4/8.8.4) with ESMTP id LAA00443; Wed, 4 Dec 1996 11:02:06 +0800 (WST) Message-Id: <199612040302.LAA00443@spinner.DIALix.COM> To: Peter Wemm cc: freebsd-smp@freefall.freebsd.org Subject: Re: cvs commit: sys/i386/isa vector.s In-reply-to: Your message of "Tue, 03 Dec 1996 18:47:00 PST." <199612040247.SAA00731@freefall.freebsd.org> Date: Wed, 04 Dec 1996 11:02:06 +0800 From: Peter Wemm Sender: owner-smp@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Peter Wemm wrote: > peter 96/12/03 18:47:00 > > Modified: i386/isa vector.s > Log: > Fix IPI_INTR handler code. It was not setting %ds with the kernel > selector, so if it took an IPI while in user mode, it got a GPF when > trying to access kernel data. (%cs is set by the hardware) I'm not sure why this used to work before.. It should never have.. I somehow suspect that this might be somehow related to the SMP_AUTOSTART code that is now disabled. I suspect all the tests were done while it was unconditionally active. This might be a clue as to what was going wrong with the code.. It looks like %ds was always set to the kernel data segment selector, even while in user mode on both cpu's. This would have been rather bad if so.. I have no idea how this could have been caused though. Cheers, -Peter