Skip to content

Conversation

@sielicki
Copy link
Contributor

@sielicki sielicki commented Jan 2, 2026

No description provided.

@sielicki sielicki force-pushed the prov-cxi-split-headers branch from 37fa37d to 03c5ec0 Compare January 2, 2026 22:12
Add some scripts to refactor prov/cxi headers.

usage:
$ ./prov/cxi/scripts/analyze_symbols.py | \
  ./prov/cxi/scripts/generate_refactor_plan.py | \
  ./prov/cxi/scripts/apply_refactor.py
$ git add prov/cxi/include
$ make -j

Signed-off-by: Nicholas Sielicki <opensource@nslick.com>
Using scripts introduced in HEAD~1, break-out cxip.h into smaller
headers, and remove the scripts used to create them.

Signed-off-by: Nicholas Sielicki <opensource@nslick.com>
Add clang-format disable/enables in cxip.h to ensure include-order stays
valid. Run clang-format over all the newly generated headers.

Signed-off-by: Nicholas Sielicki <opensource@nslick.com>
@sielicki sielicki force-pushed the prov-cxi-split-headers branch from 03c5ec0 to 75ab956 Compare January 2, 2026 22:17
@sielicki sielicki marked this pull request as ready for review January 2, 2026 22:19
Copilot AI review requested due to automatic review settings January 2, 2026 22:19
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the CXI provider codebase by splitting a large monolithic cxip.h header file into smaller, more modular header files. This improves code organization, compilation times, and maintainability by creating focused headers for specific components.

Key changes:

  • Formatting improvements in fi_cxi_ext.h with consistent spacing and alignment
  • Introduction of 30+ new header files organizing code by functional area (endpoints, queues, memory registration, collectives, etc.)
  • Each new header follows a consistent pattern with forward declarations, type definitions, and function declarations

Reviewed changes

Copilot reviewed 43 out of 44 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
prov/cxi/include/fi_cxi_ext.h Formatting cleanup - removed extra tabs, aligned comments and macro definitions consistently
prov/cxi/include/cxip/zbcoll.h New header for zero-byte collective operations structures and functions
prov/cxi/include/cxip/txc.h New header for transmit context definitions and operations
prov/cxi/include/cxip/telemetry.h New header for telemetry functionality
prov/cxi/include/cxip/rxc.h New header for receive context definitions and operations
prov/cxi/include/cxip/rma.h New header for RMA (Remote Memory Access) operations
prov/cxi/include/cxip/req_buf.h New header for request buffer management
prov/cxi/include/cxip/req.h New header for request structures and types
prov/cxi/include/cxip/repsum.h New header for reproducible sum operations
prov/cxi/include/cxip/rdzv_pte.h New header for rendezvous portal table entry management
prov/cxi/include/cxip/ptelist_buf.h New header for portal table entry list buffer management
prov/cxi/include/cxip/pte.h New header for portal table entry operations
prov/cxi/include/cxip/portals_table.h New header for portals table management
prov/cxi/include/cxip/nic.h New header for NIC allocation functions
prov/cxi/include/cxip/msg_hpc.h New header for HPC message operations
prov/cxi/include/cxip/msg.h New header for message operations and structures
prov/cxi/include/cxip/mr_lac_cache.h New header for MR LAC cache type definition
prov/cxi/include/cxip/mr.h New header for memory registration structures and operations
prov/cxi/include/cxip/log.h New header for logging macros
prov/cxi/include/cxip/iomm.h New header for I/O memory management
prov/cxi/include/cxip/info.h New header for info/utility functions
prov/cxi/include/cxip/if.h New header for interface management
prov/cxi/include/cxip/fc.h New header for flow control structures
prov/cxi/include/cxip/fabric.h New header for fabric structures
prov/cxi/include/cxip/evtq.h New header for event queue management
prov/cxi/include/cxip/eq.h New header for event queue structures
prov/cxi/include/cxip/ep.h New header for endpoint structures and operations
prov/cxi/include/cxip/env.h New header for environment configuration
prov/cxi/include/cxip/enums.h New header centralizing all enum type definitions
prov/cxi/include/cxip/dom.h New header for domain structures and operations
prov/cxi/include/cxip/curl.h New header for CURL HTTP operations
prov/cxi/include/cxip/ctrl.h New header for control structures
prov/cxi/include/cxip/cq.h New header for completion queue operations
prov/cxi/include/cxip/common.h New header for common macros, types, and definitions
prov/cxi/include/cxip/coll_trace.h New header for collective tracing
prov/cxi/include/cxip/coll.h New header for collective operations
prov/cxi/include/cxip/cntr.h New header for counter structures
prov/cxi/include/cxip/cmdq.h New header for command queue management
prov/cxi/include/cxip/av.h New header for address vector structures
prov/cxi/include/cxip/auth.h New header for authentication functions
prov/cxi/include/cxip/atomic.h New header for atomic operations
prov/cxi/include/cxip/addr.h New header for address structures and macros
prov/cxi/include/cxip_faults.h Formatting cleanup in fault injection macros

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@jswaro jswaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my earlier email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants