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
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 <firstname.lastname@example.org>
"Woe unto the statesman who makes war without a reason that will still
be valid when the war is over..." Otto von Bismark