• Linus Torvalds's avatar
    Merge tag 'cxl-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 02c163e9
    Linus Torvalds authored
    Pull CXL updates from Dan Williams:
     "CXL has mechanisms to enumerate the performance characteristics of
      memory devices. Those mechanisms allow Linux to build the equivalent
      of ACPI SRAT, SLIT, and HMAT tables dynamically at runtime. That
      capability is necessary because static ACPI can not represent dynamic
      CXL configurations (and reconfigurations).
    
      So, building on the v6.8 work to add "Quality of Service" enumeration,
      this update plumbs CXL "access coordinates" (read/write access latency
      and bandwidth) in all the same places that ACPI HMAT feeds similar
      data. Follow-on patches from the -mm side can then use that data to
      feed mechanisms like mm/memory-tiers.c. Greg has acked the touch to
      drivers/base/.
    
      The other feature update this cycle is support for CXL error injection
      via the ACPI EINJ module. That facility enables injection of bus
      protocol errors provided the user knows the magic address values to
      insert in the interface. To hide that magic, and make this easier to
      use, new error injection attributes were added to CXL debugfs. That
      interface injects the errors relative to a CXL object rather than
      require user tooling to know how to lookup and inject RCRB (Root
      Complex Register Block) addresses into the raw EINJ debugfs interface.
      It received some helpful review comments from Tony, but no explicit
      acks from the ACPI side. The primary user visible change for existing
      EINJ users is that they may find that einj.ko was already loaded by
      cxl_core.ko. Previously, einj.ko was only loaded on demand.
    
      The usual collection of miscellaneous cleanups are also present this
      cycle.
    
      Summary:
    
       - Supplement ACPI HMAT reported memory performance with native CXL
         memory performance enumeration
    
       - Add support for CXL error injection via the ACPI EINJ mechanism
    
       - Cleanup CXL DOE and CDAT integration
    
       - Miscellaneous cleanups and fixes"
    
    * tag 'cxl-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (21 commits)
      Documentation/ABI/testing/debugfs-cxl: Fix "Unexpected indentation"
      lib/firmware_table: Provide buffer length argument to cdat_table_parse()
      cxl/pci: Get rid of pointer arithmetic reading CDAT table
      cxl/pci: Rename DOE mailbox handle to doe_mb
      cxl: Fix the incorrect assignment of SSLBIS entry pointer initial location
      cxl/core: Add CXL EINJ debugfs files
      EINJ, Documentation: Update EINJ kernel doc
      EINJ: Add CXL error type support
      EINJ: Migrate to a platform driver
      cxl/region: Deal with numa nodes not enumerated by SRAT
      cxl/region: Add memory hotplug notifier for cxl region
      cxl/region: Add sysfs attribute for locality attributes of CXL regions
      cxl/region: Calculate performance data for a region
      cxl: Set cxlmd->endpoint before adding port device
      cxl: Move QoS class to be calculated from the nearest CPU
      cxl: Split out host bridge access coordinates
      cxl: Split out combine_coordinates() for common shared usage
      ACPI: HMAT / cxl: Add retrieval of generic port coordinates for both access classes
      ACPI: HMAT: Introduce 2 levels of generic port access class
      base/node / ACPI: Enumerate node access class for 'struct access_coordinate'
      ...
    02c163e9
memory.h 6.42 KB