mirror of https://github.com/ipxe/ipxe.git
				
				
				
			[ipv4] Profile transmit and receive datapaths
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/17/head
							parent
							
								
									6d4deeeb6c
								
							
						
					
					
						commit
						f65c81b1d0
					
				|  | @ -16,6 +16,7 @@ | |||
| #include <ipxe/settings.h> | ||||
| #include <ipxe/fragment.h> | ||||
| #include <ipxe/ipstat.h> | ||||
| #include <ipxe/profile.h> | ||||
| 
 | ||||
| /** @file
 | ||||
|  * | ||||
|  | @ -41,6 +42,12 @@ ipv4_stats_family __ip_statistics_family ( IP_STATISTICS_IPV4 ) = { | |||
| 	.stats = &ipv4_stats, | ||||
| }; | ||||
| 
 | ||||
| /** Transmit profiler */ | ||||
| static struct profiler ipv4_tx_profiler __profiler = { .name = "ipv4.tx" }; | ||||
| 
 | ||||
| /** Receive profiler */ | ||||
| static struct profiler ipv4_rx_profiler __profiler = { .name = "ipv4.rx" }; | ||||
| 
 | ||||
| /**
 | ||||
|  * Add IPv4 minirouting table entry | ||||
|  * | ||||
|  | @ -263,6 +270,9 @@ static int ipv4_tx ( struct io_buffer *iobuf, | |||
| 	const void *ll_dest; | ||||
| 	int rc; | ||||
| 
 | ||||
| 	/* Start profiling */ | ||||
| 	profile_start ( &ipv4_tx_profiler ); | ||||
| 
 | ||||
| 	/* Update statistics */ | ||||
| 	ipv4_stats.out_requests++; | ||||
| 
 | ||||
|  | @ -358,6 +368,7 @@ static int ipv4_tx ( struct io_buffer *iobuf, | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	profile_stop ( &ipv4_tx_profiler ); | ||||
| 	return 0; | ||||
| 
 | ||||
|  err: | ||||
|  | @ -430,6 +441,9 @@ static int ipv4_rx ( struct io_buffer *iobuf, | |||
| 	uint16_t pshdr_csum; | ||||
| 	int rc; | ||||
| 
 | ||||
| 	/* Start profiling */ | ||||
| 	profile_start ( &ipv4_rx_profiler ); | ||||
| 
 | ||||
| 	/* Update statistics */ | ||||
| 	ipv4_stats.in_receives++; | ||||
| 	ipv4_stats.in_octets += iob_len ( iobuf ); | ||||
|  | @ -528,6 +542,7 @@ static int ipv4_rx ( struct io_buffer *iobuf, | |||
| 		return rc; | ||||
| 	} | ||||
| 
 | ||||
| 	profile_stop ( &ipv4_rx_profiler ); | ||||
| 	return 0; | ||||
| 
 | ||||
|  err_header: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue