* [PATCH 0/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro, alex.williamson, Varun.Sethi, udknight, aik, rostedt,
fweisbec, mingo
Cc: Shuah Khan, linux-kernel, iommu, shuahkhan
This patch set adds iommu_fault class event to iommu trace. iommu_fault class
event can be enabled to trigger when an iommu fault occurs. This trace event
is intended to be called to report the fault information. Trace information
includes driver name, device name, iova, and flags.
iommu_fault:report_fault
This patch set depends on the previous patch set that added iommu tracing
feature. Reference:
http://www.kernelhub.org/?msg=313155&p=2
http://www.kernelhub.org/?msg=313156&p=2
Shuah Khan (2):
iommu: Add iommu_fault class event to iommu trace
iommu: Change iommu driver to call report_fault trace event
drivers/iommu/iommu-traces.c | 3 +++
include/linux/iommu.h | 2 ++
include/trace/events/iommu.h | 33 +++++++++++++++++++++++++++++++++
3 files changed, 38 insertions(+)
--
1.7.10.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 0/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro-zLv9SwRftAIdnm+yROfE0A,
alex.williamson-H+wXaHxf7aLQT0dZR+AlfA,
Varun.Sethi-KZfg59tc24xl57MIdRCFDg,
udknight-Re5JQEeQqe8AvxtiuMwx3w, aik-sLpHqDYs0B2HXe+LvDLADg,
rostedt-nx8X9YLhiw1AfugRpC6u6w, fweisbec-Re5JQEeQqe8AvxtiuMwx3w,
mingo-H+wXaHxf7aLQT0dZR+AlfA
Cc: Shuah Khan, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
shuahkhan-Re5JQEeQqe8AvxtiuMwx3w
This patch set adds iommu_fault class event to iommu trace. iommu_fault class
event can be enabled to trigger when an iommu fault occurs. This trace event
is intended to be called to report the fault information. Trace information
includes driver name, device name, iova, and flags.
iommu_fault:report_fault
This patch set depends on the previous patch set that added iommu tracing
feature. Reference:
http://www.kernelhub.org/?msg=313155&p=2
http://www.kernelhub.org/?msg=313156&p=2
Shuah Khan (2):
iommu: Add iommu_fault class event to iommu trace
iommu: Change iommu driver to call report_fault trace event
drivers/iommu/iommu-traces.c | 3 +++
include/linux/iommu.h | 2 ++
include/trace/events/iommu.h | 33 +++++++++++++++++++++++++++++++++
3 files changed, 38 insertions(+)
--
1.7.10.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro, alex.williamson, Varun.Sethi, udknight, aik, rostedt,
fweisbec, mingo
Cc: Shuah Khan, linux-kernel, iommu, shuahkhan
Add iommu_fault class event can be enabled to trigger when an iommu
fault occurs. This trace event is intended to be called to report the
fault information. Trace information includes driver name, device name,
iova, and flags.
iommu_fault:report_fault
Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
---
drivers/iommu/iommu-traces.c | 3 +++
include/trace/events/iommu.h | 33 +++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/drivers/iommu/iommu-traces.c b/drivers/iommu/iommu-traces.c
index a2af60f..314aa93 100644
--- a/drivers/iommu/iommu-traces.c
+++ b/drivers/iommu/iommu-traces.c
@@ -22,3 +22,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(detach_device_from_domain);
/* iommu_map_unmap */
EXPORT_TRACEPOINT_SYMBOL_GPL(map);
EXPORT_TRACEPOINT_SYMBOL_GPL(unmap);
+
+/* iommu_fault */
+EXPORT_TRACEPOINT_SYMBOL_GPL(report_fault);
diff --git a/include/trace/events/iommu.h b/include/trace/events/iommu.h
index 86bcc5a..74847fb 100644
--- a/include/trace/events/iommu.h
+++ b/include/trace/events/iommu.h
@@ -123,6 +123,39 @@ DEFINE_EVENT_PRINT(iommu_map_unmap, unmap,
__entry->iova, __entry->size
)
);
+
+DECLARE_EVENT_CLASS(iommu_fault,
+
+ TP_PROTO(struct device *dev, unsigned long iova, int flags),
+
+ TP_ARGS(dev, iova, flags),
+
+ TP_STRUCT__entry(
+ __string(device, dev_name(dev))
+ __string(driver, dev_driver_string(dev))
+ __field(u64, iova)
+ __field(int, flags)
+ ),
+
+ TP_fast_assign(
+ __assign_str(device, dev_name(dev));
+ __assign_str(driver, dev_driver_string(dev));
+ __entry->iova = iova;
+ __entry->flags = flags;
+ ),
+
+ TP_printk("IOMMU:%s %s iova=0x%016llx flags=0x%04x",
+ __get_str(driver), __get_str(device),
+ __entry->iova, __entry->flags
+ )
+);
+
+DEFINE_EVENT(iommu_fault, report_fault,
+
+ TP_PROTO(struct device *dev, unsigned long iova, int flags),
+
+ TP_ARGS(dev, iova, flags)
+);
#endif /* _TRACE_IOMMU_H */
/* This part must be outside protection */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro-zLv9SwRftAIdnm+yROfE0A,
alex.williamson-H+wXaHxf7aLQT0dZR+AlfA,
Varun.Sethi-KZfg59tc24xl57MIdRCFDg,
udknight-Re5JQEeQqe8AvxtiuMwx3w, aik-sLpHqDYs0B2HXe+LvDLADg,
rostedt-nx8X9YLhiw1AfugRpC6u6w, fweisbec-Re5JQEeQqe8AvxtiuMwx3w,
mingo-H+wXaHxf7aLQT0dZR+AlfA
Cc: Shuah Khan, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
shuahkhan-Re5JQEeQqe8AvxtiuMwx3w
Add iommu_fault class event can be enabled to trigger when an iommu
fault occurs. This trace event is intended to be called to report the
fault information. Trace information includes driver name, device name,
iova, and flags.
iommu_fault:report_fault
Signed-off-by: Shuah Khan <shuah.kh-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
---
drivers/iommu/iommu-traces.c | 3 +++
include/trace/events/iommu.h | 33 +++++++++++++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/drivers/iommu/iommu-traces.c b/drivers/iommu/iommu-traces.c
index a2af60f..314aa93 100644
--- a/drivers/iommu/iommu-traces.c
+++ b/drivers/iommu/iommu-traces.c
@@ -22,3 +22,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(detach_device_from_domain);
/* iommu_map_unmap */
EXPORT_TRACEPOINT_SYMBOL_GPL(map);
EXPORT_TRACEPOINT_SYMBOL_GPL(unmap);
+
+/* iommu_fault */
+EXPORT_TRACEPOINT_SYMBOL_GPL(report_fault);
diff --git a/include/trace/events/iommu.h b/include/trace/events/iommu.h
index 86bcc5a..74847fb 100644
--- a/include/trace/events/iommu.h
+++ b/include/trace/events/iommu.h
@@ -123,6 +123,39 @@ DEFINE_EVENT_PRINT(iommu_map_unmap, unmap,
__entry->iova, __entry->size
)
);
+
+DECLARE_EVENT_CLASS(iommu_fault,
+
+ TP_PROTO(struct device *dev, unsigned long iova, int flags),
+
+ TP_ARGS(dev, iova, flags),
+
+ TP_STRUCT__entry(
+ __string(device, dev_name(dev))
+ __string(driver, dev_driver_string(dev))
+ __field(u64, iova)
+ __field(int, flags)
+ ),
+
+ TP_fast_assign(
+ __assign_str(device, dev_name(dev));
+ __assign_str(driver, dev_driver_string(dev));
+ __entry->iova = iova;
+ __entry->flags = flags;
+ ),
+
+ TP_printk("IOMMU:%s %s iova=0x%016llx flags=0x%04x",
+ __get_str(driver), __get_str(device),
+ __entry->iova, __entry->flags
+ )
+);
+
+DEFINE_EVENT(iommu_fault, report_fault,
+
+ TP_PROTO(struct device *dev, unsigned long iova, int flags),
+
+ TP_ARGS(dev, iova, flags)
+);
#endif /* _TRACE_IOMMU_H */
/* This part must be outside protection */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] iommu: Change iommu driver to call report_fault trace event
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro, alex.williamson, Varun.Sethi, udknight, aik, rostedt,
fweisbec, mingo
Cc: Shuah Khan, linux-kernel, iommu, shuahkhan
Change iommu driver report_iommu_fault() to call report_fault trace event.
This iommu_fault class event can be enabled to trigger when an iommu fault
occurs. Trace information includes driver name, device name, iova, and flags.
Testing:
Added trace calls to iommu_prepare_identity_map() for testing some of the
conditions that are hard to trigger. Here is the trace from the testing:
swapper/0-1 [003] .... 1.926331: report_fault: IOMMU:pci 0000:00:1d.0 iova=0x00000000cadc6000 flags=0x0001
Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
---
include/linux/iommu.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 3aeb730..9d1c051 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -22,6 +22,7 @@
#include <linux/errno.h>
#include <linux/err.h>
#include <linux/types.h>
+#include <trace/events/iommu.h>
#define IOMMU_READ (1)
#define IOMMU_WRITE (2)
@@ -211,6 +212,7 @@ static inline int report_iommu_fault(struct iommu_domain *domain,
ret = domain->handler(domain, dev, iova, flags,
domain->handler_token);
+ trace_report_fault(dev, iova, flags);
return ret;
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] iommu: Change iommu driver to call report_fault trace event
@ 2013-08-16 17:20 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-08-16 17:20 UTC (permalink / raw)
To: joro-zLv9SwRftAIdnm+yROfE0A,
alex.williamson-H+wXaHxf7aLQT0dZR+AlfA,
Varun.Sethi-KZfg59tc24xl57MIdRCFDg,
udknight-Re5JQEeQqe8AvxtiuMwx3w, aik-sLpHqDYs0B2HXe+LvDLADg,
rostedt-nx8X9YLhiw1AfugRpC6u6w, fweisbec-Re5JQEeQqe8AvxtiuMwx3w,
mingo-H+wXaHxf7aLQT0dZR+AlfA
Cc: Shuah Khan, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
shuahkhan-Re5JQEeQqe8AvxtiuMwx3w
Change iommu driver report_iommu_fault() to call report_fault trace event.
This iommu_fault class event can be enabled to trigger when an iommu fault
occurs. Trace information includes driver name, device name, iova, and flags.
Testing:
Added trace calls to iommu_prepare_identity_map() for testing some of the
conditions that are hard to trigger. Here is the trace from the testing:
swapper/0-1 [003] .... 1.926331: report_fault: IOMMU:pci 0000:00:1d.0 iova=0x00000000cadc6000 flags=0x0001
Signed-off-by: Shuah Khan <shuah.kh-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
---
include/linux/iommu.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index 3aeb730..9d1c051 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -22,6 +22,7 @@
#include <linux/errno.h>
#include <linux/err.h>
#include <linux/types.h>
+#include <trace/events/iommu.h>
#define IOMMU_READ (1)
#define IOMMU_WRITE (2)
@@ -211,6 +212,7 @@ static inline int report_iommu_fault(struct iommu_domain *domain,
ret = domain->handler(domain, dev, iova, flags,
domain->handler_token);
+ trace_report_fault(dev, iova, flags);
return ret;
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-09-24 10:48 ` Joerg Roedel
0 siblings, 0 replies; 10+ messages in thread
From: Joerg Roedel @ 2013-09-24 10:48 UTC (permalink / raw)
To: Shuah Khan
Cc: alex.williamson, Varun.Sethi, udknight, aik, rostedt, fweisbec,
mingo, linux-kernel, iommu, shuahkhan
On Fri, Aug 16, 2013 at 11:20:16AM -0600, Shuah Khan wrote:
> +DEFINE_EVENT(iommu_fault, report_fault,
> +
> + TP_PROTO(struct device *dev, unsigned long iova, int flags),
> +
> + TP_ARGS(dev, iova, flags)
> +);
I am not entirely happy with the naming. It is better to name the class
iommu_error and the page-fault event io_page_fault. This makes it more
clear what kind of fault it is.
Joerg
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-09-24 10:48 ` Joerg Roedel
0 siblings, 0 replies; 10+ messages in thread
From: Joerg Roedel @ 2013-09-24 10:48 UTC (permalink / raw)
To: Shuah Khan
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
aik-sLpHqDYs0B2HXe+LvDLADg, fweisbec-Re5JQEeQqe8AvxtiuMwx3w,
udknight-Re5JQEeQqe8AvxtiuMwx3w, rostedt-nx8X9YLhiw1AfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
mingo-H+wXaHxf7aLQT0dZR+AlfA, shuahkhan-Re5JQEeQqe8AvxtiuMwx3w,
Varun.Sethi-KZfg59tc24xl57MIdRCFDg
On Fri, Aug 16, 2013 at 11:20:16AM -0600, Shuah Khan wrote:
> +DEFINE_EVENT(iommu_fault, report_fault,
> +
> + TP_PROTO(struct device *dev, unsigned long iova, int flags),
> +
> + TP_ARGS(dev, iova, flags)
> +);
I am not entirely happy with the naming. It is better to name the class
iommu_error and the page-fault event io_page_fault. This makes it more
clear what kind of fault it is.
Joerg
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-09-24 12:39 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-09-24 12:39 UTC (permalink / raw)
To: Joerg Roedel
Cc: alex.williamson, Varun.Sethi, udknight, aik, rostedt, fweisbec,
mingo, linux-kernel, iommu, shuahkhan, Shuah Khan
On 09/24/2013 04:48 AM, Joerg Roedel wrote:
> On Fri, Aug 16, 2013 at 11:20:16AM -0600, Shuah Khan wrote:
>> +DEFINE_EVENT(iommu_fault, report_fault,
>> +
>> + TP_PROTO(struct device *dev, unsigned long iova, int flags),
>> +
>> + TP_ARGS(dev, iova, flags)
>> +);
>
> I am not entirely happy with the naming. It is better to name the class
> iommu_error and the page-fault event io_page_fault. This makes it more
> clear what kind of fault it is.
>
>
> Joerg
>
>
Joerg,
Yes, iommu_error and io_page_fault sounds better. I will rename and send
the updated patch.
-- Shuah
--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah.kh@samsung.com | (970) 672-0658
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] iommu: Add iommu_fault class event to iommu trace
@ 2013-09-24 12:39 ` Shuah Khan
0 siblings, 0 replies; 10+ messages in thread
From: Shuah Khan @ 2013-09-24 12:39 UTC (permalink / raw)
To: Joerg Roedel
Cc: Shuah Khan, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
aik-sLpHqDYs0B2HXe+LvDLADg, fweisbec-Re5JQEeQqe8AvxtiuMwx3w,
udknight-Re5JQEeQqe8AvxtiuMwx3w, rostedt-nx8X9YLhiw1AfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
mingo-H+wXaHxf7aLQT0dZR+AlfA, shuahkhan-Re5JQEeQqe8AvxtiuMwx3w,
Varun.Sethi-KZfg59tc24xl57MIdRCFDg
On 09/24/2013 04:48 AM, Joerg Roedel wrote:
> On Fri, Aug 16, 2013 at 11:20:16AM -0600, Shuah Khan wrote:
>> +DEFINE_EVENT(iommu_fault, report_fault,
>> +
>> + TP_PROTO(struct device *dev, unsigned long iova, int flags),
>> +
>> + TP_ARGS(dev, iova, flags)
>> +);
>
> I am not entirely happy with the naming. It is better to name the class
> iommu_error and the page-fault event io_page_fault. This makes it more
> clear what kind of fault it is.
>
>
> Joerg
>
>
Joerg,
Yes, iommu_error and io_page_fault sounds better. I will rename and send
the updated patch.
-- Shuah
--
Shuah Khan
Senior Linux Kernel Developer - Open Source Group
Samsung Research America(Silicon Valley)
shuah.kh-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org | (970) 672-0658
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-09-24 12:40 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-16 17:20 [PATCH 0/2] iommu: Add iommu_fault class event to iommu trace Shuah Khan
2013-08-16 17:20 ` Shuah Khan
2013-08-16 17:20 ` [PATCH 1/2] " Shuah Khan
2013-08-16 17:20 ` Shuah Khan
2013-09-24 10:48 ` Joerg Roedel
2013-09-24 10:48 ` Joerg Roedel
2013-09-24 12:39 ` Shuah Khan
2013-09-24 12:39 ` Shuah Khan
2013-08-16 17:20 ` [PATCH 2/2] iommu: Change iommu driver to call report_fault trace event Shuah Khan
2013-08-16 17:20 ` Shuah Khan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.