Re: 2.6.13 brings buffer underruns when recording DVDs in 16x (was Re: "Read my lips: no more merges" - aka Linux 2.6.14-rc1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mathieu Fluhr <[email protected]> wrote:
>
> On Wed, 2005-09-14 at 01:30 -0700, Andrew Morton wrote:
> > Mathieu Fluhr <[email protected]> wrote:
> > >
> > > According to the MMC documentation, you can thoeriticaly send at most
> > >  65535 (16 bits int) blocks in one WRITE(10) CDB. This would means
> > >  sending a buffer of ~127 MB on case of writing a mode 1 data track (2048
> > >  bytes per block)...
> > > 
> > >  Now, practically, it is really not safe to send more than 64 KB per CDB
> > >  (Mostly device related). And with such values, you have the following:
> > >   - at 100 Hz  -> 64 KB * 100  = 6400 KB/s  <=> ~4.62x  DVD 
> > >   - at 250 Hz  -> 64 KB * 250  = 16000 KB/s <=> ~11.55x DVD 
> > >   - at 1000 Hz -> 64 KB * 1000 = 64000 KB/s <=> ~46.20x DVD
> > 
> > But that implies that there's some piece of code somewhere (could be
> > userspace, could be kernel) which is doing a timer-based sleep() in between
> > each CDB.  It shouldn't do that - it should be using the disk
> > controller's completion interrupt for synchronisation.
> > 
> 
> Hummm... you are definitly right. So forget my calculations. I does not
> mean anything. Honestly, I was just trying to find an explanation why it
> was working with HZ set to 1000 and not with HZ set to 250 or 100.
> 
> > What userspace application are you using to write the DVDs, and is it
> > possible to test a different one?
> 
> I am using NeroLINUX to make my tests. I also tried out
> cdrecord/growisofs, but I was not even able to burn at 16x (I get some
> error message that max speed is 10x... and nothing more).
> 
> But there seems to be somehow some I/O limitation: I configured a pure
> 2.6.13.1 to have HZ set to 100. I then made a 3 GB compilation with
> small files (about 3 to 5 MB each).
>  - If you burn this directly without creating a temp ISO image in 4x
> (5440 KB/s), you will get buffer underruns soon or later... (about 2%)
>  - If you create an ISO image out of the compilation (using mkisofs or
> other tool), and then burn this image, then no buffer underruns occurs.
> 
> After that, you speed up your recorder with this image (for example at
> 8x), you will have these buffer underruns back again.
> And as I tell you, no such stuff is happening when HZ is set to 1000.
> 

OK, so you get underruns with NeroLINUX at 8x, and it should be possible to
test cdrecord at 8x, yes?  If that works then it's time to take a look at
what NeroLINUX is doing..

erp, it's payware.   strace, maybe?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux