Skip to content

(JIT) Detect CCQE support in runtime instead of compiling#307

Open
QizhouZhang97 wants to merge 33 commits into
mainfrom
dev/compat_ccqe
Open

(JIT) Detect CCQE support in runtime instead of compiling#307
QizhouZhang97 wants to merge 33 commits into
mainfrom
dev/compat_ccqe

Conversation

@QizhouZhang97
Copy link
Copy Markdown
Contributor

@QizhouZhang97 QizhouZhang97 commented May 8, 2026

Motivation

MORI must support both CCQE and non-CCQE ionic deployments from a single
binary. The previous build-time IONIC_CCQE macro forced a recompile per
host and broke when libionic.so and mori_application.so were out of sync.

This change moves the decision to runtime: dlsym ionic_dv_create_cq_ex at
CQ creation time — if the symbol is present and firmware build ≥ 58, use
CCQE; otherwise fall back to ibv_create_cq_ex. A new environment variable
MORI_DISABLE_IONIC_CCQE=1 overrides the runtime detection and forces the
non-CCQE path even on hardware that supports it.

Issues resolved

  • Removed the build-time IONIC_CCQE macro and replaced it with a runtime
    capability check (IsCcqeSupported).
  • Fixed a bug in the ionic GDA implementation where only the non-CCQE poll-CQ
    path was implemented; removed the now-redundant duplicate poll-CQ code.

Tests

  1. mi355_n06_21 with a77 firmware (CCQE supported) — verified CCQE path is
    taken and MORI_DISABLE_IONIC_CCQE=1 correctly forces fallback.
  2. a94 firmware on AINIC team machines (CCQE)

@QizhouZhang97 QizhouZhang97 force-pushed the dev/compat_ccqe branch 2 times, most recently from baa7fa4 to ded506d Compare May 18, 2026 03:40
@QizhouZhang97 QizhouZhang97 changed the title Check CCQE support in runtime instead of compiling (JIT) Detect CCQE support in runtime instead of compiling May 20, 2026
Comment thread src/application/transport/rdma/providers/ionic/ionic.cpp Outdated
Comment thread include/mori/core/transport/rdma/providers/ionic/ionic_fw.h Outdated
Comment thread include/mori/core/transport/rdma/providers/ionic/ionic_device_primitives.hpp Outdated
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