mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Joshua Hahn <joshua.hahnjy@gmail.com>
To: Robert Richter <rrichter@amd.com>
Cc: Alison Schofield <alison.schofield@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Dave Jiang <dave.jiang@intel.com>,
	Davidlohr Bueso <dave@stgolabs.net>,
	linux-cxl@vger.kernel.org, linux-kernel@vger.kernel.org,
	Gregory Price <gourry@gourry.net>,
	"Fabio M. De Francesco" <fabio.m.de.francesco@linux.intel.com>,
	Terry Bowman <terry.bowman@amd.com>
Subject: Re: [PATCH v1 05/20] cxl/region: Separate cxl_region_alloc() from devm_cxl_add_region()
Date: Mon, 21 Jul 2025 07:16:52 -0700	[thread overview]
Message-ID: <20250721141653.89805-1-joshua.hahnjy@gmail.com> (raw)
In-Reply-To: <20250715191143.1023512-6-rrichter@amd.com>

On Tue, 15 Jul 2025 21:11:28 +0200 Robert Richter <rrichter@amd.com> wrote:

> In interleaving configs multiple endpoint decoders connect to the same
> region. The region's parameters must be the same for all endpoint
> decoders that share the interleaving setup. During initialization, the
> region's parameters are determined for each endpoint decoder.
> If a region for the same hpa range already exists, no new region is
> created and the existing one is reused.
> 
> To simplify region setup and the collection of the region parameters,
> separate region allocation from its registration. This allows it to
> allocate and setup a region before checking the parameters with
> existing other regions and adding it to the cxl tree or releasing it
> and instead reusing an existing region.
> 
> Here, only separate cxl_region_alloc() from devm_cxl_add_region().
> 
> Signed-off-by: Robert Richter <rrichter@amd.com>
> ---

Hello Robert,

Thank you for this great patch! I have one small nit:

>  /**
> - * devm_cxl_add_region - Adds a region to a decoder
> - * @cxlrd: root decoder
> - * @id: memregion id to create, or memregion_free() on failure
> - * @mode: mode for the endpoint decoders of this region
> - * @type: select whether this is an expander or accelerator (type-2 or type-3)
> + * devm_cxl_add_region - Adds a region to the CXL hierarchy.
> + * @cxlr: region to be added
> + * @id: memregion id to create must match current @port_id of the
> + *      region's @cxlrd
>   *
>   * This is the second step of region initialization. Regions exist within an
>   * address space which is mapped by a @cxlrd.
>   *
> - * Return: 0 if the region was added to the @cxlrd, else returns negative error
> - * code. The region will be named "regionZ" where Z is the unique region number.
> + * Return: Pointer to the region if the region could be registered
> + * (for use in a tail call). The region will be named "regionZ" where
> + * Z is the unique region number. On errors, devm_cxl_add_region()
> + * returns an encoded negative error code and releases or unregisters
> + * @cxlr.
>   */

It seems like the changes that this new return description corresponds to
were actually made in the previous patch. Would it make sense to move this
new description to the previous patch?

> -static struct cxl_region *devm_cxl_add_region(struct cxl_root_decoder *cxlrd,
> -					      int id,
> -					      enum cxl_partition_mode mode,
> -					      enum cxl_decoder_type type)
> +static struct cxl_region *devm_cxl_add_region(struct cxl_region *cxlr, int id)

Otherwise, LGTM!

Reviewed-by: Joshua Hahn <joshua.hahnjy@gmail.com>

Sent using hkml (https://github.com/sjp38/hackermail)

  reply	other threads:[~2025-07-21 14:16 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-15 19:11 [PATCH v1 00/20] cxl: Address translation support, part 2: Region code rework Robert Richter
2025-07-15 19:11 ` [PATCH v1 01/20] cxl/region: Move helper functions closer to their users Robert Richter
2025-07-15 19:11 ` [PATCH v1 02/20] cxl/region: Store root decoder in struct cxl_region Robert Richter
2025-07-15 19:11 ` [PATCH v1 03/20] cxl/region: Remove region id handling from cxl_region_alloc() Robert Richter
2025-07-15 19:11 ` [PATCH v1 04/20] cxl/region: Add region registration code to new function register_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 05/20] cxl/region: Separate cxl_region_alloc() from devm_cxl_add_region() Robert Richter
2025-07-21 14:16   ` Joshua Hahn [this message]
2025-07-15 19:11 ` [PATCH v1 06/20] cxl/region: Remove dev_err() from cxl_find_root_decoder() Robert Richter
2025-07-15 19:11 ` [PATCH v1 07/20] cxl/region: Add new function cxl_endpoint_get_region() to simplify cxl_add_to_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 08/20] cxl/region: Rework memregion id allocation and move it to register_region() Robert Richter
2025-07-21 15:06   ` Joshua Hahn
2025-07-15 19:11 ` [PATCH v1 09/20] cxl/region: Change __construct_region() to use it as a tail function call Robert Richter
2025-07-15 19:11 ` [PATCH v1 10/20] cxl/region: Remove __construct_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 11/20] cxl/region: Separate auto-generated region cration code path Robert Richter
2025-07-15 19:11 ` [PATCH v1 12/20] cxl/region: Remove region creation code from construct_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 13/20] cxl/region: Move devm_cxl_add_region() out of create_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 14/20] cxl/region: Prepare removal of @cxlrd argument from create_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 15/20] cxl/region: Prepare removal of @cxled argument from construct_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 16/20] cxl/region: Introduce @hpa_range to struct cxl_region Robert Richter
2025-07-15 19:11 ` [PATCH v1 17/20] cxl/region: Remove create_region() call from construct_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 18/20] cxl/region: Determine root decoder in create_region() Robert Richter
2025-07-15 19:11 ` [PATCH v1 19/20] cxl/region: Add function to find a region's duplicate Robert Richter
2025-07-15 19:11 ` [PATCH v1 20/20] cxl/region: Early check region's interleaving configuration Robert Richter
2025-07-21  0:42 ` [PATCH v1 00/20] cxl: Address translation support, part 2: Region code rework Gregory Price
2025-07-21 20:59 ` Dave Jiang

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=20250721141653.89805-1-joshua.hahnjy@gmail.com \
    --to=joshua.hahnjy@gmail.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=alison.schofield@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=fabio.m.de.francesco@linux.intel.com \
    --cc=gourry@gourry.net \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rrichter@amd.com \
    --cc=terry.bowman@amd.com \
    --cc=vishal.l.verma@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®