[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-pci
Subject: Re: [PATCH 37/46] cxl/region: Allocate host physical address (HPA) capacity to new regions
From: Jonathan Cameron <Jonathan.Cameron () Huawei ! com>
Date: 2022-06-30 13:56:36
Message-ID: 20220630145636.00002f12 () Huawei ! com
[Download RAW message or body]
On Thu, 23 Jun 2022 21:19:41 -0700
Dan Williams <dan.j.williams@intel.com> wrote:
> After a region's interleave parameters (ways and granularity) are set,
> add a way for regions to allocate HPA from the free capacity in their
> decoder. The allocator for this capacity reuses the 'struct resource'
> based allocator used for CONFIG_DEVICE_PRIVATE.
>
> Once the tuple of "ways, granularity, and size" is set the
> region configuration transitions to the CXL_CONFIG_INTERLEAVE_ACTIVE
> state which is a precursor to allowing endpoint decoders to be added to
> a region.
>
> Co-developed-by: Ben Widawsky <bwidawsk@kernel.org>
> Signed-off-by: Ben Widawsky <bwidawsk@kernel.org>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
A few comments on the interface inline.
Thanks,
Jonathan
> ---
> Documentation/ABI/testing/sysfs-bus-cxl | 25 ++++
> drivers/cxl/Kconfig | 3 +
> drivers/cxl/core/region.c | 148 +++++++++++++++++++++++-
> drivers/cxl/cxl.h | 2 +
> 4 files changed, 177 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-cxl b/Documentation/ABI/testing/sysfs-bus-cxl
> index 46d5295c1149..3658facc9944 100644
> --- a/Documentation/ABI/testing/sysfs-bus-cxl
> +++ b/Documentation/ABI/testing/sysfs-bus-cxl
> @@ -294,3 +294,28 @@ Description:
> (RW) Configures the number of devices participating in the
> region is set by writing this value. Each device will provide
> 1/interleave_ways of storage for the region.
> +
> +
> +What: /sys/bus/cxl/devices/regionZ/size
> +Date: May, 2022
> +KernelVersion: v5.20
> +Contact: linux-cxl@vger.kernel.org
> +Description:
> + (RW) System physical address space to be consumed by the region.
> + When written to, this attribute will allocate space out of the
> + CXL root decoder's address space. When read the size of the
> + address space is reported and should match the span of the
> + region's resource attribute. Size shall be set after the
> + interleave configuration parameters.
There seem to be constraints that say you have to set this to 0 and then something
else later to force a resize. That should be mentioned here or gotten rid of.
> +
> +
> +What: /sys/bus/cxl/devices/regionZ/resource
> +Date: May, 2022
> +KernelVersion: v5.20
> +Contact: linux-cxl@vger.kernel.org
> +Description:
> + (RO) A region is a contiguous partition of a CXL root decoder
> + address space. Region capacity is allocated by writing to the
> + size attribute, the resulting physical address space determined
> + by the driver is reflected here. It is therefore not useful to
> + read this before writing a value to the size attribute.
I don't much like naming a "base address" resource. I'd expect resource to contain
both base and size whereas this only has the base address of the region.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic