From 4359acc285f70e1584fd22dc64f9810e1ef87cb5 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Thu, 10 Aug 2023 15:55:28 +0200 Subject: [PATCH 1/2] [NativeAOT] Use TCP transport for EventPipe on mobile platforms --- .../nativeaot/Runtime/eventpipe/CMakeLists.txt | 6 ++++++ src/mono/mono/eventpipe/eventpipe.cmake | 16 ---------------- src/native/eventpipe/ds-ipc-pal-socket.c | 8 +++++--- src/native/eventpipe/eventpipe.cmake | 16 ++++++++++++++++ 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt b/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt index ab6f781c1afbd6..ffa3d304eb9938 100644 --- a/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt +++ b/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt @@ -14,6 +14,12 @@ set (EVENTPIPE_SOURCES "") set (EVENTPIPE_HEADERS "") set (GEN_EVENTPIPE_SOURCES "") +# Use TCP for EventPipe on mobile platforms +if (CLR_CMAKE_HOST_IOS OR CLR_CMAKE_HOST_TVOS OR CLR_CMAKE_HOST_ANDROID) + set(FEATURE_PERFTRACING_PAL_TCP 1) + set(DFEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT 1) +endif() + set (SHARED_CONTAINERS_SOURCE_PATH "${CLR_SRC_NATIVE_DIR}/containers") set (SHARED_EVENTPIPE_SOURCE_PATH "${CLR_SRC_NATIVE_DIR}/eventpipe") set (SHARED_MINIPAL_SOURCE_PATH "${CLR_SRC_NATIVE_DIR}/minipal") diff --git a/src/mono/mono/eventpipe/eventpipe.cmake b/src/mono/mono/eventpipe/eventpipe.cmake index 0fc46a01fd2156..6f3c0bf16cd374 100644 --- a/src/mono/mono/eventpipe/eventpipe.cmake +++ b/src/mono/mono/eventpipe/eventpipe.cmake @@ -6,22 +6,6 @@ include(${SHARED_EVENTPIPE_SOURCE_PATH}configure.cmake) if(ENABLE_PERFTRACING) - if (FEATURE_PERFTRACING_PAL_TCP) - add_definitions(-DENABLE_PERFTRACING_PAL_TCP) - endif (FEATURE_PERFTRACING_PAL_TCP) - - if (FEATURE_PERFTRACING_DISABLE_PERFTRACING_LISTEN_PORTS) - add_definitions(-DDISABLE_PERFTRACING_LISTEN_PORTS) - endif (FEATURE_PERFTRACING_DISABLE_PERFTRACING_LISTEN_PORTS) - - if (FEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT) - add_definitions(-DDISABLE_PERFTRACING_DEFAULT_LISTEN_PORT) - endif (FEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT) - - if (FEATURE_PERFTRACING_DISABLE_CONNECT_PORTS) - add_definitions(-DDISABLE_PERFTRACING_CONNECT_PORTS) - endif (FEATURE_PERFTRACING_DISABLE_CONNECT_PORTS) - if (TARGET_S390X) add_definitions(-DBIGENDIAN) endif (TARGET_S390X) diff --git a/src/native/eventpipe/ds-ipc-pal-socket.c b/src/native/eventpipe/ds-ipc-pal-socket.c index ca7b8280cb1571..d93233c506b787 100644 --- a/src/native/eventpipe/ds-ipc-pal-socket.c +++ b/src/native/eventpipe/ds-ipc-pal-socket.c @@ -844,12 +844,15 @@ ipc_alloc_tcp_address ( ds_ipc_addrinfo_t *info = NULL; ep_char8_t *address = NULL; int32_t port = 0; + int result_getaddrinfo = -1; + const ep_char8_t *host_address = NULL; + const ep_char8_t *host_port = NULL; address = ep_rt_utf8_string_dup (ipc_name); ep_raise_error_if_nok (address != NULL); - const ep_char8_t *host_address = address; - const ep_char8_t *host_port = strrchr (address, ':'); + host_address = address; + host_port = strrchr (address, ':'); if (host_port && host_port != host_address) { size_t host_address_len = host_port - address; @@ -863,7 +866,6 @@ ipc_alloc_tcp_address ( hints.ai_socktype = SOCK_STREAM; hints.ai_flags = (mode == DS_IPC_CONNECTION_MODE_LISTEN) ? AI_PASSIVE : 0; - int result_getaddrinfo = -1; DS_ENTER_BLOCKING_PAL_SECTION; if (mode == DS_IPC_CONNECTION_MODE_LISTEN && *host_address == '*') { #ifdef DS_IPC_PAL_AF_INET6 diff --git a/src/native/eventpipe/eventpipe.cmake b/src/native/eventpipe/eventpipe.cmake index c320b615fc410e..fa54d8ce3e7240 100644 --- a/src/native/eventpipe/eventpipe.cmake +++ b/src/native/eventpipe/eventpipe.cmake @@ -4,6 +4,22 @@ if(ENABLE_PERFTRACING OR FEATURE_PERFTRACING) set (SHARED_DIAGNOSTIC_SERVER_SOURCES "") set (SHARED_DIAGNOSTIC_SERVER_HEADERS "") + if (FEATURE_PERFTRACING_PAL_TCP) + add_definitions(-DENABLE_PERFTRACING_PAL_TCP) + endif (FEATURE_PERFTRACING_PAL_TCP) + + if (FEATURE_PERFTRACING_DISABLE_PERFTRACING_LISTEN_PORTS) + add_definitions(-DDISABLE_PERFTRACING_LISTEN_PORTS) + endif (FEATURE_PERFTRACING_DISABLE_PERFTRACING_LISTEN_PORTS) + + if (FEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT) + add_definitions(-DDISABLE_PERFTRACING_DEFAULT_LISTEN_PORT) + endif (FEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT) + + if (FEATURE_PERFTRACING_DISABLE_CONNECT_PORTS) + add_definitions(-DDISABLE_PERFTRACING_CONNECT_PORTS) + endif (FEATURE_PERFTRACING_DISABLE_CONNECT_PORTS) + list(APPEND SHARED_EVENTPIPE_SOURCES ep-sources.c ep.c From 5f49b72f219c8f1d405d8ba6aecc3855f5a85663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 14 Aug 2023 15:52:21 +0200 Subject: [PATCH 2/2] Update src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt --- src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt b/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt index ffa3d304eb9938..cedb910ac093ea 100644 --- a/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt +++ b/src/coreclr/nativeaot/Runtime/eventpipe/CMakeLists.txt @@ -17,7 +17,7 @@ set (GEN_EVENTPIPE_SOURCES "") # Use TCP for EventPipe on mobile platforms if (CLR_CMAKE_HOST_IOS OR CLR_CMAKE_HOST_TVOS OR CLR_CMAKE_HOST_ANDROID) set(FEATURE_PERFTRACING_PAL_TCP 1) - set(DFEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT 1) + set(FEATURE_PERFTRACING_DISABLE_DEFAULT_LISTEN_PORT 1) endif() set (SHARED_CONTAINERS_SOURCE_PATH "${CLR_SRC_NATIVE_DIR}/containers")