diff options
| author | Michael Brown | 2014-05-03 02:02:20 +0200 |
|---|---|---|
| committer | Michael Brown | 2014-05-03 19:52:15 +0200 |
| commit | 90caf71051f49e2aa4ef0ebdbd50491285f361a0 (patch) | |
| tree | 06c6629e3957557a968040b824a6568b630235aa /src/arch/i386/interface | |
| parent | [pxe] Profile all PXE API calls (diff) | |
| download | ipxe-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.c | 8 |
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; } |
