linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86,apic: Checking kernel option before detect_init_APIC()
@ 2009-03-28  1:25 Rakib Mullick
  2009-04-08 14:50 ` Ingo Molnar
  0 siblings, 1 reply; 4+ messages in thread
From: Rakib Mullick @ 2009-03-28  1:25 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Ingo Molnar

 Impact: cleanup

Before calling detect_init_APIC(), check whether apic is disabled from
kernel option or not.

Thanks.

Signed-off-by: Rakib Mullick <rakib.mullick@gmail.com>

--- linus/arch/x86/kernel/apic.c	2009-03-26 06:26:31.000000000 +0600
+++ rakib/arch/x86/kernel/apic.c	2009-03-26 20:47:50.116376200 +0600
@@ -1429,10 +1429,6 @@ static int __init detect_init_APIC(void)
 {
 	u32 h, l, features;

-	/* Disabled by kernel option? */
-	if (disable_apic)
-		return -1;
-
 	switch (boot_cpu_data.x86_vendor) {
 	case X86_VENDOR_AMD:
 		if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) ||
@@ -1543,8 +1539,9 @@ void __init init_apic_mappings(void)
 	 * If no local APIC can be found then set up a fake all
 	 * zeroes page to simulate the local APIC and another
 	 * one for the IO-APIC.
+	 * Check apic is disabled from kernel option or not.
 	 */
-	if (!smp_found_config && detect_init_APIC()) {
+	if (!smp_found_config && (disable_apic || detect_init_APIC())) {
 		apic_phys = (unsigned long) alloc_bootmem_pages(PAGE_SIZE);
 		apic_phys = __pa(apic_phys);
 	} else

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86,apic: Checking kernel option before detect_init_APIC()
  2009-03-28  1:25 [PATCH] x86,apic: Checking kernel option before detect_init_APIC() Rakib Mullick
@ 2009-04-08 14:50 ` Ingo Molnar
  2009-04-09  5:08   ` Rakib Mullick
  0 siblings, 1 reply; 4+ messages in thread
From: Ingo Molnar @ 2009-04-08 14:50 UTC (permalink / raw)
  To: Rakib Mullick, Cyrill Gorcunov, Thomas Gleixner, H. Peter Anvin
  Cc: LKML, Andrew Morton


* Rakib Mullick <rakib.mullick@gmail.com> wrote:

> Impact: cleanup
> 
> Before calling detect_init_APIC(), check whether apic is disabled 
> from kernel option or not.
> 
> Thanks.
> 
> Signed-off-by: Rakib Mullick <rakib.mullick@gmail.com>
> 
> --- linus/arch/x86/kernel/apic.c	2009-03-26 06:26:31.000000000 +0600
> +++ rakib/arch/x86/kernel/apic.c	2009-03-26 20:47:50.116376200 +0600
> @@ -1429,10 +1429,6 @@ static int __init detect_init_APIC(void)
>  {
>  	u32 h, l, features;
> 
> -	/* Disabled by kernel option? */
> -	if (disable_apic)
> -		return -1;
> -
>  	switch (boot_cpu_data.x86_vendor) {
>  	case X86_VENDOR_AMD:
>  		if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) ||
> @@ -1543,8 +1539,9 @@ void __init init_apic_mappings(void)
>  	 * If no local APIC can be found then set up a fake all
>  	 * zeroes page to simulate the local APIC and another
>  	 * one for the IO-APIC.
> +	 * Check apic is disabled from kernel option or not.
>  	 */
> -	if (!smp_found_config && detect_init_APIC()) {
> +	if (!smp_found_config && (disable_apic || detect_init_APIC())) {
>  		apic_phys = (unsigned long) alloc_bootmem_pages(PAGE_SIZE);
>  		apic_phys = __pa(apic_phys);
>  	} else

Hm, are you sure this is a cleanup only? (i.e. no side-effects)

Also, even if it's a pure cleanup, wouldnt it be even cleaner to 
propagate this check into detect_init_APIC() - and thus get rid of 
the open-coded disable_apic check altogether?

	Ingo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86,apic: Checking kernel option before  detect_init_APIC()
  2009-04-08 14:50 ` Ingo Molnar
@ 2009-04-09  5:08   ` Rakib Mullick
  2009-04-09 20:00     ` Cyrill Gorcunov
  0 siblings, 1 reply; 4+ messages in thread
From: Rakib Mullick @ 2009-04-09  5:08 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Cyrill Gorcunov, Thomas Gleixner, H. Peter Anvin, LKML, Andrew Morton

On Wed, Apr 8, 2009 at 8:50 PM, Ingo Molnar <mingo@elte.hu> wrote:
>
> * Rakib Mullick <rakib.mullick@gmail.com> wrote:
>
> Hm, are you sure this is a cleanup only? (i.e. no side-effects)
My quick review over code, i don't think there's any.Unless I'm not
missing anything. Kernel option has been passed when before kernel
starts, so I think it's safe.
>
> Also, even if it's a pure cleanup, wouldnt it be even cleaner to
> propagate this check into detect_init_APIC() - and thus get rid of
> the open-coded disable_apic check altogether?
Yes, could be. How we'll understand that whether apic has been
disabled from kernel option or not (if we requires later on)?

Rakib
>
>        Ingo
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86,apic: Checking kernel option before detect_init_APIC()
  2009-04-09  5:08   ` Rakib Mullick
@ 2009-04-09 20:00     ` Cyrill Gorcunov
  0 siblings, 0 replies; 4+ messages in thread
From: Cyrill Gorcunov @ 2009-04-09 20:00 UTC (permalink / raw)
  To: Rakib Mullick
  Cc: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, LKML, Andrew Morton

[Rakib Mullick - Thu, Apr 09, 2009 at 11:08:43AM +0600]
| On Wed, Apr 8, 2009 at 8:50 PM, Ingo Molnar <mingo@elte.hu> wrote:
| >
| > * Rakib Mullick <rakib.mullick@gmail.com> wrote:
| >
| > Hm, are you sure this is a cleanup only? (i.e. no side-effects)
| My quick review over code, i don't think there's any.Unless I'm not
| missing anything. Kernel option has been passed when before kernel
| starts, so I think it's safe.

Hi Rakib,

yes, disable_apic early parameter handled earlier then
init_apic_mappings is being called but we could reach
disable_apic=1 with not only as kernel option but as
result of acpi_mps_check for example (which
is called earlier then init_apic_mappings though).
So this snippet is safe I believe.

| >
| > Also, even if it's a pure cleanup, wouldnt it be even cleaner to
| > propagate this check into detect_init_APIC() - and thus get rid of
| > the open-coded disable_apic check altogether?

In point! We do same fasion check in APIC_init_uniprocessor

| Yes, could be. How we'll understand that whether apic has been
| disabled from kernel option or not (if we requires later on)?

AFAIS, as only we set disable_apic=1 from kernel option (or other
ways) we clear X86_FEATURE_APIC likewise. So I don't see easy way
to distinguish the reason why apic is disabled. But to be precise
APIC_init_uniprocessor print us some info.

So I'm for Ingo's idea!

| 
| Rakib
| >
| >        Ingo
| >
| 
        Cyrill

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-04-09 20:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-28  1:25 [PATCH] x86,apic: Checking kernel option before detect_init_APIC() Rakib Mullick
2009-04-08 14:50 ` Ingo Molnar
2009-04-09  5:08   ` Rakib Mullick
2009-04-09 20:00     ` Cyrill Gorcunov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).