From owner-freebsd-smp Thu May 10 8:55:14 2001 Delivered-To: freebsd-smp@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 189F937B422 for ; Thu, 10 May 2001 08:55:12 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f4AFrKG84555; Thu, 10 May 2001 08:53:20 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Thu, 10 May 2001 08:52:25 -0700 (PDT) From: John Baldwin To: Doug Rabson Subject: RE: smp_rendezvous Cc: smp@FreeBSD.org Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 10-May-01 Doug Rabson wrote: > It would be really useful to be able to use smp_rendezvous in both UP and > SMP kernels. The particular context I would like it for is in the AGP > driver. When the AGP driver changes the contents of the AGP aperture, it > needs to flush the processor caches (since it is changing the physical > memory map). Obviously it needs to flush all the processors in an SMP > system and the simplest way to do this is a rendezvous. > > Of course I could make the cache flushing conditional but that makes it > more difficult to compile it as a loadable module since we would like > loadable code to be SMP-agnostic. For TLB invalidates on the i386 we redefine the invltlb() to use a rendezvous in the SMP case. A solution for this case might be for the kernel to provide a cpu_cacheflush() or somesuch that DTRT in both the UP and SMP cases. This also keeps the agp driver from growing a large #ifdef of MD code in it's cache flush function. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message