[Paranoia-dev] questions on caching, cdparanoia IV

Philip Jägenstedt philip at lysator.liu.se
Thu Apr 27 16:42:15 PDT 2006


I am paranoid. Recently I've been reading stuff about cdparanoia not being
safe with caching CD-drives. My drive has a 2 MB cache so I carried out an
experiment: I ripped a disc twice with -X and the waves differ (compared
as wave data using shncmp). I've browsed this list and looked a bit at the
users list and proceeded to to a hack at the code. I changed p->readahead
in paranoia_init from 150 to 1000 which should give a readahead of more
than 2MB. Same experiment again, but the files still differ. Ripping was
also much slower. Of course my change was completely naive as I haven't
really read the code that uses p->readahead, so I'm not sure if it
_should_ work. Should it?

What's the story on defeating the cache on modern drives? Has there been
any development on cdparanoia IV in the last 5 years, and could I be of
help somewhere? I'm not a complete kludge with hacking C code, but first
I'd like to know if anyone else is working on something so that effort is
not duplicated. If it's possible to disable caching via the new commands
in some new ATAPI standard I've been seeing references to on the mailing
lists that would be great, but I've gotten the impression that it's
unlikely to work for all drives and that some more or less kludgy
cache-defeating mechanism will continue to be necessary.

Right now I'm ripping discs twice to ensure integrity and it works for
scratch-free discs, but I want to be able to tell my friends to use
sound-juicer (gnomes friendly ripper which uses cdparanoia) and have
confidence that the files they get will have no errors. What must be done
to get to that point? Automatic cache (size) detection? More fancy cache
thrashing? Something completely different?

// Philip Jägenstedt

More information about the Paranoia-dev mailing list