9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] RE; MP Interrupt
Date: Mon, 11 May 2009 09:53:48 -0400	[thread overview]
Message-ID: <d66a8d0ba150d157d7af4a32cbdf914a@quanstro.net> (raw)
In-Reply-To: <20090510.043848.7230.0@webmail04.dca.untd.com>

> I have seen the situation you've described in other operating systems
> and it's often been H/W related and not due to the OS itself. In the
> situations I've seen such problems were caused by the way the bios
> assigns irq's. Though seemingly un-necesasry, I have solved similar problem
> by simply moving a PCI card to another slot.

russ set me on the right track with this suggestion.

	suppose you had a driver that, when it got a
	spurious interrupt, would trigger a real interrupt
	for itself next.  that would work fine in isolation
	and even with other, correct drivers: every time
	one of those drivers got an interrupt, the buggy
	one would see it as spurious and trigger a real
	one, but then the system would calm down.

it turned out that there weren't any spurious interrupts,
but there mv50xx had unhandled interrupts.  the story
starts with sd(3).

          Units are not accessed before the first attach.  Units may
          be individually attached using the attach specifier, [...]

the way the mv50xx driver had been interpreting this
has been to not fully configure ports before sdev->verify
is called.  however, sdev->enable is called at boot time
so until (all) the ports are first accessed, there there was
a window where the irq could scream because it could not
be serviced; accessing the drives calmed the interrupt.
a the solution is to fully configure the drives in the pnp
fn.

so the remaining question is why the red herring of
multiple sd devices on the same irq?  that is actually easy
to explain.  on a cpu server, readnvram(2) scans sd devices
until it finds a proper nvram.  on my machine, sda0 was
scanned first and has an acceptable nvram.  thus sdF
(the mv50xx controller) was not scanned.  if i disable the
orion controller, then there is no nvram and all the sd
devices including sdF are scanned.

- erik



      reply	other threads:[~2009-05-11 13:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-10  9:38 philo565
2009-05-11 13:53 ` erik quanstrom [this message]

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=d66a8d0ba150d157d7af4a32cbdf914a@quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /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;
as well as URLs for NNTP newsgroup(s).