From 33f60621afcb01f83a50f8d6425f58c475a499e5 Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Fri, 22 Mar 2019 11:46:31 -0700 Subject: [PATCH] lib: resize key mempools Mempools are based off of a ring structure which allocates its elements as a power of two. It also only exposes n-1 elements to the user. So when we create a mempool with 2^n elements in it, we have to allocate a ring with 2^n+1 entries. By decreasing the number of elements in these key mempools by 1, we can save a decent amount of memory. Change-Id: I942c9dd4cf59096969bc2559fb46fd2084a07f09 Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448875 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- lib/bdev/bdev.c | 6 +++--- lib/nvmf/rdma.c | 2 +- lib/nvmf/tcp.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index eefd723e1..08dec451f 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -58,10 +58,10 @@ int __itt_init_ittlib(const char *, __itt_group_id); #endif -#define SPDK_BDEV_IO_POOL_SIZE (64 * 1024) +#define SPDK_BDEV_IO_POOL_SIZE (64 * 1024 - 1) #define SPDK_BDEV_IO_CACHE_SIZE 256 -#define BUF_SMALL_POOL_SIZE 8192 -#define BUF_LARGE_POOL_SIZE 1024 +#define BUF_SMALL_POOL_SIZE 8191 +#define BUF_LARGE_POOL_SIZE 1023 #define NOMEM_THRESHOLD_COUNT 8 #define ZERO_BUFFER_SIZE 0x100000 diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index c4a6cdb73..ad4417f9d 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -2045,7 +2045,7 @@ spdk_nvmf_rdma_request_process(struct spdk_nvmf_rdma_transport *rtransport, #define SPDK_NVMF_RDMA_DEFAULT_IN_CAPSULE_DATA_SIZE 4096 #define SPDK_NVMF_RDMA_DEFAULT_MAX_IO_SIZE 131072 #define SPDK_NVMF_RDMA_MIN_IO_BUFFER_SIZE (SPDK_NVMF_RDMA_DEFAULT_MAX_IO_SIZE / SPDK_NVMF_MAX_SGL_ENTRIES) -#define SPDK_NVMF_RDMA_DEFAULT_NUM_SHARED_BUFFERS 4096 +#define SPDK_NVMF_RDMA_DEFAULT_NUM_SHARED_BUFFERS 4095 #define SPDK_NVMF_RDMA_DEFAULT_BUFFER_CACHE_SIZE 32 static void diff --git a/lib/nvmf/tcp.c b/lib/nvmf/tcp.c index be005a905..8ff0c280a 100644 --- a/lib/nvmf/tcp.c +++ b/lib/nvmf/tcp.c @@ -2788,7 +2788,7 @@ spdk_nvmf_tcp_qpair_set_sq_size(struct spdk_nvmf_qpair *qpair) #define SPDK_NVMF_TCP_DEFAULT_IN_CAPSULE_DATA_SIZE 4096 #define SPDK_NVMF_TCP_DEFAULT_MAX_IO_SIZE 131072 #define SPDK_NVMF_TCP_DEFAULT_IO_UNIT_SIZE 131072 -#define SPDK_NVMF_TCP_DEFAULT_NUM_SHARED_BUFFERS 512 +#define SPDK_NVMF_TCP_DEFAULT_NUM_SHARED_BUFFERS 511 #define SPDK_NVMF_TCP_DEFAULT_BUFFER_CACHE_SIZE 32 static void