2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

Post by Michael Reinck » Wed, 14 May 2003 08:00:20



Hello,

i upgraded the linux kernel of my computer from 2.4.21-pre4 to
2.4.21-rc2 and got the following messages in syslog when using my
atapi-cdrom drive:

May 12 09:42:42 pcew80 kernel: sr0: scsi3-mmc drive: 24x/24x writer
cd/rw xa/form2 cdda tray
May 12 09:42:42 pcew80 kernel: Uniform CD-ROM driver Revision: 3.12
May 12 09:42:42 pcew80 kernel: sr1: scsi-1 drive
May 12 09:42:42 pcew80 kernel: hdc: attached ide-cdrom driver.
May 12 09:42:42 pcew80 kernel: hdc: ATAPI 48X CD-ROM drive, 120kB Cache,
UDMA(33)
May 12 09:42:42 pcew80 kernel: ISO 9660 Extensions: Microsoft Joliet
Level 3
May 12 09:42:52 pcew80 kernel: hdc: DMA interrupt recovery
May 12 09:42:52 pcew80 kernel: hdc: lost interrupt
May 12 09:42:52 pcew80 kernel: hdc: status timeout: status=0xd0 { Busy }
May 12 09:42:52 pcew80 kernel: hdc: status timeout: error=0x00
May 12 09:42:52 pcew80 kernel: hdc: DMA disabled
May 12 09:42:52 pcew80 kernel: hdc: drive not ready for command
May 12 09:42:52 pcew80 kernel: hdc: ATAPI reset complete

sometimes  with the cdrom-drive is usable again.  One time the
cdrom-drive was completely unusable.  When playing ogg-vorbis files
with xmms the music sometimes hangs for a few seconds or for ever
and the load over one permanently.

With kernel version 2.4.21-pre4 there where no such messages over
behaviour.

Booting messages 2.4.21-rc2: is attached additional diff between boot
messages from 2.4.21-rc2 and 2.4.21-pre4

config for 2.4.21-rc2. is attached additional diff between config for
2.4.21-rc2 and 2.4.21-pre4

--
Michael Reincke, NUT Team 2 (Software Build Management)

STN ATLAS Elektronik GmbH, Bremen (Germany)

phone  : +49-421-457-2302       |        28305 Bremen                  
fax    : +49-421-457-3913       |

  config-2.4.21-rc2
22K Download

  diff_config-2.4.21-pre4_config-2.4.21-rc2
2K Download

  diff_boot-2.4.21-pre4_boot-2.4.21-rc2
6K Download

  lspci-vvv
6K Download
 
 
 

2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

Post by Andrey Borzenko » Wed, 14 May 2003 08:30:13


Quote:> i upgraded the linux kernel of my computer from 2.4.21-pre4 to
> 2.4.21-rc2 and got the following messages in syslog when using my
> atapi-cdrom drive:

> May 12 09:42:42 pcew80 kernel: sr0: scsi3-mmc drive: 24x/24x writer
> cd/rw xa/form2 cdda tray
> May 12 09:42:42 pcew80 kernel: Uniform CD-ROM driver Revision: 3.12
> May 12 09:42:42 pcew80 kernel: sr1: scsi-1 drive
> May 12 09:42:42 pcew80 kernel: hdc: attached ide-cdrom driver.
> May 12 09:42:42 pcew80 kernel: hdc: ATAPI 48X CD-ROM drive, 120kB Cache,
> UDMA(33)
> May 12 09:42:42 pcew80 kernel: ISO 9660 Extensions: Microsoft Joliet
> Level 3
> May 12 09:42:52 pcew80 kernel: hdc: DMA interrupt recovery
> May 12 09:42:52 pcew80 kernel: hdc: lost interrupt
> May 12 09:42:52 pcew80 kernel: hdc: status timeout: status=0xd0 { Busy }
> May 12 09:42:52 pcew80 kernel: hdc: status timeout: error=0x00
> May 12 09:42:52 pcew80 kernel: hdc: DMA disabled
> May 12 09:42:52 pcew80 kernel: hdc: drive not ready for command
> May 12 09:42:52 pcew80 kernel: hdc: ATAPI reset complete

It smells like ide_do_request forgets to enable interrupts when
request queue is empty.

drivers/ide/ide-io.c:

