From: Jonathan Cameron <Jonathan.Cameron@huawei.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>,
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 v5 05/14] cxl/region: Rename function to cxl_port_pick_region_decoder()
Date: Tue, 29 Apr 2025 16:31:19 +0100 [thread overview]
Message-ID: <20250429163119.00001eba@huawei.com> (raw)
In-Reply-To: <20250428214318.1682212-6-rrichter@amd.com>
On Mon, 28 Apr 2025 23:43:08 +0200
Robert Richter <rrichter@amd.com> wrote:
> Current function cxl_region_find_decoder() is used to find a port's
> decoder during region setup. In the region creation path the function
> is an allocator to find a free port. In the region assembly path, it
> is recalling the decoder that platform firmware picked for validation
> purposes.
>
> Rename function to cxl_port_pick_region_decoder() that better
> describes its use and update the function's description.
>
> The result of cxl_port_pick_region_decoder() is recorded in a 'struct
> cxl_region_ref' in @port for later recall when other endpoints might
> also be targets of the picked decoder.
I'm not convinced pick is really any clearer than find as it doesn't to me
imply 'get the one that was already allocated'. I'm also not seeing
a lot of precedence in kernel for this use of pick.
I don't feel that strongly either way though and I guess I'll
get used to the term if we go with pick.
Alternative might just be to make it an or...
cxl_region_find_or_alloc_decoder()
>
> Signed-off-by: Robert Richter <rrichter@amd.com>
> Reviewed-by: Gregory Price <gourry@gourry.net>
> Tested-by: Gregory Price <gourry@gourry.net>
> ---
> drivers/cxl/core/region.c | 25 ++++++++++++++++++++-----
> 1 file changed, 20 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index e35209168c9c..e104035e0855 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -865,10 +865,25 @@ static int match_auto_decoder(struct device *dev, const void *data)
> return 0;
> }
>
> +/**
> + * cxl_port_pick_region_decoder() - assign or lookup a decoder for a region
> + * @port: a port in the ancestry of the endpoint implied by @cxled
> + * @cxled: endpoint decoder to be, or currently, mapped by @port
> + * @cxlr: region to establish, or validate, decode @port
> + *
> + * In the region creation path cxl_port_pick_region_decoder() is an
> + * allocator to find a free port. In the region assembly path, it is
> + * recalling the decoder that platform firmware picked for validation
> + * purposes.
> + *
> + * The result is recorded in a 'struct cxl_region_ref' in @port for
> + * later recall when other endpoints might also be targets of the picked
> + * decoder.
> + */
> static struct cxl_decoder *
> -cxl_region_find_decoder(struct cxl_port *port,
> - struct cxl_endpoint_decoder *cxled,
> - struct cxl_region *cxlr)
> +cxl_port_pick_region_decoder(struct cxl_port *port,
> + struct cxl_endpoint_decoder *cxled,
> + struct cxl_region *cxlr)
> {
> struct device *dev;
>
> @@ -932,7 +947,7 @@ alloc_region_ref(struct cxl_port *port, struct cxl_region *cxlr,
> if (test_bit(CXL_REGION_F_AUTO, &cxlr->flags)) {
> struct cxl_decoder *cxld;
>
> - cxld = cxl_region_find_decoder(port, cxled, cxlr);
> + cxld = cxl_port_pick_region_decoder(port, cxled, cxlr);
> if (auto_order_ok(port, iter->region, cxld))
> continue;
> }
> @@ -1020,7 +1035,7 @@ static int cxl_rr_alloc_decoder(struct cxl_port *port, struct cxl_region *cxlr,
> {
> struct cxl_decoder *cxld;
>
> - cxld = cxl_region_find_decoder(port, cxled, cxlr);
> + cxld = cxl_port_pick_region_decoder(port, cxled, cxlr);
> if (!cxld) {
> dev_dbg(&cxlr->dev, "%s: no decoder available\n",
> dev_name(&port->dev));
next prev parent reply other threads:[~2025-04-29 15:31 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-28 21:43 [PATCH v5 00/14] cxl: Address translation support, part 1: Cleanups and refactoring Robert Richter
2025-04-28 21:43 ` [PATCH v5 01/14] cxl: Remove else after return Robert Richter
2025-04-29 1:35 ` Alison Schofield
2025-04-28 21:43 ` [PATCH v5 02/14] cxl/pci: Moving code in cxl_hdm_decode_init() Robert Richter
2025-04-28 22:07 ` Dave Jiang
2025-04-29 15:17 ` Jonathan Cameron
2025-04-28 21:43 ` [PATCH v5 03/14] cxl/pci: Add comments to cxl_hdm_decode_init() Robert Richter
2025-04-28 22:08 ` Dave Jiang
2025-04-28 21:43 ` [PATCH v5 04/14] cxl: Introduce parent_port_of() helper Robert Richter
2025-04-28 21:43 ` [PATCH v5 05/14] cxl/region: Rename function to cxl_port_pick_region_decoder() Robert Richter
2025-04-28 22:24 ` Dave Jiang
2025-04-29 15:31 ` Jonathan Cameron [this message]
2025-05-07 15:15 ` Jonathan Cameron
2025-05-05 17:20 ` Fabio M. De Francesco
2025-04-28 21:43 ` [PATCH v5 06/14] cxl/region: Avoid duplicate call of cxl_port_pick_region_decoder() Robert Richter
2025-04-28 22:28 ` Dave Jiang
2025-04-29 15:34 ` Jonathan Cameron
2025-05-05 17:51 ` Fabio M. De Francesco
2025-04-28 21:43 ` [PATCH v5 07/14] cxl/region: Move find_cxl_root() to cxl_add_to_region() Robert Richter
2025-04-28 21:43 ` [PATCH v5 08/14] cxl/port: Replace put_cxl_root() by a cleanup helper Robert Richter
2025-04-28 22:27 ` Gregory Price
2025-04-28 23:03 ` Dave Jiang
2025-04-29 15:38 ` Jonathan Cameron
2025-04-29 15:38 ` Jonathan Cameron
2025-05-05 17:55 ` Fabio M. De Francesco
2025-04-28 21:43 ` [PATCH v5 09/14] cxl/region: Factor out code to find the root decoder Robert Richter
2025-04-28 21:43 ` [PATCH v5 10/14] cxl/region: Factor out code to find a root decoder's region Robert Richter
2025-04-28 21:43 ` [PATCH v5 11/14] cxl/region: Add function to find a port's switch decoder by range Robert Richter
2025-05-05 18:18 ` Fabio M. De Francesco
2025-04-28 21:43 ` [PATCH v5 12/14] cxl/region: Add a dev_warn() on registration failure Robert Richter
2025-04-28 21:43 ` [PATCH v5 13/14] cxl/region: Add a dev_err() on missing target list entries Robert Richter
2025-04-28 21:43 ` [PATCH v5 14/14] cxl: Add a dev_dbg() when a decoder was added to a port Robert Richter
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=20250429163119.00001eba@huawei.com \
--to=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