diff options
author | Shuah Khan <shuah.kh@samsung.com> | 2013-08-15 13:59:23 -0400 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2013-09-24 06:35:24 -0400 |
commit | 7f6db1717235bd45d265766dad53c10d30899d41 (patch) | |
tree | bee0c7f789d27258e61f795631243bf971c0132e /drivers | |
parent | 4a10c2ac2f368583138b774ca41fac4207911983 (diff) |
iommu: Add event tracing feature to iommu
Add tracing feature to iommu to report various iommu events. Classes
iommu_group, iommu_device, and iommu_map_unmap are defined.
iommu_group class events can be enabled to trigger when devices get added
to and removed from an iommu group. Trace information includes iommu group
id and device name.
iommu:add_device_to_group
iommu:remove_device_from_group
iommu_device class events can be enabled to trigger when devices are attached
to and detached from a domain. Trace information includes device name.
iommu:attach_device_to_domain
iommu:detach_device_from_domain
iommu_map_unmap class events can be enabled to trigger when iommu map and
unmap iommu ops. Trace information includes iova, physical address (map event
only), and size.
iommu:map
iommu:unmap
Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/iommu/Makefile | 1 | ||||
-rw-r--r-- | drivers/iommu/iommu-traces.c | 24 | ||||
-rw-r--r-- | drivers/iommu/iommu.c | 1 |
3 files changed, 26 insertions, 0 deletions
diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile index 14c1f474cf11..5d58bf16e9e3 100644 --- a/drivers/iommu/Makefile +++ b/drivers/iommu/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | obj-$(CONFIG_IOMMU_API) += iommu.o | 1 | obj-$(CONFIG_IOMMU_API) += iommu.o |
2 | obj-$(CONFIG_IOMMU_API) += iommu-traces.o | ||
2 | obj-$(CONFIG_OF_IOMMU) += of_iommu.o | 3 | obj-$(CONFIG_OF_IOMMU) += of_iommu.o |
3 | obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o | 4 | obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o |
4 | obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o | 5 | obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o |
diff --git a/drivers/iommu/iommu-traces.c b/drivers/iommu/iommu-traces.c new file mode 100644 index 000000000000..a2af60f31810 --- /dev/null +++ b/drivers/iommu/iommu-traces.c | |||
@@ -0,0 +1,24 @@ | |||
1 | /* | ||
2 | * iommu trace points | ||
3 | * | ||
4 | * Copyright (C) 2013 Shuah Khan <shuah.kh@samsung.com> | ||
5 | * | ||
6 | */ | ||
7 | |||
8 | #include <linux/string.h> | ||
9 | #include <linux/types.h> | ||
10 | |||
11 | #define CREATE_TRACE_POINTS | ||
12 | #include <trace/events/iommu.h> | ||
13 | |||
14 | /* iommu_group_event */ | ||
15 | EXPORT_TRACEPOINT_SYMBOL_GPL(add_device_to_group); | ||
16 | EXPORT_TRACEPOINT_SYMBOL_GPL(remove_device_from_group); | ||
17 | |||
18 | /* iommu_device_event */ | ||
19 | EXPORT_TRACEPOINT_SYMBOL_GPL(attach_device_to_domain); | ||
20 | EXPORT_TRACEPOINT_SYMBOL_GPL(detach_device_from_domain); | ||
21 | |||
22 | /* iommu_map_unmap */ | ||
23 | EXPORT_TRACEPOINT_SYMBOL_GPL(map); | ||
24 | EXPORT_TRACEPOINT_SYMBOL_GPL(unmap); | ||
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index fbe9ca734f8f..58f6a16b2e1a 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/idr.h> | 29 | #include <linux/idr.h> |
30 | #include <linux/notifier.h> | 30 | #include <linux/notifier.h> |
31 | #include <linux/err.h> | 31 | #include <linux/err.h> |
32 | #include <trace/events/iommu.h> | ||
32 | 33 | ||
33 | static struct kset *iommu_group_kset; | 34 | static struct kset *iommu_group_kset; |
34 | static struct ida iommu_group_ida; | 35 | static struct ida iommu_group_ida; |