Commit 69edd1c4 authored by Eisenhauer, Greg's avatar Eisenhauer, Greg Committed by Bolea Sanchez, Vicente Adolfo
Browse files

Evpath transport modules off (#4989)

* atl 2026-04-08 (cdcc01c0)

Code extracted from:

    https://github.com/GTkorvo/atl.git

at commit cdcc01c0de8e78dc7faad70023382663fbe5d8c7 (master).

Upstream Shortlog
-----------------

Greg Eisenhauer (2):
      a1e254af Remove redundant atom_t typedef, bump to 2.3.1
      374ae20d Skip server contact during atom preload, add HTTP connect timeout

* EVPath 2026-04-08 (bb50a1ca)

Code extracted from:

    https://github.com/GTkorvo/EVPath.git



at commit bb50a1caea84b95d2d305ec1a9dde6b686d649f4 (master).

Upstream Shortlog
-----------------

Greg Eisenhauer (3):
      06ca5d9e Replace _FOUND with EVPATH_HAS_* for transport build-decision defines
      bdd37cc9 Bump version to 5.1.0
      5697d44a Remove unused static functions in cm_pbio.c

* Build-in EVPath transport modules

---------

Co-authored-by: default avataratl Upstream <robot@adios2>
parent 28684ccf
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -6,8 +6,8 @@ set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_CMAKEDIR}/thirdparty")
set(EVPATH_LIBRARY_PREFIX adios2${ADIOS2_LIBRARY_SUFFIX}_ CACHE INTERNAL "")
set(EVPATH_QUIET ON CACHE INTERNAL "")
set(EVPATH_INSTALL_HEADERS OFF CACHE INTERNAL "")
set(EVPATH_INSTALL_MODULE_DIR "${CMAKE_INSTALL_LIBDIR}/adios2-evpath-modules-${ADIOS2_VERSION_MAJOR}_${ADIOS2_VERSION_MINOR}" CACHE INTERNAL "")
set(EVPATH_INSTALL_PKGCONFIG OFF CACHE INTERNAL "")
set(EVPATH_TRANSPORT_MODULES OFF CACHE INTERNAL "")
set(EVPATH_NO_RDMA ON CACHE INTERNAL "")
set(EVPATH_USE_UDT4 OFF CACHE INTERNAL "")
set(EVPATH_USE_NVML OFF CACHE INTERNAL "")
@@ -17,12 +17,6 @@ set(EVPATH_LIBRARY_COMPONENT adios2_evpath-libraries)
set(EVPATH_ARCHIVE_COMPONENT adios2_evpath-development)
set(EVPATH_HEADER_COMPONENT adios2_evpath-development)

if (ADIOS2_USE_PIP)
  # If these are not correct for python packaging, auditwheel will fail
  string(REGEX REPLACE "[^/]+" ".." relative_base "${EVPATH_INSTALL_MODULE_DIR}")
  list(APPEND CMAKE_INSTALL_RPATH "$ORIGIN/${relative_base}/${CMAKE_INSTALL_LIBDIR}")
endif ()

add_subdirectory(EVPath)
set(EVPath_DIR ${CMAKE_CURRENT_BINARY_DIR}/EVPath CACHE INTERNAL "")
setup_libversion_dir(EVPath)
+8 −4
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.14)
# GTKorvo
set(CMAKE_DIRECTORY_LABELS EVPath)

project(EVPath VERSION 5.0.1 LANGUAGES C CXX)
project(EVPath VERSION 5.1.0 LANGUAGES C CXX)

# Some boilerplate to setup nice output directories
include(GNUInstallDirs)
@@ -363,6 +363,7 @@ else()
  option(EVPATH_USE_ENET "Build the enet transport" ${ENET_FOUND})
endif()
if(ENET_FOUND)
  set(EVPATH_HAS_ENET TRUE)
  set(RUN_ENET_TESTS TRUE)
  if(EVPATH_TRANSPORT_MODULES)
    add_library(cmenet MODULE cmenet.c ip_config.c)
