Skip to content

Commit 94235de

Browse files
lvkaleclaude
andauthored
Bump reconverse to 58921e9 (#217, #222); grow the reconverse CI tier; skip classic-only tests on reconverse (#3974)
* Bump reconverse to 58921e9 (#217, #222); grow the CI tier; skip classic-only tests Reconverse main 58921e9 carries two fixes found by Charm++'s own tests: - #217: CmiWithinNodeBroadcast now follows the classic delivery contract: nokeep messages shared by reference, a zerocopy broadcast receive delivered to the calling PE only, the caller's buffer consumed. Before it, tests/charm++/within_node_bcast aborted at +pe 2 and six of the nine tests/charm++/zerocopy directories segfaulted at +pe 4. - #222: reconverse declares CMK_ONESIDED_IMPL (and CMK_ONESIDED_RO_DISABLE), so zcQdIncrement creates one quiescence count per Direct-API RDMA operation, matching the single acknowledgement of reconverse's RMA path. Before it, zerocopy_with_qd with two processes never reached quiescence after its Direct API test. It also declares CMK_MACHINE_PROGRESS_DEFINED, so CkNetworkProgress() now drives the network instead of compiling to nothing. reconverse-ci's TEST_DIRS gains within_node_bcast and eight zerocopy directories, the tests that caught both bugs; zerocopy/zc_post_modify_size stays out until reconverse #223 (a two-process data mismatch present before and after these fixes) is resolved. tests/charm++/queue and tests/charm++/longIdle are filtered out of TESTDIRS under reconverse (CMK_GDIR=reconverse): queue tests classic's Cqs API, which the reconverse build does not compile, and longIdle needs CcdCallOnConditionOnPE, which reconverse lacks. tests/converse/megacon is likewise skipped: it is written against the Cpm interface; reconverse carries its own port of the bank (tests/megarecon, reconverse PR #218). Verified on macOS arm64 with the equivalent tree (#217 + #222 as the submodule): the whole TEST_DIRS tier passes in one and two processes, zerocopy_with_qd included; nine of nine zerocopy directories pass single process, eight with two processes. An Anvil run (two nodes, InfiniBand, hwloc) is in progress and gates the merge. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * cmake: CMK_USE_CMA is 0 for reconverse builds Charm's feature detection turned CMK_USE_CMA on for every Linux build with process_vm_readv, reconverse included. Reconverse has no CMA transport: its conv-rdma.cpp compiles the CMA paths only under a CMK_USE_CMA it never defines, and it does not parse +noCMAForZC. So a reconverse-linux build compiled dead CMA branches into Charm++, and the zerocopy tests' Makefiles, which run their +noCMAForZC variants when CMK_USE_CMA is 1, handed the flag to programs that do not consume it: "Usage: ./zerocopy_with_qd <array size>" on Linux CI, while the same tier passes on macOS where CMK_HAS_CMA is 0. Found by the first Linux run of the widened reconverse-ci tier. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * reconverse-ci: drop zerocopy/large_p2p from the tier (2 GiB transfer, not for hosted runners) Its own zerocopy/Makefile keeps it out of the test target for the same reason; the first Linux run of the widened tier hit a failed assert in it on both x86_64 (two processes) and arm64 (one process) while every other directory passed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
1 parent 310d470 commit 94235de

5 files changed

Lines changed: 42 additions & 3 deletions

File tree

.github/workflows/reconverse-ci.yaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,26 @@ env:
3838

3939
# Curated test tier. Grows one reviewed PR at a time; every tests/ dir NOT
4040
# listed here is by definition unsupported-on-reconverse until added (the
41-
# parity matrix mirrors this list).
41+
# parity matrix mirrors this list). within_node_bcast and the zerocopy
42+
# dirs entered with the reconverse bump to 58921e9 (reconverse #217, #222):
43+
# they are the tests that caught both bugs. zerocopy/zc_post_modify_size
44+
# stays out until reconverse #223 (2-process data mismatch) is fixed, and
45+
# zerocopy/large_p2p (a 2 GiB transfer, kept out of zerocopy/Makefile's own
46+
# test target as well) does not fit a hosted runner.
4247
TEST_DIRS: >-
4348
tests/charm++/megatest
4449
tests/charm++/simplearrayhello
4550
tests/charm++/anytime_migration
4651
tests/charm++/anytime_bcastred
4752
tests/charm++/qd
53+
tests/charm++/within_node_bcast
54+
tests/charm++/zerocopy/zerocopy_with_qd
55+
tests/charm++/zerocopy/direct_api
56+
tests/charm++/zerocopy/large_bcast
57+
tests/charm++/zerocopy/bcast_nonzero_root
58+
tests/charm++/zerocopy/dereg_and_nodereg
59+
tests/charm++/zerocopy/zc_post_async
60+
tests/charm++/zerocopy/pup_buffer
4861
4962
jobs:
5063

cmake/detect-features.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ set(CMK_USE_CMA ${CMK_HAS_CMA})
3737
if(NETWORK STREQUAL "multicore")
3838
set(CMK_USE_CMA 0)
3939
endif()
40+
# Reconverse has no CMA transport: its conv-rdma.cpp compiles the CMA paths
41+
# only under a CMK_USE_CMA it never defines, and it does not parse
42+
# +noCMAForZC. Leaving CMK_USE_CMA on for a reconverse build compiles dead
43+
# CMA branches into Charm++ and makes the zerocopy tests' +noCMAForZC runs
44+
# (guarded by CMK_USE_CMA in their Makefiles) abort with a usage error.
45+
if(RECONVERSE)
46+
set(CMK_USE_CMA 0)
47+
endif()
4048
4149
4250
# Misc. linker flags (mostly for Charm4py)

tests/charm++/Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,18 @@ FTDIRS = \
4141
jacobi3d \
4242
jacobi3d-sdag \
4343

44-
TESTDIRS = $(filter-out $(FTDIRS),$(DIRS))
44+
# Not applicable on reconverse: queue tests classic's Cqs API, which the
45+
# reconverse build does not compile (reconverse has its own queue and its own
46+
# test for it); longIdle needs CcdCallOnConditionOnPE, which reconverse does
47+
# not provide.
48+
ifeq ($(CMK_GDIR),reconverse)
49+
RECONVERSE_NA = \
50+
queue \
51+
longIdle \
52+
53+
endif
54+
55+
TESTDIRS = $(filter-out $(FTDIRS) $(RECONVERSE_NA),$(DIRS))
4556

4657
NONSCALEDIRS = \
4758
alignment \

tests/converse/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
DIRS = \
44
megacon \
55

6+
# megacon is written against the Cpm interface and other classic-only
7+
# Converse APIs that reconverse does not provide; reconverse carries its own
8+
# port of the bank (tests/megarecon in the reconverse repository).
9+
ifeq ($(CMK_GDIR),reconverse)
10+
DIRS =
11+
endif
12+
613
TESTDIRS = $(DIRS)
714

815
all: $(foreach i,$(DIRS),build-$i)

0 commit comments

Comments
 (0)