lkml.org 
[lkml]   [1997]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.0.29 SMP freeze on PPro200
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)
#
# 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
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
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
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
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.
/* 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
[unhandled content-type:application/octet-stream]/* 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);
}
\
 
 \ /
  Last update: 2005-03-22 13:39    [W:0.124 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site