void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
{
        ide_drive_t     *drive;
        ide_hwif_t      *hwif;
        struct request  *rq;
        ide_startstop_t startstop;

        /* for atari only: POSSIBLY BROKEN HERE(?) */
        ide_get_lock(&ide_intr_lock, ide_intr, hwgroup);

        /* necessary paranoia: ensure IRQs are masked on local CPU */
        local_irq_disable();
           ^^^^^^^^
              [...]
                if (drive == NULL) {
                              [...]
                        if (sleep) {
                              [...]
                        } else {
                                /* Ugly, but how can we sleep for the lock
                                 * otherwise? perhaps from tq_disk?
                                 */

                                /* for atari only */
                                ide_release_lock(&ide_intr_lock);
                                hwgroup->busy = 0;
                        }
                        /* no more work for this hwgroup (for now) */
                        return;
                   Oops. local_irq_disable remains in effect
                     [...]
                spin_unlock(&io_request_lock);
                local_irq_enable();
                ^^^^^^^^^^^^^^^^^^^
                        /* allow other IRQs while we start this request */
                startstop = start_request(drive, rq);
                spin_lock_irq(&io_request_lock);
                if (masked_irq && hwif->irq != masked_irq)
                        enable_irq(hwif->irq);
                if (startstop == ide_stopped)
                        hwgroup->busy = 0;

Ironically it does not release ide_intr_lock in this case but we
are not on m68k so we do not care :)

Could you please try to add local_irq_enable() before ide_release_lock() above and see if it helps?
It has been reported to have fixed fix problems for other people. OTOH
I did have sevral hard lockups with this so there may be more subtle
problems issues.

-andrey
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

Post by Michael Reinck » Wed, 14 May 2003 09:40:06



> > i upgraded the linux kernel of my computer from 2.4.21-pre4 to
> > 2.4.21-rc2 and got the following messages in syslog when using my
> > atapi-cdrom drive:
> > May 12 09:42:52 pcew80 kernel: hdc: DMA interrupt recovery
> > May 12 09:42:52 pcew80 kernel: hdc: lost interrupt
> > May 12 09:42:52 pcew80 kernel: hdc: status timeout: status=0xd0 { Busy }
> > May 12 09:42:52 pcew80 kernel: hdc: status timeout: error=0x00
> > May 12 09:42:52 pcew80 kernel: hdc: DMA disabled
> > May 12 09:42:52 pcew80 kernel: hdc: drive not ready for command
> > May 12 09:42:52 pcew80 kernel: hdc: ATAPI reset complete

> It smells like ide_do_request forgets to enable interrupts when
> request queue is empty.

> drivers/ide/ide-io.c:

> void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
> {
>         ide_drive_t     *drive;
>         ide_hwif_t      *hwif;
>         struct request  *rq;
>         ide_startstop_t startstop;

>         /* for atari only: POSSIBLY BROKEN HERE(?) */
>         ide_get_lock(&ide_intr_lock, ide_intr, hwgroup);

>         /* necessary paranoia: ensure IRQs are masked on local CPU */
>         local_irq_disable();
>            ^^^^^^^^
>               [...]
>                 if (drive == NULL) {
>                               [...]
>                         if (sleep) {
>                               [...]
>                         } else {
>                                 /* Ugly, but how can we sleep for the lock
>                                  * otherwise? perhaps from tq_disk?
>                                  */

>                                 /* for atari only */
>                                 ide_release_lock(&ide_intr_lock);
>                                 hwgroup->busy = 0;
>                         }
>                         /* no more work for this hwgroup (for now) */
>                         return;
>                    Oops. local_irq_disable remains in effect
>                      [...]
>                 spin_unlock(&io_request_lock);
>                 local_irq_enable();
>                 ^^^^^^^^^^^^^^^^^^^
>                         /* allow other IRQs while we start this request */
>                 startstop = start_request(drive, rq);
>                 spin_lock_irq(&io_request_lock);
>                 if (masked_irq && hwif->irq != masked_irq)
>                         enable_irq(hwif->irq);
>                 if (startstop == ide_stopped)
>                         hwgroup->busy = 0;

> Ironically it does not release ide_intr_lock in this case but we
> are not on m68k so we do not care :)

> Could you please try to add local_irq_enable() before ide_release_lock() above and see if it helps?
> It has been reported to have fixed fix problems for other people. OTOH
> I did have sevral hard lockups with this so there may be more subtle
> problems issues.

The hangs and timeouts and total blocking of the cdrom drive seems to be
away, but the lost interrupt messages are still there.
But have in mind I've only a quick test so far.

--
Michael Reincke, NUT Team 2 (Software Build Management)

STN ATLAS Elektronik GmbH, Bremen (Germany)

phone  : +49-421-457-2302       |        28305 Bremen                  
fax    : +49-421-457-3913       |

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

Post by Michael Reinck » Wed, 14 May 2003 09:50:04




> > > i upgraded the linux kernel of my computer from 2.4.21-pre4 to
> > > 2.4.21-rc2 and got the following messages in syslog when using my
> > > atapi-cdrom drive:
> > > May 12 09:42:52 pcew80 kernel: hdc: DMA interrupt recovery
> > > May 12 09:42:52 pcew80 kernel: hdc: lost interrupt
> > > May 12 09:42:52 pcew80 kernel: hdc: status timeout: status=0xd0 { Busy }
> > > May 12 09:42:52 pcew80 kernel: hdc: status timeout: error=0x00
> > > May 12 09:42:52 pcew80 kernel: hdc: DMA disabled
> > > May 12 09:42:52 pcew80 kernel: hdc: drive not ready for command
> > > May 12 09:42:52 pcew80 kernel: hdc: ATAPI reset complete

> > It smells like ide_do_request forgets to enable interrupts when
> > request queue is empty.

> > drivers/ide/ide-io.c:

> > void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
> >                         hwgroup->busy = 0;

> > Ironically it does not release ide_intr_lock in this case but we
> > are not on m68k so we do not care :)

> > Could you please try to add local_irq_enable() before ide_release_lock() above and see if it helps?
> > It has been reported to have fixed fix problems for other people. OTOH
> > I did have sevral hard lockups with this so there may be more subtle
> > problems issues.
> The hangs and timeouts and total blocking of the cdrom drive seems to be
> away, but the lost interrupt messages are still there.
> But have in mind I've only a quick test so far.

Bad news the hangs and timeout are still there!

--
Michael Reincke, NUT Team 2 (Software Build Management)

STN ATLAS Elektronik GmbH, Bremen (Germany)

phone  : +49-421-457-2302       |        28305 Bremen                  
fax    : +49-421-457-3913       |

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

2.4.21-rc: lost interrupt wgen usinf atapi cdrom-drive

Post by Michael Reinck » Tue, 20 May 2003 08:50:04





> > > > i upgraded the linux kernel of my computer from 2.4.21-pre4 to
> > > > 2.4.21-rc2 and got the following messages in syslog when using my
> > > > atapi-cdrom drive:
> > > > May 12 09:42:52 pcew80 kernel: hdc: DMA interrupt recovery
> > > > May 12 09:42:52 pcew80 kernel: hdc: lost interrupt
> > > > May 12 09:42:52 pcew80 kernel: hdc: status timeout: status=0xd0 { Busy }
> > > > May 12 09:42:52 pcew80 kernel: hdc: status timeout: error=0x00
> > > > May 12 09:42:52 pcew80 kernel: hdc: DMA disabled
> > > > May 12 09:42:52 pcew80 kernel: hdc: drive not ready for command
> > > > May 12 09:42:52 pcew80 kernel: hdc: ATAPI reset complete

> > > It smells like ide_do_request forgets to enable interrupts when
> > > request queue is empty.

> > > drivers/ide/ide-io.c:

> > > void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
> > >                         hwgroup->busy = 0;

> > > Ironically it does not release ide_intr_lock in this case but we
> > > are not on m68k so we do not care :)

