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

Re: Growisofs input cache (get away from dd?)

David Weisgerber wrote:
The problem with growisofs is, that it does not seem to use the file
system buffers. That means already burning 3 DVDs at once is too much for
my system.
I would asume that growisofs cannot easily turn off the filesystem
buffering, but is there a buffer inside growisofs?

I found out, that growisofs uses the option O_DIRECT when opening files. Does somebody know why this option is used? It seems to me totally useless when reading ISO files...


You have to understand what O_DIRECT does to know why it is desirable to use it. Using O_DIRECT bypasses the system i/o buffers, not to benefit the burner program but to benefit the rest of the system users by not passing multiple GB of once-used data through the system buffers and blowing everything else out. Because the majority of use of media burning programs is not some form of do-it-yourself media burner, but users burning a single media with a single burner, and probably wanting to use the system with decent response while the burn takes place.

If you want to burn multiple copies of an image, you have YOUR program read the image, once, and send the data to the burning programs as stdin via a pipe. Don't depend on having the o/s providing the buffering, or special modes being used or not. You can do this in about 40 lines of perl, it's not rocket science. You need a burning program which will burn from its stdin, preferably without knowing how long the image is in advance, since an ISO image is not being created by the burning program.

There are systems so big that blowing out the cache for a CD, or DVD may not hurt performance, but I think a Blu-Ray will be noticed on most systems. Using O_DIRECT only looks totally useless when you look through the wrong end of the problem at "how does it help the application" instead of "how does it avoid hurting the rest of the applications?"

Bill Davidsen <davidsen@tmr.com>
 "Woe unto the statesman who makes war without a reason that will still
be valid when the war is over..." Otto von Bismark

Reply to: