All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: hpa@zytor.com, linux-kernel@vger.kernel.org, shai@scalemp.com,
	tglx@linutronix.de, ido@wizery.com
Cc: linux-tip-commits@vger.kernel.org
Subject: Re: [tip:x86/platform] vsmp: Fix number of CPUs when vsmp is disabled
Date: Tue, 8 May 2012 14:25:49 +0200	[thread overview]
Message-ID: <20120508122548.GA5741@gmail.com> (raw)
In-Reply-To: <tip-824a6ae65f085255464155760cb9628a2f0deb29@git.kernel.org>


* tip-bot for Shai Fultheim <shai@scalemp.com> wrote:

> Commit-ID:  824a6ae65f085255464155760cb9628a2f0deb29
> Gitweb:     http://git.kernel.org/tip/824a6ae65f085255464155760cb9628a2f0deb29
> Author:     Shai Fultheim <shai@scalemp.com>
> AuthorDate: Tue, 8 May 2012 10:34:15 +0300
> Committer:  Ingo Molnar <mingo@kernel.org>
> CommitDate: Tue, 8 May 2012 11:24:45 +0200
> 
> vsmp: Fix number of CPUs when vsmp is disabled
> 
> In case CONFIG_X86_VSMP is not set, limit the number of CPUs to
> the number of CPUs of the first board.
> 
> Signed-off-by: Shai Fultheim <shai@scalemp.com>
> [ido@wizery.com: rebased, fixed minor coding-style issues]
> Signed-off-by: Ido Yariv <ido@wizery.com>
> Link: http://lkml.kernel.org/r/1336462455-22544-1-git-send-email-ido@wizery.com
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> ---
>  arch/x86/kernel/vsmp_64.c |   43 +++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 43 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
> index a1d804b..6aa0d59 100644
> --- a/arch/x86/kernel/vsmp_64.c
> +++ b/arch/x86/kernel/vsmp_64.c
> @@ -15,6 +15,7 @@
>  #include <linux/init.h>
>  #include <linux/pci_ids.h>
>  #include <linux/pci_regs.h>
> +#include <linux/smp.h>
>  
>  #include <asm/apic.h>
>  #include <asm/pci-direct.h>
> @@ -22,6 +23,8 @@
>  #include <asm/paravirt.h>
>  #include <asm/setup.h>
>  
> +#define TOPOLOGY_REGISTER_OFFSET 0x10
> +
>  #if defined CONFIG_PCI && defined CONFIG_PARAVIRT
>  /*
>   * Interrupt control on vSMPowered systems:
> @@ -149,12 +152,52 @@ int is_vsmp_box(void)
>  	return 0;
>  }
>  #endif
> +
> +static void __init vsmp_cap_cpus(void)
> +{
> +	void __iomem *address;
> +	unsigned int cfg, topology, node_shift, maxcpus;
> +
> +#ifdef CONFIG_X86_VSMP
> +	/* VSMP is enabled, no need to cap cpus */
> +	return;
> +#endif
> +
> +	/*
> +	 * CONFIG_X86_VSMP is not configured, so limit the number CPUs to the
> +	 * ones present in the first board, unless explicitly overridden by
> +	 * setup_max_cpus
> +	 */
> +	if (setup_max_cpus != NR_CPUS)
> +		return;
> +
> +	/* Read the vSMP Foundation topology register */
> +	cfg = read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0);
> +	address = early_ioremap(cfg + TOPOLOGY_REGISTER_OFFSET, 4);
> +	if (WARN_ON(!address))
> +		return;
> +
> +	topology = readl(address);
> +	node_shift = (topology >> 16) & 0x7;
> +	if (!node_shift)
> +		/* The value 0 should be decoded as 8 */
> +		node_shift = 8;
> +	maxcpus = (topology & ((1 << node_shift) - 1)) + 1;
> +
> +	pr_info("vSMP CTL: Capping CPUs to %d (CONFIG_X86_VSMP is unset)\n",
> +		maxcpus);
> +	setup_max_cpus = maxcpus;
> +	early_iounmap(address, 4);

