From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DCB78A0524; Tue, 13 Apr 2021 19:19:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BDE2B1611EE; Tue, 13 Apr 2021 19:19:30 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id D32C21611E2 for ; Tue, 13 Apr 2021 19:19:28 +0200 (CEST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 1CAB320B8001; Tue, 13 Apr 2021 10:19:28 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1CAB320B8001 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1618334368; bh=nMeenY5P/WavqFqx/UvLQQHHU/VxoVAFhA2wiEO4mxA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h2X+nZkAJTiJzANEcVD3g867e95wkX+U4KFB56GTgnc5wWnKN++UbsBkCnGBCw509 1Kk3Q7XcOQGR8SOdFUh7a7fRLUjlKlWmKsHfhaXKw+z5Ai1kply4/OnpyhQWKMW17P WXTdlwckr8KMbUh9iy+4wKO+MlZYP+iCcfURix6I= From: Jie Zhou To: dev@dpdk.org Cc: dmitry.kozliuk@gmail.com, xiaoyun.li@intel.com, roretzla@microsoft.com, pallavi.kadam@intel.com, thomas@monjalon.net, bruce.richardson@intel.com, ferruh.yigit@intel.com Date: Tue, 13 Apr 2021 10:19:17 -0700 Message-Id: <1618334363-15147-1-git-send-email-jizh@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1616172695-28505-1-git-send-email-jizh@linux.microsoft.com> References: <1616172695-28505-1-git-send-email-jizh@linux.microsoft.com> Subject: [dpdk-dev] [PATCH v3 0/6] app/testpmd: enable testpmd on Windows 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 Sender: "dev" This patch is to enable testpmd on windows. It mainly includes: - Enable building libraries on Windows that TestPMD depends on - Enable building testpmd on Windows - Resolve name collisions with Windows types - Add clock_gettime_monotic for testpmd on Windows - Make printf format work for both Linux and Windows - Add missing macros - Add missing IPPROTO_RAW to in.h - Replace htons with RTE_BE16 - Replace inet_aton with inet_pton - Fix parse_fec_mode to return fec_capa to remove compilation warning - ... Issue under active investigation: - Recent DPDK upstream change "eal: detach memsegs on cleanup" exposed failure at eal exit with "EAL: Could not unmap memory: No Error". Investigating KERNELBASE!UnmapViewOfFile. The issue will cause system crash. Currently temporarily remove cleanup at exit on Windows. Will revert after issue root caused and fixed Future work: - Some issues discovered at validation need further investigations * Perf inconsistency: TPUT fluctuated significantly from runs * After traffic stop, port stats shows pps being 0 while bps not * mempool allocation only succeed with native. Other methods failed at rte_mem_lock/VirtualLock. - Hot-plug on Windows not supported yet --- V3 changes: - Split one patch into patchset - Replace mman APIs with rte_mem_xxx APIs - Use OS independant rte_rand - Add device event stubs for Windows - Disable unsupported Apps --- V2 changes: - Fix commit message log long line issue - Fix coding style issues of pointer location - Fix indentation issue - Fix FreeBSD2101 compilation issue of AF_INET undeclared --- Jie Zhou (6): app/testpmd: build libraries that testpmd depends on app/testpmd: define IPPROTO_RAW in in.h app/testpmd: add required Macros app/testpmd: add device event stubs on Windows app/testpmd: add rte_mem_lockall in librte_eal app/testpmd: enable testpmd on Windows app/meson.build | 10 +- app/pdump/meson.build | 6 + app/proc-info/meson.build | 6 + app/test-acl/meson.build | 6 + app/test-bbdev/meson.build | 6 + app/test-cmdline/meson.build | 6 + app/test-compress-perf/meson.build | 6 + app/test-crypto-perf/meson.build | 6 + app/test-eventdev/meson.build | 6 + app/test-fib/meson.build | 6 + app/test-flow-perf/meson.build | 6 + app/test-pipeline/meson.build | 6 + app/test-pmd/cmdline.c | 12 +- app/test-pmd/cmdline_flow.c | 440 ++++++++++---------- app/test-pmd/config.c | 35 +- app/test-pmd/csumonly.c | 2 +- app/test-pmd/icmpecho.c | 4 +- app/test-pmd/ieee1588fwd.c | 10 +- app/test-pmd/meson.build | 4 + app/test-pmd/parameters.c | 8 +- app/test-pmd/testpmd.c | 44 +- app/test-pmd/testpmd.h | 4 +- app/test-regex/meson.build | 6 + app/test-sad/meson.build | 6 + app/test/meson.build | 6 + lib/librte_eal/include/rte_eal_paging.h | 20 + lib/librte_eal/unix/eal_unix_memory.c | 13 + lib/librte_eal/version.map | 1 + lib/librte_eal/windows/eal_dev.c | 35 ++ lib/librte_eal/windows/eal_memory.c | 10 + lib/librte_eal/windows/include/netinet/in.h | 1 + lib/librte_eal/windows/include/rte_os.h | 16 + lib/librte_eal/windows/meson.build | 1 + lib/meson.build | 7 + 34 files changed, 500 insertions(+), 261 deletions(-) create mode 100644 lib/librte_eal/windows/eal_dev.c -- 2.30.0.vfs.0.2