• Linus Torvalds's avatar
    Merge tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · b9132c32
    Linus Torvalds authored
    Pull CXL (Compute Express Link) updates from Dan Williams:
     "This development cycle extends the subsystem to discover CXL resources
      throughout a CXL/PCIe switch topology and respond to hot add/remove
      events anywhere in that topology.
    
      This is more foundational infrastructure in preparation for dynamic
      memory region provisioning support. Recall that CXL memory regions, as
      the new "Theory of Operation" section of
      Documentation/driver-api/cxl/memory-devices.rst describes, bring
      storage volume striping semantics to memory.
    
      The hot add/remove behavior is validated with extensions to the
      cxl_test unit test environment and this test in the cxl-cli test
      suite:
    
          https://github.com/pmem/ndctl/blob/djbw/for-74/cxl/test/cxl-topology.sh
    
      Summary:
    
       - Add a driver for 'struct cxl_memdev' objects responsible for
         CXL.mem operation as distinct from 'cxl_pci' mailbox operations.
    
         Its primary responsibility is enumerating an endpoint 'struct
         cxl_port' and all the 'struct cxl_port' instances between an
         endpoint and the CXL platform root.
    
       - Add a driver for 'struct cxl_port' objects responsible for
         enumerating and operating all Host-managed Device Memory (HDM)
         decoder resources between the platform-level CXL memory
         description, all intervening host bridges / switches, and the HDM
         resources in endpoints.
    
       - Update the cxl_pci driver to validate CXL.mem operation precursors
         to HDM decoder operation like ready-polling, and legacy CXL 1.1
         DVSEC based CXL.mem configuration.
    
       - Add basic lockdep coverage for usage of device_lock() on CXL
         subsystem objects similar to what exists for LIBNVDIMM. Include a
         compile-time switch for which subsystem to validate at run-time.
    
       - Update cxl_test to emulate a one level switch topology.
    
       - Document a "Theory of Operation" for the subsystem.
    
       - Add 'numa_node' and 'serial' attributes to cxl_memdev sysfs
    
       - Include miscellaneous fixes for spec / QEMU CXL emulation
         compatibility and static analysis reports"
    
    * tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (48 commits)
      cxl/core/port: Fix NULL but dereferenced coccicheck error
      cxl/port: Hold port reference until decoder release
      cxl/port: Fix endpoint refcount leak
      cxl/core: Fix cxl_device_lock() class detection
      cxl/core/port: Fix unregister_port() lock assertion
      cxl/regs: Fix size of CXL Capability Header Register
      cxl/core/port: Handle invalid decoders
      cxl/core/port: Fix / relax decoder target enumeration
      tools/testing/cxl: Add a physical_node link
      tools/testing/cxl: Enumerate mock decoders
      tools/testing/cxl: Mock one level of switches
      tools/testing/cxl: Fix root port to host bridge assignment
      tools/testing/cxl: Mock dvsec_ranges()
      cxl/core/port: Add endpoint decoders
      cxl/core: Move target_list out of base decoder attributes
      cxl/mem: Add the cxl_mem driver
      cxl/core/port: Add switch port enumeration
      cxl/memdev: Add numa_node attribute
      cxl/pci: Emit device serial number
      cxl/pci: Implement wait for media active
      ...
    b9132c32
Kconfig.debug 89.7 KB