david/ipxe
Archived
1
0

[ipv4] Profile transmit and receive datapaths

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2014-04-28 12:30:09 +01:00
parent 6d4deeeb6c
commit f65c81b1d0

View File

@ -16,6 +16,7 @@
#include <ipxe/settings.h> #include <ipxe/settings.h>
#include <ipxe/fragment.h> #include <ipxe/fragment.h>
#include <ipxe/ipstat.h> #include <ipxe/ipstat.h>
#include <ipxe/profile.h>
/** @file /** @file
* *
@ -41,6 +42,12 @@ ipv4_stats_family __ip_statistics_family ( IP_STATISTICS_IPV4 ) = {
.stats = &ipv4_stats, .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 * Add IPv4 minirouting table entry
* *
@ -263,6 +270,9 @@ static int ipv4_tx ( struct io_buffer *iobuf,
const void *ll_dest; const void *ll_dest;
int rc; int rc;
/* Start profiling */
profile_start ( &ipv4_tx_profiler );
/* Update statistics */ /* Update statistics */
ipv4_stats.out_requests++; ipv4_stats.out_requests++;
@ -358,6 +368,7 @@ static int ipv4_tx ( struct io_buffer *iobuf,
} }
} }
profile_stop ( &ipv4_tx_profiler );
return 0; return 0;
err: err:
@ -430,6 +441,9 @@ static int ipv4_rx ( struct io_buffer *iobuf,
uint16_t pshdr_csum; uint16_t pshdr_csum;
int rc; int rc;
/* Start profiling */
profile_start ( &ipv4_rx_profiler );
/* Update statistics */ /* Update statistics */
ipv4_stats.in_receives++; ipv4_stats.in_receives++;
ipv4_stats.in_octets += iob_len ( iobuf ); ipv4_stats.in_octets += iob_len ( iobuf );
@ -528,6 +542,7 @@ static int ipv4_rx ( struct io_buffer *iobuf,
return rc; return rc;
} }
profile_stop ( &ipv4_rx_profiler );
return 0; return 0;
err_header: err_header: