Re: [RFC PATCH v2 00/16] ACPI based system device hotplug framework

From: Jiang Liu
Date: Thu Aug 09 2012 - 11:24:59 EST


On 08/09/2012 12:27 AM, Bjorn Helgaas wrote:
> On Wed, Aug 8, 2012 at 8:44 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote:
>> On 08/08/2012 07:38 AM, Toshi Kani wrote:
>
>>> It is nice to see redundant ACPI namespace walks removed from the ACPI
>>> drivers. But why do you need to add a new enumerator to create the
>>> acpihp_slot tree, in addition to the current acpi_device tree? I'd
>>> prefer hotplug features to be generally integrated into the current ACPI
>>> core code and data structures, instead of adding a new layer on top of
>>> it.
>> The idea comes from PCI hotplug framework, which has an concepts of PCI
>> hotplug slot and PCI device. For system device hotplug, we could follow
>> the same model as PCI by abstracting control points as slots. By introducing
>> of hotplug slot, we could:
>>
>> 1) Report all hotplug slots and slot's capabilities to user, no matter whether
>> there are devices connecting to a slot. If we integrate hotplug functionality
>> into current ACPI device tree, the slot (or device) is only visible when the
>> connected devices are enabled.
>
> In PCI, the idea of a slot is a pretty explicit -- you can look at the
> capabilities of a bridge device and see whether it supports hot-add of
> a device below it. Is it the same way in ACPI? My impression is that
> it is not: there will be a parent ACPI device under which a new device
> can be added, but you might not be able to tell by looking at the
> parent device that hot-add is possible. I thought the platform could
> just give us a Notify event on the parent, asking us to rescan the
> namespace below it and potentially discover new devices.
>
Hi Bjorn,
You are right. With current ACPI V5 specification, we can't get the slot
information from the ACPI namespace, and could only guess that a device with _EJ0
supports hot-add/hot-remove.
Realized that limitation, there's ongoing effort to provide ACPI hotplug
slot (or platform RAS capabilities) information to OS through static ACPI tables,
so OS could enable hotplug and reserve enough resources for system device hotplug.
If that static ACPI table is available, we could construct ACPI hotplug slots from
it.
Regards!
Gerry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/