From owner-freebsd-smp Thu Jul 24 15:42:54 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id PAA29185 for smp-outgoing; Thu, 24 Jul 1997 15:42:54 -0700 (PDT) Received: from sendero-ppp.i-connect.net (sendero-ppp.i-Connect.Net [206.190.143.100]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id PAA29180 for ; Thu, 24 Jul 1997 15:42:48 -0700 (PDT) Received: (qmail 10248 invoked by uid 1000); 24 Jul 1997 22:43:01 -0000 Message-ID: X-Mailer: XFMail 1.2-alpha [p0] on FreeBSD MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="_=XFMail.1.2-alpha.p0.FreeBSD:970724153834:27423=_" In-Reply-To: <199707242148.PAA23073@Ilsa.StevesCafe.com> Date: Thu, 24 Jul 1997 15:43:01 -0700 (PDT) Organization: Atlas Telecom From: Simon Shapiro To: Steve Passe Subject: Re: SMP & P6DNH - Still the same (problem) Cc: freebsd-smp@FreeBSD.ORG Sender: owner-freebsd-smp@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk This message is in MIME format --_=XFMail.1.2-alpha.p0.FreeBSD:970724153834:27423=_ Content-Type: text/plain; charset=iso-8859-8 Hi Steve Passe; On 24-Jul-97 you wrote: > Hi, > > > SMP kernel as of last night, still gives me the same exact problem: > > > > It boot normally and then, instead of starting init, it goes into > > default_halt(). > > > > I only found reference to default_halt in i386/i386/dwtch.s. > > Could not find any calls made to it, except, indirectly from idle_loop > (in > > the same file). > > > > I do not exactly understand (last assembly code I saw was PDP-11, > sorry) > > what idle loop does, but it appears as if vm_page_zero_idle returns 0, > > and this is why we halt. This can only happen (?) (in vm_machdep.c) if > > WRONG is defined, or the nimbr of non-zeroed free pages is smaller than > > half the number of reserved pages. > > what idle_loop does: > > check each queue for a process to run > see if there are any vm pages that can be zeroed while waiting for a > proc. > If a page was zeroed repeat the loop. > else no pages left to zero, go into a halt until an INT wakes us up. > > Since you get to ddb from the keyboard, kb INTs are being seen, > it sounds like your not getting timer INTerrupts. mail me both your > config > file and i386/include/smptests.h file. Here you go... Thanx! Simon --_=XFMail.1.2-alpha.p0.FreeBSD:970724153834:27423=_ Content-Disposition: attachment; filename="smptests.h" Content-Transfer-Encoding: none Content-Description: smptests.h Content-Type: application/octet-stream; name=smptests.h; SizeOnDisk=5009 /* * Copyright (c) 1996, by Steve Passe * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. The name of the developer may NOT be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $Id: smptests.h,v 1.15 1997/07/22 18:46:41 fsmp Exp $ */ #ifndef _MACHINE_SMPTESTS_H_ #define _MACHINE_SMPTESTS_H_ /* * various 'tests in progress' */ /* * Address of POST hardware port. * Defining this enables POSTCODE macros. * #define POST_ADDR 0x80 */ /* * 1st attempt to use ExtInt connected 8259 to attach 8254 timer. * failing that, attempt to attach 8254 timer via direct APIC pin. * failing that, panic! * This overrides both APIC_PIN0_TIMER & TEST_ALTTIMER */ #undef NEW_STRATEGY /* * Use 'regular Int' method to connect external 8254 timer via IO APIC pin 0. * See "Intel I486 Microprocessors and Related Products", page 4-292: * 82489DX/8259A DUAL MODE CONNECTION * */ #undef APIC_PIN0_TIMER /* * Use non 'ExtInt' method of external (non-conected) 8254 timer * See "Intel I486 Microprocessors and Related Products", page 4-292: * 82489DX/8259A DUAL MODE CONNECTION * */ #undef TEST_ALTTIMER /* * Send 8254 timer INTs to all CPUs in LOPRIO mode. * */ #undef TIMER_ALL /* * Send CPUSTOP IPI for stop/restart of other CPUs on DDB break. * */ #define CPUSTOP_ON_DDBBREAK #define VERBOSE_CPUSTOP_ON_DDBBREAK /* * Bracket code/comments relevant to the current 'giant lock' model. * Everything is now the 'giant lock' model, but we will use this as * we start to "push down" the lock. */ #define GIANT_LOCK /* * use 'lowest priority' for sending IRQs to CPUs * * i386/i386/mplock.s, i386/i386/mpapic.c, kern/init_main.c * */ #define TEST_LOPRIO /* * deal with broken smp_idleloop() */ #define IGNORE_IDLEPROCS /* * misc. counters * #define COUNT_XINVLTLB_HITS #define COUNT_SPURIOUS_INTS #define COUNT_CSHITS */ /** * hack to "fake-out" kernel into thinking it is running on a 'default config' * * value == default type #define TEST_DEFAULT_CONFIG 6 */ /* * simple test code for IPI interaction, save for future... * #define TEST_TEST1 #define IPI_TARGET_TEST1 1 */ /* * POST hardware macros. */ #ifdef POST_ADDR #define ASMPOSTCODE_INC \ pushl %eax ; \ movl _current_postcode, %eax ; \ incl %eax ; \ andl $0xff, %eax ; \ movl %eax, _current_postcode ; \ outb %al, $POST_ADDR ; \ popl %eax /* * Overwrite the current_postcode value. */ #define ASMPOSTCODE(X) \ pushl %eax ; \ movl $X, %eax ; \ movl %eax, _current_postcode ; \ outb %al, $POST_ADDR ; \ popl %eax /* * Overwrite the current_postcode low nibble. */ #define ASMPOSTCODE_LO(X) \ pushl %eax ; \ movl _current_postcode, %eax ; \ andl $0xf0, %eax ; \ orl $X, %eax ; \ movl %eax, _current_postcode ; \ outb %al, $POST_ADDR ; \ popl %eax /* * Overwrite the current_postcode high nibble. */ #define ASMPOSTCODE_HI(X) \ pushl %eax ; \ movl _current_postcode, %eax ; \ andl $0x0f, %eax ; \ orl $(X<<4), %eax ; \ movl %eax, _current_postcode ; \ outb %al, $POST_ADDR ; \ popl %eax #else #define ASMPOSTCODE_INC #define ASMPOSTCODE(X) #define ASMPOSTCODE_LO(X) #define ASMPOSTCODE_HI(X) #endif /* POST_ADDR */ /* * these are all temps for debugging... * #define GUARD_INTS */ /* * This macro traps unexpected INTs to a specific CPU, eg. GUARD_CPU. */ #ifdef GUARD_INTS #define GUARD_CPU 1 #define MAYBE_PANIC(irq_num) \ cmpl $GUARD_CPU, _cpuid ; \ jne 9f ; \ cmpl $1, _ok_test1 ; \ jne 9f ; \ pushl lapic_isr3 ; \ pushl lapic_isr2 ; \ pushl lapic_isr1 ; \ pushl lapic_isr0 ; \ pushl lapic_irr3 ; \ pushl lapic_irr2 ; \ pushl lapic_irr1 ; \ pushl lapic_irr0 ; \ pushl $irq_num ; \ pushl _cpuid ; \ pushl $panic_msg ; \ call _printf ; \ addl $44, %esp ; \ 9: #else #define MAYBE_PANIC(irq_num) #endif /* GUARD_INTS */ #endif /* _MACHINE_SMPTESTS_H_ */ --_=XFMail.1.2-alpha.p0.FreeBSD:970724153834:27423=_ Content-Type: application/octet-stream; name=DPT-smp; SizeOnDisk=11342 Content-Description: DPT-smp Content-Transfer-Encoding: none Content-Disposition: attachment; filename="DPT-smp" # # SENDERO -- Sendero configuration # # $Id: SENDERO,v 1.11 1997/07/06 20:10:56 ShimonR Exp $ machine "i386" cpu "I686_CPU" cpu "I586_CPU" ident SENDERO maxusers 64 options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O #options SMP_AUTOSTART # Optional, these are the defaults: #options NCPU=2 # number of CPUs #options NBUS=4 # number of busses #options NAPIC=1 # number of IO APICs #options NINTR=24 # number of INTs # SuperMicro P6DNxxx: options SMP_TIMER_NC # 8254 NOT connected to APIC options CHILD_MAX=128 options OPEN_MAX=128 options "MAXDSIZ=(64*1024*1024)" options "DFLDSIZ=(16*1024*1024)" options EXTRAVNODES=2048 config kernel root on wd0a # ... dumps on sd0s2b options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options USER_LDT #allow user-level control of i386 ldt options SYSVSHM options SYSVSEM options SYSVMSG options DDB options DDB_UNATTENDED options KTRACE #kernel tracing options PERFMON options UCONSOLE #Allow users to grab the console options USERCONFIG #boot -c editor options USERCONFIG_BOOT #imply -c and parse info area #options VISUAL_USERCONFIG #visual boot -c editor options INET #InterNETworking pseudo-device ether pseudo-device fddi pseudo-device sppp pseudo-device loop pseudo-device ppp 4 pseudo-device bpfilter 16 pseudo-device disc pseudo-device tun 4 options MROUTING # Multicast routing options IPDIVERT #divert sockets options TCPDEBUG options FFS #Berkeley Fast Filesystem options NFS #Network Filesystem options "CD9660" #ISO 9660 Filesystem options PROCFS #Process filesystem options DEVFS #devices filesystem options QUOTA #enable disk quotas options NULLFS_DIAGNOSTIC options KERNFS_DIAGNOSTIC options UMAPFS_DIAGNOSTIC options SAFETY controller pci0 device ch0 #SCSI media changers device sd0 #SCSI disks device st0 #SCSI tapes device cd0 #SCSI CD-ROMs device od0 #SCSI optical disk options SCSI_DELAY=5 # Don't be too pessimistic about SCSI device # Disk Addressing Guidelines: # We assume wide SCSI, not FCAL, with this release. # There is never a target 7, nor target 15; They are reserved for initiators! # Each ADAPTEr takes 4 busses. # Each bus consumes 16 addresses # Non-zero LUNs have the same ID as LUN 0 but bit 7 is set on (64 + target) controller dpt0 controller dpt1 controller scbus0 at dpt0 bus 0 controller scbus1 at dpt0 bus 1 controller scbus2 at dpt0 bus 2 controller scbus4 at dpt1 bus 0 controller scbus5 at dpt1 bus 1 controller scbus6 at dpt1 bus 2 # First DPT starts here options DPT_USE_SINTR=1 # Use software interrupts (crucial) options DPT_MEASURE_PERFORMANCE # Lose ~0.1% performance but measure it options DPT_TRACK_CCB_STATES # Diagnostic value only. @ Simon's direction options DPT_HANDLE_TIMEOUTS # Leave on if things hang options DPT_COMMAND_SPLHIGH # Experimental, briefly locks eata ports options DPT_INTR_CHECK_SOFTC # Experimental; checks soft structs is valid device worm0 at scbus0 target 4 unit 0 tape st0 at scbus0 target 5 unit 0 device cd0 at scbus0 target 6 unit 0 disk sd0 at scbus0 target 0 unit 0 disk sd1 at scbus0 target 1 unit 0 disk sd2 at scbus0 target 2 unit 0 disk sd3 at scbus0 target 3 unit 0 disk sd4 at scbus0 target 4 unit 0 disk sd5 at scbus0 target 5 unit 0 disk sd6 at scbus0 target 6 unit 0 disk sd8 at scbus0 target 8 unit 0 disk sd9 at scbus0 target 9 unit 0 disk sd10 at scbus0 target 10 unit 0 disk sd11 at scbus0 target 11 unit 0 disk sd12 at scbus0 target 12 unit 0 disk sd13 at scbus0 target 13 unit 0 disk sd14 at scbus0 target 14 unit 0 device worm1 at scbus1 target 4 unit 0 tape st1 at scbus1 target 5 unit 0 device cd1 at scbus1 target 6 unit 0 disk sd16 at scbus1 target 0 unit 0 disk sd17 at scbus1 target 1 unit 0 disk sd18 at scbus1 target 2 unit 0 disk sd19 at scbus1 target 3 unit 0 disk sd20 at scbus1 target 4 unit 0 disk sd21 at scbus1 target 5 unit 0 disk sd22 at scbus1 target 6 unit 0 disk sd24 at scbus1 target 8 unit 0 disk sd25 at scbus1 target 9 unit 0 disk sd26 at scbus1 target 10 unit 0 disk sd27 at scbus1 target 11 unit 0 disk sd28 at scbus1 target 12 unit 0 disk sd29 at scbus1 target 13 unit 0 disk sd30 at scbus1 target 14 unit 0 device worm2 at scbus2 target 4 unit 0 tape st2 at scbus2 target 5 unit 0 device cd2 at scbus2 target 6 unit 0 disk sd32 at scbus2 target 0 unit 0 disk sd33 at scbus2 target 1 unit 0 disk sd34 at scbus2 target 2 unit 0 disk sd35 at scbus2 target 3 unit 0 disk sd36 at scbus2 target 4 unit 0 disk sd37 at scbus2 target 5 unit 0 disk sd38 at scbus2 target 6 unit 0 disk sd41 at scbus2 target 9 unit 0 disk sd42 at scbus2 target 10 unit 0 disk sd43 at scbus2 target 11 unit 0 disk sd44 at scbus2 target 12 unit 0 disk sd45 at scbus2 target 13 unit 0 disk sd46 at scbus2 target 14 unit 0 # Second DPT starts here device worm3 at scbus4 target 4 unit 0 tape st3 at scbus4 target 5 unit 0 device cd3 at scbus4 target 6 unit 0 disk sd64 at scbus4 target 0 unit 0 disk sd65 at scbus4 target 1 unit 0 disk sd66 at scbus4 target 2 unit 0 disk sd67 at scbus4 target 3 unit 0 disk sd68 at scbus4 target 4 unit 0 disk sd69 at scbus4 target 5 unit 0 disk sd70 at scbus4 target 6 unit 0 disk sd72 at scbus4 target 8 unit 0 disk sd73 at scbus4 target 9 unit 0 disk sd74 at scbus4 target 10 unit 0 disk sd75 at scbus4 target 11 unit 0 disk sd76 at scbus4 target 12 unit 0 disk sd77 at scbus4 target 13 unit 0 disk sd78 at scbus4 target 14 unit 0 disk sd79 at scbus4 target 15 unit 0 device worm4 at scbus5 target 4 unit 0 tape st4 at scbus5 target 5 unit 0 device cd4 at scbus5 target 6 unit 0 disk sd80 at scbus5 target 0 unit 0 disk sd81 at scbus5 target 1 unit 0 disk sd82 at scbus5 target 2 unit 0 disk sd83 at scbus5 target 3 unit 0 disk sd84 at scbus5 target 4 unit 0 disk sd85 at scbus5 target 5 unit 0 disk sd86 at scbus5 target 6 unit 0 disk sd88 at scbus5 target 8 unit 0 disk sd89 at scbus5 target 9 unit 0 disk sd90 at scbus5 target 10 unit 0 disk sd91 at scbus5 target 11 unit 0 disk sd92 at scbus5 target 12 unit 0 disk sd93 at scbus5 target 13 unit 0 disk sd94 at scbus5 target 14 unit 0 disk sd95 at scbus5 target 15 unit 0 device worm5 at scbus6 target 4 unit 0 tape st5 at scbus6 target 5 unit 0 device cd5 at scbus6 target 6 unit 0 disk sd96 at scbus6 target 0 unit 0 disk sd97 at scbus6 target 1 unit 0 disk sd98 at scbus6 target 2 unit 0 disk sd99 at scbus6 target 3 unit 0 disk sd100 at scbus6 target 4 unit 0 disk sd101 at scbus6 target 5 unit 0 disk sd102 at scbus6 target 6 unit 0 disk sd104 at scbus6 target 8 unit 0 disk sd105 at scbus6 target 9 unit 0 disk sd106 at scbus6 target 10 unit 0 disk sd107 at scbus6 target 11 unit 0 disk sd108 at scbus6 target 12 unit 0 disk sd109 at scbus6 target 13 unit 0 disk sd110 at scbus6 target 14 unit 0 disk sd111 at scbus6 target 15 unit 0 controller ahc0 options AHC_TAGENABLE options AHC_SCBPAGING_ENABLE options AHC_ALLOW_MEMIO controller scbus8 at ahc0 disk sd128 at scbus8 target 0 unit 0 disk sd129 at scbus8 target 1 unit 0 disk sd130 at scbus8 target 2 unit 0 disk sd131 at scbus8 target 3 unit 0 disk sd132 at scbus8 target 4 unit 0 disk sd133 at scbus8 target 5 unit 0 disk sd134 at scbus8 target 6 unit 0 disk sd136 at scbus8 target 8 unit 0 disk sd137 at scbus8 target 9 unit 0 disk sd138 at scbus8 target 10 unit 0 disk sd139 at scbus8 target 11 unit 0 disk sd140 at scbus8 target 12 unit 0 disk sd141 at scbus8 target 13 unit 0 disk sd142 at scbus8 target 14 unit 0 disk sd143 at scbus8 target 15 unit 0 pseudo-device pty 128 pseudo-device speaker #Play IBM BASIC-style noises out your speaker pseudo-device log pseudo-device gzip # Exec gzipped a.out's pseudo-device vn #Vnode driver (turns a file into a device) pseudo-device snp 3 #Snoop device - to look at pty/vty/etc.. pseudo-device ccd 64 #Concatenated disk driver options FAILSAFE #Be conservative controller isa0 options "AUTO_EOI_1" options "AUTO_EOI_2" options BOUNCE_BUFFERS #include support for DMA bounce buffers options "MAXMEM=(256*1024)" # 128M, no autodetect over 64M :-( #device vt0 at isa? port "IO_KBD" tty irq 1 vector pcrint #options PCVT_FREEBSD=210 # pcvt running on FreeBSD >= 2.0.5 options XSERVER # include code for XFree86 #options FAT_CURSOR # start with block cursor device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr options MAXCONS=12 # number of virtual consoles device npx0 at isa? port "IO_NPX" irq 13 vector npxintr controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1 options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device wcd0 #IDE CD-ROM controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? port "IO_COM4" tty irq 7 vector siointr device ed0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector edintr controller snd0 device sb0 at isa? port 0x220 irq 7 drq 1 vector sbintr device sbxvi0 at isa? drq 5 device sbmidi0 at isa? port 0x300 device opl0 at isa? port 0x388 device de0 device fxp0 device fpa0 options COMPAT_LINUX options "EXT2FS" options "IBCS2" options SHOW_BUSYBUFS # List buffers that prevent root unmount --_=XFMail.1.2-alpha.p0.FreeBSD:970724153834:27423=_-- End of MIME message