From owner-freebsd-smp Tue Jun 24 02:10:27 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id CAA04920 for smp-outgoing; Tue, 24 Jun 1997 02:10:27 -0700 (PDT) Received: from gw.itfs.nsk.su (ns.nsk.ru [193.124.36.33]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id CAA04912 for ; Tue, 24 Jun 1997 02:10:22 -0700 (PDT) Received: from itfs.UUCP (uucp@localhost) by gw.itfs.nsk.su (8.6.12/8.6.12) with UUCP id QAA26400 for smp@freebsd.org; Tue, 24 Jun 1997 16:10:19 +0700 Received: by itfs.nsk.su; Tue, 24 Jun 97 16:20:49 +0700 (NST) Received: (from daemon@localhost) by news.itfs.nsk.su (8.7.5/8.6.12) id PAA23468; Tue, 24 Jun 1997 15:52:38 +0700 (NSD) From: nnd@itfs.nsk.su To: smp@freebsd.org Subject: Re: SMP_PRIVPAGES Date: 24 Jun 1997 08:52:37 GMT Message-ID: <5oo1sl$mdv@news.itfs.nsk.su> References: <199706232018.OAA07315@Ilsa.StevesCafe.com> Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Steve Passe wrote: > Peter has committed the code for enabling SMP_PRIVPAGES. Not that it > is automatic, ie you don't need to add the option to your config file. > I successfully used it to "make world" with -current as of earlier this > morning. > Thanx, Peter! I also make world and make kernel with this code and after that discover that famous 'dd if=/dev/zero of=/dev/null...' bencmark shows even smaller results than previous SMP-kernel. After that I've decide to try the next patch on /sys/i386/isa/npx.c: --- npx.c Tue Jun 24 14:42:03 1997 +++ npx.c.orig Tue Jun 24 09:02:56 1997 @@ -413,7 +413,7 @@ } npxinit(__INITIAL_NPXCW__); -#if defined(I586_CPU) +#if defined(I586_CPU) && !defined(SMP) /* FPU not working under SMP yet */ if (cpu_class == CPUCLASS_586 && npx_ex16) { if (!(dvp->id_flags & NPX_DISABLE_I586_OPTIMIZED_BCOPY)) { and ... this is a result: (before my patch) dd if=/dev/zero of=/dev/null bs=1m count=1000 1000+0 records in 1000+0 records out 1048576000 bytes transferred in 21.219967 secs (49414591 bytes/sec) (and after it) dd if=/dev/zero of=/dev/null bs=1m count=1000 1000+0 records in 1000+0 records out 1048576000 bytes transferred in 11.985571 secs (87486529 bytes/sec) The last number is still lose to NON-SMP case, but it seems to me that there is another place to gain speed for bzero/bcopy - in file /sys/i386/i386/support.s there is a "label" kernel_fpu_lock: As I can (NOT?) understand it can be duplicated for each CPU and may be this can give us some more speedup of bzero/bcopy ? N.Dudorov