Commit 693405cf authored by Petr Tesarik's avatar Petr Tesarik Committed by Christoph Hellwig

swiotlb: use the atomic counter of total used slabs if available

If DEBUG_FS is enabled, the cost of keeping an exact number of total
used slabs is already paid. In this case, there is no reason to use an
inexact number for statistics and kernel messages.
Signed-off-by: default avatarPetr Tesarik <petr.tesarik.ext@huawei.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent efa76afd
...@@ -717,6 +717,15 @@ static int swiotlb_find_slots(struct device *dev, phys_addr_t orig_addr, ...@@ -717,6 +717,15 @@ static int swiotlb_find_slots(struct device *dev, phys_addr_t orig_addr,
return -1; return -1;
} }
#ifdef CONFIG_DEBUG_FS
static unsigned long mem_used(struct io_tlb_mem *mem)
{
return atomic_long_read(&mem->total_used);
}
#else /* !CONFIG_DEBUG_FS */
static unsigned long mem_used(struct io_tlb_mem *mem) static unsigned long mem_used(struct io_tlb_mem *mem)
{ {
int i; int i;
...@@ -727,6 +736,8 @@ static unsigned long mem_used(struct io_tlb_mem *mem) ...@@ -727,6 +736,8 @@ static unsigned long mem_used(struct io_tlb_mem *mem)
return used; return used;
} }
#endif /* CONFIG_DEBUG_FS */
phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr, phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr,
size_t mapping_size, size_t alloc_size, size_t mapping_size, size_t alloc_size,
unsigned int alloc_align_mask, enum dma_data_direction dir, unsigned int alloc_align_mask, enum dma_data_direction dir,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment