But now I see where you like to use O_DIRECT.
If you use O_DIRECT for writing, it makes sense and in the same case
it makes sense to use directio(fd, DIRECTIO_ON); on Solaris.
     
By not buffering the output of mkisofs, for example, buffer space is 
available for reading. This makes a small improvement on a large memory, 
much more as the memory is smaller and read ahead could be impacted by 
buffering writes.
   
Although on Solaris, it only saves System CPU time and I cannot see
an wall clock improvement.
     
I haven't tested there, and I bet you have not tested in small memory (I 
use 160MB for test).
   
Whether this makes sense with the _output_ file from star or mkisofs
needs to be tested.....
     
I had not tried with the output of star, that's an interesting suggestion.