aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-12-12 09:46:29 -0500
committerJoerg Roedel <joerg.roedel@amd.com>2009-01-03 08:11:59 -0500
commitf57d98ae6979f7bcbf758023b4716f485385f903 (patch)
treed49ddb1732237a69e871691d020db3f0b8a20788 /arch
parentc1858976f5ef05122bb671f678beaf7e1fe1dd74 (diff)
AMD IOMMU: add stats counter for single iommu domain tlb flushes
Impact: see number of single iommu domain tlb flushes in debugfs Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/amd_iommu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index f5455039b60..e99022d3a39 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -72,6 +72,7 @@ DECLARE_STATS_COUNTER(cnt_unmap_sg);
72DECLARE_STATS_COUNTER(cnt_alloc_coherent); 72DECLARE_STATS_COUNTER(cnt_alloc_coherent);
73DECLARE_STATS_COUNTER(cnt_free_coherent); 73DECLARE_STATS_COUNTER(cnt_free_coherent);
74DECLARE_STATS_COUNTER(cross_page); 74DECLARE_STATS_COUNTER(cross_page);
75DECLARE_STATS_COUNTER(domain_flush_single);
75 76
76static struct dentry *stats_dir; 77static struct dentry *stats_dir;
77static struct dentry *de_isolate; 78static struct dentry *de_isolate;
@@ -106,6 +107,7 @@ static void amd_iommu_stats_init(void)
106 amd_iommu_stats_add(&cnt_alloc_coherent); 107 amd_iommu_stats_add(&cnt_alloc_coherent);
107 amd_iommu_stats_add(&cnt_free_coherent); 108 amd_iommu_stats_add(&cnt_free_coherent);
108 amd_iommu_stats_add(&cross_page); 109 amd_iommu_stats_add(&cross_page);
110 amd_iommu_stats_add(&domain_flush_single);
109} 111}
110 112
111#endif 113#endif
@@ -413,6 +415,8 @@ static void iommu_flush_tlb(struct amd_iommu *iommu, u16 domid)
413{ 415{
414 u64 address = CMD_INV_IOMMU_ALL_PAGES_ADDRESS; 416 u64 address = CMD_INV_IOMMU_ALL_PAGES_ADDRESS;
415 417
418 INC_STATS_COUNTER(domain_flush_single);
419
416 iommu_queue_inv_iommu_pages(iommu, address, domid, 0, 1); 420 iommu_queue_inv_iommu_pages(iommu, address, domid, 0, 1);
417} 421}
418 422