Hello,
Hardware
MOBO Intel DG965SS (chipset G965 Express)
PATA CDRW LG GCE-8400B
I'm using PATA_MARVELL driver, and trying to burn a CD results in a
total machine freeze (no SysRq / no output over serial console).
The freeze doesn't happens immediately: the writing process stalls for
several seconds during which the machine works flawlessy.
I've found that even a simple "sdparm -a /dev/sr0" have the same
effect, so I've done an strace:
execve("/usr/bin/sdparm", ["sdparm", "-a", "/dev/sr0"], [/* 63 vars */]) = 0
brk(0) = 0x52c000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b3bfa0b3000
uname({sys="Linux", node="tux", ...}) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=129796, ...}) = 0
mmap(NULL, 129796, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b3bfa0b4000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\322\1"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1256568, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b3bfa0d4000
mmap(NULL, 2273448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2b3bfa1b4000
mprotect(0x2b3bfa2d6000, 1048576, PROT_NONE) = 0
mmap(0x2b3bfa3d6000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122000) = 0x2b3bfa3d6000
mmap(0x2b3bfa3db000, 16552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2b3bfa3db000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b3bfa3e0000
arch_prctl(ARCH_SET_FS, 0x2b3bfa3e06d0) = 0
mprotect(0x2b3bfa3d6000, 12288, PROT_READ) = 0
mprotect(0x2b3bfa1b2000, 4096, PROT_READ) = 0
munmap(0x2b3bfa0b4000, 129796) = 0
open("/dev/sr0", O_RDONLY|O_NONBLOCK) = 3
brk(0) = 0x52c000
brk(0x54d000) = 0x54d000
ioctl(3, SG_IO, 0x52c010) = 0
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b3bfa0b4000
write(1, " /dev/sr0: HL-DT-ST CD-RW GC"..., 57) = 57
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
write(1, "Read write error recovery mode p"..., 37) = 37
write(1, " AWRE 0 [cha: n, def: "..., 35) = 35
write(1, " ARRE 0 [cha: n, def: "..., 35) = 35
write(1, " TB 0 [cha: n, def: "..., 35) = 35
write(1, " RC 0 [cha: n, def: "..., 35) = 35
write(1, " EER 0 [cha: n, def: "..., 35) = 35
write(1, " PER 0 [cha: n, def: "..., 35) = 35
write(1, " DTE 0 [cha: n, def: "..., 35) = 35
write(1, " DCR 0 [cha: y, def: "..., 35) = 35
write(1, " RRC 32 [cha: y, def: 3"..., 35) = 35
write(1, " COR_S 0 [cha: n, def: "..., 35) = 35
write(1, " HOC 0 [cha: n, def: "..., 35) = 35
write(1, " DSOC 0 [cha: n, def: "..., 35) = 35
write(1, " EMCDR 0 [cha: n, def: "..., 35) = 35
write(1, " WRC 0 [cha: n, def: "..., 35) = 35
write(1, " ERTL 0 [cha: n, def: "..., 35) = 35
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
write(1, "Write parameters (MMC) mode page"..., 34) = 34
write(1, " BUFE 0 [cha: y, def: "..., 35) = 35
write(1, " LS_V 0 [cha: n, def: "..., 35) = 35
write(1, " TST_W 0 [cha: y, def: "..., 35) = 35
write(1, " WR_T 1 [cha: y, def: "..., 35) = 35
write(1, " MULTI_S 0 [cha: y, def: "..., 35) = 35
write(1, " FP 0 [cha: y, def: "..., 35) = 35
write(1, " COPY 0 [cha: y, def: "..., 35) = 35
write(1, " TRACK_M 4 [cha: y, def: "..., 35) = 35
write(1, " DBT 8 [cha: y, def: "..., 35) = 35
write(1, " LINK_S 0 [cha: n, def: "..., 35) = 35
write(1, " IAC 0 [cha: y, def: "..., 35) = 35
write(1, " SESS_F 0 [cha: y, def: "..., 35) = 35
write(1, " PACK_S 0 [cha: y, def: "..., 35) = 35
write(1, " APL 150 [cha: y, def:15"..., 35) = 35
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
write(1, "Protocol specific logical unit m"..., 42) = 42
write(1, " LUPID 0 [cha: n, def: "..., 35) = 35
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
write(1, "Power condition mode page:\n", 27) = 27
write(1, " IDLE 1 [cha: n, def: "..., 35) = 35
write(1, " STANDBY 1 [cha: n, def: "..., 35) = 35
write(1, " ICT 1200 [cha: n, def:1"..., 37) = 37
write(1, " SCT 2400 [cha: n, def:2"..., 37) = 37
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO, 0x52c010) = 0
ioctl(3, SG_IO
^^^^^^^^^^^^^^^^^^^
I don't know why the output is truncated that way... anyway, as said
before, the machine works for something like 30s after this (in the
above example it survived >60s).
dmesg / lspci / config attached
Any idea?
--
Paolo Ornati
Linux 2.6.20-rc3 on x86_64