Messages in this thread Patch in this message | | | Date | Wed, 30 Oct 2019 11:48:44 -0700 | Subject | [PATCH] dma-debug: increase HASH_SIZE | From | Eric Dumazet <> |
| |
With modern NIC, it is not unusual having about ~256,000 active dma mappings. Hash size of 1024 buckets is too small.
Forcing full cache line per bucket does not seem useful, especially now that we have a contention on free_entries_lock for allocations and freeing of entries. Better using space to fit more buckets.
Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Marek Szyprowski <m.szyprowski@samsung.com> --- kernel/dma/debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c index 4ad74f5987ea9e95f9bb5e2d1592254e367d24fb..35e2a853bff9c482d789ab331d79aaee07753a97 100644 --- a/kernel/dma/debug.c +++ b/kernel/dma/debug.c @@ -27,7 +27,7 @@ #include <asm/sections.h> -#define HASH_SIZE 1024ULL +#define HASH_SIZE 16384ULL #define HASH_FN_SHIFT 13 #define HASH_FN_MASK (HASH_SIZE - 1) @@ -87,7 +87,7 @@ typedef bool (*match_fn)(struct dma_debug_entry *, struct dma_debug_entry *); struct hash_bucket { struct list_head list; spinlock_t lock; -} ____cacheline_aligned_in_smp; +}; /* Hash list to save the allocated dma addresses */ static struct hash_bucket dma_entry_hash[HASH_SIZE]; -- 2.24.0.rc0.303.g954a862665-goog
| |