135 lines
		
	
	
	
		
			3.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			135 lines
		
	
	
	
		
			3.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #undef TRACE_SYSTEM
 | ||
|  | #define TRACE_SYSTEM random
 | ||
|  | 
 | ||
|  | #if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
 | ||
|  | #define _TRACE_RANDOM_H
 | ||
|  | 
 | ||
|  | #include <linux/writeback.h>
 | ||
|  | #include <linux/tracepoint.h>
 | ||
|  | 
 | ||
|  | DECLARE_EVENT_CLASS(random__mix_pool_bytes, | ||
|  | 	TP_PROTO(const char *pool_name, int bytes, unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, bytes, IP), | ||
|  | 
 | ||
|  | 	TP_STRUCT__entry( | ||
|  | 		__field( const char *,	pool_name		) | ||
|  | 		__field(	  int,	bytes			) | ||
|  | 		__field(unsigned long,	IP			) | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_fast_assign( | ||
|  | 		__entry->pool_name	= pool_name; | ||
|  | 		__entry->bytes		= bytes; | ||
|  | 		__entry->IP		= IP; | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_printk("%s pool: bytes %d caller %pF", | ||
|  | 		  __entry->pool_name, __entry->bytes, (void *)__entry->IP) | ||
|  | ); | ||
|  | 
 | ||
|  | DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes, | ||
|  | 	TP_PROTO(const char *pool_name, int bytes, unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, bytes, IP) | ||
|  | ); | ||
|  | 
 | ||
|  | DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock, | ||
|  | 	TP_PROTO(const char *pool_name, int bytes, unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, bytes, IP) | ||
|  | ); | ||
|  | 
 | ||
|  | TRACE_EVENT(credit_entropy_bits, | ||
|  | 	TP_PROTO(const char *pool_name, int bits, int entropy_count, | ||
|  | 		 int entropy_total, unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP), | ||
|  | 
 | ||
|  | 	TP_STRUCT__entry( | ||
|  | 		__field( const char *,	pool_name		) | ||
|  | 		__field(	  int,	bits			) | ||
|  | 		__field(	  int,	entropy_count		) | ||
|  | 		__field(	  int,	entropy_total		) | ||
|  | 		__field(unsigned long,	IP			) | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_fast_assign( | ||
|  | 		__entry->pool_name	= pool_name; | ||
|  | 		__entry->bits		= bits; | ||
|  | 		__entry->entropy_count	= entropy_count; | ||
|  | 		__entry->entropy_total	= entropy_total; | ||
|  | 		__entry->IP		= IP; | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_printk("%s pool: bits %d entropy_count %d entropy_total %d " | ||
|  | 		  "caller %pF", __entry->pool_name, __entry->bits, | ||
|  | 		  __entry->entropy_count, __entry->entropy_total, | ||
|  | 		  (void *)__entry->IP) | ||
|  | ); | ||
|  | 
 | ||
|  | TRACE_EVENT(get_random_bytes, | ||
|  | 	TP_PROTO(int nbytes, unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(nbytes, IP), | ||
|  | 
 | ||
|  | 	TP_STRUCT__entry( | ||
|  | 		__field(	  int,	nbytes			) | ||
|  | 		__field(unsigned long,	IP			) | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_fast_assign( | ||
|  | 		__entry->nbytes		= nbytes; | ||
|  | 		__entry->IP		= IP; | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) | ||
|  | ); | ||
|  | 
 | ||
|  | DECLARE_EVENT_CLASS(random__extract_entropy, | ||
|  | 	TP_PROTO(const char *pool_name, int nbytes, int entropy_count, | ||
|  | 		 unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, nbytes, entropy_count, IP), | ||
|  | 
 | ||
|  | 	TP_STRUCT__entry( | ||
|  | 		__field( const char *,	pool_name		) | ||
|  | 		__field(	  int,	nbytes			) | ||
|  | 		__field(	  int,	entropy_count		) | ||
|  | 		__field(unsigned long,	IP			) | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_fast_assign( | ||
|  | 		__entry->pool_name	= pool_name; | ||
|  | 		__entry->nbytes		= nbytes; | ||
|  | 		__entry->entropy_count	= entropy_count; | ||
|  | 		__entry->IP		= IP; | ||
|  | 	), | ||
|  | 
 | ||
|  | 	TP_printk("%s pool: nbytes %d entropy_count %d caller %pF", | ||
|  | 		  __entry->pool_name, __entry->nbytes, __entry->entropy_count, | ||
|  | 		  (void *)__entry->IP) | ||
|  | ); | ||
|  | 
 | ||
|  | 
 | ||
|  | DEFINE_EVENT(random__extract_entropy, extract_entropy, | ||
|  | 	TP_PROTO(const char *pool_name, int nbytes, int entropy_count, | ||
|  | 		 unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, nbytes, entropy_count, IP) | ||
|  | ); | ||
|  | 
 | ||
|  | DEFINE_EVENT(random__extract_entropy, extract_entropy_user, | ||
|  | 	TP_PROTO(const char *pool_name, int nbytes, int entropy_count, | ||
|  | 		 unsigned long IP), | ||
|  | 
 | ||
|  | 	TP_ARGS(pool_name, nbytes, entropy_count, IP) | ||
|  | ); | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #endif /* _TRACE_RANDOM_H */
 | ||
|  | 
 | ||
|  | /* This part must be outside protection */ | ||
|  | #include <trace/define_trace.h>
 |