ATA DVD playback hanging in physrd

Kevin Oberman oberman at
Wed Sep 1 12:56:23 PDT 2004

> Date: Wed, 01 Sep 2004 12:22:28 -0700
> From: Nate Lawson <nate at>
> Kevin Oberman wrote:
> >>Date: Fri, 16 Jul 2004 15:50:03 -0700
> >>From: Nate Lawson <nate at>
> >>Sender: owner-freebsd-current at
> > 
> >>While playing back a DVD on my Thinkpad, it hangs at some point (2-5
> >>minutes after beginning playback).  The player is hung in "physrd" and
> >>the drive stops spinning.  This hang happens when the drive is in PIO4
> >>or DMA mode.
> >>
> >>However, starting another process (i.e. cat /dev/acd0) spins up the
> >>drive and it works (and the other process begins running again).
> >>What's interesting is that I can quickly trigger this hang by starting
> >>IO on a completely different channel (i.e. dd if=/dev/ad0 of=/dev/null
> >>bs=1m).  This indicates that it may be a driver issue since the DVD
> >>drive that hangs is on a different channel and irq than the hard
> >>drive.
> >>
> >>Devices:
> >>atapci0: <Intel ICH3 UDMA100 controller> port
> >>0x1860-0x186f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
> >>ata0: at 0x1f0 irq 14 on atapci0
> >>ata1: at 0x170 irq 15 on atapci0
> >>[...]
> >>ad0: 19077MB <IC25N020ATMR04-0> [41344/15/63] at ata0-master UDMA100
> >>ata1-master: FAILURE - ATAPI_RESET no interrupt
> >>acd0: DVDROM <MATSHITADVD-ROM SR-8175> at ata1-master PIO4
> >>
> >>The same behavior also happens on my DVD/CDRW drive.
> >>ata1-slave: FAILURE - ATAPI_IDENTIFY no interrupt
> >>ata1-slave: FAILURE - ATAPI_IDENTIFY no interrupt
> >>ata1-master: FAILURE - ATAPI_RESET no interrupt
> >>acd0: CDRW <UJDA720 DVD/CDRW> at ata1-master PIO4
> > 
> > I have been seeing the same thing on my ThinkPad for a couple of
> > weeks. It may have been there for longer as I had not heavily used the
> > DVD for a while. There have been similar reports from others, but this
> > is the most exact match to what I have been seeing. Mine is a Toshiba
> > DVD/CDRW (DW-28E) at ata1-master UDMA33.
> I don't know if others reported back on this yet, but the problem is 
> fixed.  I believe Soeren's race fix was the key.

Thanks for the note, Nate. I actually heard from someone else (I don't
remember who) that this bug had vanished, although the note di not
indicate what had fixed it.

I suspected either a race or a lost interrupt. 

In any case, I have not seen the problem for a couple of weeks. (I'm
guessing that it was ata-lowlevel.c 1.41 (and patches to most of the
rest of ata) in HEAD.

Thanks for the note!
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at			Phone: +1 510 486-8634

More information about the freebsd-current mailing list