Re: [GIT PULL] Compute Express Link for 6.0

2022-08-10 Thread pr-tracker-bot
The pull request you sent on Tue, 9 Aug 2022 23:22:05 +:

> git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.0

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c235698355fa94df7073b51befda7d4be00a0e23

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html



[GIT PULL] Compute Express Link for 6.0

2022-08-09 Thread Williams, Dan J
Hi Linus, please pull from:

  git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.0

...to receive initial support and infrastructure for dynamic CXL region
provisioning and other updates. The support is considered "initial"
because it only tackles persistent memory provisioning, and only for
the decode setup portion of the process.

This is important to merge in this form because it is foundational for
other development that depends on the new 'struct cxl_region' object.
That follow-on development for features like region assembly from
labels, address translation for error handling, and RAM region
provisioning will play out over the next several development cycles.
Addtionally the recently released CXL 3.0 specification adds more
complexity like "dynamic capacity devices" (think "thin provisioning
for memory") that builds on top of the 'struct cxl_region' object.

There is new core driver infrastructure to note in this pull. First,
alloc_free_mem_region() is introduced as a straightforward enhancement
of request_free_mem_region() as a generic allocator of physical memory
address space. Recall that CXL provides platform "windows" where CXL
regions can be dynamically provisioned, and that provisioning flow
needs an allocator. Related to that is the new export of
insert_resource_expand_to_fit(), but only into the 'CXL' symbol
namespace. That lets the CXL subsystem advertise the platform ranges to
exclude from request_free_mem_region() requests. Lastly, there is a new
PCI core driver service for DOE (Data Object Exchange) mailboxes. This
is a mailbox built over configuration cycles* that has many use cases,
one of which is retrieving the CDAT (Coherent Device Attribute Table)
from CXL endpoints.

This has appeared in linux-next and has attracted several fixes and
cleanups. There is debug in-flight for a recent problem report of
configuring 4-way regions under a single host-bridge, but these commits
have otherwise passed testing on several emulation platforms including
but not limited to QEMU and the in-kernel cxl_test infrastructure.
There are no other known issues or conflicts.

The new driver infrastructure has acks from Greg (resource APIs) and
Bjorn (PCI DOE). A few tags also arrived after the branch was cut for
soaking in linux-next:

910bc55da828 cxl/region: Move HPA setup to cxl_region_attach()
Reviewed-by: Jonathan Cameron 

298d44d04b2b cxl/region: Fix x1 interleave to greater than x1 interleave routing
Reviewed-by: Jonathan Cameron 
Tested-by: Jonathan Cameron  #via qemu

4d8e4ea5bb39 cxl/region: Disallow region granularity != window granularity
Reviewed-by: Jonathan Cameron 

Please pull, thanks.

* Note, I am uneasy that DOE seems to have both use cases where a
kernel driver is appropriate, and some where a userspace driver over
PCI-sysfs is sufficient. As DOE proliferates I expect Linux will need
to be more explicit about managing those potential conflicts.

---

The following changes since commit e35f5718903b093be4b1d3833aa8a32f864a3ef1:

  cxl/mbox: Fix missing variable payload checks in cmd size validation 
(2022-06-28 22:03:18 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.0

for you to fetch changes up to 1cd8a2537eb07751d405ab7e2223f20338a90506:

  cxl/hdm: Fix skip allocations vs multiple pmem allocations (2022-08-05 
16:11:38 -0700)


cxl for 6.0

- Introduce a 'struct cxl_region' object with support for provisioning
  and assembling persistent memory regions.

- Introduce alloc_free_mem_region() to accompany the existing
  request_free_mem_region() as a method to allocate physical memory
  capacity out of an existing resource.

- Export insert_resource_expand_to_fit() for the CXL subsystem to
  late-publish CXL platform windows in iomem_resource.

- Add a polled mode PCI DOE (Data Object Exchange) driver service and
  use it in cxl_pci to retrieve the CDAT (Coherent Device Attribute
  Table).


Bagas Sanjaya (3):
  cxl/regions: add padding for cxl_rr_ep_add nested lists
  cxl/region: describe targets and nr_targets members of cxl_region_params
  Documentation: cxl: remove dangling kernel-doc reference

Ben Widawsky (6):
  cxl/hdm: Use local hdm variable
  cxl/hdm: Require all decoders to be enumerated
  cxl/hdm: Add sysfs attributes for interleave ways + granularity
  cxl/region: Add region creation support
  cxl/region: Add a 'uuid' attribute
  cxl/region: Add interleave geometry attributes

Dan Carpenter (4):
  cxl/region: uninitialized variable in alloc_hpa()
  cxl/region: prevent underflow in ways_to_cxl()
  cxl/region: decrement ->nr_targets on error in cxl_region_attach()
  cxl/region: Fix IS_ERR() vs NULL check

Dan Williams (54):
  tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention