From: David Miller <davem@davemloft.net>
To: hong.pham@windriver.com
Cc: netdev@vger.kernel.org, matheos.worku@sun.com
Subject: Re: [PATCH 0/1] NIU: fix spurious interrupts
Date: Tue, 19 May 2009 15:01:56 -0700 (PDT) [thread overview]
Message-ID: <20090519.150156.115978100.davem@davemloft.net> (raw)
In-Reply-To: <4A132A0F.8070800@windriver.com>
From: "Hong H. Pham" <hong.pham@windriver.com>
Date: Tue, 19 May 2009 17:52:15 -0400
> Unfortunately I don't have a PCIe NIU card to test in an x86 box.
> If the hang does not happen on x86 (which is my suspicion), that
> would rule out a problem with the NIU chip. That would mean there's
> some interaction between the NIU and sun4v hypervisor that's causing
> the spurious interrupts.
I am still leaning towards the NIU chip, or our programming of
it, as causing this behavior.
Although it's possible that the interrupt logic inside of
Niagara-T2, or how it's hooked up to the internal NIU ASIC
inside of the CPU, might be to blame I don't consider it likely
given the basic gist of the behavior you see.
To quote section 17.3.2 of the UltraSPARC-T2 manual:
An interrupt will only be issued if the timer is zero,
the arm bit is set, and one of more LD's in the LDG, have
their flags set and not masked.
which confirms our understanding of how this should work.
Can you test something Hong? Simply trigger the hung case
and when it happens read the LDG registers to see if the ARM
bit is set, and what the LDG mask bits say.
There might be a bug somewhere that causes us to call
niu_ldg_rearm() improperly. In particular I'm looking
at that test done in niu_interrupt():
if (likely(v0 & ~((u64)1 << LDN_MIF)))
niu_schedule_napi(np, lp, v0, v1, v2);
else
niu_ldg_rearm(np, lp, 1);
If we call niu_ldg_rearm() on an LDG being serviced by NAPI
before that poll sequence calls napi_complete() we could
definitely see this weird behavior. And whatever causes
that would be the bug to fix.
Thanks!
next prev parent reply other threads:[~2009-05-19 22:01 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-11 19:00 [PATCH 0/1] NIU: fix spurious interrupts Hong H. Pham
2009-05-11 19:00 ` [PATCH 1/1] " Hong H. Pham
2009-05-19 5:09 ` [PATCH 0/1] " David Miller
2009-05-19 21:52 ` Hong H. Pham
2009-05-19 22:01 ` David Miller [this message]
2009-05-20 15:57 ` Hong H. Pham
2009-05-21 0:37 ` David Miller
2009-05-21 22:18 ` David Miller
2009-05-22 0:40 ` Hong H. Pham
2009-05-22 8:08 ` David Miller
2009-05-22 16:42 ` Hong H. Pham
2009-05-26 6:16 ` David Miller
2009-05-27 16:29 ` Hong H. Pham
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=20090519.150156.115978100.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=hong.pham@windriver.com \
--cc=matheos.worku@sun.com \
--cc=netdev@vger.kernel.org \
/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).