SATA DVD speed's too slow (Modified by Joshua Isom)

Joshua Isom jrisom at
Sun Nov 11 13:21:57 PST 2007

On Nov 11, 2007, at 1:20 PM, Andresen, Jason R. wrote:

> From: owner-freebsd-hackers at
> [mailto:owner-freebsd-hackers at] On Behalf Of Joshua Isom
>> Redirected from freebsd-questions after no reply.
>> I currently have an SATA DVD-RW drive for my computer.  I have to boot
>> using a CURRENT kernel to get the drive recognized, and dmesg lists it
>> as running at 3.3MB/s.  Running mplayer -dumpstream gets around 3 megs
>> a second.  Copying off a data dvd gets about the same.  But I recall
>> reading about playing a dvd before trying to get the data off of it
>> when using dd, and it seems to work.  But the odd part is, it can get
>> up to 20 megabytes a second.  Does anyone know how to get the higher
>> speeds all the time?
> What you're probably seeing is a feature of how modern optical drives
> work.  Unlike the "4x" drives of old, the drive does not speed up or
> slow down the disc based on the position of the head, instead they
> maintain a fixed rotation speed.  Because of this, the pits on the edge
> of the disc move much faster than the ones near the center of the disc.
> As you write to the disc you will see your speed increase as the laser
> gets closer to the edge.  Of course the drive manufacturers advertise
> the speed of reading/writing the outermost track when selling the
> drive.

I think you don't really notice some of the details.  The kernel says  
the drive is only capable of 3.3M/s.  Mplayer can dump a dvd at around  
3.0M/s.  If I "play" the dvd a little bit(just a few seconds), and then  
use dd to dump it, I can achieve three times the speed that the kernel  
says is possible.  If I mount as UDF, I get around 3.0M/s.  If I mount  
as cd9660, I get the higher speeds.  I believe it is largely due to  
block size(too much time spent on read calls and protocols than reading  
data, as the speed can quickly triple when the reads are cut down to  
10% of what they were).

It seems to me as though the fastest ways for FreeBSD to copy DVD are  
to use dd or mount_cd9660, or else wait an excruciatingly long time.

But, the drive is getting speeds far faster than the kernel lists it as  
capable of, and in gstat not even listing it as 100% busy.  Here's a  
quick snapshot of gstat, using cp -R with the dvd mounted as cd9660.

dT: 1.002s  w: 1.000s  filter: ^[a-z]+[0-9]+$
  L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w   %busy Name
     0      0      0      0    0.0      0      0    0.0    0.0| ad0
     0      0      0      0    0.0      0      0    0.0    0.0| cd0
     0      0      0      0    0.0      0      0    0.0    0.0| acd0
     0    126      0      0    0.0    126  16096    1.6   19.9| ad4
     0      0      0      0    0.0      0      0    0.0    0.0| cd1
     1    250    250  15968    3.5      0      0    0.0   87.3| acd1

The drive is reading five times faster than I can achieve with mplayer  
or a udf filesystem, and five times faster than the kernel says is  
possible.  Is the drive initially lieing about it's speed and somehow  
sending an updated speed that's not being reported?  Here's the product  
page for the drive. 

More information about the freebsd-questions mailing list