mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] i386 io_apic.c: Memorize at bootup where the i8259 is connected
Date: Fri, 29 Jul 2005 14:48:22 -0600	[thread overview]
Message-ID: <m1mzo51gq1.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0507291302360.3307@g5.osdl.org> (Linus Torvalds's message of "Fri, 29 Jul 2005 13:08:49 -0700 (PDT)")

Linus Torvalds <torvalds@osdl.org> writes:

> On Fri, 29 Jul 2005, Eric W. Biederman wrote:
>> 
>> Since the acpi MADT table does not provide the location where the i8259
>> is connected we have to look at the hardware to figure it out.
>
> I'm not really happy with this.
>
> First off, it kind of assumes that extINT is always the 8259. Maybe that's
> true, maybe it's not. Maybe there is hardware out there that has a
> specialty interrupt controller that also uses extInt? 

I believe the definition of extInt is that it is an external
interrupt controller that sends interrupts like an 8259.

So it might be possible but it would be an extreme hardware.
And it would be an old hardware configuration because acpi
doesn't even allow you to setup that kind of thing.

> Secondly, why always just on IO-APIC 0? 

Good question the assumption was already in the code, but
it isn't hard to lift.

> This would make a lot more sense to do inside the
> loop-over-apics in enable_IO_APIC, no?

Probably.  It has to come before the call to clear_IO_APIC().
I was just be extra careful about that.

> Especially since that one already calculates the number of entries, and
> does it a lot more nicely than you do.. (ie no shifting and masking with
> magic constants).

:)

> Finally, the third issue I have is that _if_ the MP table is correct,
> we'll never know. Wouldn't it be better to query the MP table regardless,
> and see if it agrees with what we found, and if it doesn't, at least print
> a message so that it is easier to debug things if sh*t happens?

The reason I generated the patch is because reading the acpi
tables is the default no one is even using the MP table anymore.
The acpi MADT table can't represent the notion of an a pin
in ExtInt mode.  Even in the MP table has the information is pretty
much advisory as the OS doesn't use it except on very old systems.

The practical question is which is the better route.  Save
off all of the entries in the apic and ioapic and restore
them on reboot, or simply save off which pin the i8259 is
talking through and restore one pin in ExtInt mode.  I like
the latter because we have enough information that we can
and if there is a weird system we can specify it with a command
line parameter.  But the save/restore approach may be more general,
and less prone to coder error.

Eric


  reply	other threads:[~2005-07-29 20:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-29 19:31 Eric W. Biederman
2005-07-29 20:08 ` Linus Torvalds
2005-07-29 20:48   ` Eric W. Biederman [this message]
2005-07-29 21:02 Andy Currid

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=m1mzo51gq1.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.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

all inboxes | Powered by JetHome®