From patchwork Tue Dec 7 21:24:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jie Zhou X-Patchwork-Id: 105009 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C9D57A00C3; Tue, 7 Dec 2021 22:25:26 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7F59042763; Tue, 7 Dec 2021 22:24:41 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 8D4E741152 for ; Tue, 7 Dec 2021 22:24:28 +0100 (CET) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id CA45E20B717B; Tue, 7 Dec 2021 13:24:27 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CA45E20B717B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1638912267; bh=o41ScpEYZKVq1GzakYq2DAZfj2SJlO1bIqNPQHaPTL8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q648yVugUN0QIG9nxJo8LdxFaahL3ZvOSgp1ViB3QHIav0O+ZOBEYnyXL/h+hPsmy vLg8QtpCxURufRLuwhVEmuc5Bzr6bS6484+GPOOBsFMvzESNMFTun6r/1exxLa918Z Btt7M9x7DlEPYg+/qwPV4aYLL1Ev6LGJ87dGcxgo= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, bruce.richardson@intel.com, roretzla@microsoft.com, navasile@linux.microsoft.com, dmitrym@microsoft.com, pallavi.kadam@intel.com, talshn@nvidia.com, thomas@monjalon.net, aconole@redhat.com Subject: [PATCH v12 02/11] app/test: remove POSIX-specific code Date: Tue, 7 Dec 2021 13:24:14 -0800 Message-Id: <1638912263-7054-3-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638912263-7054-1-git-send-email-jizh@linux.microsoft.com> References: <1638490007-9939-1-git-send-email-jizh@linux.microsoft.com> <1638912263-7054-1-git-send-email-jizh@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org - Replace POSIX-specific code with DPDK equivalents or conditional platform specific code, or conditionally disable it on Windows - Use NUL on Windows as /dev/null for Unix - Exclude tests not supported on Windows yet * multi-process * PMD performance statistics display on signal Signed-off-by: Jie Zhou Signed-off-by: Dmitry Kozlyuk --- app/test/commands.c | 2 -- app/test/packet_burst_generator.c | 1 + app/test/process.h | 4 +++- app/test/test.c | 5 ++++- app/test/test_byteorder.c | 2 +- app/test/test_cmdline_ipaddr.c | 19 +++++++++---------- app/test/test_cmdline_lib.c | 13 +++++++++---- app/test/test_crc.c | 1 - app/test/test_memcpy_perf.c | 28 ++++++++++++++-------------- app/test/test_pmd_perf.c | 6 +++++- app/test/test_ring_stress_impl.h | 2 +- app/test/test_telemetry_data.c | 2 ++ 12 files changed, 49 insertions(+), 36 deletions(-) diff --git a/app/test/commands.c b/app/test/commands.c index 2dced3bc44..887cabad64 100644 --- a/app/test/commands.c +++ b/app/test/commands.c @@ -8,8 +8,6 @@ #include #include #include -#include -#include #include #include #include diff --git a/app/test/packet_burst_generator.c b/app/test/packet_burst_generator.c index 8ac24577ba..6b42b9b83b 100644 --- a/app/test/packet_burst_generator.c +++ b/app/test/packet_burst_generator.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "packet_burst_generator.h" diff --git a/app/test/process.h b/app/test/process.h index 5b10cf64df..1f073b9c5c 100644 --- a/app/test/process.h +++ b/app/test/process.h @@ -7,12 +7,14 @@ #include /* errno */ #include /* PATH_MAX */ +#ifndef RTE_EXEC_ENV_WINDOWS #include /* basename et al */ +#include +#endif #include /* NULL */ #include /* strerror */ #include /* readlink */ #include -#include #include /* strlcpy */ diff --git a/app/test/test.c b/app/test/test.c index 5194131026..e69cae3eea 100644 --- a/app/test/test.c +++ b/app/test/test.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include @@ -63,7 +62,9 @@ do_recursive_call(void) const char *env_var; int (*action_fn)(void); } actions[] = { +#ifndef RTE_EXEC_ENV_WINDOWS { "run_secondary_instances", test_mp_secondary }, +#endif #ifdef RTE_LIB_PDUMP #ifdef RTE_NET_RING { "run_pdump_server_tests", test_pdump }, @@ -82,7 +83,9 @@ do_recursive_call(void) { "test_file_prefix", no_action }, { "test_no_huge_flag", no_action }, #ifdef RTE_LIB_TIMER +#ifndef RTE_EXEC_ENV_WINDOWS { "timer_secondary_spawn_wait", test_timer_secondary }, +#endif #endif }; diff --git a/app/test/test_byteorder.c b/app/test/test_byteorder.c index 03c08d9abf..de14ed539e 100644 --- a/app/test/test_byteorder.c +++ b/app/test/test_byteorder.c @@ -46,7 +46,7 @@ test_byteorder(void) return -1; res_u16 = rte_bswap16(0x1337); - printf("const %"PRIx16" -> %"PRIx16"\n", 0x1337, res_u16); + printf("const %"PRIx16" -> %"PRIx16"\n", (uint16_t)0x1337, res_u16); if (res_u16 != 0x3713) return -1; diff --git a/app/test/test_cmdline_ipaddr.c b/app/test/test_cmdline_ipaddr.c index 2a1ee120fc..278fa3cd79 100644 --- a/app/test/test_cmdline_ipaddr.c +++ b/app/test/test_cmdline_ipaddr.c @@ -1,12 +1,9 @@ /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2014 Intel Corporation */ - #include #include #include -#include -#include #include @@ -15,17 +12,21 @@ #include "test_cmdline.h" -#define IP4(a,b,c,d) {((uint32_t)(((a) & 0xff)) | \ - (((b) & 0xff) << 8) | \ - (((c) & 0xff) << 16) | \ - ((d) & 0xff) << 24)} +#define IP4(a,b,c,d) {.s_addr = (uint32_t)(((a) & 0xff) | \ + (((b) & 0xff) << 8) | \ + (((c) & 0xff) << 16) | \ + ((d) & 0xff) << 24)} #define U16_SWAP(x) \ (((x & 0xFF) << 8) | ((x & 0xFF00) >> 8)) /* create IPv6 address, swapping bytes where needed */ #ifndef s6_addr16 -# define s6_addr16 __u6_addr.__u6_addr16 +#ifdef RTE_EXEC_ENV_WINDOWS +#define s6_addr16 u.Word +#else +#define s6_addr16 __u6_addr.__u6_addr16 +#endif #endif #define IP6(a,b,c,d,e,f,g,h) .ipv6 = \ {.s6_addr16 = \ @@ -166,8 +167,6 @@ const char * ipaddr_garbage_network6_strs[] = { }; #define IPv6_GARBAGE_PREFIX 64 - - const char * ipaddr_invalid_strs[] = { /** IPv4 **/ diff --git a/app/test/test_cmdline_lib.c b/app/test/test_cmdline_lib.c index f50ccdb599..fcd58cb76a 100644 --- a/app/test/test_cmdline_lib.c +++ b/app/test/test_cmdline_lib.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include @@ -22,6 +21,12 @@ #include "test_cmdline.h" +#ifndef RTE_EXEC_ENV_WINDOWS +#define NULL_INPUT "/dev/null" +#else +#define NULL_INPUT "NUL" +#endif + /****************************************************************/ /* static functions required for some tests */ static void @@ -156,10 +161,10 @@ test_cmdline_socket_fns(void) cl = cmdline_stdin_new(&ctx, NULL); if (cl != NULL) goto error; - cl = cmdline_file_new(NULL, "prompt", "/dev/null"); + cl = cmdline_file_new(NULL, "prompt", NULL_INPUT); if (cl != NULL) goto error; - cl = cmdline_file_new(&ctx, NULL, "/dev/null"); + cl = cmdline_file_new(&ctx, NULL, NULL_INPUT); if (cl != NULL) goto error; cl = cmdline_file_new(&ctx, "prompt", NULL); @@ -171,7 +176,7 @@ test_cmdline_socket_fns(void) cmdline_free(cl); return -1; } - cl = cmdline_file_new(&ctx, "prompt", "/dev/null"); + cl = cmdline_file_new(&ctx, "prompt", NULL_INPUT); if (cl == NULL) { printf("Error: failed to open /dev/null for reading!"); return -1; diff --git a/app/test/test_crc.c b/app/test/test_crc.c index bf1d344359..0ed080e482 100644 --- a/app/test/test_crc.c +++ b/app/test/test_crc.c @@ -14,7 +14,6 @@ #define CRC32_VEC_LEN2 348 #define CRC16_VEC_LEN1 12 #define CRC16_VEC_LEN2 2 -#define LINE_LEN 75 /* CRC test vector */ static const uint8_t crc_vec[CRC_VEC_LEN] = { diff --git a/app/test/test_memcpy_perf.c b/app/test/test_memcpy_perf.c index c711e36ba7..0dc88ed39c 100644 --- a/app/test/test_memcpy_perf.c +++ b/app/test/test_memcpy_perf.c @@ -6,10 +6,10 @@ #include #include #include -#include #include #include +#include #include #include @@ -271,7 +271,7 @@ static int perf_test(void) { int ret; - struct timeval tv_begin, tv_end; + struct timespec tv_begin, tv_end; double time_aligned, time_unaligned; double time_aligned_const, time_unaligned_const; @@ -298,32 +298,32 @@ perf_test(void) printf("\n================================= %2dB aligned =================================", ALIGNMENT_UNIT); /* Do aligned tests where size is a variable */ - gettimeofday(&tv_begin, NULL); + timespec_get(&tv_begin, TIME_UTC); perf_test_variable_aligned(); - gettimeofday(&tv_end, NULL); + timespec_get(&tv_end, TIME_UTC); time_aligned = (double)(tv_end.tv_sec - tv_begin.tv_sec) - + ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000; + + ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S; printf("\n------- ----------------- ----------------- ----------------- -----------------"); /* Do aligned tests where size is a compile-time constant */ - gettimeofday(&tv_begin, NULL); + timespec_get(&tv_begin, TIME_UTC); perf_test_constant_aligned(); - gettimeofday(&tv_end, NULL); + timespec_get(&tv_end, TIME_UTC); time_aligned_const = (double)(tv_end.tv_sec - tv_begin.tv_sec) - + ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000; + + ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S; printf("\n================================== Unaligned =================================="); /* Do unaligned tests where size is a variable */ - gettimeofday(&tv_begin, NULL); + timespec_get(&tv_begin, TIME_UTC); perf_test_variable_unaligned(); - gettimeofday(&tv_end, NULL); + timespec_get(&tv_end, TIME_UTC); time_unaligned = (double)(tv_end.tv_sec - tv_begin.tv_sec) - + ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000; + + ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S; printf("\n------- ----------------- ----------------- ----------------- -----------------"); /* Do unaligned tests where size is a compile-time constant */ - gettimeofday(&tv_begin, NULL); + timespec_get(&tv_begin, TIME_UTC); perf_test_constant_unaligned(); - gettimeofday(&tv_end, NULL); + timespec_get(&tv_end, TIME_UTC); time_unaligned_const = (double)(tv_end.tv_sec - tv_begin.tv_sec) - + ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000; + + ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S; printf("\n======= ================= ================= ================= =================\n\n"); printf("Test Execution Time (seconds):\n"); diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index 0aa9dc1b1c..25611bfe9b 100644 --- a/app/test/test_pmd_perf.c +++ b/app/test/test_pmd_perf.c @@ -296,6 +296,7 @@ reset_count(void) idle = 0; } +#ifndef RTE_EXEC_ENV_WINDOWS static void stats_display(uint16_t port_id) { @@ -325,6 +326,7 @@ signal_handler(int signum) if (signum == SIGUSR2) stats_display(0); } +#endif struct rte_mbuf **tx_burst; @@ -638,7 +640,7 @@ exec_burst(uint32_t flags, int lcore) i = (i >= conf->nb_ports - 1) ? 0 : (i + 1); } - sleep(5); + rte_delay_us(5 * US_PER_S); /* only when polling second */ if (flags == SC_BURST_XMIT_FIRST) @@ -669,8 +671,10 @@ test_pmd_perf(void) printf("Start PMD RXTX cycles cost test.\n"); +#ifndef RTE_EXEC_ENV_WINDOWS signal(SIGUSR1, signal_handler); signal(SIGUSR2, signal_handler); +#endif nb_ports = rte_eth_dev_count_avail(); if (nb_ports < NB_ETHPORTS_USED) { diff --git a/app/test/test_ring_stress_impl.h b/app/test/test_ring_stress_impl.h index 2825a9dce6..62f046a91a 100644 --- a/app/test/test_ring_stress_impl.h +++ b/app/test/test_ring_stress_impl.h @@ -360,7 +360,7 @@ test_mt1(int (*test)(void *)) /* signal worker to start test */ __atomic_store_n(&wrk_cmd, WRK_CMD_RUN, __ATOMIC_RELEASE); - usleep(run_time * US_PER_S); + rte_delay_us(run_time * US_PER_S); /* signal worker to start test */ __atomic_store_n(&wrk_cmd, WRK_CMD_STOP, __ATOMIC_RELEASE); diff --git a/app/test/test_telemetry_data.c b/app/test/test_telemetry_data.c index 18b93db8ef..73eee293a1 100644 --- a/app/test/test_telemetry_data.c +++ b/app/test/test_telemetry_data.c @@ -4,7 +4,9 @@ #include #include +#ifndef RTE_EXEC_ENV_WINDOWS #include +#endif #include #include