@@ -392,8 +393,8 @@ if(NOT (DEFINED EVPATH_USE_ZPL_ENET))
  option(EVPATH_USE_ZPL_ENET "Build the zplenet transport" "OFF")
endif()
if(EVPATH_USE_ZPL_ENET)
  set(EVPATH_HAS_ZPL_ENET TRUE)
  set(RUN_ZPL_ENET_TESTS TRUE)
  set(ZPL_ENET_AVAILABLE TRUE)
  CONFIGURE_FILE(cmenet.c cmzplenet.c COPYONLY)
  SET_SOURCE_FILES_PROPERTIES(cmzplenet.c PROPERTIES COMPILE_FLAGS "-DUSE_ZPL_ENET=1 -DENET_API=static")
  if(EVPATH_TRANSPORT_MODULES)
@@ -429,6 +430,7 @@ else()
  endif()
endif()
if(UDT4_FOUND)
  set(EVPATH_HAS_UDT4 TRUE)
  set(RUN_UDT4_TESTS FALSE)   # DON'T TEST.  UDT4 NOT USEFUL
  if(EVPATH_TRANSPORT_MODULES)
    add_library(cmudt4 MODULE cmudt4.cpp ip_config.c)
@@ -461,6 +463,7 @@ else()
    ${LIBFABRIC_FOUND})
endif()
if(LIBFABRIC_FOUND AND NOT EVPATH_NO_RDMA)
  set(EVPATH_HAS_LIBFABRIC TRUE)
  if(EVPATH_TRANSPORT_MODULES)
    add_library(cmfabric MODULE cmfabric.c ip_config.c)
    set_target_properties(cmfabric PROPERTIES
@@ -538,7 +541,7 @@ if(IBVERBS_FOUND AND NOT EVPATH_NO_RDMA)
    target_link_libraries(EVPath PRIVATE ${IBVERBS_LIBRARIES})
    list(APPEND _pkg_config_private_libs ${IBVERBS_LIBRARIES})
  endif()
  set(IB_FOUND 1)
  set(EVPATH_HAS_IB TRUE)
endif()

if(NOT (DEFINED CercsArch))
@@ -562,6 +565,7 @@ if(IBVERBS_FOUND)
    option(EVPATH_USE_NNTI "Build the nnti transport" ${NNTI_FOUND})
  endif()
  if(NNTI_FOUND AND NOT EVPATH_NO_RDMA)
    set(EVPATH_HAS_NNTI TRUE)
    if(CercsArch STREQUAL "ppc64")
      set(RUN_NNTI_TESTS FALSE)
    endif()
+0 −81
Original line number Diff line number Diff line
@@ -73,61 +73,9 @@ inet_ntoa(struct in_addr ina)
 * "CMExternalFormats".
 */

static int
CMpbio_send_format_request(char *format_ID, int format_ID_length,
			   CMConnection conn, int cond);
extern int CM_pbio_query(CMConnection conn, CMTransport trans,
			 char *buffer, size_t length);

static int
request_in_pending(CManager cm, void *format_ID, int format_id_length)
{
    int i;
    for (i=0; i<cm->pending_request_max; i++) {
	if ((cm->pbio_requests[i].server_id != NULL) &&
	    (format_id_length = cm->pbio_requests[i].id_length) &&
	    (memcmp(cm->pbio_requests[i].server_id, format_ID,
		    format_id_length) == 0))
	    return i;
    }
    return -1;
}

static void
add_request_to_pending(CManager cm, void *format_ID, int format_id_length,
		       int cond)
{
    int i;
    /* tag any duplicates as no longer the most recent request */
    for (i=0; i<cm->pending_request_max; i++) {
	if ((cm->pbio_requests[i].server_id != NULL) &&
	    (format_id_length = cm->pbio_requests[i].id_length) &&
	    (memcmp(cm->pbio_requests[i].server_id, format_ID,
		    format_id_length) == 0)) {
	    cm->pbio_requests[i].top_request = 0;
	}
    }
    /* find an insertion spot */
    for (i=0; i<cm->pending_request_max; i++) {
	if (cm->pbio_requests[i].server_id == NULL) {
	    cm->pbio_requests[i].server_id = format_ID;
	    cm->pbio_requests[i].id_length = format_id_length;
	    cm->pbio_requests[i].condition = cond;
	    cm->pbio_requests[i].top_request = 1;
	    return;
	}
    }
    cm->pbio_requests = realloc(cm->pbio_requests, 
				(cm->pending_request_max + 1) * 
				sizeof(struct _pending_format_requests));
    i = cm->pending_request_max++;
    cm->pbio_requests[i].server_id = format_ID;
    cm->pbio_requests[i].id_length = format_id_length;
    cm->pbio_requests[i].condition = cond;
    cm->pbio_requests[i].top_request = 1;
    return;
}

/*
 *  This is a bit tricky as we might have multiple pending format requests
 *  at a time, even for the same format_ID.  When this happens it's possible
@@ -201,35 +149,6 @@ struct pbio_exchange_msg {

extern struct CMtrans_services_s CMstatic_trans_svcs;

static int
CMpbio_send_format_request(char *format_ID, int format_ID_length,
			   CMConnection conn, int cond)
{
    struct pbio_exchange_msg msg;
    struct FFSEncodeVec vec[2];
    int actual;

    msg.magic = MAGIC;
    msg.msg_len = sizeof(msg) - 8 + format_ID_length;
    msg.msg_type = PBIO_QUERY;
    msg.payload1_length = format_ID_length;
    msg.payload2_length = 0;
    msg.cond = cond;
    vec[0].iov_base = &msg;
    vec[0].iov_len = sizeof(msg);
    vec[1].iov_base = format_ID;
    vec[1].iov_len = format_ID_length;
    CMtrace_out(conn->cm, CMLowLevelVerbose, "CMpbio send format request - total %d bytes in writev\n", (int)(format_ID_length + sizeof(msg)));
    actual = conn->trans->writev_func(&CMstatic_trans_svcs, 
				      conn->transport_data, 
				      &vec[0], 2, NULL);
    if (actual != 2) {
	internal_connection_close(conn);
	return 0;
    }
    return 1;
}

static int
CMpbio_send_format_response(FMFormat ioformat, CMConnection conn, 
			    int cond)
+6 −6
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
							 * pointer */
	(void) add_transport_to_cm(cm, transport);
    }
#ifdef NNTI_FOUND
#ifdef EVPATH_HAS_NNTI
    if (strcmp(trans_name, "nnti") == 0) {
	extern transport_entry cmnnti_add_static_transport(CManager cm,
							   CMtrans_services
@@ -231,7 +231,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
	(void) add_transport_to_cm(cm, transport);
    }
#endif
#ifdef LIBFABRIC_FOUND
#ifdef EVPATH_HAS_LIBFABRIC
    if (strcmp(trans_name, "fabric") == 0) {
	extern transport_entry cmfabric_add_static_transport(CManager cm,
							     CMtrans_services
@@ -245,7 +245,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
	(void) add_transport_to_cm(cm, transport);
    }
#endif
#ifdef IB_FOUND
#ifdef EVPATH_HAS_IB
    if (strcmp(trans_name, "ib") == 0) {
	extern transport_entry cmib_add_static_transport(CManager cm,
							 CMtrans_services
@@ -258,7 +258,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
	(void) add_transport_to_cm(cm, transport);
    }
#endif
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    if (strcmp(trans_name, "enet") == 0) {
	extern transport_entry cmenet_add_static_transport(CManager cm,
							   CMtrans_services
@@ -271,7 +271,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
	(void) add_transport_to_cm(cm, transport);
    }
#endif
#ifdef ZPL_ENET_AVAILABLE
#ifdef EVPATH_HAS_ZPL_ENET
    if (strcmp(trans_name, "zplenet") == 0) {
	extern transport_entry cmzplenet_add_static_transport(CManager cm,
							   CMtrans_services
@@ -284,7 +284,7 @@ load_transport(CManager cm, const char *trans_name, int quiet)
	(void) add_transport_to_cm(cm, transport);
    }
#endif
#ifdef UDT4_FOUND
#ifdef EVPATH_HAS_UDT4
    if (strcmp(trans_name, "udt4") == 0) {
	extern transport_entry cmudt4_add_static_transport(CManager cm,
							   CMtrans_services
+13 −13
Original line number Diff line number Diff line
/***** Includes *****/
#include "config.h"
#include <sys/types.h>
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
#include <enet/enet.h>
#endif

@@ -118,7 +118,7 @@ typedef struct nnti_transport_data {
    int request_size;
    struct nnti_connection_data **request_list;

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    /* enet support */
    ENetHost *enet_server;
#endif
@@ -163,7 +163,7 @@ typedef struct nnti_connection_data {
    int remote_IP;
    int remote_contact_port;
    int use_enet;
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    ENetPeer *peer;
    ENetPacket *packet;
#endif
@@ -184,7 +184,7 @@ typedef enum {enet, nnti} control_transport;
typedef struct _send_handle {
    control_transport t;
    int size;
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    ENetPacket *packet;
#endif
    nnti_conn_data_ptr ncd;
@@ -221,7 +221,7 @@ get_control_message_buffer(nnti_conn_data_ptr ncd, struct client_message **mp,
    memset(&ret, 0, sizeof(ret));
    if (ncd->use_enet) {
	ret.t = enet;
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
	/* Create a reliable packet of the right size */
	ret.packet = enet_packet_create (NULL, size,
					 ENET_PACKET_FLAG_RELIABLE);
@@ -244,7 +244,7 @@ send_control_message(send_handle h)
    CManager cm = h.ncd->ntd->cm;
    CMtrans_services svc = h.ncd->ntd->svc;
    if (h.t == enet) {
#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
        svc->trace_out(cm, "CMNNTI/ENET control write of %d bytes on peer %p",
		       h.size, h.ncd->peer);
	/* Send the packet to the peer over channel id 0. */
@@ -300,7 +300,7 @@ send_control_message(send_handle h)
    return 1;
}

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
extern void
enet_non_blocking_listen(CManager cm, CMtrans_services svc,
			 transport_entry trans, attr_list listen_info);
@@ -417,7 +417,7 @@ attr_list conn_attr_list;
        libcmnnti_LTX_non_blocking_listen(cm, svc, trans, NULL);
    }

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    if (ntd->enet_server == NULL) {
	enet_non_blocking_listen(cm, svc, trans, NULL);
    }
@@ -490,7 +490,7 @@ attr_list conn_attr_list;
    return 1;
}

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
static void nnti_enet_service_network(CManager cm, void *void_trans);

extern void
@@ -604,7 +604,7 @@ initiate_enet_link(CManager cm, CMtrans_services svc, transport_entry trans,
}
#endif

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
static int
initiate_enet_conn(CManager cm, CMtrans_services svc, transport_entry trans,
	      attr_list attrs, nnti_conn_data_ptr nnti_conn_data,
@@ -666,7 +666,7 @@ attr_list attrs;
    /* this size might be overridden */
    nnti_conn_data->piggyback_size_max = NNTI_REQUEST_BUFFER_SIZE;

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
    int enet_conn_status;
    sleep(1);

@@ -1057,7 +1057,7 @@ listen_thread_func(void *vlsp)
    }
}

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
static void *
enet_accept_conn(nnti_transport_data_ptr ntd, transport_entry trans, 
		 ENetAddress *address);
@@ -1179,7 +1179,7 @@ handle_control_request(nnti_conn_data_ptr ncd, CMtrans_services svc, transport_e

}

#ifdef ENET_FOUND
#ifdef EVPATH_HAS_ENET
/* 
 * Accept enet connection
 */
Loading