From patchwork Mon Jul 6 11:32:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fady Bader X-Patchwork-Id: 73236 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5ADF1A00C5; Mon, 6 Jul 2020 13:33:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1C2871D97D; Mon, 6 Jul 2020 13:33:02 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 981B81BEE6 for ; Mon, 6 Jul 2020 13:33:00 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from fady@mellanox.com) with SMTP; 6 Jul 2020 14:32:59 +0300 Received: from l-wincomp04-vm.labs.mlnx (l-wincomp04-vm.mtl.labs.mlnx [10.237.1.5]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 066BWx9L006827; Mon, 6 Jul 2020 14:32:59 +0300 From: Fady Bader To: dev@dpdk.org Cc: thomas@monjalon.net, tbashar@mellanox.com, talshn@mellanox.com, yohadt@mellanox.com, dmitry.kozliuk@gmail.com, harini.ramakrishnan@microsoft.com, ocardona@microsoft.com, pallavi.kadam@intel.com, ranjit.menon@intel.com, olivier.matz@6wind.com, arybchenko@solarflare.com, mdr@ashroe.eu, nhorman@tuxdriver.com Date: Mon, 6 Jul 2020 14:32:39 +0300 Message-Id: <20200706113241.28748-2-fady@mellanox.com> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20200706113241.28748-1-fady@mellanox.com> References: <20200705134746.26240-1-fady@mellanox.com> <20200706113241.28748-1-fady@mellanox.com> Subject: [dpdk-dev] [PATCH v7 1/3] eal: disable function versioning on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Function versioning implementation is not supported by Windows. Function versioning is disabled on Windows. Signed-off-by: Fady Bader Acked-by: Bruce Richardson --- doc/guides/windows_gsg/intro.rst | 4 ++++ lib/meson.build | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/guides/windows_gsg/intro.rst b/doc/guides/windows_gsg/intro.rst index a0285732df..58c6246404 100644 --- a/doc/guides/windows_gsg/intro.rst +++ b/doc/guides/windows_gsg/intro.rst @@ -18,3 +18,7 @@ DPDK for Windows is currently a work in progress. Not all DPDK source files compile. Support is being added in pieces so as to limit the overall scope of any individual patch series. The goal is to be able to run any DPDK application natively on Windows. + +The :doc:`../contributing/abi_policy` cannot be respected for Windows. +Minor ABI versions may be incompatible +because function versioning is not supported on Windows. diff --git a/lib/meson.build b/lib/meson.build index c1b9e1633f..dadf151f78 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -107,6 +107,10 @@ foreach l:libraries shared_dep = declare_dependency(include_directories: includes) static_dep = shared_dep else + if is_windows and use_function_versioning + message('@0@: Function versioning is not supported by Windows.' + .format(name)) + endif if use_function_versioning cflags += '-DRTE_USE_FUNCTION_VERSIONING' @@ -138,7 +142,7 @@ foreach l:libraries include_directories: includes, dependencies: static_deps) - if not use_function_versioning + if not use_function_versioning or is_windows # use pre-build objects to build shared lib sources = [] objs += static_lib.extract_all_objects(recursive: false) From patchwork Mon Jul 6 11:32:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fady Bader X-Patchwork-Id: 73238 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 96355A00C5; Mon, 6 Jul 2020 13:33:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 31E241DA96; Mon, 6 Jul 2020 13:33:07 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 54F4D1DA7E for ; Mon, 6 Jul 2020 13:33:05 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from fady@mellanox.com) with SMTP; 6 Jul 2020 14:32:59 +0300 Received: from l-wincomp04-vm.labs.mlnx (l-wincomp04-vm.mtl.labs.mlnx [10.237.1.5]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 066BWx9M006827; Mon, 6 Jul 2020 14:32:59 +0300 From: Fady Bader To: dev@dpdk.org Cc: thomas@monjalon.net, tbashar@mellanox.com, talshn@mellanox.com, yohadt@mellanox.com, dmitry.kozliuk@gmail.com, harini.ramakrishnan@microsoft.com, ocardona@microsoft.com, pallavi.kadam@intel.com, ranjit.menon@intel.com, olivier.matz@6wind.com, arybchenko@solarflare.com, mdr@ashroe.eu, nhorman@tuxdriver.com Date: Mon, 6 Jul 2020 14:32:40 +0300 Message-Id: <20200706113241.28748-3-fady@mellanox.com> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20200706113241.28748-1-fady@mellanox.com> References: <20200705134746.26240-1-fady@mellanox.com> <20200706113241.28748-1-fady@mellanox.com> Subject: [dpdk-dev] [PATCH v7 2/3] mempool: use generic memory management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Using generic memory management calls instead of Unix memory management calls for mempool. Signed-off-by: Fady Bader Acked-by: Olivier Matz Acked-by: Andrew Rybchenko Reviewed-by: Dmitry Kozlyuk --- lib/librte_mempool/rte_mempool.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 0bde995b52..a2bd24984b 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include @@ -32,6 +31,8 @@ #include #include #include +#include + #include "rte_mempool.h" #include "rte_mempool_trace.h" @@ -148,7 +149,7 @@ get_min_page_size(int socket_id) rte_memseg_list_walk(find_min_pagesz, &wa); - return wa.min == SIZE_MAX ? (size_t) getpagesize() : wa.min; + return wa.min == SIZE_MAX ? (size_t) rte_mem_page_size() : wa.min; } @@ -526,7 +527,7 @@ rte_mempool_get_page_size(struct rte_mempool *mp, size_t *pg_sz) else if (rte_eal_has_hugepages() || alloc_in_ext_mem) *pg_sz = get_min_page_size(mp->socket_id); else - *pg_sz = getpagesize(); + *pg_sz = rte_mem_page_size(); rte_mempool_trace_get_page_size(mp, *pg_sz); return 0; @@ -686,7 +687,7 @@ get_anon_size(const struct rte_mempool *mp) size_t min_chunk_size; size_t align; - pg_sz = getpagesize(); + pg_sz = rte_mem_page_size(); pg_shift = rte_bsf32(pg_sz); size = rte_mempool_ops_calc_mem_size(mp, mp->size, pg_shift, &min_chunk_size, &align); @@ -710,7 +711,7 @@ rte_mempool_memchunk_anon_free(struct rte_mempool_memhdr *memhdr, if (size < 0) return; - munmap(opaque, size); + rte_mem_unmap(opaque, size); } /* populate the mempool with an anonymous mapping */ @@ -740,20 +741,17 @@ rte_mempool_populate_anon(struct rte_mempool *mp) } /* get chunk of virtually continuous memory */ - addr = mmap(NULL, size, PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); - if (addr == MAP_FAILED) { - rte_errno = errno; + addr = rte_mem_map(NULL, size, RTE_PROT_READ | RTE_PROT_WRITE, + RTE_MAP_SHARED | RTE_MAP_ANONYMOUS, -1, 0); + if (addr == NULL) return 0; - } /* can't use MMAP_LOCKED, it does not exist on BSD */ - if (mlock(addr, size) < 0) { - rte_errno = errno; - munmap(addr, size); + if (rte_mem_lock(addr, size) < 0) { + rte_mem_unmap(addr, size); return 0; } - ret = rte_mempool_populate_virt(mp, addr, size, getpagesize(), + ret = rte_mempool_populate_virt(mp, addr, size, rte_mem_page_size(), rte_mempool_memchunk_anon_free, addr); if (ret == 0) /* should not happen */ ret = -ENOBUFS; From patchwork Mon Jul 6 11:32:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fady Bader X-Patchwork-Id: 73239 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 05599A00C5; Mon, 6 Jul 2020 13:33:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8825D1DAC8; Mon, 6 Jul 2020 13:33:09 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 81A5F1DA89 for ; Mon, 6 Jul 2020 13:33:05 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from fady@mellanox.com) with SMTP; 6 Jul 2020 14:32:59 +0300 Received: from l-wincomp04-vm.labs.mlnx (l-wincomp04-vm.mtl.labs.mlnx [10.237.1.5]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 066BWx9N006827; Mon, 6 Jul 2020 14:32:59 +0300 From: Fady Bader To: dev@dpdk.org Cc: thomas@monjalon.net, tbashar@mellanox.com, talshn@mellanox.com, yohadt@mellanox.com, dmitry.kozliuk@gmail.com, harini.ramakrishnan@microsoft.com, ocardona@microsoft.com, pallavi.kadam@intel.com, ranjit.menon@intel.com, olivier.matz@6wind.com, arybchenko@solarflare.com, mdr@ashroe.eu, nhorman@tuxdriver.com Date: Mon, 6 Jul 2020 14:32:41 +0300 Message-Id: <20200706113241.28748-4-fady@mellanox.com> X-Mailer: git-send-email 2.16.1.windows.4 In-Reply-To: <20200706113241.28748-1-fady@mellanox.com> References: <20200705134746.26240-1-fady@mellanox.com> <20200706113241.28748-1-fady@mellanox.com> Subject: [dpdk-dev] [PATCH v7 3/3] mempool: mempool build on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Some EAL functions are used by mempool lib but not exported on Windows. The functions are exported. Added mempool to supported libraries for Windows compilation. Signed-off-by: Fady Bader Acked-by: Olivier Matz --- lib/librte_eal/rte_eal_exports.def | 6 ++++++ lib/meson.build | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def index 374e654264..984c5d1698 100644 --- a/lib/librte_eal/rte_eal_exports.def +++ b/lib/librte_eal/rte_eal_exports.def @@ -1,6 +1,11 @@ EXPORTS __rte_panic + __rte_trace_mem_per_thread_alloc + __rte_trace_point_emit_field + __rte_trace_point_register per_lcore__rte_errno + per_lcore_trace_mem + per_lcore_trace_point_sz rte_calloc rte_calloc_socket rte_bus_register @@ -58,6 +63,7 @@ EXPORTS rte_vfio_container_dma_unmap rte_vlog rte_realloc + rte_strscpy rte_zmalloc rte_zmalloc_socket diff --git a/lib/meson.build b/lib/meson.build index dadf151f78..12d5f81e9b 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -40,7 +40,7 @@ if is_windows 'kvargs', 'eal', 'ring', - 'pci', + 'mempool', 'pci', ] # only supported libraries for windows endif