public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Erich Focht <focht@ess.nec.de>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Help with Ingo scheduler on IA64
Date: Mon, 21 Jan 2002 16:23:17 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590698805895@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590698805816@msgid-missing>

Hi David,

> psr.i *does* disable all interrupts, including NMI.  Device interrupts
> are generally referred to as "external interrupts" in the ia64
> manuals.  If you read the manual, you'll find there is no ambiguity
> about this at all.  For example, see Table 5-8: External Interrupt
> Control Registers; it lists ITV...

ok, I see what you mean and this is the behavior I expected from
psr.i. But in the paragraph at the beginning of 5.8 describing which
sources of interrupts we have I read:
   - external (I/O) devices...
   - locally connected devices (...can be programmed to generate external
     interrupts)
   - internal processor interrupts (timer, performance monitoring,
     corrected machine checks)
   - other processors.
So if the interrupts called explicitely "internal" have "External
Interrupt Control Registers" (as you pointed out in your email), why do we
need to call the interrupts "external" at all? Anyhow, as I'm not a native
english speaker, I might have misunderstood something.

My main problem still remains: how can it be that on CPU#0 the
timer_interrupt() routine is called while in schedule() and while
interrupts are disabled (psr.i is in the last column)? I paste the trace
again, one can follow the irq disabling and the runqueue locking very
nicely. I've seen this kind of lockup more than once and the mcount
compiler trick is very acurate in catching/showing each function the
kernel goes through.

So: if psr.i disables all interrupts, how can the timer interrupt
appear while we're in schedule()?

Thanks,
Erich

CPU # 0:
--------                   locks
function:               rq0     rq1     psr.i
 
debug_spin_lock         1       0       0
sched_tick              1       0       0
update_one_process      1       0       0
update_process_times    1       0       0
smp_do_timer            1       0       0
do_profile              1       0       0
timer_interrupt         1       0       0
handle_IRQ_event        1       0       0
lsapic_noop             1       0       0
do_IRQ                  1       0       0
ia64_handle_irq         1       0       0
debug_spin_lock         0       0       0    <- locked rq0 lock, disabled irqs
spin_unlock             0       1       1    <- release_kernel_lock
schedule                0       1       1
spin_unlock             0       0       0
debug_spin_lock         0       0       0
wait_for_completion     0       0       1
spin_unlock             1       0       0
debug_spin_lock         0       0       0
wake_up_forked_process  0       1       1
 
CPU # 1:
--------
debug_spin_lock         1       0       0    <- tries to lock rq0 lock
spin_unlock             0       1       0    <- unlocked rq1 lock
load_balance            0       1       0
debug_spin_lock         0       0       0    <- lock rq1 lock, disable irqs
schedule                0       0       1



  parent reply	other threads:[~2002-01-21 16:23 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-12  2:23 [Linux-ia64] Help with Ingo scheduler on IA64 Nick Pollitt
2002-01-12  3:13 ` David Mosberger
2002-01-14 18:23 ` Erich Focht
2002-01-15  1:07 ` Nick Pollitt
2002-01-15  9:28 ` Erich Focht
2002-01-15 17:53 ` Erich Focht
2002-01-15 17:58 ` Erich Focht
2002-01-15 18:59 ` Erich Focht
2002-01-15 19:52 ` Ingo Molnar
2002-01-15 19:57 ` Ingo Molnar
2002-01-15 20:12 ` Ingo Molnar
2002-01-16  5:30 ` Nick Pollitt
2002-01-16 21:04 ` Erich Focht
2002-01-17  1:42 ` David Mosberger
2002-01-17  5:39 ` Nick Pollitt
2002-01-17  8:06 ` David Mosberger
2002-01-17  9:43 ` Ingo Molnar
2002-01-17  9:45 ` Ingo Molnar
2002-01-17 18:25 ` Erich Focht
2002-01-17 21:17 ` Ingo Molnar
2002-01-19 17:17 ` Erich Focht
2002-01-19 20:10 ` David Mosberger
2002-01-21 16:23 ` Erich Focht [this message]
2002-01-21 18:24 ` Erich Focht
2002-01-21 18:45 ` Erich Focht
2002-01-21 20:10 ` David Mosberger
2002-01-21 20:23 ` David Mosberger
2002-01-21 20:32 ` Ingo Molnar
2002-01-21 20:41 ` David Mosberger
2002-01-21 21:11 ` Ingo Molnar
2002-01-21 22:11 ` Ingo Molnar
2002-01-21 22:27 ` Ingo Molnar
2002-01-21 22:30 ` Ingo Molnar
2002-01-21 22:41 ` Ingo Molnar

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=marc-linux-ia64-105590698805895@msgid-missing \
    --to=focht@ess.nec.de \
    --cc=linux-ia64@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