From owner-freebsd-smp Fri Apr 25 11:54:38 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id LAA04327 for smp-outgoing; Fri, 25 Apr 1997 11:54:38 -0700 (PDT) Received: from Ilsa.StevesCafe.com (Ilsa.StevesCafe.com [205.168.119.129]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id LAA04322 for ; Fri, 25 Apr 1997 11:54:35 -0700 (PDT) Received: from Ilsa.StevesCafe.com (localhost [127.0.0.1]) by Ilsa.StevesCafe.com (8.8.5/8.8.5) with ESMTP id MAA08905; Fri, 25 Apr 1997 12:54:09 -0600 (MDT) Message-Id: <199704251854.MAA08905@Ilsa.StevesCafe.com> X-Mailer: exmh version 2.0gamma 1/27/96 From: Steve Passe To: Bruce Evans cc: peter@spinner.dialix.com, freebsd-smp@freebsd.org, nishio@caleche.kecl.ntt.co.jp Subject: Re: Tyan ATX1668 problem -- success In-reply-to: Your message of "Sat, 26 Apr 1997 04:35:09 +1000." <199704251835.EAA09113@godzilla.zeta.org.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 25 Apr 1997 12:54:09 -0600 Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Bruce, > >Now that it works I can remove the ipi_hits counter, am I correct in believing > >that the load of %ds with the kernel selector will still be necessary to > >address the apic[] for the EOI? > > No, you can access everything using %ss in assembler - you pay for loading > %ss for traps to inner privilege whether you want to or not. However, > prefixes may cost a cycle or two, so it is better to load %ds if you > want to do more than a few memory accesses. excuse my asm ignorance, what would this convert to with your suggested technique? _Xfastipi32: pushl %eax movl %cr3, %eax movl %eax, %cr3 pushl %ds movl $KDSEL,%eax movl %ax,%ds movl _apic_base, %eax movl $0, APIC_EOI(%eax) popl %ds popl %eax iret _apic_base is actually a set of memory-mapped registers in the local APIC of the CPU, NOT general memory. -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD