Loading drivers/iommu/amd_iommu.c +17 −0 Original line number Diff line number Diff line Loading @@ -359,6 +359,11 @@ DECLARE_STATS_COUNTER(domain_flush_single); DECLARE_STATS_COUNTER(domain_flush_all); DECLARE_STATS_COUNTER(alloced_io_mem); DECLARE_STATS_COUNTER(total_map_requests); DECLARE_STATS_COUNTER(complete_ppr); DECLARE_STATS_COUNTER(invalidate_iotlb); DECLARE_STATS_COUNTER(invalidate_iotlb_all); DECLARE_STATS_COUNTER(pri_requests); static struct dentry *stats_dir; static struct dentry *de_fflush; Loading Loading @@ -393,6 +398,10 @@ static void amd_iommu_stats_init(void) amd_iommu_stats_add(&domain_flush_all); amd_iommu_stats_add(&alloced_io_mem); amd_iommu_stats_add(&total_map_requests); amd_iommu_stats_add(&complete_ppr); amd_iommu_stats_add(&invalidate_iotlb); amd_iommu_stats_add(&invalidate_iotlb_all); amd_iommu_stats_add(&pri_requests); } #endif Loading Loading @@ -509,6 +518,8 @@ static void iommu_handle_ppr_entry(struct amd_iommu *iommu, u32 head) volatile u64 *raw; int i; INC_STATS_COUNTER(pri_requests); raw = (u64 *)(iommu->ppr_log + head); /* Loading Loading @@ -3356,6 +3367,8 @@ static int __flush_pasid(struct protection_domain *domain, int pasid, static int __amd_iommu_flush_page(struct protection_domain *domain, int pasid, u64 address) { INC_STATS_COUNTER(invalidate_iotlb); return __flush_pasid(domain, pasid, address, false); } Loading @@ -3376,6 +3389,8 @@ EXPORT_SYMBOL(amd_iommu_flush_page); static int __amd_iommu_flush_tlb(struct protection_domain *domain, int pasid) { INC_STATS_COUNTER(invalidate_iotlb_all); return __flush_pasid(domain, pasid, CMD_INV_IOMMU_ALL_PAGES_ADDRESS, true); } Loading Loading @@ -3495,6 +3510,8 @@ int amd_iommu_complete_ppr(struct pci_dev *pdev, int pasid, struct amd_iommu *iommu; struct iommu_cmd cmd; INC_STATS_COUNTER(complete_ppr); dev_data = get_dev_data(&pdev->dev); iommu = amd_iommu_rlookup_table[dev_data->devid]; Loading Loading
drivers/iommu/amd_iommu.c +17 −0 Original line number Diff line number Diff line Loading @@ -359,6 +359,11 @@ DECLARE_STATS_COUNTER(domain_flush_single); DECLARE_STATS_COUNTER(domain_flush_all); DECLARE_STATS_COUNTER(alloced_io_mem); DECLARE_STATS_COUNTER(total_map_requests); DECLARE_STATS_COUNTER(complete_ppr); DECLARE_STATS_COUNTER(invalidate_iotlb); DECLARE_STATS_COUNTER(invalidate_iotlb_all); DECLARE_STATS_COUNTER(pri_requests); static struct dentry *stats_dir; static struct dentry *de_fflush; Loading Loading @@ -393,6 +398,10 @@ static void amd_iommu_stats_init(void) amd_iommu_stats_add(&domain_flush_all); amd_iommu_stats_add(&alloced_io_mem); amd_iommu_stats_add(&total_map_requests); amd_iommu_stats_add(&complete_ppr); amd_iommu_stats_add(&invalidate_iotlb); amd_iommu_stats_add(&invalidate_iotlb_all); amd_iommu_stats_add(&pri_requests); } #endif Loading Loading @@ -509,6 +518,8 @@ static void iommu_handle_ppr_entry(struct amd_iommu *iommu, u32 head) volatile u64 *raw; int i; INC_STATS_COUNTER(pri_requests); raw = (u64 *)(iommu->ppr_log + head); /* Loading Loading @@ -3356,6 +3367,8 @@ static int __flush_pasid(struct protection_domain *domain, int pasid, static int __amd_iommu_flush_page(struct protection_domain *domain, int pasid, u64 address) { INC_STATS_COUNTER(invalidate_iotlb); return __flush_pasid(domain, pasid, address, false); } Loading @@ -3376,6 +3389,8 @@ EXPORT_SYMBOL(amd_iommu_flush_page); static int __amd_iommu_flush_tlb(struct protection_domain *domain, int pasid) { INC_STATS_COUNTER(invalidate_iotlb_all); return __flush_pasid(domain, pasid, CMD_INV_IOMMU_ALL_PAGES_ADDRESS, true); } Loading Loading @@ -3495,6 +3510,8 @@ int amd_iommu_complete_ppr(struct pci_dev *pdev, int pasid, struct amd_iommu *iommu; struct iommu_cmd cmd; INC_STATS_COUNTER(complete_ppr); dev_data = get_dev_data(&pdev->dev); iommu = amd_iommu_rlookup_table[dev_data->devid]; Loading