From: Toshi Kani <toshi.kani@hp.com>
To: shuahkhan@gmail.com
Cc: lenb@kernel.org, linux-acpi@vger.kernel.org, bhelgaas@google.com,
liuj97@gmail.com, andi@firstfloor.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 0/6] ACPI: Add _OST support for ACPI hotplug
Date: Wed, 30 May 2012 11:19:50 -0600 [thread overview]
Message-ID: <1338398390.16730.483.camel@misato.fc.hp.com> (raw)
In-Reply-To: <1338391495.2566.18.camel@lorien2>
On Wed, 2012-05-30 at 09:24 -0600, Shuah Khan wrote:
> On Thu, 2012-05-24 at 13:48 -0600, Toshi Kani wrote:
> > On Thu, 2012-05-24 at 11:34 -0600, Shuah Khan wrote:
> > > On Wed, 2012-05-23 at 20:25 -0600, Toshi Kani wrote:
> > > > This patchset supports ACPI OSPM Status Indication (_OST) method for
> > > > ACPI CPU/memory/container hotplug operations and sysfs eject. After
> > > > an ACPI hotplug operation has completed, OSPM calls _OST to indicate
> > > > the result of the operation to the platform. If a platform does not
> > > > support _OST, this patchset has no effect on the platform.
> > > >
> > > > This _OST support is enabled when all relevant ACPI hotplug operations,
> > > > such as CPU, memory and container hotplug, are enabled. This assures
> > > > consistent behavior among the hotplug operations with regarding the
> > > > _OST support.
> > > >
> > > > Some platforms may require the OS to support _OST in order to support
> > > > ACPI hotplug operations. For example, if a platform has the management
> > > > console where user can request a hotplug operation from, this _OST
> > > > support would be required for the management console to show the result
> > > > of the hotplug request to user.
> > > >
> > > > The _OST definition can be found in section 6.3.5 of ACPI 5.0 spec.
> > > > The HPPF spec below also describes hotplug flows with _OST.
> > > >
> > > > DIG64 Hot-Plug & Partitioning Flow (HPPF) Specification R1.0
> > > > http://www.dig64.org/home/DIG64_HPPF_R1_0.pdf
> > > >
> > > > The changes have been tested with simulated _OST methods.
> > >
> > > Toshi,
> > >
> > > First of all thanks for asking for my feedback. :) Having benefited from
> > > reviewing the previous versions of this patch set, my thoughts on the
> > > implementation have evolved.
> >
> > Thanks for reviewing! :)
> >
> > > I have some general comments first in the response, and please find code
> > > specific comments on individual patches.
> > >
> > > This patch set enables Insertion/Ejection _OST processing support which
> > > will be a good addition since OS already supports it for Processor
> > > Aggregator Device Support and _PPC.
> >
> > Right.
> >
> > > However, in this case it is enabled as a compile time option and would
> > > require a kernel build when firmware starts supporting _OST method in
> > > some cases. Reference: PATCH v4 1/6.
> >
> > Yes, it requires ACPI CPU, Memory and Container hotplug be enabled in the kernel.
> >
> > > It also restricts the support to be all or nothing. i.e _OST is
> > > supported only when all relevant hotplug operations are supported and
> > > these need to be specifically enabled using the config options that
> > > control it. For example, if a platform supports CPU_HOTPLUG and not
> > > MEMORY_HOTPLUG, _OST support will be disabled even when firmware
> > > supports it for cpus. Also the set of hotplug operations is limited as
> > > _OST could be present in other hotplug cases such as PCI and PCIe.
> > >
> > > I understand the spirit of this restriction that you are trying to limit
> > > the exposure and it is a good goal. However, it probably could be
> > > achieved in a way that doesn't shoehorn the implementation.
> >
> > This restriction is to assure that the OS is compliant with the ACPI
> > spec. When the OS calls _OSC with the hotplug _OST bit set, the OS needs
> > to support _OST for all relevant ACPI hotplug operations. Unfortunately,
> > this requires all relevant hotplug modules be enabled in the OS under
> > the current implementation.
> >
> > For example, when the platform supports ACPI memory hotplug, but
> > ACPI_HOTPLUG_MEMORY is undefined in the OS, the OS needs to call _OSC
> > with the hotplug _OST bit unset. This is because the OS cannot receive
> > an ACPI notification to a memory object when ACPI_HOTPLUG_MEMORY is
> > undefined. Without the notify handler, we cannot call _OST.
> >
> > A long term solution to address this issue is to have the system global
> > notify handler to receive all hotplug notifications, and call _OST
> > accordingly. However, it will require restructuring efforts which well
> > beyond the scope of this patchset. The email below describes this issue
> > and my thoughts on this.
> > http://marc.info/?l=linux-acpi&m=133546048929384&w=2
> >
> > > I think here are the goals,
> > >
> > > 1. limit exposure so platforms that don't implement _OST are not
> > > penalized evaluation _OST unnecessarily.
> >
> > This goal is met since the OS cannot evaluate _OST unless it is
> > implemented.
> >
> > > 2. enable it when needed without requiring special compile time steps
> > > and not worrying about sorting through various config options.
> >
> > I agree, but as I explained above, this is required to be compliant with
> > ACPI spec at this point. We can remove this restriction by improving the
> > notify handler design, but it will take more steps to do so.
> >
> > > 3. don't require all hotplug variants to be enabled in config, before OS
> > > enables _OST support.
> >
> > I agree, but the same reason above.
> >
> > > I see that you are enabling _OST evaluation and set the cap bit
> > > OSC_SB_PPC_OST_SUPPORT only when ACPI_HOTPLUG_OST is defined. What
> > > happens on when a kernel is configured with the config options that
> > > enable ACPI_HOTPLUG_OST at compile time, and other hotplug options for
> > > example CONFIG_HOTPLUG_PCI_PCIE, and CONFIG_HOTPLUG_PCI.
> >
> > Non-ACPI hotplug operations like PCIe native hotplug are irrelevant to _OST.
>
> Yes I agree with your statement about PCIe native hot-plug operations.
> However, as Jiang Liu pointed out in one of the reviews of an earlier
> version of this patch set, _OST method has been defined in ACPI4.0 spec
> and there are some platforms that already implement the _OST method. For
> example,
> Quanta QSSC-S4R server implements _OST for hot-pluggable PCI slots.
This means this server is already working fine without Linux's _OST
support or with some private patch.
> So, we do have one example of a server that implements it for
> hot-pluggable PCI slots. Even if APCI PCI hotplug becomes legacy only,
> it still needs to be supported.
This can be incremental effort if we indeed need _OST support for legacy
ACPI hotplug. Jiang and I had also agreed on this.
> Based on my reading of the ACPI 5.0 Spec, _OST method as it is defined
> under the scope of Device Ejection/Insertion is applicable to not just
> memory, cpu, container, and PCI slots, it could also be applicable
> depending how a platform chooses implement it, "even in the cases of
> docking and undocking mobile platforms to and from a peripheral
> expansion dock." Reference: 6.3 of ACPI 5.0 Spec.
The OS-FW interface of docking / undocking operations is fairly
well-established with unique _DCK method. It is not clear to me if
there is any need to modify the current interface with _OST. There
might be such need in future, but I do not want to mess up with this
procedure with my speculation.
> So I think it is wrong and narrow scoped to assume _OST will be and is
> implemented only in the device ejection/insertion cases this patch set
> addresses.
I agree with your concerns. However, this patchset is the first step,
not the final step. This first step is targeted to support the _OST
use-cases defined in the DIG64 HPPF spec. We can continue to enhance it
as we find more needs. I am willing to help anyone who has plan to
implement _OST for other use-cases.
Thanks,
-Toshi
> -- Shuah
>
>
prev parent reply other threads:[~2012-05-30 17:22 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-24 2:25 [PATCH v4 0/6] ACPI: Add _OST support for ACPI hotplug Toshi Kani
2012-05-24 2:25 ` [PATCH v4 1/6] ACPI: Add an interface to evaluate _OST Toshi Kani
2012-05-24 18:09 ` Shuah Khan
2012-05-24 20:40 ` Toshi Kani
2012-05-24 2:25 ` [PATCH v4 2/6] ACPI: Add _OST support for sysfs eject Toshi Kani
2012-05-24 2:25 ` [PATCH v4 3/6] ACPI: Add _OST support for ACPI CPU hotplug Toshi Kani
2012-05-24 2:25 ` [PATCH v4 4/6] ACPI: Add _OST support for ACPI memory hotplug Toshi Kani
2012-05-24 18:21 ` Shuah Khan
2012-05-24 20:25 ` Toshi Kani
2012-05-24 2:25 ` [PATCH v4 5/6] ACPI: Add _OST support for ACPI container hotplug Toshi Kani
2012-06-05 4:39 ` Yasuaki Ishimatsu
2012-06-05 15:36 ` Kani, Toshimitsu
2012-06-11 1:55 ` Yasuaki Ishimatsu
2012-06-11 7:12 ` Kani, Toshimitsu
2012-05-24 2:25 ` [PATCH v4 6/6] ACPI: Set hotplug _OST support bit to _OSC Toshi Kani
2012-05-24 18:27 ` Shuah Khan
2012-05-24 20:53 ` Toshi Kani
2012-05-24 17:34 ` [PATCH v4 0/6] ACPI: Add _OST support for ACPI hotplug Shuah Khan
2012-05-24 19:48 ` Toshi Kani
2012-05-29 22:27 ` Moore, Robert
2012-05-29 22:27 ` Moore, Robert
2012-05-29 22:44 ` Shuah Khan
2012-05-29 23:43 ` Toshi Kani
2012-05-30 2:56 ` Moore, Robert
2012-05-30 14:11 ` Toshi Kani
2012-05-30 15:24 ` Shuah Khan
2012-05-30 17:19 ` Toshi Kani [this message]
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=1338398390.16730.483.camel@misato.fc.hp.com \
--to=toshi.kani@hp.com \
--cc=andi@firstfloor.org \
--cc=bhelgaas@google.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liuj97@gmail.com \
--cc=shuahkhan@gmail.com \
/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.