| .. | .. |
|---|
| 54 | 54 | #include <rdma/rdma_vt.h> |
|---|
| 55 | 55 | #include <rdma/rdmavt_mr.h> |
|---|
| 56 | 56 | |
|---|
| 57 | +#include "mr.h" |
|---|
| 58 | + |
|---|
| 57 | 59 | #undef TRACE_SYSTEM |
|---|
| 58 | 60 | #define TRACE_SYSTEM rvt_mr |
|---|
| 59 | 61 | DECLARE_EVENT_CLASS( |
|---|
| .. | .. |
|---|
| 64 | 66 | RDI_DEV_ENTRY(ib_to_rvt(mr->pd->device)) |
|---|
| 65 | 67 | __field(void *, vaddr) |
|---|
| 66 | 68 | __field(struct page *, page) |
|---|
| 69 | + __field(u64, iova) |
|---|
| 70 | + __field(u64, user_base) |
|---|
| 67 | 71 | __field(size_t, len) |
|---|
| 72 | + __field(size_t, length) |
|---|
| 68 | 73 | __field(u32, lkey) |
|---|
| 74 | + __field(u32, offset) |
|---|
| 69 | 75 | __field(u16, m) |
|---|
| 70 | 76 | __field(u16, n) |
|---|
| 71 | 77 | ), |
|---|
| .. | .. |
|---|
| 73 | 79 | RDI_DEV_ASSIGN(ib_to_rvt(mr->pd->device)); |
|---|
| 74 | 80 | __entry->vaddr = v; |
|---|
| 75 | 81 | __entry->page = virt_to_page(v); |
|---|
| 82 | + __entry->iova = mr->iova; |
|---|
| 83 | + __entry->user_base = mr->user_base; |
|---|
| 84 | + __entry->lkey = mr->lkey; |
|---|
| 76 | 85 | __entry->m = m; |
|---|
| 77 | 86 | __entry->n = n; |
|---|
| 78 | 87 | __entry->len = len; |
|---|
| 88 | + __entry->length = mr->length; |
|---|
| 89 | + __entry->offset = mr->offset; |
|---|
| 79 | 90 | ), |
|---|
| 80 | 91 | TP_printk( |
|---|
| 81 | | - "[%s] vaddr %p page %p m %u n %u len %ld", |
|---|
| 92 | + "[%s] lkey %x iova %llx user_base %llx mr_len %lu vaddr %llx page %p m %u n %u len %lu off %u", |
|---|
| 82 | 93 | __get_str(dev), |
|---|
| 83 | | - __entry->vaddr, |
|---|
| 94 | + __entry->lkey, |
|---|
| 95 | + __entry->iova, |
|---|
| 96 | + __entry->user_base, |
|---|
| 97 | + __entry->length, |
|---|
| 98 | + (unsigned long long)__entry->vaddr, |
|---|
| 84 | 99 | __entry->page, |
|---|
| 85 | 100 | __entry->m, |
|---|
| 86 | 101 | __entry->n, |
|---|
| 87 | | - __entry->len |
|---|
| 102 | + __entry->len, |
|---|
| 103 | + __entry->offset |
|---|
| 88 | 104 | ) |
|---|
| 89 | 105 | ); |
|---|
| 90 | 106 | |
|---|
| .. | .. |
|---|
| 165 | 181 | TP_PROTO(struct rvt_sge *sge, struct ib_sge *isge), |
|---|
| 166 | 182 | TP_ARGS(sge, isge)); |
|---|
| 167 | 183 | |
|---|
| 184 | +TRACE_EVENT( |
|---|
| 185 | + rvt_map_mr_sg, |
|---|
| 186 | + TP_PROTO(struct ib_mr *ibmr, int sg_nents, unsigned int *sg_offset), |
|---|
| 187 | + TP_ARGS(ibmr, sg_nents, sg_offset), |
|---|
| 188 | + TP_STRUCT__entry( |
|---|
| 189 | + RDI_DEV_ENTRY(ib_to_rvt(to_imr(ibmr)->mr.pd->device)) |
|---|
| 190 | + __field(u64, iova) |
|---|
| 191 | + __field(u64, ibmr_iova) |
|---|
| 192 | + __field(u64, user_base) |
|---|
| 193 | + __field(u64, ibmr_length) |
|---|
| 194 | + __field(int, sg_nents) |
|---|
| 195 | + __field(uint, sg_offset) |
|---|
| 196 | + ), |
|---|
| 197 | + TP_fast_assign( |
|---|
| 198 | + RDI_DEV_ASSIGN(ib_to_rvt(to_imr(ibmr)->mr.pd->device)) |
|---|
| 199 | + __entry->ibmr_iova = ibmr->iova; |
|---|
| 200 | + __entry->iova = to_imr(ibmr)->mr.iova; |
|---|
| 201 | + __entry->user_base = to_imr(ibmr)->mr.user_base; |
|---|
| 202 | + __entry->ibmr_length = to_imr(ibmr)->mr.length; |
|---|
| 203 | + __entry->sg_nents = sg_nents; |
|---|
| 204 | + __entry->sg_offset = sg_offset ? *sg_offset : 0; |
|---|
| 205 | + ), |
|---|
| 206 | + TP_printk( |
|---|
| 207 | + "[%s] ibmr_iova %llx iova %llx user_base %llx length %llx sg_nents %d sg_offset %u", |
|---|
| 208 | + __get_str(dev), |
|---|
| 209 | + __entry->ibmr_iova, |
|---|
| 210 | + __entry->iova, |
|---|
| 211 | + __entry->user_base, |
|---|
| 212 | + __entry->ibmr_length, |
|---|
| 213 | + __entry->sg_nents, |
|---|
| 214 | + __entry->sg_offset |
|---|
| 215 | + ) |
|---|
| 216 | +); |
|---|
| 217 | + |
|---|
| 168 | 218 | #endif /* __RVT_TRACE_MR_H */ |
|---|
| 169 | 219 | |
|---|
| 170 | 220 | #undef TRACE_INCLUDE_PATH |
|---|