From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF236A0487 for ; Fri, 5 Jul 2019 19:27:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 156091BE7F; Fri, 5 Jul 2019 19:26:45 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 356241BE7F for ; Fri, 5 Jul 2019 19:26:43 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jul 2019 10:26:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,455,1557212400"; d="scan'208";a="172723272" Received: from silpixa00399498.ir.intel.com (HELO silpixa00399498.ger.corp.intel.com) ([10.237.223.125]) by FMSMGA003.fm.intel.com with ESMTP; 05 Jul 2019 10:26:38 -0700 From: Anatoly Burakov To: dev@dpdk.org Cc: Neil Horman , John McNamara , Marko Kovacevic , Konstantin Ananyev , David Hunt , Bruce Richardson , Byron Marohn , Pablo de Lara Guarch , Yipeng Wang , Sameh Gobriel , Vladimir Medvedkin , Olivier Matz , Andrew Rybchenko , Honnappa Nagarahalli , Reshma Pattan , thomas@monjalon.net, david.marchand@redhat.com, stephen@networkplumber.org Date: Fri, 5 Jul 2019 18:26:22 +0100 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Subject: [dpdk-dev] [PATCH v5 4/9] eal: hide shared memory config 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" Now that everything that has ever accessed the shared memory config is doing so through the public API's, we can make it internal. Since we're removing quite a few headers from rte_eal_memconfig.h, we need to add them back in places where this header is used. This bumps the ABI, so also change all build files and make update documentation. Signed-off-by: Anatoly Burakov Acked-by: Stephen Hemminger Acked-by: David Marchand --- app/test/test_fbarray.c | 1 + app/test/test_memzone.c | 1 + app/test/test_tailq.c | 1 + doc/guides/rel_notes/deprecation.rst | 3 - doc/guides/rel_notes/release_19_08.rst | 8 +- drivers/bus/pci/linux/pci_vfio.c | 1 + lib/librte_acl/rte_acl.c | 2 + lib/librte_distributor/rte_distributor.c | 1 + lib/librte_distributor/rte_distributor_v20.c | 1 + lib/librte_eal/common/eal_common_mcfg.c | 2 + lib/librte_eal/common/eal_common_memory.c | 1 + lib/librte_eal/common/eal_common_memzone.c | 1 + lib/librte_eal/common/eal_common_tailqs.c | 1 + lib/librte_eal/common/eal_memcfg.h | 80 ++++++++++++++++ .../common/include/rte_eal_memconfig.h | 95 +------------------ lib/librte_eal/common/include/rte_fbarray.h | 1 - lib/librte_eal/common/include/rte_memory.h | 24 ++++- lib/librte_eal/common/malloc_heap.c | 2 + lib/librte_eal/common/malloc_mp.c | 1 + lib/librte_eal/common/rte_malloc.c | 1 + lib/librte_eal/freebsd/eal/Makefile | 2 +- lib/librte_eal/freebsd/eal/eal_memory.c | 1 + lib/librte_eal/linux/eal/Makefile | 2 +- lib/librte_eal/linux/eal/eal.c | 1 + lib/librte_eal/linux/eal/eal_memalloc.c | 1 + lib/librte_eal/linux/eal/eal_memory.c | 1 + lib/librte_eal/linux/eal/eal_vfio.c | 1 + lib/librte_eal/meson.build | 2 +- lib/librte_efd/rte_efd.c | 1 + lib/librte_hash/rte_cuckoo_hash.c | 1 + lib/librte_hash/rte_fbk_hash.c | 1 + lib/librte_lpm/rte_lpm.c | 1 + lib/librte_lpm/rte_lpm6.c | 1 + lib/librte_member/rte_member.c | 1 + lib/librte_mempool/rte_mempool.c | 1 + lib/librte_rcu/rte_rcu_qsbr.h | 1 + lib/librte_reorder/rte_reorder.c | 1 + lib/librte_ring/rte_ring.c | 1 + 38 files changed, 148 insertions(+), 101 deletions(-) create mode 100644 lib/librte_eal/common/eal_memcfg.h diff --git a/app/test/test_fbarray.c b/app/test/test_fbarray.c index d2b041887..a691bf445 100644 --- a/app/test/test_fbarray.c +++ b/app/test/test_fbarray.c @@ -2,6 +2,7 @@ * Copyright(c) 2010-2014 Intel Corporation */ +#include #include #include #include diff --git a/app/test/test_memzone.c b/app/test/test_memzone.c index 9fe465e62..7501b63c5 100644 --- a/app/test/test_memzone.c +++ b/app/test/test_memzone.c @@ -19,6 +19,7 @@ #include #include #include "../../lib/librte_eal/common/malloc_elem.h" +#include "../../lib/librte_eal/common/eal_memcfg.h" #include "test.h" diff --git a/app/test/test_tailq.c b/app/test/test_tailq.c index a4ecea2d8..7c9b69fdb 100644 --- a/app/test/test_tailq.c +++ b/app/test/test_tailq.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "test.h" diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index e2721fad6..583217da8 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -23,9 +23,6 @@ Deprecation Notices * eal: The function ``rte_eal_remote_launch`` will return new error codes after read or write error on the pipe, instead of calling ``rte_panic``. -* eal: the ``rte_mem_config`` struct will be made private to remove it from the - externally visible ABI and allow it to be updated in the future. - * eal: both declaring and identifying devices will be streamlined in v18.11. New functions will appear to query a specific port from buses, classes of device and device drivers. Device declaration will be made coherent with the diff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst index 21934bf01..cc6dfa33f 100644 --- a/doc/guides/rel_notes/release_19_08.rst +++ b/doc/guides/rel_notes/release_19_08.rst @@ -172,6 +172,10 @@ API Changes Also, make sure to start the actual text at the margin. ========================================================= +* The ``rte_mem_config`` structure has been made private. The new accessor + ``rte_mcfg_*`` functions were introduced to provide replacement for direct + access to the shared mem config. + * The network structures, definitions and functions have been prefixed by ``rte_`` to resolve conflicts with libc headers. @@ -201,6 +205,8 @@ ABI Changes Also, make sure to start the actual text at the margin. ========================================================= +* The ``rte_mem_config`` structure has been made private. + * eventdev: Event based Rx adapter callback The mbuf pointer array in the event eth Rx adapter callback @@ -246,7 +252,7 @@ The libraries prepended with a plus sign were incremented in this version. librte_compressdev.so.1 librte_cryptodev.so.7 librte_distributor.so.1 - librte_eal.so.10 + + librte_eal.so.11 librte_efd.so.1 librte_ethdev.so.12 + librte_eventdev.so.7 diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c index ebf6ccd3c..1ceb1c07b 100644 --- a/drivers/bus/pci/linux/pci_vfio.c +++ b/drivers/bus/pci/linux/pci_vfio.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "eal_filesystem.h" diff --git a/lib/librte_acl/rte_acl.c b/lib/librte_acl/rte_acl.c index 7ff11d25f..bd7247cc3 100644 --- a/lib/librte_acl/rte_acl.c +++ b/lib/librte_acl/rte_acl.c @@ -4,6 +4,8 @@ #include #include +#include + #include "acl.h" TAILQ_HEAD(rte_acl_list, rte_tailq_entry); diff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c index 9eb78b330..0a3213bbf 100644 --- a/lib/librte_distributor/rte_distributor.c +++ b/lib/librte_distributor/rte_distributor.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "rte_distributor_private.h" #include "rte_distributor.h" diff --git a/lib/librte_distributor/rte_distributor_v20.c b/lib/librte_distributor/rte_distributor_v20.c index 1fc03b971..cdc0969a8 100644 --- a/lib/librte_distributor/rte_distributor_v20.c +++ b/lib/librte_distributor/rte_distributor_v20.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "rte_distributor_v20.h" #include "rte_distributor_private.h" diff --git a/lib/librte_eal/common/eal_common_mcfg.c b/lib/librte_eal/common/eal_common_mcfg.c index ba2bc37b7..337890a61 100644 --- a/lib/librte_eal/common/eal_common_mcfg.c +++ b/lib/librte_eal/common/eal_common_mcfg.c @@ -5,6 +5,8 @@ #include #include +#include "eal_memcfg.h" + void rte_mcfg_mem_read_lock(void) { diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c index fe22b139b..19ea47570 100644 --- a/lib/librte_eal/common/eal_common_memory.c +++ b/lib/librte_eal/common/eal_common_memory.c @@ -24,6 +24,7 @@ #include "eal_memalloc.h" #include "eal_private.h" #include "eal_internal_cfg.h" +#include "eal_memcfg.h" #include "malloc_heap.h" /* diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c index 521ad7ca1..ef6c909cb 100644 --- a/lib/librte_eal/common/eal_common_memzone.c +++ b/lib/librte_eal/common/eal_common_memzone.c @@ -24,6 +24,7 @@ #include "malloc_heap.h" #include "malloc_elem.h" #include "eal_private.h" +#include "eal_memcfg.h" static inline const struct rte_memzone * memzone_lookup_thread_unsafe(const char *name) diff --git a/lib/librte_eal/common/eal_common_tailqs.c b/lib/librte_eal/common/eal_common_tailqs.c index dc2c13caa..ead06897b 100644 --- a/lib/librte_eal/common/eal_common_tailqs.c +++ b/lib/librte_eal/common/eal_common_tailqs.c @@ -23,6 +23,7 @@ #include #include "eal_private.h" +#include "eal_memcfg.h" TAILQ_HEAD(rte_tailq_elem_head, rte_tailq_elem); /* local tailq list */ diff --git a/lib/librte_eal/common/eal_memcfg.h b/lib/librte_eal/common/eal_memcfg.h new file mode 100644 index 000000000..74f6159c6 --- /dev/null +++ b/lib/librte_eal/common/eal_memcfg.h @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2019 Intel Corporation + */ + +#ifndef EAL_MEMCFG_H +#define EAL_MEMCFG_H + +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * Memory configuration shared across multiple processes. + */ +struct rte_mem_config { + volatile uint32_t magic; /**< Magic number - sanity check. */ + + /* memory topology */ + uint32_t nchannel; /**< Number of channels (0 if unknown). */ + uint32_t nrank; /**< Number of ranks (0 if unknown). */ + + /** + * current lock nest order + * - qlock->mlock (ring/hash/lpm) + * - mplock->qlock->mlock (mempool) + * Notice: + * *ALWAYS* obtain qlock first if having to obtain both qlock and mlock + */ + rte_rwlock_t mlock; /**< used by memzones for thread safety. */ + rte_rwlock_t qlock; /**< used by tailqs for thread safety. */ + rte_rwlock_t mplock; /**< used by mempool library for thread safety. */ + + rte_rwlock_t memory_hotplug_lock; + /**< Indicates whether memory hotplug request is in progress. */ + + /* memory segments and zones */ + struct rte_fbarray memzones; /**< Memzone descriptors. */ + + struct rte_memseg_list memsegs[RTE_MAX_MEMSEG_LISTS]; + /**< List of dynamic arrays holding memsegs */ + + struct rte_tailq_head tailq_head[RTE_MAX_TAILQ]; + /**< Tailqs for objects */ + + struct malloc_heap malloc_heaps[RTE_MAX_HEAPS]; + /**< DPDK malloc heaps */ + + int next_socket_id; /**< Next socket ID for external malloc heap */ + + /* rte_mem_config has to be mapped at the exact same address in all + * processes, so we need to store it. + */ + uint64_t mem_cfg_addr; /**< Address of this structure in memory. */ + + /* Primary and secondary processes cannot run with different legacy or + * single file segments options, so to avoid having to specify these + * options to all processes, store them in shared config and update the + * internal config at init time. + */ + uint32_t legacy_mem; /**< stored legacy mem parameter. */ + uint32_t single_file_segments; + /**< stored single file segments parameter. */ + + uint8_t dma_maskbits; /**< Keeps the more restricted dma mask. */ +} __attribute__((packed)); + +static inline void +rte_eal_mcfg_wait_complete(struct rte_mem_config *mcfg) +{ + /* wait until shared mem_config finish initialising */ + while (mcfg->magic != RTE_MAGIC) + rte_pause(); +} + +#endif /* EAL_MEMCFG_H */ diff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h b/lib/librte_eal/common/include/rte_eal_memconfig.h index 58dcbb96d..dc61a6fed 100644 --- a/lib/librte_eal/common/include/rte_eal_memconfig.h +++ b/lib/librte_eal/common/include/rte_eal_memconfig.h @@ -5,101 +5,16 @@ #ifndef _RTE_EAL_MEMCONFIG_H_ #define _RTE_EAL_MEMCONFIG_H_ -#include -#include -#include -#include -#include -#include -#include -#include +/** + * @file + * + * This API allows access to EAL shared memory configuration through an API. + */ #ifdef __cplusplus extern "C" { #endif -/** - * memseg list is a special case as we need to store a bunch of other data - * together with the array itself. - */ -struct rte_memseg_list { - RTE_STD_C11 - union { - void *base_va; - /**< Base virtual address for this memseg list. */ - uint64_t addr_64; - /**< Makes sure addr is always 64-bits */ - }; - uint64_t page_sz; /**< Page size for all memsegs in this list. */ - int socket_id; /**< Socket ID for all memsegs in this list. */ - volatile uint32_t version; /**< version number for multiprocess sync. */ - size_t len; /**< Length of memory area covered by this memseg list. */ - unsigned int external; /**< 1 if this list points to external memory */ - struct rte_fbarray memseg_arr; -}; - -/** - * the structure for the memory configuration for the RTE. - * Used by the rte_config structure. It is separated out, as for multi-process - * support, the memory details should be shared across instances - */ -struct rte_mem_config { - volatile uint32_t magic; /**< Magic number - Sanity check. */ - - /* memory topology */ - uint32_t nchannel; /**< Number of channels (0 if unknown). */ - uint32_t nrank; /**< Number of ranks (0 if unknown). */ - - /** - * current lock nest order - * - qlock->mlock (ring/hash/lpm) - * - mplock->qlock->mlock (mempool) - * Notice: - * *ALWAYS* obtain qlock first if having to obtain both qlock and mlock - */ - rte_rwlock_t mlock; /**< only used by memzone LIB for thread-safe. */ - rte_rwlock_t qlock; /**< used for tailq operation for thread safe. */ - rte_rwlock_t mplock; /**< only used by mempool LIB for thread-safe. */ - - rte_rwlock_t memory_hotplug_lock; - /**< indicates whether memory hotplug request is in progress. */ - - /* memory segments and zones */ - struct rte_fbarray memzones; /**< Memzone descriptors. */ - - struct rte_memseg_list memsegs[RTE_MAX_MEMSEG_LISTS]; - /**< list of dynamic arrays holding memsegs */ - - struct rte_tailq_head tailq_head[RTE_MAX_TAILQ]; /**< Tailqs for objects */ - - /* Heaps of Malloc */ - struct malloc_heap malloc_heaps[RTE_MAX_HEAPS]; - - /* next socket ID for external malloc heap */ - int next_socket_id; - - /* address of mem_config in primary process. used to map shared config into - * exact same address the primary process maps it. - */ - uint64_t mem_cfg_addr; - - /* legacy mem and single file segments options are shared */ - uint32_t legacy_mem; - uint32_t single_file_segments; - - /* keeps the more restricted dma mask */ - uint8_t dma_maskbits; -} __attribute__((__packed__)); - - -inline static void -rte_eal_mcfg_wait_complete(struct rte_mem_config* mcfg) -{ - /* wait until shared mem_config finish initialising */ - while(mcfg->magic != RTE_MAGIC) - rte_pause(); -} - /** * Lock the internal EAL shared memory configuration for shared access. */ diff --git a/lib/librte_eal/common/include/rte_fbarray.h b/lib/librte_eal/common/include/rte_fbarray.h index d0af2d8c7..6dccdbec9 100644 --- a/lib/librte_eal/common/include/rte_fbarray.h +++ b/lib/librte_eal/common/include/rte_fbarray.h @@ -34,7 +34,6 @@ extern "C" { #endif -#include #include #include diff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/common/include/rte_memory.h index 44cbe6fd2..ca34a10c3 100644 --- a/lib/librte_eal/common/include/rte_memory.h +++ b/lib/librte_eal/common/include/rte_memory.h @@ -22,9 +22,7 @@ extern "C" { #include #include #include - -/* forward declaration for pointers */ -struct rte_memseg_list; +#include __extension__ enum rte_page_sizes { @@ -104,6 +102,26 @@ struct rte_memseg { uint32_t flags; /**< Memseg-specific flags */ } __rte_packed; +/** + * memseg list is a special case as we need to store a bunch of other data + * together with the array itself. + */ +struct rte_memseg_list { + RTE_STD_C11 + union { + void *base_va; + /**< Base virtual address for this memseg list. */ + uint64_t addr_64; + /**< Makes sure addr is always 64-bits */ + }; + uint64_t page_sz; /**< Page size for all memsegs in this list. */ + int socket_id; /**< Socket ID for all memsegs in this list. */ + volatile uint32_t version; /**< version number for multiprocess sync. */ + size_t len; /**< Length of memory area covered by this memseg list. */ + unsigned int external; /**< 1 if this list points to external memory */ + struct rte_fbarray memseg_arr; +}; + /** * Lock page in physical memory and prevent from swapping. * diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c index f1d31de0d..634ca212f 100644 --- a/lib/librte_eal/common/malloc_heap.c +++ b/lib/librte_eal/common/malloc_heap.c @@ -20,11 +20,13 @@ #include #include #include +#include #include #include #include "eal_internal_cfg.h" #include "eal_memalloc.h" +#include "eal_memcfg.h" #include "malloc_elem.h" #include "malloc_heap.h" #include "malloc_mp.h" diff --git a/lib/librte_eal/common/malloc_mp.c b/lib/librte_eal/common/malloc_mp.c index 7c6112c4e..1f212f834 100644 --- a/lib/librte_eal/common/malloc_mp.c +++ b/lib/librte_eal/common/malloc_mp.c @@ -10,6 +10,7 @@ #include #include "eal_memalloc.h" +#include "eal_memcfg.h" #include "malloc_elem.h" #include "malloc_mp.h" diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c index 2cad7beaa..fecd9a964 100644 --- a/lib/librte_eal/common/rte_malloc.c +++ b/lib/librte_eal/common/rte_malloc.c @@ -25,6 +25,7 @@ #include "malloc_elem.h" #include "malloc_heap.h" #include "eal_memalloc.h" +#include "eal_memcfg.h" /* Free the memory space back to heap */ diff --git a/lib/librte_eal/freebsd/eal/Makefile b/lib/librte_eal/freebsd/eal/Makefile index eb921275e..89131ea89 100644 --- a/lib/librte_eal/freebsd/eal/Makefile +++ b/lib/librte_eal/freebsd/eal/Makefile @@ -22,7 +22,7 @@ LDLIBS += -lrte_kvargs EXPORT_MAP := ../../rte_eal_version.map -LIBABIVER := 10 +LIBABIVER := 11 # specific to freebsd exec-env SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c diff --git a/lib/librte_eal/freebsd/eal/eal_memory.c b/lib/librte_eal/freebsd/eal/eal_memory.c index 4b092e1f2..9b9a0577a 100644 --- a/lib/librte_eal/freebsd/eal/eal_memory.c +++ b/lib/librte_eal/freebsd/eal/eal_memory.c @@ -18,6 +18,7 @@ #include "eal_private.h" #include "eal_internal_cfg.h" #include "eal_filesystem.h" +#include "eal_memcfg.h" #define EAL_PAGE_SIZE (sysconf(_SC_PAGESIZE)) diff --git a/lib/librte_eal/linux/eal/Makefile b/lib/librte_eal/linux/eal/Makefile index dfe8e9a49..0f5725e64 100644 --- a/lib/librte_eal/linux/eal/Makefile +++ b/lib/librte_eal/linux/eal/Makefile @@ -10,7 +10,7 @@ ARCH_DIR ?= $(RTE_ARCH) EXPORT_MAP := ../../rte_eal_version.map VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR) -LIBABIVER := 10 +LIBABIVER := 11 VPATH += $(RTE_SDK)/lib/librte_eal/common diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c index 8a0b387ce..f974cec1c 100644 --- a/lib/librte_eal/linux/eal/eal.c +++ b/lib/librte_eal/linux/eal/eal.c @@ -57,6 +57,7 @@ #include "eal_internal_cfg.h" #include "eal_filesystem.h" #include "eal_hugepages.h" +#include "eal_memcfg.h" #include "eal_options.h" #include "eal_vfio.h" #include "hotplug_mp.h" diff --git a/lib/librte_eal/linux/eal/eal_memalloc.c b/lib/librte_eal/linux/eal/eal_memalloc.c index 2019636fb..1f6a7c18f 100644 --- a/lib/librte_eal/linux/eal/eal_memalloc.c +++ b/lib/librte_eal/linux/eal/eal_memalloc.c @@ -44,6 +44,7 @@ #include "eal_filesystem.h" #include "eal_internal_cfg.h" #include "eal_memalloc.h" +#include "eal_memcfg.h" #include "eal_private.h" const int anonymous_hugepages_supported = diff --git a/lib/librte_eal/linux/eal/eal_memory.c b/lib/librte_eal/linux/eal/eal_memory.c index 1853acea5..9c948a374 100644 --- a/lib/librte_eal/linux/eal/eal_memory.c +++ b/lib/librte_eal/linux/eal/eal_memory.c @@ -46,6 +46,7 @@ #include "eal_private.h" #include "eal_memalloc.h" +#include "eal_memcfg.h" #include "eal_internal_cfg.h" #include "eal_filesystem.h" #include "eal_hugepages.h" diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal/eal_vfio.c index 96a03a657..fdc884f70 100644 --- a/lib/librte_eal/linux/eal/eal_vfio.c +++ b/lib/librte_eal/linux/eal/eal_vfio.c @@ -15,6 +15,7 @@ #include #include "eal_filesystem.h" +#include "eal_memcfg.h" #include "eal_vfio.h" #include "eal_private.h" diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build index ccd5b85b8..2751023a9 100644 --- a/lib/librte_eal/meson.build +++ b/lib/librte_eal/meson.build @@ -12,7 +12,7 @@ subdir('common') # defines common_sources, common_objs, etc. dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1) subdir(exec_env + '/eal') -version = 10 # the version of the EAL API +version = 11 # the version of the EAL API allow_experimental_apis = true deps += 'kvargs' if dpdk_conf.has('RTE_USE_LIBBSD') diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c index b808ce99f..d3d019578 100644 --- a/lib/librte_efd/rte_efd.c +++ b/lib/librte_efd/rte_efd.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "rte_efd.h" #if defined(RTE_ARCH_X86) diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c index 47cd0da5b..74d5bbd99 100644 --- a/lib/librte_hash/rte_cuckoo_hash.c +++ b/lib/librte_hash/rte_cuckoo_hash.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "rte_hash.h" #include "rte_cuckoo_hash.h" diff --git a/lib/librte_hash/rte_fbk_hash.c b/lib/librte_hash/rte_fbk_hash.c index db118c930..576e8e666 100644 --- a/lib/librte_hash/rte_fbk_hash.c +++ b/lib/librte_hash/rte_fbk_hash.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "rte_fbk_hash.h" diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index b91f74216..70c24ac1f 100644 --- a/lib/librte_lpm/rte_lpm.c +++ b/lib/librte_lpm/rte_lpm.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "rte_lpm.h" diff --git a/lib/librte_lpm/rte_lpm6.c b/lib/librte_lpm/rte_lpm6.c index 5af74a539..9b8aeb972 100644 --- a/lib/librte_lpm/rte_lpm6.c +++ b/lib/librte_lpm/rte_lpm6.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "rte_lpm6.h" diff --git a/lib/librte_member/rte_member.c b/lib/librte_member/rte_member.c index efed28dd9..e0e7f127e 100644 --- a/lib/librte_member/rte_member.c +++ b/lib/librte_member/rte_member.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "rte_member.h" #include "rte_member_ht.h" diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 5c688d456..7260ce0be 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "rte_mempool.h" diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h index 53a5a7165..c80f15c00 100644 --- a/lib/librte_rcu/rte_rcu_qsbr.h +++ b/lib/librte_rcu/rte_rcu_qsbr.h @@ -24,6 +24,7 @@ extern "C" { #endif +#include #include #include #include diff --git a/lib/librte_reorder/rte_reorder.c b/lib/librte_reorder/rte_reorder.c index ae6e3f578..3c9f0e2d0 100644 --- a/lib/librte_reorder/rte_reorder.c +++ b/lib/librte_reorder/rte_reorder.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "rte_reorder.h" diff --git a/lib/librte_ring/rte_ring.c b/lib/librte_ring/rte_ring.c index 9ea26a631..b30b2aa7b 100644 --- a/lib/librte_ring/rte_ring.c +++ b/lib/librte_ring/rte_ring.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "rte_ring.h" -- 2.17.1