On !CONFIG_SMP this produces the following build failure:

 arch/x86/kernel/vsmp_64.c:171:6: error: ‘setup_max_cpus’ undeclared (first use in this function)

Do you want to keep vSMP on UP? If not then you could add a 
'depends on SMP' to the vSMP Kconfig entry, avoiding the whole 
UP problem space.

Thanks,

	Ingo

  reply	other threads:[~2012-05-08 12:25 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-06 12:39 [PATCH 1/2] vsmp: Fix number of CPUs when vsmp is disabled Ido Yariv
2012-04-06 12:39 ` [PATCH 2/2] vsmp: Ignore IOAPIC IRQ affinity if possible Ido Yariv
2012-04-16  7:39   ` [PATCH v2 1/2] vsmp: Fix number of CPUs when vsmp is disabled Ido Yariv
2012-04-16  7:39     ` [PATCH v2 2/2] vsmp: Ignore IOAPIC IRQ affinity if possible Ido Yariv
2012-05-07 13:19       ` Ingo Molnar
2012-05-08  0:53         ` Shai Fultheim (Shai@ScaleMP.com)
2012-05-09  9:18           ` Ingo Molnar
2012-05-09 21:21             ` Ido Yariv
2012-06-02 22:11               ` [PATCH 1/2] x86: Introduce apic post-initialization callback Ido Yariv
2012-06-02 22:11                 ` [PATCH v3 2/2] vsmp: Ignore IOAPIC IRQ affinity if possible Ido Yariv
2012-06-06 15:02                   ` [tip:x86/platform] x86/vsmp: " tip-bot for Ravikiran Thirumalai
2012-06-08  8:52                     ` Ingo Molnar
2012-06-08 15:43                       ` Ido Yariv
2012-06-11  8:58                         ` Ingo Molnar
2012-06-11 19:41                           ` Ido Yariv
2012-06-14 10:51                             ` Ingo Molnar
2012-06-14 15:43                               ` [PATCH] x86/vsmp: Fix linker error when CONFIG_PROC_FS is not set Ido Yariv
2012-06-15 14:22                                 ` [tip:x86/platform] " tip-bot for Ido Yariv
2012-06-06 15:01                 ` [tip:x86/platform] x86/platform: Introduce APIC post-initialization callback tip-bot for Ido Yariv
2012-06-14 17:34                   ` H. Peter Anvin
2012-06-15 14:33                     ` Ido Yariv
2012-04-28 21:33     ` [PATCH v2 1/2] vsmp: Fix number of CPUs when vsmp is disabled Ido Yariv
2012-04-29  3:05       ` Shai Fultheim (Shai@ScaleMP.com)
2012-05-07 13:24     ` Ingo Molnar
2012-05-08  7:34       ` [PATCH v3] " Ido Yariv
2012-05-08 10:05         ` [tip:x86/platform] " tip-bot for Shai Fultheim
2012-05-08 12:25           ` Ingo Molnar [this message]
2012-05-09  8:03             ` Ido Yariv
2012-05-09  8:22               ` Ido Yariv
2012-05-09  8:28                 ` [PATCH v4] " Ido Yariv
2012-05-09 15:44                   ` Ingo Molnar
2012-05-09 15:55                     ` H. Peter Anvin
2012-05-11 19:26                       ` Ido Yariv
2012-05-12  1:20                         ` Shai Fultheim (Shai@ScaleMP.com)
2012-05-09  9:12               ` [tip:x86/platform] " Ingo Molnar
2012-05-09 15:27                 ` Shai Fultheim (Shai@ScaleMP.com)

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=20120508122548.GA5741@gmail.com \
    --to=mingo@kernel.org \
    --cc=hpa@zytor.com \
    --cc=ido@wizery.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=shai@scalemp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.