summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/interface
diff options
context:
space:
mode:
authorMichael Brown2014-05-03 02:02:20 +0200
committerMichael Brown2014-05-03 19:52:15 +0200
commit90caf71051f49e2aa4ef0ebdbd50491285f361a0 (patch)
tree06c6629e3957557a968040b824a6568b630235aa /src/arch/i386/interface
parent[pxe] Profile all PXE API calls (diff)
downloadipxe-90caf71051f49e2aa4ef0ebdbd50491285f361a0.tar.gz
ipxe-90caf71051f49e2aa4ef0ebdbd50491285f361a0.tar.xz
ipxe-90caf71051f49e2aa4ef0ebdbd50491285f361a0.zip
[pxe] Profile UNDI transmit datapath
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/interface')
-rw-r--r--src/arch/i386/interface/pxe/pxe_undi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/i386/interface/pxe/pxe_undi.c b/src/arch/i386/interface/pxe/pxe_undi.c
index 5d2122694..a17b9b3b0 100644
--- a/src/arch/i386/interface/pxe/pxe_undi.c
+++ b/src/arch/i386/interface/pxe/pxe_undi.c
@@ -38,6 +38,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/ip.h>
#include <ipxe/arp.h>
#include <ipxe/rarp.h>
+#include <ipxe/profile.h>
#include "pxe.h"
/**
@@ -53,6 +54,9 @@ static int undi_tx_count = 0;
struct net_device *pxe_netdev = NULL;
+/** Transmit profiler */
+static struct profiler undi_tx_profiler __profiler = { .name = "undi.tx" };
+
/**
* Set network device as current PXE network device
*
@@ -309,6 +313,9 @@ pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT *undi_transmit ) {
unsigned int i;
int rc;
+ /* Start profiling */
+ profile_start ( &undi_tx_profiler );
+
/* Sanity check */
if ( ! pxe_netdev ) {
DBGC ( &pxe_netdev, "PXENV_UNDI_TRANSMIT called with no "
@@ -422,6 +429,7 @@ pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT *undi_transmit ) {
return PXENV_EXIT_FAILURE;
}
+ profile_stop ( &undi_tx_profiler );
undi_transmit->Status = PXENV_STATUS_SUCCESS;
return PXENV_EXIT_SUCCESS;
}