diff mbox

[RFC,1/5] ACPI / containers : add support for ACPI0010 processor container

Message ID 1430922690-6966-2-git-send-email-sudeep.holla@arm.com (mailing list archive)
State RFC, archived
Headers show

Commit Message

Sudeep Holla May 6, 2015, 2:31 p.m. UTC
ACPI 6.0 adds support for optional processor container device which may
contain child objects that are either processor devices or other processor
containers. This allows representing hierarchical processor topologies.

It is declared using the _HID of ACPI0010. It may also have _CID of
PNP0A05, which represents a generic container device.

This patch enables the support for these ACPI processor containers.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 Documentation/memory-hotplug.txt | 2 +-
 drivers/acpi/container.c         | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Hanjun Guo May 8, 2015, 8:50 a.m. UTC | #1
Hi Sudeep,

On 2015?05?06? 22:31, Sudeep Holla wrote:
> ACPI 6.0 adds support for optional processor container device which may
> contain child objects that are either processor devices or other processor
> containers. This allows representing hierarchical processor topologies.
>
> It is declared using the _HID of ACPI0010. It may also have _CID of
> PNP0A05, which represents a generic container device.

Container device helps support hotplug of nodes, CPUs, and memory,
does this container device ACPI0010 used for the same purpose?

For my understanding, ACPI0010 is used to abstract CPU topology
like cluster, not for hotplug purpose, maybe I missed something,
or you just need this container driver for later use?

Thanks
Hanjun

