From owner-freebsd-smp Thu Dec 5 11:05:58 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id LAA24793 for smp-outgoing; Thu, 5 Dec 1996 11:05:58 -0800 (PST) Received: from kvikk.uit.no (kvikk.Uit.No [129.242.4.32]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id LAA24783 for ; Thu, 5 Dec 1996 11:05:48 -0800 (PST) Received: from sprint.cc.uit.no (sprint.Cc.Uit.No [129.242.5.198]) by kvikk.uit.no (8.7.3/8.7.1) with ESMTP id UAA01282; Thu, 5 Dec 1996 20:05:35 +0100 (MET) Received: from slibo.cc.uit.no (slibo.Cc.Uit.No [129.242.5.36]) by sprint.cc.uit.no (8.8.0/8.8.0) with ESMTP id UAA20174; Thu, 5 Dec 1996 20:05:34 +0100 (MET) Received: from localhost (terjem@localhost) by slibo.cc.uit.no (8.7.3/8.7.3) with ESMTP id UAA20413; Thu, 5 Dec 1996 20:05:33 +0100 (MET) Message-Id: <199612051905.UAA20413@slibo.cc.uit.no> To: Steve Passe cc: "Erich Boleyn,,,," , smp@freebsd.org Subject: Re: >2 CPU SMP test In-reply-to: Your message of "Thu, 05 Dec 1996 09:51:49 MET." <199612051651.JAA13340@clem.systemsix.com> Date: Thu, 05 Dec 1996 20:05:32 +0100 From: Terje Normann Marthinussen Sender: owner-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk TADA!!!!!!!!!!!! :) I did: for ( x = 1; x <= mp_naps; ++x ) { /* setup a vector to our boot code */ *((volatile u_short *)WARMBOOT_OFF) = WARMBOOT_TARGET; *((volatile u_short *)WARMBOOT_SEG) = (bootAddr >> 4); outb( CMOS_REG, BIOS_RESET ); outb( CMOS_DATA, BIOS_WARM ); /* write 'warm-start' */ startAP( CPU_TO_ID( x ), (bootAddr >> 12) & 0xff ); cpuApicVersions[ x ] = cpuApicVersions[ 0 ]; } Like suggested, and: check: 99, 99, 99, 99, 99, 99 check: 1, 2, 3, 4, 5, 99 check: 99, 99, 99, 99, 99, 99 check: 1, 2, 3, 4, 5, 99 check: 99, 99, 99, 99, 99, 99 check: 1, 2, 3, 4, 5, 99 ... # sysctl -w kern.smp_active=4 SMP: Starting 1st AP! SMP: AP CPU #2 LAUNCHED!! Starting Scheduling... SMP: TADA! CPU #2 made it into the scheduler!. SMP: 2 of 4 CPU's online. Unlocking next CPU.. SMP: AP CPU #3 LAUNCHED!! Starting Scheduling... SMP: TADA! CPU #3 made it into the scheduler!. SMP: 3 of 4 CPU's online. Unlocking next CPU.. SMP: AP CPU #1 LAUNCHED!! Starting Scheduling... SMP: TADA! CPU #1 made it into the scheduler!. SMP: All 4 CPU's are online! And of course, some kernel makes: time make 209.2u 140.7s 6:44.98 86.4% 228+262k 69+5332io 0pf+0w time make -j 2 131.4u 230.1s 4:20.98 138.5% 54+58k 69+7071io 0pf+0w time make -j 4 210.8u 165.7s 2:34.21 244.1% 126+157k 70+7288io 0pf+0w time make -j 7 233.7u 149.5s 2:08.82 297.5% 138+182k 82+7534io 14pf+0w time make -j 14 238.2u 145.8s 2:04.22 309.2% 131+179k 75+7280io 0pf+0w time make -j 16 249.5u 136.0s 2:07.73 301.8% 136+177k 78+7324io 0pf+0w And then I remembered that I didn't use -pipe (sorry, done with shell script, different shell, differen time output, didn't care to do it again): in miutes compared to j=1 time make 342.12 real 256.07 user 111.05 sys 5:42.12 1 time make -j 2 226.33 real 268.54 user 117.25 sys 3:46.33 1.51 time make -j 4 126.64 real 257.72 user 130.47 sys 2:06.64 2.70 time make -j 7 108.19 real 271.30 user 114.41 sys 1:48.19 3.16 time make -j 14 107.22 real 274.56 user 114.16 sys 1:47.22 3.19 time make -j 14 with csh reported 361.3% cpu usage. Not tried to much yet, but the interactive response seems good at all times. Think I'll have to take the disk up a couple of floors and try it on some 4CPU P6 netservers there :) Terje Marthinussen terjem@cc.uit.no