mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Yinghai Lu" <yinghai@kernel.org>
To: "Jack Steiner" <steiner@sgi.com>
Cc: mingo@elte.hu, tglx@linutronix.de, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] - Add early detection of UV system types
Date: Tue, 23 Sep 2008 12:39:05 -0700	[thread overview]
Message-ID: <86802c440809231239o207c893ja508a1574bd04706@mail.gmail.com> (raw)
In-Reply-To: <20080923193049.GA21605@sgi.com>

On Tue, Sep 23, 2008 at 12:30 PM, Jack Steiner <steiner@sgi.com> wrote:
> On Tue, Sep 23, 2008 at 11:59:26AM -0700, Yinghai Lu wrote:
>> On Tue, Sep 23, 2008 at 11:28 AM, Jack Steiner <steiner@sgi.com> wrote:
>> > Portions of system boot needs to know if a system is a UV system prior
>> > to genapic initialization. This patch adds a call from acpi_boot_table_init()
>> > to the UV code to parse the MADT to determine if the system is a UV system.
>> >
>> > Signed-off-by: Jack Steiner <steiner@sgi.com>
>> >
>> > ---
>> >  arch/x86/kernel/acpi/boot.c      |    4 ++++
>> >  arch/x86/kernel/genx2apic_uv_x.c |   21 ++++++++++++---------
>> >  arch/x86/mm/srat_64.c            |    2 +-
>> >  include/asm-x86/genapic_64.h     |    2 ++
>> >  4 files changed, 19 insertions(+), 10 deletions(-)
>> >
>> > Index: linux/arch/x86/kernel/acpi/boot.c
>> > ===================================================================
>> > --- linux.orig/arch/x86/kernel/acpi/boot.c      2008-09-23 12:55:15.000000000 -0500
>> > +++ linux/arch/x86/kernel/acpi/boot.c   2008-09-23 12:55:19.000000000 -0500
>> > @@ -1667,6 +1667,10 @@ int __init acpi_boot_table_init(void)
>> >
>> >        acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf);
>> >
>> > +#ifdef CONFIG_X86_64
>> > +       acpi_table_parse(ACPI_SIG_MADT, uv_early_madt_oem_check);
>> > +#endif
>> > +
>> >        /*
>> >         * blacklist may disable ACPI entirely
>> >         */
>>
>> you don't need to that.
>>
>> please call early_acpi_boot_init instead
>
> I don't mind moving the new call from acpi_boot_table_init() to early_acpi_boot_init(),
> but I still need to determine the UV type very early in boot. System type is needed
> prior to parsing the SRAT.
>
>>
>> sth like
>>
>> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
>> index 3d677b5..7ead2aa 100644
>> --- a/arch/x86/kernel/setup.c
>> +++ b/arch/x86/kernel/setup.c
>> @@ -997,6 +997,8 @@ void __init setup_arch(char **cmdline_p)
>>          */
>>         acpi_boot_table_init();
>>
>> +       early_acpi_boot_init();
>> +
>>  #ifdef CONFIG_ACPI_NUMA
>>         /*
>>          * Parse SRAT to discover nodes.
>>
>> YH
>

early_acpi_boot_init ==> early_acpi_process_madt ==>
acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt) ==> acpi_parse_madt
==> acpi_madt_oem_check
==> at last

int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
        int i;

        for (i = 0; apic_probe[i]; ++i) {
                if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
                        genapic = apic_probe[i];
                        printk(KERN_INFO "Setting APIC routing to %s.\n",
                                genapic->name);
                        return 1;
                }
        }
        return 0;
}

and

static struct genapic *apic_probe[] __initdata = {
        &apic_x2apic_uv_x,
        &apic_x2apic_phys,
        &apic_x2apic_cluster,
        &apic_physflat,
        NULL,
};

so apic_x2apic_uv_x's uv_acpi_madt_oem_check is called at first.


YH

  reply	other threads:[~2008-09-23 19:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-23 18:28 Jack Steiner
2008-09-23 18:59 ` Yinghai Lu
2008-09-23 19:30   ` Jack Steiner
2008-09-23 19:39     ` Yinghai Lu [this message]
2008-09-23 20:37       ` [PATCH] - V2 " Jack Steiner
2008-09-24  8:34         ` 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=86802c440809231239o207c893ja508a1574bd04706@mail.gmail.com \
    --to=yinghai@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=steiner@sgi.com \
    --cc=tglx@linutronix.de \
    /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®