public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: Ravikiran G Thirumalai <kiran@scalex86.org>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	shai@scalex86.org
Subject: Re: [PATCH] x86: don't compile vsmp_64 for 32bit
Date: Thu, 26 Feb 2009 00:39:50 -0800	[thread overview]
Message-ID: <49A65556.5090805@kernel.org> (raw)
In-Reply-To: <20090226064806.GC27240@localdomain>

Ravikiran G Thirumalai wrote:
> On Wed, Feb 25, 2009 at 09:20:50PM -0800, Yinghai Lu wrote:
>> Impact: cleanup
>>
>> that is only needed when CONFIG_X86_VSMP is defined with 64bit
>> also remove dead code about PCI, because CONFIG_X86_VSMP depends on PCI
>>
>> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>>
> 
> NAK!
> vsmp64.c is compiled unconditionally for a reason.  There are ifdefs in the
> file to avoid code compilation based on config options. is_vsmp_box() is
> needed even when CONFIG_X86_VSMP is not enabled, since distro kernels don't ship
> with CONFIG_X86_VSMP, and since is_vsmp_box() is used to determine  whether
> tsc's can be considered synced or not, this is needed.

so even CONFIG_X86_VSMP is not defined, you want all x86 systems including 32bit kernel and 64bit kernel 
to call

static int is_vsmp = -1;

