mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC
[ Upstream commit 84bc4f1dbb
]
We observed the error "cacheline tracking ENOMEM, dma-debug disabled"
during a light system load (copying some files). The reason for this error
is that the dma_active_cacheline radix tree uses GFP_NOWAIT allocation -
so it can't access the emergency memory reserves and it fails as soon as
anybody reaches the watermark.
This patch changes GFP_NOWAIT to GFP_ATOMIC, so that it can access the
emergency memory reserves.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
30cf47a602
commit
d956fe6b3d
@ -465,7 +465,7 @@ EXPORT_SYMBOL(debug_dma_dump_mappings);
|
||||
* At any time debug_dma_assert_idle() can be called to trigger a
|
||||
* warning if any cachelines in the given page are in the active set.
|
||||
*/
|
||||
static RADIX_TREE(dma_active_cacheline, GFP_NOWAIT);
|
||||
static RADIX_TREE(dma_active_cacheline, GFP_ATOMIC);
|
||||
static DEFINE_SPINLOCK(radix_lock);
|
||||
#define ACTIVE_CACHELINE_MAX_OVERLAP ((1 << RADIX_TREE_MAX_TAGS) - 1)
|
||||
#define CACHELINE_PER_PAGE_SHIFT (PAGE_SHIFT - L1_CACHE_SHIFT)
|
||||
|
Loading…
Reference in New Issue
Block a user