[PATCH v2 00/18] cxl: Address translation support, part 1: Cleanups and refactoring

Robert Richter posted 18 patches 1 year ago
There is a newer version of this series
drivers/cxl/acpi.c        |  12 ++-
drivers/cxl/core/cdat.c   |   2 +-
drivers/cxl/core/hdm.c    |   3 +-
drivers/cxl/core/pci.c    |  44 +++++----
drivers/cxl/core/port.c   |  15 +--
drivers/cxl/core/region.c | 190 +++++++++++++++++++++++++-------------
drivers/cxl/cxl.h         |   9 +-
drivers/cxl/port.c        |  22 ++---
8 files changed, 187 insertions(+), 110 deletions(-)
[PATCH v2 00/18] cxl: Address translation support, part 1: Cleanups and refactoring
Posted by Robert Richter 1 year ago
This series is the first part of adding support for CXL address
translation. It contains cleanup and code refactoring in preparation
of the actual implementation that will be sent in part 2. Cleanup and
code refactoring have been split in a separate series to reduce the
number of patches of the series. Even without address translation on
top this rework improves esp. the region code, cleans it up,
simplifies it and adds debugging messages to better analyze region
creation failures:

Content of patches:

 * Patches 1: Remove else after return.

 * Patches 2-4: Cleanups and comments around cxl_hdm_decode_init().

 * Patches 5, 6, 13: Adding and modifying helper functions.

 * Patches 7-12, 14: Refactoring of endpoint decoder setup.

 * Patches 15-18: Adding and modifying debug messages.

Most of the patches were part of my first submission of v1 [1], some
of them were already reviewed.

[1] https://lore.kernel.org/linux-cxl/20250107141015.3367194-1-rrichter@amd.com/

V2:
 * rebased onto cxl/next,
 * added tags to SOB chain,
 * move patches with cleanups and refactoring into this separate
   series (Dave),
 * added patch "cxl/acpi: Unify CFMWS memory log messages with SRAT
   messages" to improve CFMWS log messages,
 * renamed endpoint decoder functions to cxl_endpoint_decoder_*() (Li),
 * reworded patch description that moves find_cxl_root() and reworks
   cxl_find_root_decoder() (Terry),
 * small changes to cxl_find_root_decoder()/
   cxl_endpoint_decoder_initialize() (Jonanthan),
 * updated comment in cxl_port_find_switch_decoder() (Ben),
 * cxl_endpoint_decoder_initialize(): Simplify variable declaration
   (Jonathan, Ben),
 * cxl_find_decoder_early(): Added comment on function usage (Gregory),
 * reordered patches and reworded some of the subject for a better
   structure.

Robert Richter (18):
  cxl: Remove else after return
  cxl/pci: Moving code in cxl_hdm_decode_init()
  cxl/pci: cxl_hdm_decode_init: Move comment
  cxl/pci: Add comments to cxl_hdm_decode_init()
  cxl: Introduce parent_port_of() helper
  cxl/region: Rename function to cxl_find_decoder_early()
  cxl/region: Avoid duplicate call of cxl_find_decoder_early()
  cxl/region: Move find_cxl_root() to cxl_add_to_region()
  cxl/region: Factor out code to find the root decoder
  cxl/region: Factor out code to find a root decoder's region
  cxl/region: Split region registration into an initialization and
    adding part
  cxl/region: Use iterator to find the root port in
    cxl_find_root_decoder()
  cxl/region: Add function to find a port's switch decoder by range
  cxl/region: Unfold cxl_find_root_decoder() into
    cxl_endpoint_decoder_initialize()
  cxl/region: Show message on registration failure
  cxl/region: Show message on broken target list
  cxl: Show message when a decoder was added to a port
  cxl/acpi: Unify CFMWS memory log messages with SRAT messages

 drivers/cxl/acpi.c        |  12 ++-
 drivers/cxl/core/cdat.c   |   2 +-
 drivers/cxl/core/hdm.c    |   3 +-
 drivers/cxl/core/pci.c    |  44 +++++----
 drivers/cxl/core/port.c   |  15 +--
 drivers/cxl/core/region.c | 190 +++++++++++++++++++++++++-------------
 drivers/cxl/cxl.h         |   9 +-
 drivers/cxl/port.c        |  22 ++---
 8 files changed, 187 insertions(+), 110 deletions(-)


base-commit: 5585e342e8d38cc598279bdb87f235f8b954dd5a
-- 
2.39.5
Re: [PATCH v2 00/18] cxl: Address translation support, part 1: Cleanups and refactoring
Posted by Gregory Price 1 year ago
On Fri, Feb 07, 2025 at 04:37:35PM +0100, Robert Richter wrote:
> This series is the first part of adding support for CXL address
> translation. It contains cleanup and code refactoring in preparation
> of the actual implementation that will be sent in part 2. Cleanup and
> code refactoring have been split in a separate series to reduce the
> number of patches of the series. Even without address translation on
> top this rework improves esp. the region code, cleans it up,
> simplifies it and adds debugging messages to better analyze region
> creation failures:
> 
> Content of patches:
> 
>  * Patches 1: Remove else after return.
> 
>  * Patches 2-4: Cleanups and comments around cxl_hdm_decode_init().
> 
>  * Patches 5, 6, 13: Adding and modifying helper functions.
> 
>  * Patches 7-12, 14: Refactoring of endpoint decoder setup.
> 
>  * Patches 15-18: Adding and modifying debug messages.
> 
> Most of the patches were part of my first submission of v1 [1], some
> of them were already reviewed.
> 
> [1] https://lore.kernel.org/linux-cxl/20250107141015.3367194-1-rrichter@amd.com/
>

For entire series:

Tested-by: Gregory Price <gourry@gourry.net>

Tested individually and w/ a rebase of the full translation patch set from
[1] on a Zen5 platform with PRM and translation.

Will test again with part-2 as I expect some changes.
Re: [PATCH v2 00/18] cxl: Address translation support, part 1: Cleanups and refactoring
Posted by Robert Richter 12 months ago
On 07.02.25 16:24:09, Gregory Price wrote:

> For entire series:
> 
> Tested-by: Gregory Price <gourry@gourry.net>
> 
> Tested individually and w/ a rebase of the full translation patch set from
> [1] on a Zen5 platform with PRM and translation.
> 
> Will test again with part-2 as I expect some changes.

Thanks for testing.

-Robert