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

Robert Richter posted 14 patches 11 months, 1 week 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    |  50 +++++++----
drivers/cxl/core/port.c   |  15 ++--
drivers/cxl/core/region.c | 170 +++++++++++++++++++++++++-------------
drivers/cxl/cxl.h         |   7 +-
drivers/cxl/port.c        |  15 +---
8 files changed, 172 insertions(+), 102 deletions(-)
[PATCH v4 00/14] cxl: Address translation support, part 1: Cleanups and refactoring
Posted by Robert Richter 11 months, 1 week 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-3: Cleanups and comments around cxl_hdm_decode_init().

 * Patches 4, 5: Adding and modifying helper functions.

 * Patches 6-10: Refactoring of endpoint decoder setup.

 * Patches 11-14: Adding and modifying debug messages.

v4:
 * rebased onto cxl/next, commit 0a14566be090 ("cxl/Documentation:
   Remove 'mixed' from sysfs mode doc"),
 * added tags to SOB chain,
 * reworked comments in cxl_hdm_decode_init() (dropped moving comment
   and updated patch that modifies comments) (Jonathan),
 * reworded patch description that removes duplicate call of
   cxl_find_decoder_early() (Jonathan),
 * moved some patches out of this rework and cleanup series (Dave,
   Jonathan),

v3:
 * added tags to SOB chain,
 * fixed NULL pointer dereference in cxl_find_root_decoder() (Alison),
 * updated subject line of patches that add kernel messages and
   included example log messages (Alison),

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 (14):
  cxl: Remove else after return
  cxl/pci: Moving code in cxl_hdm_decode_init()
  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: Add function to find a port's switch decoder by range
  cxl/region: Add a dev_warn() on registration failure
  cxl/region: Add a dev_err() on missing target list entries
  cxl: Add a dev_dbg() 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    |  50 +++++++----
 drivers/cxl/core/port.c   |  15 ++--
 drivers/cxl/core/region.c | 170 +++++++++++++++++++++++++-------------
 drivers/cxl/cxl.h         |   7 +-
 drivers/cxl/port.c        |  15 +---
 8 files changed, 172 insertions(+), 102 deletions(-)


base-commit: 0a14566be090ca51a32ebdd8a8e21678062dac08
-- 
2.39.5
Re: [PATCH v4 00/14] cxl: Address translation support, part 1: Cleanups and refactoring
Posted by Alison Schofield 9 months, 3 weeks ago
On Thu, Mar 06, 2025 at 05:44:34PM +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-3: Cleanups and comments around cxl_hdm_decode_init().
> 
>  * Patches 4, 5: Adding and modifying helper functions.
> 
>  * Patches 6-10: Refactoring of endpoint decoder setup.
> 
>  * Patches 11-14: Adding and modifying debug messages.
> 

Hi Robert, 

cross-post from Discord here:

@Robert Richter @Dave Jiang (Intel)  I sync'd my work on top of Roberts
v4 Part One, and then walked thru and tagged most of the 14 patch set.
Can a bunch of those go onto cxl/next now?  I saw 'hard' no's on 5,6,10
and a couple of maybes 2,3,9 but even if you omit all those, we could
get 8 patches simmering on cxl/next now.

In the collab sync you mentioned working this set. After using and
reviewing today, and seeing I'm not the first person to suggest this,
I think we would benefit from merging part of this set while you 
refine the rest.

I believe they all have plenty of tags, so it's based on what you are
willing to let fly!

-- Alison


> v4:
>  * rebased onto cxl/next, commit 0a14566be090 ("cxl/Documentation:
>    Remove 'mixed' from sysfs mode doc"),
>  * added tags to SOB chain,
>  * reworked comments in cxl_hdm_decode_init() (dropped moving comment
>    and updated patch that modifies comments) (Jonathan),
>  * reworded patch description that removes duplicate call of
>    cxl_find_decoder_early() (Jonathan),
>  * moved some patches out of this rework and cleanup series (Dave,
>    Jonathan),
> 
> v3:
>  * added tags to SOB chain,
>  * fixed NULL pointer dereference in cxl_find_root_decoder() (Alison),
>  * updated subject line of patches that add kernel messages and
>    included example log messages (Alison),
> 
> 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 (14):
>   cxl: Remove else after return
>   cxl/pci: Moving code in cxl_hdm_decode_init()
>   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: Add function to find a port's switch decoder by range
>   cxl/region: Add a dev_warn() on registration failure
>   cxl/region: Add a dev_err() on missing target list entries
>   cxl: Add a dev_dbg() 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    |  50 +++++++----
>  drivers/cxl/core/port.c   |  15 ++--
>  drivers/cxl/core/region.c | 170 +++++++++++++++++++++++++-------------
>  drivers/cxl/cxl.h         |   7 +-
>  drivers/cxl/port.c        |  15 +---
>  8 files changed, 172 insertions(+), 102 deletions(-)
> 
> 
> base-commit: 0a14566be090ca51a32ebdd8a8e21678062dac08
> -- 
> 2.39.5
>