lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 23 May 2023 20:39:31 -0500
From:   Terry Bowman <Terry.Bowman@....com>
To:     alison.schofield@...el.com, vishal.l.verma@...el.com,
        ira.weiny@...el.com, bwidawsk@...nel.org, dan.j.williams@...el.com,
        dave.jiang@...el.com, Jonathan.Cameron@...wei.com,
        linux-cxl@...r.kernel.org
Cc:     rrichter@....com, linux-kernel@...r.kernel.org, bhelgaas@...gle.com
Subject: Re: [PATCH v4 00/23] cxl/pci: Add support for RCH RAS error handling

Dropped the change log somehow, Adding here.

Changes in V4:
 - Made port RAS register discovery common and called from
   __devm_cxl_add_dport().
 - Changed RCH AER register discovery to be called from
   __devm_cxl_add_dport().
 - Changed RAS and RCH AER register mapping to be called from
   __devm_cxl_add_dport().
 - Changed component register mapping to use common mapping,
   cxl_map_component_regs().
 - Added cxl_regs to 'struct cxl_dport' for providing RCH downstream port
   mapped registers used in error handler.
 - Refactored cxl_map_reg() to be like devm_cxl_iomap_block().
 - PCI/AER:
      - Removed patch for cper_mem_err_unpack().
      - Renamed cper_print_aer() to pci_print_aer().
      - Changed pci_print_aer() export to use
        EXPORT_SYMBOL_NS_GPL(pci_print_aer, CXL).
      - Improved description of PCIEAER_CXL option in Kconfig.
      - Renamed function to pci_aer_unmask_internal_errors(), added
        pcie_aer_is_native() check.
      - Improved comments and added spec refs.
      - Renamed functions to cxl_rch_handle_error*().
      - Modified cxl_rch_handle_error_iter() to only call the handler
        callbacks, this also simplifies refcounting of the pdev.
      - Refactored handle_error_source(), created pci_aer_handle_error().
      - Changed printk messages to pci_*() variants.
      - Added check for pcie_aer_is_native() to the RCEC.
      - Introduced function cxl_rch_enable_rcec().
      - Updated patch description ("PCI/AER: Forward RCH downstream
      port-detected errors to the CXL.mem dev handler").

Changes in V3:
 - Correct base commit in cover sheet.
 - Change hardcoded return 0 to NULL in regs.c.
 - Remove calls to pci_disable_pcie_error_reporting(pdev) and
   pci_enable_pcie_error_reporting(pdev) in mem.c;
 - Move RCEC interrupt unmask to PCIe port AER driver's probe.
   - Fixes missing PCIEAER and PCIEPORTBUS config option error.
 - Rename cxl_rcrb_setup() to cxl_setup_rcrb() in mem.c.
 - Update cper_mem_err_unpack() patch subject and description.

Changes in V2:
 - Refactor RCH initialization into cxl_mem driver.
   - Includes RCH RAS and AER register discovery and mapping.
 - Add RCEC protocol error interrupt forwarding to CXL endpoint
   handler.
 - Change AER and RAS logging to use existing trace routines.
 - Enable RCEC AER internal errors.

Regards,
Terry


On 5/23/23 18:21, Terry Bowman wrote:
> Patches #1 to #16 are a rework of the Component Register setup. This
> is needed to share multiple CXL capabilities (HDM and RAS) for the
> same component, also there can be different components implementing
> the same capability, finally RCH mode should be supported too. The
> general approach to solve this is to:
> 
>    * Unify code for components and capabilities in VH and RCH modes.
> 
>    * Early setup of the Component Register base address.
> 
>    * Create and store the register mappings to later use it for mapping
>      the capability I/O ranges.
> 
> Patches #17 to #23 enable CXL RCH error handling. These are needed because
> RCH downstream port protocol error handling is implemented uniquely and not
> currently supported. These patches address the following:
> 
>    * Discovery and mapping of RCH downstream port AER registers.
> 
>    * AER portdrv changes to support CXL RCH protocol errors. 
> 
>    * Interrupt setup specific to RCH mode: enabling RCEC internal
>      errors and disabling root port interrupts.
> 
> Dan Williams (1):
>   cxl/rch: Prepare for caching the MMIO mapped PCIe AER capability
> 
> Robert Richter (16):
>   cxl/acpi: Probe RCRB later during RCH downstream port creation
>   cxl: Rename member @dport of struct cxl_dport to @dev
>   cxl/core/regs: Add @dev to cxl_register_map
>   cxl/acpi: Moving add_host_bridge_uport() around
>   cxl/acpi: Directly bind the CEDT detected CHBCR to the Host Bridge's
>     port
>   cxl/regs: Remove early capability checks in Component Register setup
>   cxl/pci: Early setup RCH dport component registers from RCRB
>   cxl/port: Store the port's Component Register mappings in struct
>     cxl_port
>   cxl/port: Store the downstream port's Component Register mappings in
>     struct cxl_dport
>   cxl/pci: Store the endpoint's Component Register mappings in struct
>     cxl_dev_state
>   cxl/hdm: Use stored Component Register mappings to map HDM decoder
>     capability
>   cxl/port: Remove Component Register base address from struct cxl_port
>   cxl/port: Remove Component Register base address from struct cxl_dport
>   cxl/pci: Remove Component Register base address from struct
>     cxl_dev_state
>   PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem
>     dev handler
>   PCI/AER: Unmask RCEC internal errors to enable RCH downstream port
>     error handling
> 
> Terry Bowman (6):
>   cxl/pci: Refactor component register discovery for reuse
>   cxl/pci: Add RCH downstream port AER register discovery
>   PCI/AER: Refactor cper_print_aer() for use by CXL driver module
>   cxl/pci: Update CXL error logging to use RAS register address
>   cxl/pci: Prepare for logging RCH downstream port protocol errors
>   cxl/pci: Add RCH downstream port error logging
> 
> base-commit: a70fc4ed20a6118837b0aecbbf789074935f473b
> 
>  drivers/cxl/acpi.c            | 191 +++++++++++++++++++---------------
>  drivers/cxl/core/hdm.c        |  59 +++++------
>  drivers/cxl/core/pci.c        | 140 ++++++++++++++++++++++---
>  drivers/cxl/core/port.c       | 157 ++++++++++++++++++++++++----
>  drivers/cxl/core/region.c     |   4 +-
>  drivers/cxl/core/regs.c       | 152 ++++++++++++++++++++++++---
>  drivers/cxl/cxl.h             |  56 ++++++----
>  drivers/cxl/cxlmem.h          |   5 +-
>  drivers/cxl/mem.c             |  16 +--
>  drivers/cxl/pci.c             | 109 +++++++------------
>  drivers/cxl/port.c            |   5 +-
>  drivers/pci/pcie/Kconfig      |  12 +++
>  drivers/pci/pcie/aer.c        | 173 ++++++++++++++++++++++++++++--
>  include/linux/aer.h           |   2 +-
>  tools/testing/cxl/Kbuild      |   2 +-
>  tools/testing/cxl/test/cxl.c  |  10 +-
>  tools/testing/cxl/test/mock.c |  12 +--
>  tools/testing/cxl/test/mock.h |   7 +-
>  18 files changed, 824 insertions(+), 288 deletions(-)
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