Two things I've noticed:
1) my cdrom delivers about 2M/s which is the same as before DMA. Is
the improvement only in cpu usage or should I be seeing a speed
improvement too?
speed tested with:
dd if=/dev/racd0c of=/dev/null bs=64k count=320
(I get it to spin up with another dd before this test)
2) I can crash my system (sometimes a panic, sometimes a freeze) with:
dd if=/dev/racd0c of=/dev/null bs=1m count=1
I could do bs=1m before the DMA code went in.
If the system freezes I see:
atapi_error: READ_BIG - timeout error = 00
<long pause>
the dd puts out a message about transferring 0 records
ata1: master: timeout waiting to give command s = d8 e = 00
I got one panic which was (transcribed by hand, I had dump off):
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor write, page not present
instruction pointer = 0x8:0xc01f4266
stack pointer = 0x10:0xc9825d7c
frame pointer = 0x10:0xc9825d94
code segment = base 0x0, limit 0xfffff, type 0x1b
processor cflags = interrupt enabled, resume, IOPL = 0
current process = 43899 (dd)
interrupt mask = bio
trap number = 12
panic: page fault
I turned dump on and tried again but got a system freeze (reset to
reboot) instead with no panic and no dump.
The relevant dmesg stuff:
ata-pci0: <Intel PIIX4 IDE controller> at device 4.1 on pci0
ata-pci0: Busmastering DMA supported
ata0 at 0x01f0 irq 14 on ata-pci0
ata1 at 0x0170 irq 15 on ata-pci0
...
ata0: master: setting up UDMA2 mode on PIIX4 chip OK
ad0: <WDC AC310200R/17.01J17> ATA-4 disk at ata0 as master
ad0: 9787MB (20044080 sectors), 19885 cyls, 16 heads, 63 S/T, 512 B/S
ad0: piomode=4, dmamode=2, udmamode=2
ad0: 16 secs/int, 0 depth queue, DMA mode
ata0: slave: setting up UDMA2 mode on PIIX4 chip OK
ad1: <FUJITSU MPC3084AT/6021> ATA-3 disk at ata0 as slave
ad1: 8063MB (16514064 sectors), 16383 cyls, 16 heads, 63 S/T, 512 B/S
ad1: piomode=4, dmamode=2, udmamode=2
ad1: 16 secs/int, 0 depth queue, DMA mode
ata1: master: setting up UDMA2 mode on PIIX4 chip OK
ad2: <WDC AC36400L/09.09M08> ATA-4 disk at ata1 as master
ad2: 6149MB (12594960 sectors), 13328 cyls, 15 heads, 63 S/T, 512 B/S
ad2: piomode=4, dmamode=2, udmamode=2
ad2: 16 secs/int, 0 depth queue, DMA mode
atapi: piomode=4, dmamode=2, udmamode=-1
ata1: slave: setting up WDMA2 mode on PIIX3/4 chip OK
atapi: DMA transfer mode set
acd0: <MATSHITA CR-586/KS15> CDROM drive at ata1 as slave
acd0: drive speed 5515KB/sec, 256KB cache, DMA
acd0: supported read types: CD-R, CD-RW, CD-DA
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: CD-ROM 120mm data disc loaded, unlocked
--
Kevin Street
[EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message