Re: [PATCH RFC] ACPI: container: Add power domain control methods

From: zhangzekun (A)
Date: Mon Oct 31 2022 - 03:49:48 EST


Hi, Rafael J

This patch wants to put some generic control logic in container, and these logic can
cover a batch of scenarios similar to ours. ACPI power resources interface is not confilct
with this patch and can be used inside the container for more complicated scenarios.

In our secenaio, we need to control the power of some HBM memory device, each of it
will be configured as a PNP0C80, HBM devices in one socket are in the same power
domain and need to power on/off together. Every HBM memory device represent a numa
node and have no cpu on it. The topology in one socket can be simplifed and represented as

        +---------+
        |  node0  |
        |  CPUs   |
        |  DRAM   |
        +---------+
             |
      +------+-------+
      |              |
 +---------+    +---------+
 |  node1  |    |  node2  |
 |  no-cpu |    |  no-cpu |
 |  HBM    |    |  HBM    |
 +---------+    +---------+

To use ACPI power domain management interface, we need to develop a specialized
driver to maintain the relationship between socket id and numa nodes to tell the
userspace which socket does this numa node belong to. Note that the numa node in
the same socket will be power on/off together.

Socket id of a memory device can be reported by BIOS via DSDT or other ACPI tables,
but we can just skip this step by put all of the devices belongs to the same socket
in a container. And, we can call each child devices' "_PXM" function to expose numa
nodes of HBM devices to userspace.

Besides, To power off the devices we need first to offline these ACPI devices, and then
call the ACPI function "_EJ0" to finally remove it. This are also generic logic that can be
used to remove ejectable devices.

what we really need is a place to support these generic control logic, rather than the
interfaces to implement our requirements.

Best Regards,
Zekun, Zhang


在 2022/10/29 1:07, Rafael J. Wysocki 写道:
On Tue, Oct 25, 2022 at 8:17 AM Zhang Zekun <zhangzekun11@xxxxxxxxxx> wrote:
Platform devices which supports power control are often required to be
power off/on together with the devices in the same power domain. However,
there isn't a generic driver that support the power control logic of
these devices.
Not true.

There is the ACPI power resources interface designed to represent
power domains that is well supported and used in the industry.

If it doesn't work for you, explain why.