Linux PARISC architecture development
 help / color / mirror / Atom feed
From: John Marvin <jsm@udlkern.fc.hp.com>
To: rbrad@beavis.ybsoft.com
Cc: parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] kernel panic
Date: Wed, 23 May 2001 02:53:15 -0600 (MDT)	[thread overview]
Message-ID: <200105230853.CAA07709@udlkern.fc.hp.com> (raw)

>
> I have attached the panic output and the symbol table again.
>
> Thanks for the help!
>
> - Ryan

OK, the problem is that you are getting into a interrupt loop.
I see the following repeated sequence on the stack:

	intr_extint         <-----------+
	do_irq_mask                     |
	do_irq                          |
	dino_isr                        |
	sym53c8xx_intr                  |
	scsi_old_done                   |
	rw_intr                         |
	scsi_io_completion              |
	__scsi_end_request              |
	scsi_queue_next_request         |
	scsi_request_fn                 |
	scsi_dispatch_cmd               |
	<NEXT INTERRUPT>    >-----------+

I still was not able to get to the base of the stack. I believe you
are crossing many 16K blocks of memory, and die when the next
timer interrupt comes in.

Note that there is a path from scsi_dispatch_cmd that eventually calls
ccio_map_sg, i.e. I believe scsi_dispatch_cmd had already called
ccio_map_sg (indirectly) before the interupt came in. Since the interrupt
always comes in at the exact same instruction in scsi_dispatch_cmd,
it probably is happening at some point where the driver reenables
interrupts.

So, it looks like the printk in ccio_map_sg is causing the isr to take
long enough that the previous scsi command completes and the card
interrupts before the isr returns. This shouldn't happen. I talked
to Richard Hirst, and he said a later version of the sym53c8xx driver
processes things differently (using scsi_done instead of scsi_old_done)
so that this shouldn't happen. However, I believe it shouldn't be
happening anyway, because we should be preventing the isr from being
re-entered in the general irq handling code.

The bad news is that since this problem is being "caused" by the printk,
it probably does not explain your original bug (hopefully the scsi isr
normally takes much less time to complete than the actual scsi request
does!).  However, if this interrupt loop is fixed, you would then be able
to use printk to help debug the real problem.

I can't remember if your original problem crashed the system or just
caused data corruption. If the machine stays up, a debugging workaround
might be to store data in an internal array instead of using printk.
You could then dump this array after the problem occured. One possible
hack to dump the array would be to add code to dump it via the proc fs
code that already exists in the ccio_dma code.

John

             reply	other threads:[~2001-05-23  8:53 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-23  8:53 John Marvin [this message]
2001-05-23 16:21 ` [parisc-linux] kernel panic Matthew Wilcox
2001-05-23 18:59 ` Grant Grundler
2001-05-23 19:13   ` Matthew Wilcox
2001-05-24 14:16     ` Richard Hirst
2001-05-25  4:31       ` Grant Grundler
  -- strict thread matches above, loose matches on Subject: below --
2002-09-07 20:46 [parisc-linux] Kernel Panic marc 
2002-09-07 22:08 ` Grant Grundler
2002-09-02 16:37 marc 
2002-09-02 16:51 ` Randolph Chung
2001-05-22  8:10 [parisc-linux] kernel panic John Marvin
2001-05-23  2:18 ` Ryan Bradetich
2001-05-23 16:48   ` Stan Sieler
2001-05-22  3:57 Ryan Bradetich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200105230853.CAA07709@udlkern.fc.hp.com \
    --to=jsm@udlkern.fc.hp.com \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=rbrad@beavis.ybsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox