Re: 2.0.29 SMP freeze on PPro200

eyal (eyal@eyal.emu.id.au)
Sun, 02 Mar 1997 22:39:43 +1100


This is a multi-part message in MIME format.

--------------60930AA6810164D38DB1C21
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello Everyone,

Took me a while, but today I had time to play with the machine. Good
news, I think I got the information required.

Attached is the info about the kernel+machine. A small C program
t.c which produced a lockup is also provided.

Gazing at the machine as it approaches lockup, it seems very probable
that we are looking at an SMP problem at a low memory situation.

Running 'vmstat 1' shows that the system has the usual 512K free memory,
but the buffers are down to 200-300K and only 2-3MB are
cached. The lockup happens just when the program does a 16MB
fwrite under the described situation.

The amount of memory that the program should use to produce the
lockup depends on your setup. On my 64MB machine, using a 16MB
buffer locks up regularly while a 32MB buffer locks up every
single time.

I then built a non-SMP kernel with exactly the same .config and
I could not get the machine to lock up.

I hope some of the developers can now reproduce the problem.

--
Eyal Lebedinsky		(eyal@eyal.emu.id.au)

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="config" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="config"

# # Automatically generated make config: don't edit #

# # Code maturity level options # CONFIG_EXPERIMENTAL=y

# # Loadable module support # CONFIG_MODULES=y CONFIG_MODVERSIONS=y CONFIG_KERNELD=y

# # General setup # # CONFIG_MATH_EMULATION is not set CONFIG_NET=y # CONFIG_MAX_16M is not set CONFIG_PCI=y CONFIG_PCI_OPTIMIZE=y CONFIG_SYSVIPC=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_JAVA=m CONFIG_KERNEL_ELF=y # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set CONFIG_M686=y

# # Floppy, IDE, and other block devices # CONFIG_BLK_DEV_FD=m CONFIG_BLK_DEV_IDE=y

# # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_HD_IDE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDE_PCMCIA is not set # CONFIG_BLK_DEV_CMD640 is not set # CONFIG_BLK_DEV_RZ1000 is not set CONFIG_BLK_DEV_TRITON=y CONFIG_IDE_CHIPSETS=y

# # Note: most of these also require special kernel boot parameters # # CONFIG_BLK_DEV_ALI14XX is not set # CONFIG_BLK_DEV_DTC2278 is not set # CONFIG_BLK_DEV_HT6560B is not set # CONFIG_BLK_DEV_PROMISE is not set # CONFIG_BLK_DEV_QD6580 is not set # CONFIG_BLK_DEV_UMC8672 is not set

# # Additional Block Devices # CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_MD=y CONFIG_MD_LINEAR=m CONFIG_MD_STRIPED=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_XD=m # CONFIG_BLK_DEV_HD is not set

# # Networking options # # CONFIG_FIREWALL is not set # CONFIG_NET_ALIAS is not set CONFIG_INET=y # CONFIG_IP_FORWARD is not set # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ACCT is not set

# # (it is safe to leave these untouched) # # CONFIG_INET_PCTCP is not set CONFIG_INET_RARP=m # CONFIG_NO_PATH_MTU_DISCOVERY is not set CONFIG_IP_NOSR=y CONFIG_SKB_LARGE=y

# # # CONFIG_IPX=m # CONFIG_IPX_INTERN is not set CONFIG_ATALK=m # CONFIG_AX25 is not set # CONFIG_BRIDGE is not set # CONFIG_NETLINK is not set

# # SCSI support # CONFIG_SCSI=y

# # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y CONFIG_CHR_DEV_ST=m CONFIG_BLK_DEV_SR=m CONFIG_CHR_DEV_SG=m

# # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=y

# # SCSI low-level drivers # CONFIG_SCSI_7000FASST=m CONFIG_SCSI_AHA152X=m CONFIG_SCSI_AHA1542=m CONFIG_SCSI_AHA1740=m CONFIG_SCSI_AIC7XXX=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m CONFIG_SCSI_AM53C974=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_DTC3280=m CONFIG_SCSI_EATA_DMA=m CONFIG_SCSI_EATA_PIO=m CONFIG_SCSI_EATA=m CONFIG_SCSI_EATA_TAGGED_QUEUE=y CONFIG_SCSI_EATA_LINKED_COMMANDS=y CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR53C400=y CONFIG_SCSI_G_NCR5380_PORT=y # CONFIG_SCSI_G_NCR5380_MEM is not set CONFIG_SCSI_NCR53C406A=m # CONFIG_SCSI_NCR53C7xx is not set CONFIG_SCSI_NCR53C8XX=y CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE=y # CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set # CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT is not set # CONFIG_SCSI_NCR53C8XX_FORCE_ASYNCHRONOUS is not set CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO=y # CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK is not set # CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK is not set CONFIG_SCSI_PPA=m CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_ISP=m CONFIG_SCSI_SEAGATE=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m

# # Network device support # CONFIG_NETDEVICES=y CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_DLCI=m CONFIG_DLCI_COUNT=24 CONFIG_DLCI_MAX=8 CONFIG_SDLA=m CONFIG_PLIP=m CONFIG_PPP=m

# # CCP compressors for PPP are only built as modules. # CONFIG_SLIP=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y CONFIG_SLIP_MODE_SLIP6=y CONFIG_NET_RADIO=y CONFIG_BAYCOM=m CONFIG_STRIP=m CONFIG_WAVELAN=m CONFIG_WIC=m CONFIG_SCC=m CONFIG_NET_ETHERNET=y CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m CONFIG_EL2=m CONFIG_ELPLUS=m CONFIG_EL16=m CONFIG_EL3=m CONFIG_VORTEX=m # CONFIG_LANCE is not set CONFIG_NET_VENDOR_SMC=y CONFIG_WD80x3=m CONFIG_ULTRA=m CONFIG_SMC9194=m CONFIG_NET_ISA=y CONFIG_AT1700=m CONFIG_E2100=m CONFIG_DEPCA=m CONFIG_EWRK3=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m CONFIG_FMV18X=m CONFIG_HPLAN_PLUS=m CONFIG_HPLAN=m CONFIG_HP100=m CONFIG_ETH16I=m CONFIG_NE2000=m CONFIG_NI52=m CONFIG_NI65=m # CONFIG_SEEQ8005 is not set # CONFIG_SK_G16 is not set CONFIG_NET_EISA=y CONFIG_AC3200=m CONFIG_APRICOT=m CONFIG_DE4X5=m CONFIG_DEC_ELCP=m CONFIG_DGRS=m # CONFIG_ZNET is not set CONFIG_NET_POCKET=y # CONFIG_ATP is not set CONFIG_DE600=m CONFIG_DE620=m # CONFIG_TR is not set # CONFIG_FDDI is not set CONFIG_ARCNET=m CONFIG_ARCNET_ETH=y CONFIG_ARCNET_1051=y

# # ISDN subsystem # CONFIG_ISDN=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y CONFIG_ISDN_AUDIO=y CONFIG_ISDN_DRV_ICN=m CONFIG_ISDN_DRV_PCBIT=m # CONFIG_ISDN_DRV_TELES is not set

# # CD-ROM drivers (not for SCSI or IDE/ATAPI drives) # CONFIG_CD_NO_IDESCSI=y CONFIG_AZTCD=m CONFIG_GSCD=m CONFIG_SBPCD=m CONFIG_MCD=m CONFIG_MCDX=m CONFIG_OPTCD=m CONFIG_CM206=m CONFIG_SJCD=m # CONFIG_CDI_INIT is not set CONFIG_CDU31A=m CONFIG_CDU535=m

# # Filesystems # # CONFIG_QUOTA is not set CONFIG_LOCK_MANDATORY=y CONFIG_MINIX_FS=m CONFIG_EXT_FS=m CONFIG_EXT2_FS=y CONFIG_XIA_FS=m CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_UMSDOS_FS=m CONFIG_PROC_FS=y CONFIG_NFS_FS=m CONFIG_SMB_FS=m CONFIG_SMB_WIN95=y CONFIG_NCP_FS=m CONFIG_ISO9660_FS=m CONFIG_HPFS_FS=m CONFIG_SYSV_FS=m CONFIG_AFFS_FS=m CONFIG_AMIGA_PARTITION=y CONFIG_UFS_FS=m CONFIG_BSD_DISKLABEL=y CONFIG_SMD_DISKLABEL=y

# # Character devices # CONFIG_SERIAL=m # CONFIG_DIGI is not set CONFIG_CYCLADES=m CONFIG_STALDRV=y CONFIG_STALLION=m CONFIG_ISTALLION=m CONFIG_RISCOM8=m CONFIG_PRINTER=m CONFIG_MOUSE=y CONFIG_ATIXL_BUSMOUSE=m CONFIG_BUSMOUSE=m CONFIG_MS_BUSMOUSE=m CONFIG_PSMOUSE=m # CONFIG_82C710_MOUSE is not set CONFIG_UMISC=y # CONFIG_QIC02_TAPE is not set CONFIG_FTAPE=m

# # Set IObase/IRQ/DMA for ftape in ./drivers/char/ftape/Makefile # # CONFIG_APM is not set CONFIG_WATCHDOG=y # CONFIG_WATCHDOG_NOWAYOUT is not set # CONFIG_WDT is not set CONFIG_SOFT_WATCHDOG=m CONFIG_PCWATCHDOG=m CONFIG_RTC=y

# # Sound # CONFIG_SOUND=m # CONFIG_LOWLEVEL_SOUND is not set

# # Kernel hacking # # CONFIG_PROFILE is not set

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="cpuinfo" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="cpuinfo"

processor : 0 cpu : 686 model : Pentium Pro vendor_id : GenuineIntel stepping : 7 fdiv_bug : no hlt_bug : no fpu : yes fpu_exception : yes cpuid : yes wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic 11 mtrr pge mca cmov bogomips : 199.07

processor : 1 cpu : 686 model : Pentium Pro vendor_id : GenuineIntel stepping : 7 fdiv_bug : no hlt_bug : no fpu : yes fpu_exception : yes cpuid : yes wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic 11 mtrr pge mca cmov bogomips : 199.07

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="meminfo" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="meminfo"

total: used: free: shared: buffers: cached: Mem: 64954368 63778816 1175552 13447168 48467968 4669440 Swap: 76345344 0 76345344 MemTotal: 63432 kB MemFree: 1148 kB MemShared: 13132 kB Buffers: 47332 kB Cached: 4560 kB SwapTotal: 74556 kB SwapFree: 74556 kB

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="messages" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="messages"

Mar 2 18:29:28 ssa08 syslogd 1.3-3: restart. Mar 2 18:29:28 ssa08 kernel: klogd 1.3-3, log source = /proc/kmsg started. Mar 2 18:29:28 ssa08 kernel: Loaded 2843 symbols from /System.map. Mar 2 18:29:28 ssa08 kernel: Symbols match kernel version 2.0.129. Mar 2 18:29:28 ssa08 kernel: Loaded 9 symbols from 4 modules. Mar 2 18:29:28 ssa08 kernel: Intel MultiProcessor Specification v1.1 Mar 2 18:29:28 ssa08 kernel: Virtual Wire compatibility mode. Mar 2 18:29:28 ssa08 kernel: OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000 Mar 2 18:29:28 ssa08 kernel: Processor #1 Pentium(tm) Pro APIC version 17 Mar 2 18:29:28 ssa08 kernel: Processor #0 Pentium(tm) Pro APIC version 17 Mar 2 18:29:28 ssa08 kernel: I/O APIC #2 Version 17 at 0xFEC00000. Mar 2 18:29:28 ssa08 kernel: Processors: 2 Mar 2 18:29:28 ssa08 kernel: Console: 8 point font, 400 scans Mar 2 18:29:28 ssa08 kernel: Console: colour VGA+ 80x50, 1 virtual console (max 63) Mar 2 18:29:28 ssa08 kernel: pcibios_init : BIOS32 Service Directory structure at 0x000fdb70 Mar 2 18:29:28 ssa08 kernel: pcibios_init : BIOS32 Service Directory entry at 0xfdb80 Mar 2 18:29:28 ssa08 kernel: pcibios_init : PCI BIOS revision 2.10 entry at 0xfdba1 Mar 2 18:29:28 ssa08 kernel: Probing PCI hardware. Mar 2 18:29:28 ssa08 kernel: Calibrating delay loop.. ok - 199.07 BogoMIPS Mar 2 18:29:28 ssa08 kernel: Memory: 63432k/65536k available (572k kernel code, 384k reserved, 1148k data) Mar 2 18:29:28 ssa08 kernel: Swansea University Computer Society NET3.035 for Linux 2.0 Mar 2 18:29:28 ssa08 kernel: NET3: Unix domain sockets 0.13 for Linux NET3.035. Mar 2 18:29:28 ssa08 kernel: Swansea University Computer Society TCP/IP for NET3.034 Mar 2 18:29:28 ssa08 kernel: IP Protocols: ICMP, UDP, TCP Mar 2 18:29:28 ssa08 kernel: Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Mar 2 18:29:28 ssa08 kernel: Checking 'hlt' instruction... Ok. Mar 2 18:29:28 ssa08 kernel: Linux version 2.0.129 (root@ssa08) (gcc version 2.7.2.1) #1 Thu Feb 13 11:27:36 EST 1997 Mar 2 18:29:28 ssa08 kernel: Booting processor 0 stack 00002000: Calibrating delay loop.. ok - 199.07 BogoMIPS Mar 2 18:29:28 ssa08 kernel: Total of 2 processors activated (398.13 BogoMIPS). Mar 2 18:29:28 ssa08 kernel: Real Time Clock Driver v1.07 Mar 2 18:29:28 ssa08 kernel: ide: i82371 PIIX (Triton) on PCI bus 0 function 57 Mar 2 18:29:28 ssa08 kernel: ide0: BM-DMA at 0xffa0-0xffa7 Mar 2 18:29:28 ssa08 kernel: ide1: BM-DMA at 0xffa8-0xffaf Mar 2 18:29:28 ssa08 kernel: hda: WDC AC31600H, 1549MB w/128kB Cache, LBA, CHS=787/64/63, DMA Mar 2 18:29:28 ssa08 kernel: hdc: ST51080A, 1033MB w/128kB Cache, LBA, CHS=2100/16/63 Mar 2 18:29:28 ssa08 kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Mar 2 18:29:28 ssa08 kernel: ide1 at 0x170-0x177,0x376 on irq 15 Mar 2 18:29:28 ssa08 kernel: md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Mar 2 18:29:28 ssa08 kernel: ncr53c8xx : at PCI bus 0, device 18, function 0 Mar 2 18:29:28 ssa08 kernel: ncr_attach: unit=0 chip=810 base=febfff00, io_port=ec00, irq=9 Mar 2 18:29:28 ssa08 kernel: ncr53c810-0: using memory mapped IO at virtual address 0x4843f00 Mar 2 18:29:28 ssa08 kernel: ncr53c810-0: assuming 40MHz clock Mar 2 18:29:28 ssa08 kernel: ncr53c810-0: initial value of SCNTL3 = 03, final = 13 Mar 2 18:29:28 ssa08 kernel: ncr53c810-0: requesting shared irq 9 (dev_id=0x3ffc068) Mar 2 18:29:28 ssa08 kernel: ncr53c810-0: restart (scsi reset). Mar 2 18:29:28 ssa08 kernel: scsi0 : ncr53c8xx (rel 1.12d) Mar 2 18:29:28 ssa08 kernel: scsi : 1 host. Mar 2 18:29:28 ssa08 kernel: Started kswapd v 1.4.2.2 Mar 2 18:29:28 ssa08 kernel: ncr53c810-0-<target 0, lun 0>: using tagged command queueing, up to 4 cmds/lun Mar 2 18:29:28 ssa08 kernel: Vendor: QUANTUM Model: XP34301 Rev: 1037 Mar 2 18:29:28 ssa08 kernel: Type: Direct-Access ANSI SCSI revision: 02 Mar 2 18:29:28 ssa08 kernel: Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 Mar 2 18:29:28 ssa08 kernel: ncr53c810-0-<target 1, lun 0>: using tagged command queueing, up to 4 cmds/lun Mar 2 18:29:28 ssa08 kernel: Vendor: QUANTUM Model: XP34301 Rev: 1037 Mar 2 18:29:28 ssa08 kernel: Type: Direct-Access ANSI SCSI revision: 02 Mar 2 18:29:28 ssa08 kernel: Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0 Mar 2 18:29:28 ssa08 kernel: scsi : detected 2 SCSI disks total. Mar 2 18:29:28 ssa08 kernel: ncr53c810-0-<target 0, lun 0>: FAST SCSI-2 100ns (10 Mb/sec) offset 8. Mar 2 18:29:28 ssa08 kernel: SCSI device sda: hdwr sector= 512 bytes. Sectors= 8410200 [4106 MB] [4.1 GB] Mar 2 18:29:28 ssa08 kernel: ncr53c810-0-<target 1, lun 0>: FAST SCSI-2 100ns (10 Mb/sec) offset 8. Mar 2 18:29:28 ssa08 kernel: SCSI device sdb: hdwr sector= 512 bytes. Sectors= 8410200 [4106 MB] [4.1 GB] Mar 2 18:29:28 ssa08 kernel: Partition check: Mar 2 18:29:28 ssa08 kernel: sda: sda1 sda2 sda3 sda4 Mar 2 18:29:28 ssa08 kernel: sdb: sdb1 Mar 2 18:29:28 ssa08 kernel: hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 hda9 > Mar 2 18:29:28 ssa08 kernel: hdc: [PTBL] [525/64/63] hdc1 < hdc5 > Mar 2 18:29:28 ssa08 kernel: VFS: Mounted root (ext2 filesystem) readonly. Mar 2 18:29:28 ssa08 kernel: Adding Swap: 74556k swap-space Mar 2 18:29:28 ssa08 kernel: Swansea University Computer Society IPX 0.34 for NET3.035 Mar 2 18:29:28 ssa08 kernel: IPX Portions Copyright (c) 1995 Caldera, Inc. Mar 2 18:29:28 ssa08 kernel: Appletalk 0.17 for Linux NET3.035 Mar 2 18:29:28 ssa08 kernel: loading device 'eth0'... Mar 2 18:29:28 ssa08 kernel: ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov) Mar 2 18:29:28 ssa08 kernel: NE*000 ethercard probe at 0x300: 00 40 c7 50 01 18 Mar 2 18:29:28 ssa08 kernel: eth0: NE2000 found at 0x300, using IRQ 10. Mar 2 18:29:32 ssa08 named[167]: starting. named 4.9.5-REL Wed Dec 18 15:39:41 EST 1996 ^Iewt@porky.redhat.com:/usr/src/colgate/BUILD/bind-4.9.5/named Mar 2 18:29:32 ssa08 named[167]: cache zone "" loaded (serial 0) Mar 2 18:29:32 ssa08 named[168]: Ready to answer queries. Mar 2 18:29:32 ssa08 named[168]: sysquery: sendto([198.41.0.4].53): Network is unreachable Mar 2 18:29:36 ssa08 kernel: Serial driver version 4.13 with no serial options enabled Mar 2 18:29:36 ssa08 kernel: tty00 at 0x03f8 (irq = 4) is a 16550A Mar 2 18:29:36 ssa08 kernel: tty01 at 0x02f8 (irq = 3) is a 16550A

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="pci" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="pci"

PCI devices found: Bus 0, device 20, function 0: VGA compatible controller: S3 Inc. Trio32/Trio64 (rev 0). Medium devsel. IRQ 11. Non-prefetchable 32 bit memory at 0x80000000. Bus 0, device 18, function 0: SCSI storage controller: NCR 53c810 (rev 2). Medium devsel. IRQ 9. Master Capable. Latency=64. I/O at 0xec00. Non-prefetchable 32 bit memory at 0xfebfff00. Bus 0, device 7, function 1: IDE interface: Intel 82371SB Natoma/Triton II PIIX3 (rev 0). Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. I/O at 0xffa0. Bus 0, device 7, function 0: ISA bridge: Intel 82371SB Natoma/Triton II PIIX3 (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 0, function 0: Host bridge: Intel 82441FX Natoma (rev 2). Medium devsel. Fast back-to-back capable. Master Capable. Latency=32.

--------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="soundconf" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="soundconf"

/* Generated by configure. Don't edit!!!! */ /* Making changes to this file is not as simple as it may look. */

/* If you change the CONFIG_ settings in local.h you */ /* _have_ to edit .defines too. */

#undef CONFIG_PAS #define CONFIG_SB #undef CONFIG_ADLIB #undef CONFIG_GUS #undef CONFIG_MPU401 #undef CONFIG_UART6850 #undef CONFIG_PSS #undef CONFIG_GUS16 #undef CONFIG_GUSMAX #undef CONFIG_MSS #undef CONFIG_SSCAPE #undef CONFIG_TRIX #undef CONFIG_MAD16 #undef CONFIG_CS4232 #undef CONFIG_MAUI #undef CONFIG_PNP #define CONFIG_SBPRO #define CONFIG_SB16 #undef CONFIG_AEDSP16 #define CONFIG_AUDIO #define CONFIG_MIDI #define CONFIG_YM3812 #define CONFIG_SEQUENCER

#undef CONFIG_MPU_EMU #undef CONFIG_AD1848

#define SBC_BASE 0x220 #define SBC_IRQ 5 #define SBC_DMA 1 #define SB_DMA2 5 #define SB_MPU_BASE 0x330 #define DSP_BUFFSIZE 65536 #define SELECTED_SOUND_OPTIONS 0x01ab0002

--------------60930AA6810164D38DB1C21 Content-Type: application/octet-stream; name="t" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="t"

f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAwIUECDQAAABQEQAAAAAAADQAIAAFACgAFwAUAAYA AAA0AAAANIAECDSABAigAAAAoAAAAAUAAAAEAAAAAwAAANQAAADUgAQI1IAECBMAAAATAAAA BAAAAAEAAAABAAAAAAAAAACABAgAgAQIPQ8AAD0PAAAFAAAAABAAAAEAAABADwAAQJ8ECECf BAj4AAAAUAEAAAYAAAAAEAAAAgAAALAPAACwnwQIsJ8ECIgAAACIAAAABgAAAAQAAAAvbGli L2xkLWxpbnV4LnNvLjEAABEAAAAbAAAAAAAAABgAAAATAAAADwAAABcAAAAAAAAACQAAAA0A AAAQAAAABgAAABIAAAAVAAAAFgAAABQAAAAKAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAwAAAAQAAAAIAAAABQAAAAAA AAAOAAAADAAAABoAAAAZAAAAAAAAAAEAAAALAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA CwAAALCfBAgAAAAAEQDx/xQAAAA4oAQIVAAAABEAEQAgAAAA2IQECFYAAAASAAAAJQAAAOiE BAgAAAAAIgAAACwAAABAnwQIBAAAABEADAA2AAAAwIQECAAAAAASAAcAPAAAAPiEBAhGAAAA EgAAAEgAAAAIhQQIAAAAACIAAABPAAAAQJ8ECAQAAAAgAAwAVwAAABiFBAgAAAAAIgAAAF8A AACMoAQIAgAAABEAEQBtAAAAKIUECFYAAAASAAAAdAAAADiFBAgAAAAAIgAAAHoAAABIhQQI AAAAACIAAACAAAAAWIUECAAAAAAiAAAAhwAAAGCOBAgAAAAAEgAKAI0AAABohQQINAAAABIA AACUAAAAeIUECAAAAAAiAAAAmwAAAGyfBAgAAAAAEQDx/7EAAACIhQQIgAAAABIAAAC2AAAA mIUECD4AAAASAAAAwQAAAKiFBAgAAAAAIgAAAMYAAABcjgQIAAAAABEA8f/NAAAAOKAECAAA AAARAPH/1AAAADigBAgAAAAAEQDx/+AAAACQoAQIAAAAABEA8f8AbGliYy5zby41AF9EWU5B TUlDAF9JT19zdGRlcnJfAGZlb2YAbWFsbG9jAF9fZW52aXJvbgBfaW5pdABfX2xpYmNfaW5p dABjYWxsb2MAZW52aXJvbgBmcHJpbnRmAF9fZnB1X2NvbnRyb2wAZmVycm9yAGZyZWFkAGZv cGVuAGZjbG9zZQBfZmluaQBhdGV4aXQAZndyaXRlAF9HTE9CQUxfT0ZGU0VUX1RBQkxFXwBl eGl0AF9fc2V0ZnB1Y3cAZnJlZQBfZXRleHQAX2VkYXRhAF9fYnNzX3N0YXJ0AF9lbmQAAAAA OKAECAUCAACMoAQIBQsAAHifBAgHAwAAfJ8ECAcEAACAnwQIBwcAAISfBAgHCAAAiJ8ECAcK AACMnwQIBwwAAJCfBAgHDQAAlJ8ECAcOAACYnwQIBw8AAJyfBAgHEQAAoJ8ECAcSAACknwQI BxQAAKifBAgHFQAArJ8ECAcWAAAAAAAAAAAAAOhzCQAAwgAA/zVwnwQI/yV0nwQIAAAAAP8l eJ8ECGgAAAAA6eD/////JXyfBAhoCAAAAOnQ/////yWAnwQIaBAAAADpwP////8lhJ8ECGgY AAAA6bD/////JYifBAhoIAAAAOmg/////yWMnwQIaCgAAADpkP////8lkJ8ECGgwAAAA6YD/ ////JZSfBAhoOAAAAOlw/////yWYnwQIaEAAAADpYP////8lnJ8ECGhIAAAA6VD/////JaCf BAhoUAAAAOlA/////yWknwQIaFgAAADpMP////8lqJ8ECGhgAAAA6SD/////JayfBAhoaAAA AOkQ////AAAAAAAAAABZieOJ4InKAdIB0gHQg8AEMe1VVVWJ5VBTUbiIAAAAuwAAAADNgItE JAijQJ8ECA+3BYygBAhQ6Jz///+DxATo9P7//2hgjgQI6Fr///+DxAToqv7//+hJAAAAUOhn ////W420JgAAAACNtCYAAAAAuAEAAADNgOv3jbQmAAAAAFO7aJ8ECIM9aJ8ECAB0DZCLA//Q g8MEgzsAdfRbw402w5CQkFWJ5VdWU2gAIAAAaAAgAADoj/7//4nCiRVEnwQIg8QIhdIPhdgA AABoko4ECGg4oAQI6H3+//+DxAiLFUSfBAiF0nRKidONgwCAAAA5w3MmixOF0nQPUujo/v// xwMAAAAAg8QEg8MEoUSfBAgFAIAAADnDctr/NUSfBAjow/7//8cFRJ8ECAAAAACDxASLFUif BAiF0nQTUuim/v//xwVInwQIAAAAAIPEBIsVTJ8ECIXSdBNS6Dn+///HBUyfBAgAAAAAg8QE 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 w5CQkAAAAADo2/f//8IAAHQ6IGV4aXQgJWQKAA10OiByZWFkICAlOGxkIHdyaXRlICU4bGQv JWxkAHQ6IG5vIG1lbSBmb3IgYmxvY2tzCgB0OiBnb3QgJWQgYmxvY2tzCgB0OiBubyBtZW0g Zm9yIGJ1ZgoAcgB0LmluAHQ6IG9wZW4gaW5wdXQgZmlsZSBmYWlsZWQKAHcAdC5vdXQAdDog b3BlbiBvdXRwdXQgZmlsZSBmYWlsZWQKAHQ6IHJlYWQgZXJyb3IKAHQ6IHdyaXRlIGVycm9y CgAKdDogZG9uZS4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAP// //8AAAAAsJ8ECAAAAAAAAAAA3oQECO6EBAj+hAQIDoUECB6FBAguhQQIPoUECE6FBAhehQQI boUECH6FBAiOhQQInoUECK6FBAgBAAAAAQAAAAwAAADAhAQIDQAAAGCOBAgEAAAA6IAECAUA AABQgwQIBgAAAKCBBAgKAAAA5QAAAAsAAAAQAAAAFQAAAAAAAAADAAAAbJ8ECAIAAABwAAAA FAAAABEAAAAXAAAASIQECBEAAAA4hAQIEgAAABAAAAATAAAACAAAAAAAAAAAAAAAAEdDQzog KEdOVSkgMi43LjIuMQAAR0NDOiAoR05VKSAyLjcuMi4xAABHQ0M6IChHTlUpIDIuNy4yLjEA CAAAAAAAAAABAAAAMDEuMDEAAAAIAAAAAAAAAAEAAAAwMS4wMQAAAAgAAAAAAAAAAQAAADAx LjAxAAAAAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmludGVycAAuaGFzaAAuZHluc3lt AC5keW5zdHIALnJlbC5ic3MALnJlbC5wbHQALmluaXQALnBsdAAudGV4dAAuZmluaQAucm9k YXRhAC5kYXRhAC5jdG9ycwAuZHRvcnMALmdvdAAuZHluYW1pYwAuYnNzAC5jb21tZW50AC5u b3RlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAIA AADUgAQI1AAAABMAAAAAAAAAAAAAAAEAAAAAAAAAIwAAAAUAAAACAAAA6IAECOgAAAC4AAAA AwAAAAAAAAAEAAAABAAAACkAAAALAAAAAgAAAKCBBAigAQAAsAEAAAQAAAABAAAABAAAABAA AAAxAAAAAwAAAAIAAABQgwQIUAMAAOUAAAAAAAAAAAAAAAEAAAAAAAAAOQAAAAkAAAACAAAA OIQECDgEAAAQAAAAAwAAABEAAAAEAAAACAAAAEIAAAAJAAAAAgAAAEiEBAhIBAAAcAAAAAMA AAAIAAAABAAAAAgAAABLAAAAAQAAAAYAAADAhAQIwAQAAAgAAAAAAAAAAAAAABAAAAAAAAAA UQAAAAEAAAAGAAAAyIQECMgEAADwAAAAAAAAAAAAAAAEAAAABAAAAFYAAAABAAAABgAAAMCF BAjABQAAnAgAAAAAAAAAAAAAEAAAAAAAAABcAAAAAQAAAAYAAABgjgQIYA4AAAgAAAAAAAAA AAAAABAAAAAAAAAAYgAAAAEAAAACAAAAaI4ECGgOAADVAAAAAAAAAAAAAAABAAAAAAAAAGoA AAABAAAAAwAAAECfBAhADwAAHAAAAAAAAAAAAAAABAAAAAAAAABwAAAAAQAAAAMAAABcnwQI XA8AAAgAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAAEAAAADAAAAZJ8ECGQPAAAIAAAAAAAAAAAA AAAEAAAAAAAAAH4AAAABAAAAAwAAAGyfBAhsDwAARAAAAAAAAAAAAAAABAAAAAQAAACDAAAA BgAAAAMAAACwnwQIsA8AAIgAAAAEAAAAAAAAAAQAAAAIAAAAjAAAAAgAAAADAAAAOKAECDgQ AABYAAAAAAAAAAAAAAAIAAAAAAAAAJEAAAABAAAAAAAAAAAAAAA4EAAAPAAAAAAAAAAAAAAA AQAAAAAAAACaAAAABwAAAAAAAAA8AAAAdBAAADwAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMA AAAAAAAAAAAAALAQAACgAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAADoFAAA wAQAABYAAAArAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAqBkAAL4BAAAAAAAAAAAAAAEA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAADAAIA AAAAAAAAAAAAAAAAAwADAAAAAAAAAAAAAAAAAAMABAAAAAAAAAAAAAAAAAADAAUAAAAAAAAA AAAAAAAAAwAGAAAAAAAAAAAAAAAAAAMABwAAAAAAAAAAAAAAAAADAAgAAAAAAAAAAAAAAAAA AwAJAAAAAAAAAAAAAAAAAAMACgAAAAAAAAAAAAAAAAADAAsAAAAAAAAAAAAAAAAAAwAMAAAA AAAAAAAAAAAAAAMADQAAAAAAAAAAAAAAAAADAA4AAAAAAAAAAAAAAAAAAwAPAAAAAAAAAAAA AAAAAAMAEAAAAAAAAAAAAAAAAAADABEAAAAAAAAAAAAAAAAAAwASAAAAAAAAAAAAAAAAAAMA EwAAAAAAAAAAAAAAAAADABQAAAAAAAAAAAAAAAAAAwAVAAAAAAAAAAAAAAAAAAMAFgABAAAA AAAAAAAAAAAEAPH/DAAAADiOBAgAAAAAAAAJABsAAAA4jgQIAAAAAAIACQAxAAAAYJ8ECAAA AAABAA0APgAAAFiOBAgAAAAAAgAJAEkAAABcnwQIAAAAAAEADABXAAAAaJ8ECAAAAAABAA4A ZAAAAAAAAAAAAAAABADx/2sAAAAwhgQIAAAAAAAACQABAAAAAAAAAAAAAAAEAPH/DAAAAECG BAgAAAAAAAAJAHAAAABAhgQIAAAAAAIACQCGAAAAZJ8ECAAAAAABAA4AlAAAAGCGBAgAAAAA AgAJAEkAAABEnwQIAAAAAAEADACfAAAAXJ8ECAAAAAABAA0ArQAAAAAAAAAAAAAABADx/wwA AABkhgQIAAAAAAAACQCxAAAAVJ8ECAQAAAABAAwAswAAAFifBAgEAAAAAQAMALUAAACwnwQI AAAAABEA8f++AAAAXI4ECAAAAAARAPH/xQAAADigBAhUAAAAEQARANEAAADYhAQIVgAAABIA AADWAAAA6IQECAAAAAAiAAAA3QAAAFCfBAgEAAAAEQAMAOIAAABAnwQIBAAAABEADADsAAAA wIQECAAAAAASAAcA8gAAAPiEBAhGAAAAEgAAAP4AAABEnwQIBAAAABEADAAFAQAACIUECAAA AAAiAAAADAEAAEyfBAgEAAAAEQAMABABAABAnwQIBAAAACAADAAYAQAAGIUECAAAAAAiAAAA IAEAAIygBAgCAAAAEQARAC4BAADAhQQIgAAAABIACQA1AQAAKIUECFYAAAASAAAAPAEAAMCF BAgAAAAAEAAJAEsBAAA4hQQIAAAAACIAAABRAQAASIUECAAAAAAiAAAAVwEAADigBAgAAAAA EQDx/2MBAABkhgQI1AcAABIACQBoAQAAWIUECAAAAAAiAAAAbwEAAGCOBAgAAAAAEgAKAHUB AABohQQINAAAABIAAAB8AQAASJ8ECAQAAAARAAwAgAEAAHiFBAgAAAAAIgAAAIcBAAA4oAQI AAAAABEA8f+OAQAAbJ8ECAAAAAARAPH/pAEAAJCgBAgAAAAAEQDx/6kBAACIhQQIgAAAABIA AACuAQAAmIUECD4AAAASAAAAuQEAAKiFBAgAAAAAIgAAAABjcnRzdHVmZi5jAGdjYzJfY29t cGlsZWQuAF9fZG9fZ2xvYmFsX2N0b3JzX2F1eABfX0NUT1JfRU5EX18AaW5pdF9kdW1teQBm b3JjZV90b19kYXRhAF9fRFRPUl9FTkRfXwBjcnQwLlMAZG9uZQBfX2RvX2dsb2JhbF9kdG9y c19hdXgAX19EVE9SX0xJU1RfXwBmaW5pX2R1bW15AF9fQ1RPUl9MSVNUX18AdC5jAGkAagBf RFlOQU1JQwBfZXRleHQAX0lPX3N0ZGVycl8AZmVvZgBtYWxsb2MAZm91dABfX2Vudmlyb24A X2luaXQAX19saWJjX2luaXQAYmxvY2tzAGNhbGxvYwBmaW4AZW52aXJvbgBmcHJpbnRmAF9f ZnB1X2NvbnRyb2wAX3N0YXJ0AGZlcnJvcgBfX19jcnRfZHVtbXlfXwBmcmVhZABmb3BlbgBf X2Jzc19zdGFydABtYWluAGZjbG9zZQBfZmluaQBhdGV4aXQAYnVmAGZ3cml0ZQBfZWRhdGEA X0dMT0JBTF9PRkZTRVRfVEFCTEVfAF9lbmQAZXhpdABfX3NldGZwdWN3AGZyZWUA --------------60930AA6810164D38DB1C21 Content-Type: text/plain; charset=us-ascii; name="t.c" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="t.c"

/* t.c * * Demonstrate the SMP lockup. * * On my 64MB machine: * BUF_SIZE of 1MB works * BUF_SIZE of 4MB works * BUF_SIZE of 8MB works * BUF_SIZE of 16MB locks up (often). * BUF_SIZE of 32MB locks up. * * 't.in' is a 256MB file (build with dd if=/dev/zero ...) * I tested with both files on same device and on different ones * with same results. * * build as: gcc -O3 -Wall -o t t.c */

#include <stdio.h> #include <stdlib.h>

#define NBLOCKS 8192 #define BLKSIZE 2048 char **blocks = NULL;

#define REC_SIZE 256 #define BUF_SIZE (32L*1024L*1024L) #define FILE_SIZE (256L*1024L*1024L) char *buf = NULL;

FILE *fin = NULL; FILE *fout = NULL;

static long i = 0; static long j = 0;

static void die (int reason) { char **p;

if (NULL != blocks) { for (p = blocks; p < blocks+NBLOCKS; ++p) { if (NULL != *p) { free (*p); *p = NULL; } } free (blocks); blocks = NULL; }

if (NULL != buf) { free (buf); buf = NULL; }

if (NULL != fin) { fclose (fin); fin = NULL; }

if (NULL != fout) { fclose (fout); fout = NULL; }

if (reason) { fprintf (stderr, "t: exit %d\n", reason); exit (reason); } }

static void prompt (void) { fprintf (stderr, "\rt: read %8ld write %8ld/%ld", j, i, FILE_SIZE/BUF_SIZE); }

int main (int argc, char *argv[], char *envp[]) { char **p; char *b;

blocks = calloc (NBLOCKS, BLKSIZE * sizeof (*blocks)); if (NULL == blocks) { fprintf (stderr, "t: no mem for blocks\n"); die (1); } for (p = blocks; p < blocks+NBLOCKS; ++p) { *p = malloc (BLKSIZE); if (NULL == *p) break; } fprintf (stderr, "t: got %d blocks\n", (int)(p-blocks));

buf = malloc (BUF_SIZE); if (NULL == buf) { fprintf (stderr, "t: no mem for buf\n"); die (2); }

fin = fopen ("t.in", "r"); if (NULL == fin) { fprintf (stderr, "t: open input file failed\n"); die (3); }

fout = fopen ("t.out", "w"); if (NULL == fout) { fprintf (stderr, "t: open output file failed\n"); die (3); }

for (i = 0;; ++i) { for (b = buf, j = 0; j < BUF_SIZE/REC_SIZE; ++j, b += REC_SIZE) { fread (b, REC_SIZE, 1, fin); if (feof (fin)) break; if (ferror (fin)) { fprintf (stderr, "t: read error\n"); die (4); } if (!(j%1000)) prompt (); } if (0 == j) break; prompt ();

fwrite (buf, REC_SIZE, j, fout); if (ferror (fout)) { fprintf (stderr, "t: write error\n"); die (4); } prompt (); } fprintf (stderr, "\nt: done.\n");

die (0); return (0); }

--------------60930AA6810164D38DB1C21--