diff options
author | Matias Elo <matias.elo@nokia.com> | 2018-11-09 11:48:41 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-11-14 10:53:59 +0300 |
commit | e373d2a880ba8ab18fa47422920c34d48090714b (patch) | |
tree | bd075f7c1fdf4cdc361bd5c28ab3e3c3a46860b7 /platform | |
parent | 2f1c802e45b2e860e641d84c15368cca6cc3454d (diff) |
linux-gen: ishm: remove _ODP_SHM_NO_HP flag
Reserving large shm blocks without huge pages increases page misses.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linux-generic/include/odp_shm_internal.h | 1 | ||||
-rw-r--r-- | platform/linux-generic/odp_classification.c | 7 | ||||
-rw-r--r-- | platform/linux-generic/odp_crypto_null.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_crypto_openssl.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_ipsec_sad.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_ishm.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet_io.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_pool.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_queue_basic.c | 5 | ||||
-rw-r--r-- | platform/linux-generic/odp_queue_lf.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_schedule_basic.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_schedule_scalable.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/pktio/ring.c | 3 |
13 files changed, 15 insertions, 28 deletions
diff --git a/platform/linux-generic/include/odp_shm_internal.h b/platform/linux-generic/include/odp_shm_internal.h index 9827af75e..ab58973bc 100644 --- a/platform/linux-generic/include/odp_shm_internal.h +++ b/platform/linux-generic/include/odp_shm_internal.h @@ -18,7 +18,6 @@ extern "C" { #define _ODP_SHM_PROC_NOCREAT (1 << 6) /**< Do not create shm if not exist */ #define _ODP_SHM_O_EXCL (1 << 7) /**< Do not create shm if exist */ -#define _ODP_SHM_NO_HP (1 << 8) /**< Do not use huge pages */ #ifdef __cplusplus } diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index 901b50449..0d3545b6e 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -11,7 +11,6 @@ #include <odp/api/queue.h> #include <odp/api/debug.h> #include <odp_init_internal.h> -#include <odp_shm_internal.h> #include <odp_debug_internal.h> #include <odp_packet_internal.h> #include <odp/api/packet_io.h> @@ -88,7 +87,7 @@ int odp_classification_init_global(void) cos_shm = odp_shm_reserve("_odp_shm_odp_cos_tbl", sizeof(cos_tbl_t), sizeof(cos_t), - _ODP_SHM_NO_HP); + 0); if (cos_shm == ODP_SHM_INVALID) { ODP_ERR("shm allocation failed for shm_odp_cos_tbl"); @@ -109,7 +108,7 @@ int odp_classification_init_global(void) pmr_shm = odp_shm_reserve("_odp_shm_odp_pmr_tbl", sizeof(pmr_tbl_t), sizeof(pmr_t), - _ODP_SHM_NO_HP); + 0); if (pmr_shm == ODP_SHM_INVALID) { ODP_ERR("shm allocation failed for shm_odp_pmr_tbl"); @@ -130,7 +129,7 @@ int odp_classification_init_global(void) queue_grp_shm = odp_shm_reserve("_odp_shm_cls_queue_grp_tbl", sizeof(_cls_queue_grp_tbl_t), sizeof(queue_entry_t *), - _ODP_SHM_NO_HP); + 0); if (queue_grp_shm == ODP_SHM_INVALID) { ODP_ERR("shm allocation failed for queue_grp_tbl"); diff --git a/platform/linux-generic/odp_crypto_null.c b/platform/linux-generic/odp_crypto_null.c index 939b2fbb6..4dd1f8325 100644 --- a/platform/linux-generic/odp_crypto_null.c +++ b/platform/linux-generic/odp_crypto_null.c @@ -21,7 +21,6 @@ #include <odp/api/plat/thread_inlines.h> #include <odp_packet_internal.h> #include <odp/api/plat/queue_inlines.h> -#include <odp_shm_internal.h> /* Inlined API functions */ #include <odp/api/plat/event_inlines.h> @@ -319,7 +318,7 @@ odp_crypto_init_global(void) /* Allocate our globally shared memory */ shm = odp_shm_reserve("_odp_crypto_pool_null", mem_size, ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (ODP_SHM_INVALID == shm) { ODP_ERR("unable to allocate crypto pool\n"); return -1; diff --git a/platform/linux-generic/odp_crypto_openssl.c b/platform/linux-generic/odp_crypto_openssl.c index ec3e85bf6..8feebefb3 100644 --- a/platform/linux-generic/odp_crypto_openssl.c +++ b/platform/linux-generic/odp_crypto_openssl.c @@ -21,7 +21,6 @@ #include <odp/api/plat/thread_inlines.h> #include <odp_packet_internal.h> #include <odp/api/plat/queue_inlines.h> -#include <odp_shm_internal.h> /* Inlined API functions */ #include <odp/api/plat/event_inlines.h> @@ -1859,7 +1858,7 @@ odp_crypto_init_global(void) /* Allocate our globally shared memory */ shm = odp_shm_reserve("_odp_crypto_pool_ssl", mem_size, ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (ODP_SHM_INVALID == shm) { ODP_ERR("unable to allocate crypto pool\n"); return -1; diff --git a/platform/linux-generic/odp_ipsec_sad.c b/platform/linux-generic/odp_ipsec_sad.c index 9fb2da46c..630af5a41 100644 --- a/platform/linux-generic/odp_ipsec_sad.c +++ b/platform/linux-generic/odp_ipsec_sad.c @@ -14,7 +14,6 @@ #include <odp_init_internal.h> #include <odp_debug_internal.h> #include <odp_ipsec_internal.h> -#include <odp_shm_internal.h> #include <odp_ring_mpmc_internal.h> #include <odp/api/plat/atomic_inlines.h> @@ -141,7 +140,7 @@ int _odp_ipsec_sad_init_global(void) shm = odp_shm_reserve("_odp_ipsec_sa_table", sizeof(ipsec_sa_table_t), ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) return -1; diff --git a/platform/linux-generic/odp_ishm.c b/platform/linux-generic/odp_ishm.c index cf37bd9bc..1a4ca9472 100644 --- a/platform/linux-generic/odp_ishm.c +++ b/platform/linux-generic/odp_ishm.c @@ -1036,8 +1036,7 @@ int _odp_ishm_reserve(const char *name, uint64_t size, int fd, /* Get system page sizes: page_hp_size is 0 if no huge page available*/ page_sz = odp_sys_page_size(); - page_hp_size = user_flags & _ODP_SHM_NO_HP ? - 0 : odp_sys_huge_page_size(); + page_hp_size = odp_sys_huge_page_size(); /* grab a new entry: */ for (new_index = 0; new_index < ISHM_MAX_NB_BLOCKS; new_index++) { diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index 1e0429f5d..3a788f041 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -29,7 +29,6 @@ #include <odp/api/plat/time_inlines.h> #include <odp_pcapng.h> #include <odp/api/plat/queue_inlines.h> -#include <odp_shm_internal.h> #include <string.h> #include <inttypes.h> @@ -69,7 +68,7 @@ int odp_pktio_init_global(void) shm = odp_shm_reserve("_odp_pktio_entries", sizeof(pktio_table_t), sizeof(pktio_entry_t), - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) return -1; diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index d08be4378..10382c4c8 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -20,7 +20,6 @@ #include <odp_config_internal.h> #include <odp_debug_internal.h> #include <odp_ring_internal.h> -#include <odp_shm_internal.h> #include <odp_global_data.h> #include <odp_libconfig_internal.h> @@ -119,7 +118,7 @@ int odp_pool_init_global(void) shm = odp_shm_reserve("_odp_pool_table", sizeof(pool_table_t), ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); pool_tbl = odp_shm_addr(shm); diff --git a/platform/linux-generic/odp_queue_basic.c b/platform/linux-generic/odp_queue_basic.c index 4e23fb53b..c49db7409 100644 --- a/platform/linux-generic/odp_queue_basic.c +++ b/platform/linux-generic/odp_queue_basic.c @@ -15,7 +15,6 @@ #include <odp_buffer_internal.h> #include <odp_pool_internal.h> #include <odp_init_internal.h> -#include <odp_shm_internal.h> #include <odp_timer_internal.h> #include <odp/api/shared_memory.h> #include <odp/api/schedule.h> @@ -138,7 +137,7 @@ static int queue_init_global(void) shm = odp_shm_reserve("_odp_queue_gbl", sizeof(queue_global_t), sizeof(queue_entry_t), - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) return -1; @@ -165,7 +164,7 @@ static int queue_init_global(void) shm = odp_shm_reserve("_odp_queue_rings", mem_size, ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) { odp_shm_free(queue_glb->queue_gbl_shm); diff --git a/platform/linux-generic/odp_queue_lf.c b/platform/linux-generic/odp_queue_lf.c index ac8b42265..3e156a086 100644 --- a/platform/linux-generic/odp_queue_lf.c +++ b/platform/linux-generic/odp_queue_lf.c @@ -9,7 +9,6 @@ #include <odp/api/plat/atomic_inlines.h> #include <odp/api/shared_memory.h> #include <odp_queue_basic_internal.h> -#include <odp_shm_internal.h> #include <string.h> #include <stdio.h> @@ -321,7 +320,7 @@ uint32_t queue_lf_init_global(uint32_t *queue_lf_size, shm = odp_shm_reserve("_odp_queues_lf", sizeof(queue_lf_global_t), ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) return 0; diff --git a/platform/linux-generic/odp_schedule_basic.c b/platform/linux-generic/odp_schedule_basic.c index 74942341a..bc46d6a64 100644 --- a/platform/linux-generic/odp_schedule_basic.c +++ b/platform/linux-generic/odp_schedule_basic.c @@ -29,7 +29,6 @@ #include <odp_queue_basic_internal.h> #include <odp_libconfig_internal.h> #include <odp/api/plat/queue_inlines.h> -#include <odp_shm_internal.h> /* No synchronization context */ #define NO_SYNC_CONTEXT ODP_SCHED_SYNC_PARALLEL @@ -403,7 +402,7 @@ static int schedule_init_global(void) shm = odp_shm_reserve("_odp_scheduler", sizeof(sched_global_t), ODP_CACHE_LINE_SIZE, - _ODP_SHM_NO_HP); + 0); if (shm == ODP_SHM_INVALID) { ODP_ERR("Schedule init: Shm reserve failed.\n"); return -1; diff --git a/platform/linux-generic/odp_schedule_scalable.c b/platform/linux-generic/odp_schedule_scalable.c index a21728d8b..11a0edf71 100644 --- a/platform/linux-generic/odp_schedule_scalable.c +++ b/platform/linux-generic/odp_schedule_scalable.c @@ -32,7 +32,6 @@ #include <odp_schedule_if.h> #include <odp_bitset.h> #include <odp_packet_io_internal.h> -#include <odp_shm_internal.h> #include <odp_timer_internal.h> #include <limits.h> @@ -1778,7 +1777,7 @@ static int schedule_init_global(void) shm = odp_shm_reserve("_odp_sched_scalable", sizeof(sched_global_t), - ODP_CACHE_LINE_SIZE, _ODP_SHM_NO_HP); + ODP_CACHE_LINE_SIZE, 0); global = odp_shm_addr(shm); if (global == NULL) { diff --git a/platform/linux-generic/pktio/ring.c b/platform/linux-generic/pktio/ring.c index 6a354cb1e..2cf0231cd 100644 --- a/platform/linux-generic/pktio/ring.c +++ b/platform/linux-generic/pktio/ring.c @@ -80,7 +80,6 @@ #include <odp_packet_io_ring_internal.h> #include <odp_errno_define.h> #include <odp_global_data.h> -#include <odp_shm_internal.h> #include <odp/api/plat/cpu_inlines.h> @@ -164,7 +163,7 @@ int _ring_tailq_init(void) /* Allocate globally shared memory */ shm = odp_shm_reserve("_odp_ring_global", sizeof(global_data_t), - ODP_CACHE_LINE_SIZE, _ODP_SHM_NO_HP); + ODP_CACHE_LINE_SIZE, 0); if (ODP_SHM_INVALID == shm) { ODP_ERR("Shm reserve failed for pktio ring\n"); return -1; |