From: Michael Brown Date: Mon, 28 Apr 2014 11:30:09 +0000 (+0100) Subject: [ipv4] Profile transmit and receive datapaths X-Git-Tag: v1.20.1~1213 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f65c81b1d079ea36809141f6694976654308651d;p=thirdparty%2Fipxe.git [ipv4] Profile transmit and receive datapaths Signed-off-by: Michael Brown --- diff --git a/src/net/ipv4.c b/src/net/ipv4.c index c5cfd134d..9c5cf2eb4 100644 --- a/src/net/ipv4.c +++ b/src/net/ipv4.c @@ -16,6 +16,7 @@ #include #include #include +#include /** @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: