730c586ad5
While running 20 parallel instances of dd as follows:
#!/bin/bash
for i in `seq 1 20`; do
dd if=/dev/zero of=/export/hda3/dd_$i bs=1073741824 count=1 &
done
wait
on a 16G machine, we noticed that rather than just killing the processes,
the entire kernel went down. Stracing dd reveals that it first does an
mmap2, which makes 1GB worth of zero page mappings. Then it performs a
read on those pages from /dev/zero, and finally it performs a write.
The machine died during the reads. Looking at the code, it was noticed
that /dev/zero's read operation had been changed by
|
||
---|---|---|
.. | ||
agp | ||
hw_random | ||
ip2 | ||
ipmi | ||
mwave | ||
pcmcia | ||
rio | ||
tpm | ||
xilinx_hwicap | ||
.gitignore | ||
amiserial.c | ||
apm-emulation.c | ||
applicom.c | ||
applicom.h | ||
bfin-otp.c | ||
briq_panel.c | ||
bsr.c | ||
cd1865.h | ||
ChangeLog | ||
consolemap.c | ||
cp437.uni | ||
cs5535_gpio.c | ||
cyclades.c | ||
defkeymap.c_shipped | ||
defkeymap.map | ||
digi1.h | ||
digiFep1.h | ||
digiPCI.h | ||
ds1302.c | ||
ds1620.c | ||
dsp56k.c | ||
dtlk.c | ||
efirtc.c | ||
epca.c | ||
epca.h | ||
epcaconfig.h | ||
esp.c | ||
generic_nvram.c | ||
generic_serial.c | ||
genrtc.c | ||
hangcheck-timer.c | ||
hpet.c | ||
hvc_beat.c | ||
hvc_console.c | ||
hvc_console.h | ||
hvc_irq.c | ||
hvc_iseries.c | ||
hvc_iucv.c | ||
hvc_rtas.c | ||
hvc_udbg.c | ||
hvc_vio.c | ||
hvc_xen.c | ||
hvcs.c | ||
hvsi.c | ||
i8k.c | ||
isicom.c | ||
istallion.c | ||
Kconfig | ||
keyboard.c | ||
lp.c | ||
Makefile | ||
mbcs.c | ||
mbcs.h | ||
mem.c | ||
misc.c | ||
mmtimer.c | ||
moxa.c | ||
moxa.h | ||
mspec.c | ||
mxser.c | ||
mxser.h | ||
n_hdlc.c | ||
n_r3964.c | ||
n_tty.c | ||
nozomi.c | ||
nsc_gpio.c | ||
nvram.c | ||
nwbutton.c | ||
nwbutton.h | ||
nwflash.c | ||
pc8736x_gpio.c | ||
ppdev.c | ||
ps3flash.c | ||
pty.c | ||
random.c | ||
raw.c | ||
riscom8_reg.h | ||
riscom8.c | ||
riscom8.h | ||
rocket_int.h | ||
rocket.c | ||
rocket.h | ||
rtc.c | ||
scc.h | ||
scx200_gpio.c | ||
selection.c | ||
ser_a2232.c | ||
ser_a2232.h | ||
ser_a2232fw.ax | ||
ser_a2232fw.h | ||
serial167.c | ||
snsc_event.c | ||
snsc.c | ||
snsc.h | ||
sonypi.c | ||
specialix_io8.h | ||
specialix.c | ||
stallion.c | ||
sx.c | ||
sx.h | ||
sxboards.h | ||
sxwindow.h | ||
synclink_gt.c | ||
synclink.c | ||
synclinkmp.c | ||
sysrq.c | ||
tb0219.c | ||
tlclk.c | ||
toshiba.c | ||
tty_audit.c | ||
tty_buffer.c | ||
tty_io.c | ||
tty_ioctl.c | ||
tty_ldisc.c | ||
tty_port.c | ||
vc_screen.c | ||
viotape.c | ||
virtio_console.c | ||
vme_scc.c | ||
vr41xx_giu.c | ||
vt_ioctl.c | ||
vt.c |