diff mbox

x86: update_mptable need pci_routeirq

Message ID 4A0DC7DC.7000204@kernel.org (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Yinghai Lu May 15, 2009, 7:51 p.m. UTC
to get all device irq routing and save them

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 arch/x86/kernel/mpparse.c |    3 +++
 1 file changed, 3 insertions(+)

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Bjorn Helgaas May 15, 2009, 9:07 p.m. UTC | #1
On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
> to get all device irq routing and save them

This changelog isn't really enough for me to understand
what's going on.

> Index: linux-2.6/arch/x86/kernel/mpparse.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
> +++ linux-2.6/arch/x86/kernel/mpparse.c
> @@ -17,6 +17,7 @@
>  #include <linux/acpi.h>
>  #include <linux/module.h>
>  #include <linux/smp.h>
> +#include <linux/pci.h>
>  
>  #include <asm/mtrr.h>
>  #include <asm/mpspec.h>
> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
>  static int __init update_mptable_setup(char *str)
>  {
>  	enable_update_mptable = 1;
> +	pci_routeirq = 1;

I hate to see new uses of pci_routeirq.  It'd be nice to remove it
completely someday.  But maybe it can't be helped.

>  	return 0;
>  }
>  early_param("update_mptable", update_mptable_setup);

"update_mptable" is apparently a boot option, but it's not mentioned
in Documentation/kernel-parameters.txt.  Is this some sort of debug
code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
we have this stuff?

> @@ -973,6 +975,7 @@ static int __initdata alloc_mptable;
>  static int __init parse_alloc_mptable_opt(char *p)
>  {
>  	enable_update_mptable = 1;
> +	pci_routeirq = 1;
>  	alloc_mptable = 1;
>  	if (!p)
>  		return 0;

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yinghai Lu May 15, 2009, 9:13 p.m. UTC | #2
Bjorn Helgaas wrote:
> On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
>> to get all device irq routing and save them
> 
> This changelog isn't really enough for me to understand
> what's going on.
> 
>> Index: linux-2.6/arch/x86/kernel/mpparse.c
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
>> +++ linux-2.6/arch/x86/kernel/mpparse.c
>> @@ -17,6 +17,7 @@
>>  #include <linux/acpi.h>
>>  #include <linux/module.h>
>>  #include <linux/smp.h>
>> +#include <linux/pci.h>
>>  
>>  #include <asm/mtrr.h>
>>  #include <asm/mpspec.h>
>> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
>>  static int __init update_mptable_setup(char *str)
>>  {
>>  	enable_update_mptable = 1;
>> +	pci_routeirq = 1;
> 
> I hate to see new uses of pci_routeirq.  It'd be nice to remove it
> completely someday.  But maybe it can't be helped.
> 
>>  	return 0;
>>  }
>>  early_param("update_mptable", update_mptable_setup);
> 
> "update_mptable" is apparently a boot option, but it's not mentioned
> in Documentation/kernel-parameters.txt.  Is this some sort of debug
> code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
> we have this stuff?
> 

1. kexec path: after acpi kernel and use kexec to load kerenl with mptable support only or acpi=off
2. help to BIOS engineer to understand how to set mptable and irq routing setup by chipset.
   esp system have several cards and there is bridge in those cards.

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Helgaas May 15, 2009, 9:52 p.m. UTC | #3
On Friday 15 May 2009 03:13:20 pm Yinghai Lu wrote:
> Bjorn Helgaas wrote:
> > On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
> >> to get all device irq routing and save them
> > 
> > This changelog isn't really enough for me to understand
> > what's going on.
> > 
> >> Index: linux-2.6/arch/x86/kernel/mpparse.c
> >> ===================================================================
> >> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
> >> +++ linux-2.6/arch/x86/kernel/mpparse.c
> >> @@ -17,6 +17,7 @@
> >>  #include <linux/acpi.h>
> >>  #include <linux/module.h>
> >>  #include <linux/smp.h>
> >> +#include <linux/pci.h>
> >>  
> >>  #include <asm/mtrr.h>
> >>  #include <asm/mpspec.h>
> >> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
> >>  static int __init update_mptable_setup(char *str)
> >>  {
> >>  	enable_update_mptable = 1;
> >> +	pci_routeirq = 1;
> > 
> > I hate to see new uses of pci_routeirq.  It'd be nice to remove it
> > completely someday.  But maybe it can't be helped.
> > 
> >>  	return 0;
> >>  }
> >>  early_param("update_mptable", update_mptable_setup);
> > 
> > "update_mptable" is apparently a boot option, but it's not mentioned
> > in Documentation/kernel-parameters.txt.  Is this some sort of debug
> > code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
> > we have this stuff?
> > 
> 
> 1. kexec path: after acpi kernel and use kexec to load kerenl with mptable support only or acpi=off
> 2. help to BIOS engineer to understand how to set mptable and irq routing setup by chipset.
>    esp system have several cards and there is bridge in those cards.

I was sort of hoping for a Documentation/kernel-parameters.txt patch.

Is (1) common enough to worry about?  What OSes don't have ACPI
support?  What advantage is there to using "acpi=off"?

(2) sounds like something that should be under a config option, if
it's in the mainline kernel at all.

Bjorn

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yinghai Lu May 15, 2009, 10:03 p.m. UTC | #4
Bjorn Helgaas wrote:
> On Friday 15 May 2009 03:13:20 pm Yinghai Lu wrote:
>> Bjorn Helgaas wrote:
>>> On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
>>>> to get all device irq routing and save them
>>> This changelog isn't really enough for me to understand
>>> what's going on.
>>>
>>>> Index: linux-2.6/arch/x86/kernel/mpparse.c
>>>> ===================================================================
>>>> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
>>>> +++ linux-2.6/arch/x86/kernel/mpparse.c
>>>> @@ -17,6 +17,7 @@
>>>>  #include <linux/acpi.h>
>>>>  #include <linux/module.h>
>>>>  #include <linux/smp.h>
>>>> +#include <linux/pci.h>
>>>>  
>>>>  #include <asm/mtrr.h>
>>>>  #include <asm/mpspec.h>
>>>> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
>>>>  static int __init update_mptable_setup(char *str)
>>>>  {
>>>>  	enable_update_mptable = 1;
>>>> +	pci_routeirq = 1;
>>> I hate to see new uses of pci_routeirq.  It'd be nice to remove it
>>> completely someday.  But maybe it can't be helped.
>>>
>>>>  	return 0;
>>>>  }
>>>>  early_param("update_mptable", update_mptable_setup);
>>> "update_mptable" is apparently a boot option, but it's not mentioned
>>> in Documentation/kernel-parameters.txt.  Is this some sort of debug
>>> code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
>>> we have this stuff?
>>>
>> 1. kexec path: after acpi kernel and use kexec to load kerenl with mptable support only or acpi=off
>> 2. help to BIOS engineer to understand how to set mptable and irq routing setup by chipset.
>>    esp system have several cards and there is bridge in those cards.
> 
> I was sort of hoping for a Documentation/kernel-parameters.txt patch.

current we have half commited in mainline.
missed the calling in drivers/acpi

and we are trying to move the calling to arch/x86/kernel/acpi/boot.c
hope Len will buy it.


> 
> Is (1) common enough to worry about?  What OSes don't have ACPI
> support?  What advantage is there to using "acpi=off"?

some other "OS" still use half ACPI tables... MADT etc. but still use mptable for irq routing.

some one want to disable acpi, because acpid is using 100%...

> 
> (2) sounds like something that should be under a config option, if
> it's in the mainline kernel at all.

sure, will make it as one CONFIG option that depends on ACPI.

Thanks

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Helgaas May 15, 2009, 10:08 p.m. UTC | #5
On Friday 15 May 2009 04:03:49 pm Yinghai Lu wrote:
> Bjorn Helgaas wrote:
> > On Friday 15 May 2009 03:13:20 pm Yinghai Lu wrote:
> >> Bjorn Helgaas wrote:
> >>> On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
> >>>> to get all device irq routing and save them
> >>> This changelog isn't really enough for me to understand
> >>> what's going on.
> >>>
> >>>> Index: linux-2.6/arch/x86/kernel/mpparse.c
> >>>> ===================================================================
> >>>> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
> >>>> +++ linux-2.6/arch/x86/kernel/mpparse.c
> >>>> @@ -17,6 +17,7 @@
> >>>>  #include <linux/acpi.h>
> >>>>  #include <linux/module.h>
> >>>>  #include <linux/smp.h>
> >>>> +#include <linux/pci.h>
> >>>>  
> >>>>  #include <asm/mtrr.h>
> >>>>  #include <asm/mpspec.h>
> >>>> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
> >>>>  static int __init update_mptable_setup(char *str)
> >>>>  {
> >>>>  	enable_update_mptable = 1;
> >>>> +	pci_routeirq = 1;
> >>> I hate to see new uses of pci_routeirq.  It'd be nice to remove it
> >>> completely someday.  But maybe it can't be helped.
> >>>
> >>>>  	return 0;
> >>>>  }
> >>>>  early_param("update_mptable", update_mptable_setup);
> >>> "update_mptable" is apparently a boot option, but it's not mentioned
> >>> in Documentation/kernel-parameters.txt.  Is this some sort of debug
> >>> code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
> >>> we have this stuff?
> >>>
> >> 1. kexec path: after acpi kernel and use kexec to load kerenl with mptable support only or acpi=off
> >> 2. help to BIOS engineer to understand how to set mptable and irq routing setup by chipset.
> >>    esp system have several cards and there is bridge in those cards.
> ...
> > Is (1) common enough to worry about?  What OSes don't have ACPI
> > support?  What advantage is there to using "acpi=off"?
> ...
> 
> some one want to disable acpi, because acpid is using 100%...

I'd rather fix the problem with acpid than make it easier to
use "acpi=off".

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ingo Molnar May 16, 2009, 10:25 a.m. UTC | #6
* Bjorn Helgaas <bjorn.helgaas@hp.com> wrote:

> On Friday 15 May 2009 04:03:49 pm Yinghai Lu wrote:
> > Bjorn Helgaas wrote:
> > > On Friday 15 May 2009 03:13:20 pm Yinghai Lu wrote:
> > >> Bjorn Helgaas wrote:
> > >>> On Friday 15 May 2009 01:51:56 pm Yinghai Lu wrote:
> > >>>> to get all device irq routing and save them
> > >>> This changelog isn't really enough for me to understand
> > >>> what's going on.
> > >>>
> > >>>> Index: linux-2.6/arch/x86/kernel/mpparse.c
> > >>>> ===================================================================
> > >>>> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
> > >>>> +++ linux-2.6/arch/x86/kernel/mpparse.c
> > >>>> @@ -17,6 +17,7 @@
> > >>>>  #include <linux/acpi.h>
> > >>>>  #include <linux/module.h>
> > >>>>  #include <linux/smp.h>
> > >>>> +#include <linux/pci.h>
> > >>>>  
> > >>>>  #include <asm/mtrr.h>
> > >>>>  #include <asm/mpspec.h>
> > >>>> @@ -961,6 +962,7 @@ static int __initdata enable_update_mpta
> > >>>>  static int __init update_mptable_setup(char *str)
> > >>>>  {
> > >>>>  	enable_update_mptable = 1;
> > >>>> +	pci_routeirq = 1;
> > >>> I hate to see new uses of pci_routeirq.  It'd be nice to remove it
> > >>> completely someday.  But maybe it can't be helped.
> > >>>
> > >>>>  	return 0;
> > >>>>  }
> > >>>>  early_param("update_mptable", update_mptable_setup);
> > >>> "update_mptable" is apparently a boot option, but it's not mentioned
> > >>> in Documentation/kernel-parameters.txt.  Is this some sort of debug
> > >>> code or BIOS-writer's helper?  Same with "alloc_mptable".  Why do
> > >>> we have this stuff?
> > >>>
> > >> 1. kexec path: after acpi kernel and use kexec to load kerenl with mptable support only or acpi=off
> > >> 2. help to BIOS engineer to understand how to set mptable and irq routing setup by chipset.
> > >>    esp system have several cards and there is bridge in those cards.
> > ...
> > > Is (1) common enough to worry about?  What OSes don't have ACPI
> > > support?  What advantage is there to using "acpi=off"?
> > ...
> > 
> > some one want to disable acpi, because acpid is using 100%...
> 
> I'd rather fix the problem with acpid than make it easier to use 
> "acpi=off".

Well, acpi=off is frequently used. Besides of that, there's a design 
and future-proof-ness issue as well: having a correct mptable is 
good in sense of not having all our collective eggs in the ACPI 
basket. ACPI also has IP attached and there are vendors who are 
loathe to use it for one reason or another.

So as long as Yinghai is willing to maintain this path and is 
willing to keep it correct, and as long as we _have_ an acpi=off 
option in the upstream kernel it makes sense to make the kexec 
environment as correct and inclusive as possible.

acpid looping should of course be fixed separately. Almost all 
distros ship with acpi enabled so there's no shortage of bugs being 
reported, and there's no need to artificially make it harder for 
people to not use acpi if they so choose.

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: linux-2.6/arch/x86/kernel/mpparse.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/mpparse.c
+++ linux-2.6/arch/x86/kernel/mpparse.c
@@ -17,6 +17,7 @@ 
 #include <linux/acpi.h>
 #include <linux/module.h>
 #include <linux/smp.h>
+#include <linux/pci.h>
 
 #include <asm/mtrr.h>
 #include <asm/mpspec.h>
@@ -961,6 +962,7 @@  static int __initdata enable_update_mpta
 static int __init update_mptable_setup(char *str)
 {
 	enable_update_mptable = 1;
+	pci_routeirq = 1;
 	return 0;
 }
 early_param("update_mptable", update_mptable_setup);
@@ -973,6 +975,7 @@  static int __initdata alloc_mptable;
 static int __init parse_alloc_mptable_opt(char *p)
 {
 	enable_update_mptable = 1;
+	pci_routeirq = 1;
 	alloc_mptable = 1;
 	if (!p)
 		return 0;