public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: David Mosberger <davidm@hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] AT Keyboard not present?
Date: Fri, 21 Sep 2001 15:44:18 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590698805237@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590698805137@msgid-missing>

Hi Richard,

Some good hunting!

>>>>> On Thu, 20 Sep 2001 23:56:25 +0100, Richard Hirst <rhirst@linuxcare.com> said:

  Richard> Turns out the interrupt isn't lost, it is just held off
  Richard> until the previous one has been completely serviced...

  Richard>   User hits CapsLock
  Richard>   CPU enters arch/ia64/kernel/irq_ia64.c:ia64_handle_irq()
  Richard>   which calls arch/ia64/kernel/irq.c:do_IRQ()
  Richard>   which calls the kb interrupt handler
  Richard>   and then do_IRQ() sees local_softirq_pending() and calls
  Richard> do_softirq()
  Richard>   that will run the keyboard tasklet, which calls
  Richard> drivers/char/pc_keyb.c:pckbd_leds()
  Richard>   pckbd_leds() calls send_data() which expects the kb to
  Richard> generate interrupts
  Richard>   those interrupts can't happen because we havn't yet
  Richard> returned to ia64_handle_irq() and called ia64_eoi() for the
  Richard> last one
  Richard> eventually send_data() gives up and returns, we unwind and
  Richard> call ia64_eio() and the keyboard interrupts.

Ah, yes, this makes tons of sense.

  Richard> I'm guessing that ia64_eoi() is needed before the next k/b
  Richard> int can happen, but it sounds logical.

Yes, that's what we used to do until the softirq-rewrite happened in
2.4.7.

  Richard> The answer _might_ be to move the call to do_softirq() from
  Richard> the end of do_IRQ() to the end of ia64_handle_irq().  I've
  Richard> tried that, and it works, but I don't claim to know the
  Richard> ia64 interrupt h/w or s/w, so there may be nasty
  Richard> side-effects.  Calling do_softirq() only once all pending
  Richard> ints have been completely serviced sounds more correct to
  Richard> me anyway.

That's probably the best thing to do for now.  For 2.5, the idea is to
have a single, platform-independent irq.c and for this reason, I'm
trying to keep the ia64 version as close to the x86 version as
possible.  But this obviously is something that needs to be changed.

Thanks,

	--david


      parent reply	other threads:[~2001-09-21 15:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
2001-09-07 19:05 ` Krishnakumar B
2001-09-07 19:36 ` Johannes Erdfelt
2001-09-07 19:55 ` Krishnakumar B
2001-09-07 20:02 ` Johannes Erdfelt
2001-09-07 20:09 ` Khalid Aziz
2001-09-07 20:12 ` KOCHI Takayoshi
2001-09-10  8:46 ` Martin Wilck
2001-09-10 21:43 ` Michael Madore
2001-09-10 22:10 ` Luck, Tony
2001-09-10 23:28 ` David Mosberger
2001-09-19 13:35 ` Richard Hirst
2001-09-19 21:49 ` David Mosberger
2001-09-19 22:27 ` Richard Hirst
2001-09-20 22:56 ` Richard Hirst
2001-09-21 15:44 ` David Mosberger [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=marc-linux-ia64-105590698805237@msgid-missing \
    --to=davidm@hpl.hp.com \
    --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