[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(wdc_obio.c) ata-4 improves 40% in transfer
> 藤原 誠
>
>更に話が関係ない方に飛びますが、2001/06/18 頃の kernel だと、
>iBook に入替えている 20G のものが全く動かない気がしています。
同じ kernel (20010618) を G4/AGP 350MHz + WDC WD102AA に入
れたら、iBook と違って、問題がなかったのですが、
At Fri, 29 Jun 2001 01:21:27 +0900,
Tsubai Masanari wrote:
> *** wdc_obio.c~ Sat Jun 16 02:02:41 2001
> --- wdc_obio.c Fri Jun 29 01:13:26 2001
何か予感がしたので :-) patch を当てる前と、当てた後の比較を
して見ました。
(まとめ)
・dmesg で次の字が見える
wd0(wdc0:0:0): using .. Ultra-DMA mode 4 (Ultra/66) (using DMA data transfers)
・(簡易)読出速度が 40% 改善される 12.5M/s -> 17.6M/s
・kernel を make する時間には変化がない
(CPU が 100% 近かったら当然でしょうか ?
表示は 100% を越えていますが)
・wd0(master) の他に wd1(slave) が付いていると動かない
比較の詳細です。
○ dmesg
【前】
wdc0 at obio0 offset 0x1f000 irq 19: DMA transfer
wd0 at wdc0 channel 0 drive 0: <WDC WD102AA>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 9787 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 20044080 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
wd0(wdc0:0:0): using PIO mode 4, DMA mode 2 (using DMA data transfers)
【後】
wdc0 at obio0 offset 0x1f000 (ata-4) irq 19: DMA transfer
wd0 at wdc0 channel 0 drive 0: <WDC WD102AA>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 9787 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 20044080 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
wd0(wdc0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66) (using DMA data transfers)
○簡易読出速度
【前】
# dd if=/dev/rwd0a of=/dev/null bs=64k
2048+0 records in
2048+0 records out
134217728 bytes transferred in 10.718 secs (12522646 bytes/sec)
【後】
# dd if=/dev/rwd0a of=/dev/null bs=64k
2048+0 records in
2048+0 records out
134217728 bytes transferred in 7.635 secs (17579270 bytes/sec)
○ kernel を作って見る (make depend;time make)
【前】
compile/GENERIC-insecure-wdc_obio-0
524.262u 95.907s 10:03.41 102.7% 0+0k 29+3341io 145pf+0w
【後】
compile/GENERIC-insecure-wdc_obio-0
528.889u 96.774s 10:08.25 102.8% 0+0k 9+3327io 98pf+0w
○ ところで wd1 として MDMA が付いている時に、つまり次のような時に、
wdc:0:0:0 WDC1022AA
wdc:0:0:1 ST31276
wd1 at wdc0 channel 0 drive 1: <Seagate Technology 1275MB - ST31276A>
wd1: drive supports 16-sector PIO transfers, LBA addressing
wd1: 1221 MB, 2482 cyl, 16 head, 63 sec, 512 bytes/sect x 2502308 sectors
wd1: drive supports PIO mode 4, DMA mode 2
【前】
# dd if=/dev/rwd1a of=/dev/null bs=64k
519+1 records in
519+1 records out
34062336 bytes transferred in 6.741 secs (5053009 bytes/sec)
#
○ 次のように止ってしまいます。
...
/dev/rwd0a: file system is clean; not checking
/dev/rwd0g: file system is clean; not checking
wdc0:0:1: lost interrupt
type ata tc_bcount: 512 tc_skip: 0
panic: lockmgr: no context
Stopped at 0x2e2bf0: lwz r0,r1, 0x14,
db>
(入力出来ず) ... 二回試しました...
それで、
上の方に書いてある測定等は、wd1 を外した kernel を使っています。
disk を物理的(電気的)に外すのは (jumper switch の設定とかあるので)
面倒に思ってそうしました。
---
http://www.ki.nu/software/NetBSD/iBook2/
(藤原)