<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML dir=rtl><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1255">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY dir=ltr bgColor=#ffffff>
<DIV><FONT size=2>Hi All,</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>If I want to enable 32-bit and DMA on a SATA drive, is that
something that can be done?</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>I tried to follow the instructions below,. but hit a wall with
errors:</FONT><FONT size=2></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2><A
href="http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html?page=2">http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html?page=2</A></FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><FONT size=2>Below is a copy from the article:</FONT></DIV>
<DIV><FONT size=2>---------------------------</FONT></DIV>
<DIV><FONT size=2></FONT> </DIV>
<DIV><SPAN id=intelliTxt name="intelliTxt"><BR clear=all><!-- me --><PRE><CODE>hdparm -c3 -m16 /dev/hda</CODE>
<FONT face=monospace>/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
</FONT></PRE>
<P>Great! 32-bit sounds nice. And some multi-reads might work. Let's re-run the
benchmark:</P><PRE><CODE>hdparm -tT /dev/hda</CODE>
<FONT face=monospace>
/dev/hda:
Timing buffer-cache reads: 128 MB in 1.41 seconds =90.78 MB/sec
Timing buffered disk reads: 64 MB in 9.84 seconds = 6.50 MB/sec</FONT></PRE>
<P>WOW! Almost double the disk throughput without really trying! Incredible.</P>
<P>But wait, there's more: We're still not unmasking interrupts, using DMA, or
even a using decent PIO mode! Of course, enabling these gets riskier. (Why is it
always a trade-off between freedom and security?) The man page mentions trying
Multiword DMA mode2, so:</P><PRE><CODE>hdparm -X34 -d1 -u1 /dev/hda</CODE></PRE>
<P>...Unfortunately this seems to be unsupported on this particular box (it hung
like an NT box running a Java app.) So, after rebooting it (again in single-user
mode), I went with this:</P><PRE><CODE>hdparm -X66 -d1 -u1 -m16 -c3 /dev/hda</CODE>
<FONT face=monospace>/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 66 (UltraDMA mode2)
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)</FONT></PRE>
<P>And then checked:</P><PRE><CODE>hdparm -tT /dev/hda</CODE>
<FONT face=monospace>/dev/hda:
Timing buffer-cache reads: 128 MB in 1.43 seconds =89.51 MB/sec
Timing buffered disk reads: 64 MB in 3.18 seconds =20.13 MB/sec
</FONT></PRE>
<P>20.13 MB/sec. A far cry from the miniscule 3.58 we started with...</P>
<P>By the way, notice how we specified the <CODE>-m16</CODE> and
<CODE>-c3</CODE> switch again? That's because it doesn't remember your hdparm
settings between reboots. Be sure to add the above line (not the test line with
<CODE>-tT</CODE> flags!) to your /etc/rc.d/* scripts once you're sure the system
is stable (and preferably after your fsck runs; having an extensive fs check run
with your controller in a flaky mode may be a good way to generate vast
quantities of entropy, but it's no way to administer a system. At least not with
a straight face...)</P>
<P>Now, after running the benchmark a few more times, reboot in multi-user mode
and fire up X. Load Netscape. And try not to fall out of your chair.</P>
<P> </P>
<P><FONT size=2></FONT> </P></SPAN></DIV></BODY></HTML>