Linux PARISC architecture development
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@dsl2.external.hp.com>
To: Robert Stanford <rob@rotapile.com>
Cc: parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] 2.4.18 SMP instability
Date: Sun, 26 May 2002 00:09:47 -0600	[thread overview]
Message-ID: <20020526060948.0676E4834@dsl2.external.hp.com> (raw)
In-Reply-To: Message from Robert Stanford <rob@rotapile.com> of "26 May 2002 10:48:56 +1000." <1022374136.14232.89.camel@rotapile>

Robert Stanford wrote:
> Regarding the below post, have the SMP issues been worked out on 2.4.18
> yet? Im running 2.4.18-25 and the machine seems to lock whenever I try
> to use apt with an smp kernel.

uhm...I see that I'm using UP kernels on my boxes right now.
I'll rebuild SMP and retest.

I did just find an SMP problem in the current EIEM handling.
Can't say if this is really causing any problems right now though.
Stop reading now if you don't know about (or don't want to) EIEM.

If enable_irq or disable_irq gets called from a CPU other than
the one the device driver is supposed to interrupt, it will set the
EIEM bit in only *that* (the wrong) CPU. The result is the interrupt
will remain masked on the target CPU. I think the solution
is to use a global "eiem_val" (set/clear bits here) to match
the global EIRR switch table.  I've thought about moving to a
per-CPU EIEM/EIRR switch table. But that's more work than I
have time for right now and would have a similar problem.
For now, we just need to update EIEM on all CPUs whenever the
eiem_val global changes.

We do NOT currently distribute interrupts.
I did write a patch to distribute IO interrupts:
	ftp://ftp.parisc-linux.org/patches/irq_distr.diff

This diff can't be applied until the EIEM issue is fixed.

I suspect we don't (usually) have a problem with EIEM since all
interrupts are going to CPU 0 (aka Monarch) and nearly all driver
initialization takes place before the system is multithreaded.
The only other possibility is processes are only running on CPU 0.
ie when loading a device driver later, it always gets initialized on the
monarch. This scenario would also match the "top" output where
a 2-way system is always 50% idle and a 4-way is 75% idle.

I'd like to learn some way of seeing which CPU is running which
processes. top doesn't seem to indicate that. I'll look at sysstat
package later.

grant

  reply	other threads:[~2002-05-26  6:09 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-26  0:48 [parisc-linux] 2.4.18 SMP instability Robert Stanford
2002-05-26  6:09 ` Grant Grundler [this message]
2002-05-26  7:29   ` Jeremy Drake
2002-05-26 20:23     ` Jeremy Drake
2002-05-27  2:04       ` Grant Grundler
2002-05-27  6:17         ` Jeremy Drake
2002-05-27 12:04           ` Matthew Wilcox
2002-05-27 18:44           ` Jeremy Drake
     [not found] <Pine.LNX.4.44.0205271438590.11012-200000@garibaldi.apptechsys.com>
2002-05-28 17:07 ` Grant Grundler
2002-05-28 19:35   ` Jeremy Drake
2002-05-28 19:45     ` Jeremy Drake
2002-05-28 21:56       ` Jeremy Drake
2002-05-29  4:56         ` Grant Grundler
2002-05-29  4:39       ` Grant Grundler
2002-05-29  6:26         ` Jeremy Drake
2002-05-29  6:35           ` Grant Grundler
2002-06-01  6:34             ` Jeremy Drake
2002-06-02 16:32               ` Grant Grundler
2002-06-02 19:48                 ` Jeremy Drake
2002-06-03  3:28                   ` Grant Grundler
2002-06-03 21:58                   ` Jeremy Drake
2002-06-05 21:24                     ` Grant Grundler
     [not found] <20020527223132.661F54843@dsl2.external.hp.com>
2002-05-29 18:56 ` Jeremy Drake

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=20020526060948.0676E4834@dsl2.external.hp.com \
    --to=grundler@dsl2.external.hp.com \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=rob@rotapile.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