static void __init detect_vsmp_box(void)
{
        is_vsmp = 0;

        if (!early_pci_allowed())
                return;

        /* Check if we are running on a ScaleMP vSMPowered box */
        if (read_pci_config(0, 0x1f, 0, PCI_VENDOR_ID) ==
             (PCI_VENDOR_ID_SCALEMP | (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))
                is_vsmp = 1;
}

int is_vsmp_box(void)
{
        if (is_vsmp != -1)
                return is_vsmp;
        else {
                WARN_ON_ONCE(1);
                return 0;
        }
}


> 
> In the future, I would appreciate if you copy me on cleanups/changes involving
> vsmp64.c

i didn't touch vsmp64.c

YH

> 
> Thanks,
> Kiran
> 
>> ---
>> arch/x86/include/asm/apic.h  |    7 +++++++
>> arch/x86/include/asm/setup.h |    4 ++++
>> arch/x86/kernel/Makefile     |    2 +-
>> arch/x86/kernel/setup.c      |    2 --
>> arch/x86/kernel/vsmp_64.c    |   12 +-----------
>> 5 files changed, 13 insertions(+), 14 deletions(-)
>>
>> Index: linux-2.6/arch/x86/include/asm/apic.h
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/include/asm/apic.h
>> +++ linux-2.6/arch/x86/include/asm/apic.h
>> @@ -75,7 +75,14 @@ static inline void default_inquire_remot
>> #define setup_secondary_clock setup_secondary_APIC_clock
>> #endif
>>
>> +#ifdef CONFIG_X86_VSMP
>> extern int is_vsmp_box(void);
>> +#else
>> +static inline int is_vsmp_box(void)
>> +{
>> +	return 0;
>> +}
>> +#endif
>> extern void xapic_wait_icr_idle(void);
>> extern u32 safe_xapic_wait_icr_idle(void);
>> extern void xapic_icr_write(u32, u32);
>> Index: linux-2.6/arch/x86/include/asm/setup.h
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/include/asm/setup.h
>> +++ linux-2.6/arch/x86/include/asm/setup.h
>> @@ -64,7 +64,11 @@ extern void x86_quirk_time_init(void);
>> #include <asm/bootparam.h>
>>
>> /* Interrupt control for vSMPowered x86_64 systems */
>> +#ifdef CONFIG_X86_VSMP
>> void vsmp_init(void);
>> +#else
>> +static inline void vsmp_init(void) { }
>> +#endif
>>
>> void setup_bios_corruption_check(void);
>>
>> Index: linux-2.6/arch/x86/kernel/Makefile
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/kernel/Makefile
>> +++ linux-2.6/arch/x86/kernel/Makefile
>> @@ -70,7 +70,7 @@ obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= f
>> obj-$(CONFIG_KEXEC)		+= machine_kexec_$(BITS).o
>> obj-$(CONFIG_KEXEC)		+= relocate_kernel_$(BITS).o crash.o
>> obj-$(CONFIG_CRASH_DUMP)	+= crash_dump_$(BITS).o
>> -obj-y				+= vsmp_64.o
>> +obj-$(CONFIG_X86_VSMP)		+= vsmp_64.o
>> obj-$(CONFIG_KPROBES)		+= kprobes.o
>> obj-$(CONFIG_MODULES)		+= module_$(BITS).o
>> obj-$(CONFIG_EFI) 		+= efi.o efi_$(BITS).o efi_stub_$(BITS).o
>> Index: linux-2.6/arch/x86/kernel/setup.c
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/kernel/setup.c
>> +++ linux-2.6/arch/x86/kernel/setup.c
>> @@ -863,9 +863,7 @@ void __init setup_arch(char **cmdline_p)
>>
>> 	reserve_initrd();
>>
>> -#ifdef CONFIG_X86_64
>> 	vsmp_init();
>> -#endif
>>
>> 	io_delay_init();
>>
>> Index: linux-2.6/arch/x86/kernel/vsmp_64.c
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/kernel/vsmp_64.c
>> +++ linux-2.6/arch/x86/kernel/vsmp_64.c
>> @@ -22,7 +22,7 @@
>> #include <asm/paravirt.h>
>> #include <asm/setup.h>
>>
>> -#if defined CONFIG_PCI && defined CONFIG_PARAVIRT
>> +#ifdef CONFIG_PARAVIRT
>> /*
>>  * Interrupt control on vSMPowered systems:
>>  * ~AC is a shadow of IF.  If IF is 'on' AC should be 'off'
>> @@ -114,7 +114,6 @@ static void __init set_vsmp_pv_ops(void)
>> }
>> #endif
>>
>> -#ifdef CONFIG_PCI
>> static int is_vsmp = -1;
>>
>> static void __init detect_vsmp_box(void)
>> @@ -139,15 +138,6 @@ int is_vsmp_box(void)
>> 		return 0;
>> 	}
>> }
>> -#else
>> -static void __init detect_vsmp_box(void)
>> -{
>> -}
>> -int is_vsmp_box(void)
>> -{
>> -	return 0;
>> -}
>> -#endif
>>
>> void __init vsmp_init(void)
>> {
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/


  reply	other threads:[~2009-02-26  8:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-26  5:20 [PATCH] x86: don't compile vsmp_64 for 32bit Yinghai Lu
2009-02-26  5:40 ` Ingo Molnar
2009-02-26  6:48 ` Ravikiran G Thirumalai
2009-02-26  8:39   ` Yinghai Lu [this message]
2009-02-26 11:44   ` Ingo Molnar
2009-02-27  0:17     ` Ravikiran G Thirumalai
2009-02-28  9:44       ` Ingo Molnar
2009-03-02 23:51         ` Ravikiran G Thirumalai
2009-03-03  0:08           ` Yinghai Lu
2009-03-22 12:48           ` Ingo Molnar
2009-03-24  6:14             ` Ravikiran G Thirumalai
2009-03-24  9:10               ` Ingo Molnar
2009-03-25 18:51                 ` Ravikiran G Thirumalai
2009-03-25 22:16                   ` Jeremy Fitzhardinge
2009-03-25 22:36                     ` Ravikiran G Thirumalai
2009-03-25 23:15                       ` Jeremy Fitzhardinge
2009-03-25 23:29                         ` Ravikiran G Thirumalai
2009-03-25 23:36                           ` Thomas Gleixner
2009-03-26  0:11                             ` Ravikiran G Thirumalai
2009-03-25 23:58                           ` Jeremy Fitzhardinge
2009-03-26  0:31                             ` Ravikiran G Thirumalai
2009-03-26  9:11                               ` Ingo Molnar
2009-03-26 18:17                                 ` Ravikiran G Thirumalai
2009-03-26  7:57               ` [tip:x86/apic] Revert "x86: don't compile vsmp_64 for 32bit" Ravikiran G Thirumalai

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=49A65556.5090805@kernel.org \
    --to=yinghai@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=kiran@scalex86.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=shai@scalex86.org \
    --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