>
> This patch enables the support for these ACPI processor containers.
>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>   Documentation/memory-hotplug.txt | 2 +-
>   drivers/acpi/container.c         | 1 +
>   2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt
> index ce2cfcf35c27..bdbf7bb88d5d 100644
> --- a/Documentation/memory-hotplug.txt
> +++ b/Documentation/memory-hotplug.txt
> @@ -124,7 +124,7 @@ config options.
>
>   - As a related configuration, if your box has a feature of NUMA-node hotplug
>     via ACPI, then this option is necessary too.
> -    ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
> +    ACPI0004, ACPI0010, PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
>       (CONFIG_ACPI_CONTAINER).
>       This option can be kernel module too.
>
> diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
> index c8ead9f97375..8c041b9ac359 100644
> --- a/drivers/acpi/container.c
> +++ b/drivers/acpi/container.c
> @@ -36,6 +36,7 @@ ACPI_MODULE_NAME("container");
>
>   static const struct acpi_device_id container_device_ids[] = {
>   	{"ACPI0004", 0},
> +	{"ACPI0010", 0},
>   	{"PNP0A05", 0},
>   	{"PNP0A06", 0},
>   	{"", 0},
>
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael J. Wysocki May 8, 2015, 2:06 p.m. UTC | #2
On Friday, May 08, 2015 04:50:10 PM Hanjun Guo wrote:
> Hi Sudeep,
> 
> On 2015?05?06? 22:31, Sudeep Holla wrote:
> > ACPI 6.0 adds support for optional processor container device which may
> > contain child objects that are either processor devices or other processor
> > containers. This allows representing hierarchical processor topologies.
> >
> > It is declared using the _HID of ACPI0010. It may also have _CID of
> > PNP0A05, which represents a generic container device.
> 
> Container device helps support hotplug of nodes, CPUs, and memory,
> does this container device ACPI0010 used for the same purpose?

That's correct and the patch isn't.

Thanks!


> For my understanding, ACPI0010 is used to abstract CPU topology
> like cluster, not for hotplug purpose, maybe I missed something,
> or you just need this container driver for later use?
> 
> Thanks
> Hanjun
> 
> >
> > This patch enables the support for these ACPI processor containers.
> >
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> > ---
> >   Documentation/memory-hotplug.txt | 2 +-
> >   drivers/acpi/container.c         | 1 +
> >   2 files changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt
> > index ce2cfcf35c27..bdbf7bb88d5d 100644
> > --- a/Documentation/memory-hotplug.txt
> > +++ b/Documentation/memory-hotplug.txt
> > @@ -124,7 +124,7 @@ config options.
> >
> >   - As a related configuration, if your box has a feature of NUMA-node hotplug
> >     via ACPI, then this option is necessary too.
> > -    ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
> > +    ACPI0004, ACPI0010, PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
> >       (CONFIG_ACPI_CONTAINER).
> >       This option can be kernel module too.
> >
> > diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
> > index c8ead9f97375..8c041b9ac359 100644
> > --- a/drivers/acpi/container.c
> > +++ b/drivers/acpi/container.c
> > @@ -36,6 +36,7 @@ ACPI_MODULE_NAME("container");
> >
> >   static const struct acpi_device_id container_device_ids[] = {
> >   	{"ACPI0004", 0},
> > +	{"ACPI0010", 0},
> >   	{"PNP0A05", 0},
> >   	{"PNP0A06", 0},
> >   	{"", 0},
> >
Sudeep Holla May 8, 2015, 3:32 p.m. UTC | #3
On 08/05/15 15:06, Rafael J. Wysocki wrote:
> On Friday, May 08, 2015 04:50:10 PM Hanjun Guo wrote:
>> Hi Sudeep,
>>
>> On 2015?05?06? 22:31, Sudeep Holla wrote:
>>> ACPI 6.0 adds support for optional processor container device which may
>>> contain child objects that are either processor devices or other processor
>>> containers. This allows representing hierarchical processor topologies.
>>>
>>> It is declared using the _HID of ACPI0010. It may also have _CID of
>>> PNP0A05, which represents a generic container device.
>>
>> Container device helps support hotplug of nodes, CPUs, and memory,
>> does this container device ACPI0010 used for the same purpose?
>
> That's correct and the patch isn't.
>

Thanks Rafael for the clarification.

Just curious if the firmware adds _CID of PNP0A05 to support OS that
don't parse processor containers, will the current code not create
containers using _CID ?

Regards,
Sudeep
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael J. Wysocki May 8, 2015, 8:33 p.m. UTC | #4
On Friday, May 08, 2015 04:32:33 PM Sudeep Holla wrote:
> 
> On 08/05/15 15:06, Rafael J. Wysocki wrote:
> > On Friday, May 08, 2015 04:50:10 PM Hanjun Guo wrote:
> >> Hi Sudeep,
> >>
> >> On 2015?05?06? 22:31, Sudeep Holla wrote:
> >>> ACPI 6.0 adds support for optional processor container device which may
> >>> contain child objects that are either processor devices or other processor
> >>> containers. This allows representing hierarchical processor topologies.
> >>>
> >>> It is declared using the _HID of ACPI0010. It may also have _CID of
> >>> PNP0A05, which represents a generic container device.
> >>
> >> Container device helps support hotplug of nodes, CPUs, and memory,
> >> does this container device ACPI0010 used for the same purpose?
> >
> > That's correct and the patch isn't.
> >
> 
> Thanks Rafael for the clarification.
> 
> Just curious if the firmware adds _CID of PNP0A05 to support OS that
> don't parse processor containers, will the current code not create
> containers using _CID ?

Yes, it will, but you can prevent that from happening by adding a new
scan handler just for ACPI0010 (that may just return 1 from its ->attach
callback and do nothing else).
diff mbox

Patch

diff --git a/Documentation/memory-hotplug.txt b/Documentation/memory-hotplug.txt
index ce2cfcf35c27..bdbf7bb88d5d 100644
--- a/Documentation/memory-hotplug.txt
+++ b/Documentation/memory-hotplug.txt
@@ -124,7 +124,7 @@  config options.
 
 - As a related configuration, if your box has a feature of NUMA-node hotplug
   via ACPI, then this option is necessary too.
-    ACPI0004,PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
+    ACPI0004, ACPI0010, PNP0A05 and PNP0A06 Container Driver (under ACPI Support menu)
     (CONFIG_ACPI_CONTAINER).
     This option can be kernel module too.
 
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index c8ead9f97375..8c041b9ac359 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -36,6 +36,7 @@  ACPI_MODULE_NAME("container");
 
 static const struct acpi_device_id container_device_ids[] = {
 	{"ACPI0004", 0},
+	{"ACPI0010", 0},
 	{"PNP0A05", 0},
 	{"PNP0A06", 0},
 	{"", 0},