how to have hal be selective

David Zeuthen david at fubar.dk
Mon Nov 29 14:39:53 UTC 2004


On Mon, 2004-11-29 at 04:37 -0500, Alan Cox wrote:
> On Sun, Nov 28, 2004 at 10:41:17PM -0500, David Zeuthen wrote:
> > Remember: when polling on optical drives, hald uses O_EXCL and that
> > should make open(2) fail with EBUSY if someone else has opened that
> > device O_EXCL - and all cd recording software in the Fedora distribution
> > should do that otherwise it's a bug.
> > 
> > So, assuming that hald gets EBUSY on attempting to open with O_EXCL, why
> > should that interfere with the hardware at all and thus break them?
> 
> For USB I don't know. That baffles me still. For IDE I can cause it when there
> are two devices on the bus because the HAL probe locks the bus talking to
> one device and that stalls the CD write on the other. IDE master/slave 
> operations cannot occur in parallel so it just needs a slow to respond CD
> probe and a fairly fast CD writer to run out of buffer.
> 

I can only see this happening when you have two optical drives on the
same IDE channel. Because the only IDE devices that hal will poll on are
optical drives.

So, say that the master is a CD-ROM drive and the slave is a CD-R. Now,
cdrecord writes to the slave and hal polls only the master (because hal
is locked out by O_EXCL on the slave); shouldn't stalling only occur if
the master employs powersaving? 

I've only seen reports on the stall for laptops (actually only Dell
laptops), e.g. I don't think ordinary desktop optical drives uses
powersaving? FWIW, I couldn't reproduce it the stall on a desktop system
anyway. And I must admit - I would be surprised to see a laptop with two
optical drives on the same IDE channel.

Oh, well, just speculating.

Cheers,
David





More information about the test mailing list