Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jul 1997 15:43:01 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-connect.net>
To:        Steve Passe <smp@csn.net>
Cc:        freebsd-smp@FreeBSD.ORG
Subject:   Re: SMP & P6DNH - Still the same (problem)
Message-ID:  <XFMail.970724154301.Shimon@i-Connect.Net>
In-Reply-To: <199707242148.PAA23073@Ilsa.StevesCafe.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970724154301.Shimon>