2021-08-23 12:26:22 +08:00
/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
2016-07-01 16:01:06 -07:00
/*
2020-05-11 12:07:01 -04:00
* Copyright ( c ) 2015 - 2020 Intel Corporation .
2016-07-01 16:01:06 -07:00
*/
2021-08-23 12:26:22 +08:00
2016-07-01 16:01:06 -07:00
# if !defined(__HFI1_TRACE_CTXTS_H) || defined(TRACE_HEADER_MULTI_READ)
# define __HFI1_TRACE_CTXTS_H
# include <linux/tracepoint.h>
# include <linux/trace_seq.h>
# include "hfi.h"
# undef TRACE_SYSTEM
# define TRACE_SYSTEM hfi1_ctxts
# define UCTXT_FMT \
2016-07-01 16:01:11 -07:00
" cred:%u, credaddr:0x%llx, piobase:0x%p, rcvhdr_cnt:%u, " \
2017-05-04 05:15:09 -07:00
" rcvbase:0x%llx, rcvegrc:%u, rcvegrb:0x%llx, subctxt_cnt:%u "
2016-07-01 16:01:06 -07:00
TRACE_EVENT ( hfi1_uctxtdata ,
2017-05-04 05:15:09 -07:00
TP_PROTO ( struct hfi1_devdata * dd , struct hfi1_ctxtdata * uctxt ,
unsigned int subctxt ) ,
TP_ARGS ( dd , uctxt , subctxt ) ,
2016-07-01 16:01:06 -07:00
TP_STRUCT__entry ( DD_DEV_ENTRY ( dd )
__field ( unsigned int , ctxt )
2017-05-04 05:15:09 -07:00
__field ( unsigned int , subctxt )
2016-07-01 16:01:06 -07:00
__field ( u32 , credits )
__field ( u64 , hw_free )
2016-07-01 16:01:11 -07:00
__field ( void __iomem * , piobase )
2016-07-01 16:01:06 -07:00
__field ( u16 , rcvhdrq_cnt )
2016-09-06 04:35:54 -07:00
__field ( u64 , rcvhdrq_dma )
2016-07-01 16:01:06 -07:00
__field ( u32 , eager_cnt )
2016-09-06 04:35:54 -07:00
__field ( u64 , rcvegr_dma )
2017-05-04 05:15:09 -07:00
__field ( unsigned int , subctxt_cnt )
2016-07-01 16:01:06 -07:00
) ,
TP_fast_assign ( DD_DEV_ASSIGN ( dd ) ;
__entry - > ctxt = uctxt - > ctxt ;
2017-05-04 05:15:09 -07:00
__entry - > subctxt = subctxt ;
2016-07-01 16:01:06 -07:00
__entry - > credits = uctxt - > sc - > credits ;
2016-07-01 16:01:11 -07:00
__entry - > hw_free = le64_to_cpu ( * uctxt - > sc - > hw_free ) ;
__entry - > piobase = uctxt - > sc - > base_addr ;
2019-12-19 16:19:22 -05:00
__entry - > rcvhdrq_cnt = get_hdrq_cnt ( uctxt ) ;
2016-09-06 04:35:54 -07:00
__entry - > rcvhdrq_dma = uctxt - > rcvhdrq_dma ;
2016-07-01 16:01:06 -07:00
__entry - > eager_cnt = uctxt - > egrbufs . alloced ;
2016-09-06 04:35:54 -07:00
__entry - > rcvegr_dma = uctxt - > egrbufs . rcvtids [ 0 ] . dma ;
2017-05-04 05:15:09 -07:00
__entry - > subctxt_cnt = uctxt - > subctxt_cnt ;
2016-07-01 16:01:06 -07:00
) ,
2017-05-04 05:15:09 -07:00
TP_printk ( " [%s] ctxt %u:%u " UCTXT_FMT ,
2016-07-01 16:01:06 -07:00
__get_str ( dev ) ,
__entry - > ctxt ,
2017-05-04 05:15:09 -07:00
__entry - > subctxt ,
2016-07-01 16:01:06 -07:00
__entry - > credits ,
__entry - > hw_free ,
__entry - > piobase ,
__entry - > rcvhdrq_cnt ,
2016-09-06 04:35:54 -07:00
__entry - > rcvhdrq_dma ,
2016-07-01 16:01:06 -07:00
__entry - > eager_cnt ,
2017-05-04 05:15:09 -07:00
__entry - > rcvegr_dma ,
__entry - > subctxt_cnt
2016-07-01 16:01:06 -07:00
)
) ;
# define CINFO_FMT \
" egrtids:%u, egr_size:%u, hdrq_cnt:%u, hdrq_size:%u, sdma_ring_size:%u "
TRACE_EVENT ( hfi1_ctxt_info ,
TP_PROTO ( struct hfi1_devdata * dd , unsigned int ctxt ,
unsigned int subctxt ,
2018-03-28 12:05:32 -07:00
struct hfi1_ctxt_info * cinfo ) ,
2016-07-01 16:01:06 -07:00
TP_ARGS ( dd , ctxt , subctxt , cinfo ) ,
TP_STRUCT__entry ( DD_DEV_ENTRY ( dd )
__field ( unsigned int , ctxt )
__field ( unsigned int , subctxt )
__field ( u16 , egrtids )
__field ( u16 , rcvhdrq_cnt )
__field ( u16 , rcvhdrq_size )
__field ( u16 , sdma_ring_size )
__field ( u32 , rcvegr_size )
) ,
TP_fast_assign ( DD_DEV_ASSIGN ( dd ) ;
__entry - > ctxt = ctxt ;
__entry - > subctxt = subctxt ;
2018-03-28 12:05:32 -07:00
__entry - > egrtids = cinfo - > egrtids ;
__entry - > rcvhdrq_cnt = cinfo - > rcvhdrq_cnt ;
__entry - > rcvhdrq_size = cinfo - > rcvhdrq_entsize ;
__entry - > sdma_ring_size = cinfo - > sdma_ring_size ;
__entry - > rcvegr_size = cinfo - > rcvegr_size ;
2016-07-01 16:01:06 -07:00
) ,
TP_printk ( " [%s] ctxt %u:%u " CINFO_FMT ,
__get_str ( dev ) ,
__entry - > ctxt ,
__entry - > subctxt ,
__entry - > egrtids ,
__entry - > rcvegr_size ,
__entry - > rcvhdrq_cnt ,
__entry - > rcvhdrq_size ,
__entry - > sdma_ring_size
)
) ;
2020-05-11 12:07:01 -04:00
const char * hfi1_trace_print_rsm_hist ( struct trace_seq * p , unsigned int ctxt ) ;
TRACE_EVENT ( ctxt_rsm_hist ,
TP_PROTO ( unsigned int ctxt ) ,
TP_ARGS ( ctxt ) ,
TP_STRUCT__entry ( __field ( unsigned int , ctxt ) ) ,
TP_fast_assign ( __entry - > ctxt = ctxt ; ) ,
TP_printk ( " %s " , hfi1_trace_print_rsm_hist ( p , __entry - > ctxt ) )
) ;
2016-07-01 16:01:06 -07:00
# endif /* __HFI1_TRACE_CTXTS_H */
# undef TRACE_INCLUDE_PATH
# undef TRACE_INCLUDE_FILE
# define TRACE_INCLUDE_PATH .
# define TRACE_INCLUDE_FILE trace_ctxts
# include <trace/define_trace.h>