[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "BUG: soft lockup" on A1200; was: Re: Updated installation images for Debian Ports 2019-04-20



Michael,

On 6/21/19 10:49 PM, Michael Schmitz wrote:
> Looks like the probe for hdb does not time out (that would have taken
> either of the 'return 1' paths). So it's either return code 0 or 2. 0
> would have called do_identify() which we should have seen, or 2 (drive
> aborted probe).
>
See below with slightly more informative debugging capture:

-----------------------

calling  amiga_gayle_ide_driver_init+0x0/0x18 @ 1
ide: Gayle IDE controller (A1200 style)
ide_probe_port:722 irqd = 2
ide_probe_port:725 disabled 2
Probing IDE interface ide0...
probe_for_drive:502 do probe.
ide_dev_read_id:266 disable device IRQ.
hda: probing with STATUS(0x50) instead of ALTSTATUS(0xff)
ide_dev_read_id:298: ask drive for ID.
ide_dev_read_id:313: ide busy sleep.
ide_dev_read_id:321: read status.
ide_dev_read_id:327: do identify.
ide_dev_read_id:332: read status.
ide_dev_read_id:339 ide_dev_read_id returns 0.
probe_for_drive:504 probe returned 0.
probe_for_drive:535 ide classify ata dev.
hda: SAMSUNG MP0402H, ATA DISK drive
probe_for_drive:553 ide disk init chs.
probe_for_drive:555 ide disk init mult count.
probe_for_drive:558 device was found; returning 1.
probe_for_drive:502 do probe.
probe_for_drive:504 probe returned 3.
probe_for_drive:508 do probe for ATAPI device.
ide_dev_read_id:266 disable device IRQ.
hdb: probing with STATUS(0x00) instead of ALTSTATUS(0xff)
ide_dev_read_id:293 disable DMA & overlap.
ide_dev_read_id:298: ask drive for ID.
ide_dev_read_id:313: ide busy sleep.
ide_dev_read_id:321: read status.
ide_dev_read_id:336: drive refused ID.
ide_dev_read_id:339 ide_dev_read_id returns 2.
ide_dev_read_id:266 disable device IRQ.
hdb: probing with STATUS(0x00) instead of ALTSTATUS(0xff)
ide_dev_read_id:293 disable DMA & overlap.
ide_dev_read_id:298: ask drive for ID.
ide_dev_read_id:313: ide busy sleep.
ide_dev_read_id:321: read status.
ide_dev_read_id:336: drive refused ID.
ide_dev_read_id:339 ide_dev_read_id returns 2.
probe_for_drive:510 probe (ATAPI) returned 2
probe_for_drive:513 no device found.
ide_probe_port:745
ide_probe_port:747 enabling IRQ 2.
random: crng init done
------------------------------------------------

> Looks to me as though the master drive present causes a probe for a
> slave drive to abort. That could have ramifications for interrupt
> handling later on.
>
> Geert - are the CIA interrupts level or edge triggered? Is there any
> way to skip probing for a second drive once the first has been found?

For clarity during the stall condition the _IDE_IRQ is kept low, both
_IDE_CS are high, _ODD_CIA goes low for 880ns every 22us, _EVEN_CIA has
short bursts of low every 10ms, same for _INT2, while _INT6 remains low
all the time. If necessary I can provide detailed captures of these
signals in other conditions too.

Kind regards,

Szymon


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: