提交 da8b1374 编写于 作者: J Jacob Pan 提交者: Xie XiuQi

trace/iommu: add sva trace events

hulk inclusion
category: feature
bugzilla: 14369
CVE: NA
-------------------
Signed-off-by: NJacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: NFang Lijun <fanglijun3@huawei.com>
Reviewed-by: NHanjun Guo <guohanjun@huawei.com>
Reviewed-by: NZhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 eb4c8a49
......@@ -12,6 +12,8 @@
#define _TRACE_IOMMU_H
#include <linux/tracepoint.h>
#include <linux/iommu.h>
#include <uapi/linux/iommu.h>
struct device;
......@@ -161,6 +163,116 @@ DEFINE_EVENT(iommu_error, io_page_fault,
TP_ARGS(dev, iova, flags)
);
TRACE_EVENT(dev_fault,
TP_PROTO(struct device *dev, struct iommu_fault_event *evt),
TP_ARGS(dev, evt),
TP_STRUCT__entry(
__string(device, dev_name(dev))
__field(int, type)
__field(int, reason)
__field(u64, addr)
__field(u32, pasid)
__field(u32, pgid)
__field(u32, last_req)
__field(u32, prot)
),
TP_fast_assign(
__assign_str(device, dev_name(dev));
__entry->type = evt->type;
__entry->reason = evt->reason;
__entry->addr = evt->addr;
__entry->pasid = evt->pasid;
__entry->pgid = evt->page_req_group_id;
__entry->last_req = evt->last_req;
__entry->prot = evt->prot;
),
TP_printk("IOMMU:%s type=%d reason=%d addr=0x%016llx pasid=%d group=%d last=%d prot=%d",
__get_str(device),
__entry->type,
__entry->reason,
__entry->addr,
__entry->pasid,
__entry->pgid,
__entry->last_req,
__entry->prot
)
);
TRACE_EVENT(dev_page_response,
TP_PROTO(struct device *dev, struct page_response_msg *msg),
TP_ARGS(dev, msg),
TP_STRUCT__entry(
__string(device, dev_name(dev))
__field(int, code)
__field(u64, addr)
__field(u32, pasid)
__field(u32, pgid)
),
TP_fast_assign(
__assign_str(device, dev_name(dev));
__entry->code = msg->resp_code;
__entry->addr = msg->addr;
__entry->pasid = msg->pasid;
__entry->pgid = msg->page_req_group_id;
),
TP_printk("IOMMU:%s code=%d addr=0x%016llx pasid=%d group=%d",
__get_str(device),
__entry->code,
__entry->addr,
__entry->pasid,
__entry->pgid
)
);
TRACE_EVENT(sva_invalidate,
TP_PROTO(struct device *dev, struct tlb_invalidate_info *ti),
TP_ARGS(dev, ti),
TP_STRUCT__entry(
__string(device, dev_name(dev))
__field(int, type)
__field(u32, granu)
__field(u32, flags)
__field(u8, size)
__field(u32, pasid)
__field(u64, addr)
),
TP_fast_assign(
__assign_str(device, dev_name(dev));
__entry->type = ti->hdr.type;
__entry->flags = ti->flags;
__entry->granu = ti->granularity;
__entry->size = ti->size;
__entry->pasid = ti->pasid;
__entry->addr = ti->addr;
),
TP_printk("IOMMU:%s type=%d flags=0x%08x granu=%d size=%d pasid=%d addr=0x%016llx",
__get_str(device),
__entry->type,
__entry->flags,
__entry->granu,
__entry->size,
__entry->pasid,
__entry->addr
)
);
#endif /* _TRACE_IOMMU_H */
/* This part must be outside protection */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册