-
Notifications
You must be signed in to change notification settings - Fork 472
prov/cxi: split cxip.h into smaller headers #11780
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
37fa37d to
03c5ec0
Compare
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>
03c5ec0 to
75ab956
Compare
There was a problem hiding this 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.hwith 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.
jswaro
left a comment
There was a problem hiding this 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.
No description provided.