diff options
author | Eric Dumazet <edumazet@google.com> | 2019-10-30 11:48:44 -0700 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2019-11-11 10:52:18 +0100 |
commit | 5e76f564572b85735de4b75a5e73b514be2562be (patch) | |
tree | 95c35b5219632553bb218904da8bce60fe222626 /kernel/dma | |
parent | d3694f30732fd2a334b93f087033c5a5836f7aba (diff) | |
download | linux-stable-5e76f564572b85735de4b75a5e73b514be2562be.tar.gz linux-stable-5e76f564572b85735de4b75a5e73b514be2562be.tar.bz2 linux-stable-5e76f564572b85735de4b75a5e73b514be2562be.zip |
dma-debug: increase HASH_SIZE
With modern NIC, it is not unusual having about ~256,000 active dma
mappings and a hash size of 1024 buckets is too small.
Forcing full cache line per bucket does not seem useful, especially now
that we have contention on free_entries_lock for allocations and freeing
of entries. Better use the space to fit more buckets.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'kernel/dma')
-rw-r--r-- | kernel/dma/debug.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c index a5b85dabfb8c..004496654aaa 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]; |