> > > Could you please try to add local_irq_enable() before ide_release_lock() above and see if it helps?
> > > It has been reported to have fixed fix problems for other people. OTOH
> > > I did have sevral hard lockups with this so there may be more subtle
> > > problems issues.
> > The hangs and timeouts and total blocking of the cdrom drive seems to be
> > away, but the lost interrupt messages are still there.
> > But have in mind I've only a quick test so far.

> Bad news the hangs and timeout are still there!

The problem is vanishing when disabling
IO-APIC support on uniprocessors            
--
Michael Reincke, NUT Team 2 (Software Build Management)

STN ATLAS Elektronik GmbH, Bremen (Germany)

phone  : +49-421-457-2302       |        28305 Bremen                  
fax    : +49-421-457-3913       |

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

1. 2.4.21-rc : lost interrupt/bad DMA status

Sorry to bother you again,
I would appreciate if someone can write me a summary about the
"lost interrupt/bad DMA status" issue.

Do I need to use a 2.4.21-pre4 (apic) kernel ?
Do I need to compile without apic support ?
Is this about to be fixed in 2.4.21 ?

Thanks in advance.

--
S.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

2. Samba! Always an incredible pain in...

3. hd?: lost interrupt; at least since 2.4.21-pre7

4. Serial Devices.

5. 2.4.21 / IDE lost interrupt / ServerWorks problem

6. Hard drive, BIOS and Linux

7. 2.4.21 IDE problems (lost interrupt, bad DMA status)

8. PHD a Proxy Http Server

9. Oops in firewire (2.4.21-pre5 with 2.4.21-pre4 firewire driver)

10. 2.4.21-pre3aa1 and RAID0 issue (was: 2.4.21-pre2aa1 - RAID0 issue.)

11. 2.4.21-pre7 & 2.4.21-pre5-ac3 IDE resets

12. BUG: 2.4.21-rc-ac3 [drm:i830_wait_ring] *ERROR*

13. 2.4.21-rc boot stalls