All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sasha.levin@oracle.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: tglx@linutronix.de, mingo@redhat.com, x86@kernel.org,
	linux-kernel@vger.kernel.org, penberg@kernel.org
Subject: Re: [PATCH] x86, smpboot: allow manual hotplug of CPUs
Date: Wed, 21 Nov 2012 13:35:19 -0500	[thread overview]
Message-ID: <50AD1EE7.6020304@oracle.com> (raw)
In-Reply-To: <50AD1CB6.9030707@zytor.com>

On 11/21/2012 01:25 PM, H. Peter Anvin wrote:
> On 11/21/2012 10:22 AM, Sasha Levin wrote:
>> So far CPU hotplug was ignored for mptable implementations which support it by
>> having the hotpluggable CPUs marked as disabled during boot.
>>
>> The current kernel code detects that behaviour and actually deals with it
>> properly:
>>
>> 	[    0.000000] Intel MultiProcessor Specification v1.4
>> 	[    0.000000] MPTABLE: OEM ID: KVMCPU00
>> 	[    0.000000] MPTABLE: Product ID: 0.1
>> 	[    0.000000] MPTABLE: APIC at: 0xFEE00000
>> 	[    0.000000] Processor #0 (Bootup-CPU)
>> 	[    0.000000] Processor #1
>> 	[    0.000000] Processor #2
>> 	[    0.000000] IOAPIC[0]: apic_id 4, version 17, address 0xfec00000, GSI 0-23
>> 	[    0.000000] Processors: 3
>> 	[    0.000000] smpboot: Allowing 3 CPUs, 1 hotplug CPUs
>>
>> The problem begins when a user might actually want to online such CPU; there
>> is no interface for him to tell the kernel that the CPU is now present and
>> can be used.
>>
>> Luckily, the kernel provides a generic interface in the form of 'probe' and
>> 'release' sysfs files which are used on different architectures exactly for
>> that - to probe and release CPUs. On x86 however this was unimplemented
>> until now.
>>
>> This patch adds code into the x86 implementation of probe and release to allow
>> adding and removing CPUs. This allows machines that use mptable to hotplug
>> CPUs:
>>
> 
> Reading between the lines, this sounds like would cause a user-visible
> difference between mptable platforms and ACPI platforms?  If so, that is
> totally unacceptable.  If not, the description is confusing.

With ACPI platforms you don't need probe/release because the hardware notifies
on CPU insert/eject - this doesn't exist on mptable which is why you have to
do it manually with probe/release.

The difference is already user visible: you can hotplug on ACPI, but can't on
mptables.

Yes, reading back the subject does sound confusing - a better one would probably
be "provide interface for CPU hotplug on mptable platforms" or something similar.


Thanks,
Sasha


  reply	other threads:[~2012-11-21 18:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-21 18:22 [PATCH] x86, smpboot: allow manual hotplug of CPUs Sasha Levin
2012-11-21 18:25 ` H. Peter Anvin
2012-11-21 18:35   ` Sasha Levin [this message]
2012-11-21 18:38     ` H. Peter Anvin
2012-11-21 19:19       ` Sasha Levin
2012-11-21 19:24         ` H. Peter Anvin
2012-11-21 19:35           ` Sasha Levin
2012-11-21 19:39             ` H. Peter Anvin

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=50AD1EE7.6020304@oracle.com \
    --to=sasha.levin@oracle.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=penberg@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.