Commit c1858976 authored by Joerg Roedel's avatar Joerg Roedel

AMD IOMMU: add stats counter for cross-page request

Impact: see number of requests for more than one page in debugfs
Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent 5d31ee7e
...@@ -71,6 +71,7 @@ DECLARE_STATS_COUNTER(cnt_map_sg); ...@@ -71,6 +71,7 @@ DECLARE_STATS_COUNTER(cnt_map_sg);
DECLARE_STATS_COUNTER(cnt_unmap_sg); DECLARE_STATS_COUNTER(cnt_unmap_sg);
DECLARE_STATS_COUNTER(cnt_alloc_coherent); DECLARE_STATS_COUNTER(cnt_alloc_coherent);
DECLARE_STATS_COUNTER(cnt_free_coherent); DECLARE_STATS_COUNTER(cnt_free_coherent);
DECLARE_STATS_COUNTER(cross_page);
static struct dentry *stats_dir; static struct dentry *stats_dir;
static struct dentry *de_isolate; static struct dentry *de_isolate;
...@@ -104,6 +105,7 @@ static void amd_iommu_stats_init(void) ...@@ -104,6 +105,7 @@ static void amd_iommu_stats_init(void)
amd_iommu_stats_add(&cnt_unmap_sg); amd_iommu_stats_add(&cnt_unmap_sg);
amd_iommu_stats_add(&cnt_alloc_coherent); amd_iommu_stats_add(&cnt_alloc_coherent);
amd_iommu_stats_add(&cnt_free_coherent); amd_iommu_stats_add(&cnt_free_coherent);
amd_iommu_stats_add(&cross_page);
} }
#endif #endif
...@@ -1217,6 +1219,9 @@ static dma_addr_t __map_single(struct device *dev, ...@@ -1217,6 +1219,9 @@ static dma_addr_t __map_single(struct device *dev,
pages = iommu_num_pages(paddr, size, PAGE_SIZE); pages = iommu_num_pages(paddr, size, PAGE_SIZE);
paddr &= PAGE_MASK; paddr &= PAGE_MASK;
if (pages > 1)
INC_STATS_COUNTER(cross_page);
if (align) if (align)
align_mask = (1UL << get_order(size)) - 1; align_mask = (1UL << get_order(size)) - 1;
......
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