diff options
author | Michael Brown | 2014-05-06 23:53:33 +0200 |
---|---|---|
committer | Michael Brown | 2014-05-06 23:53:33 +0200 |
commit | abf875a2e59c699b503c7272515dac3cdaffb7c1 (patch) | |
tree | 34ec892a984f63958bafaf6fa8c6e182b41652ea /src/drivers/net/intel.c | |
parent | [profile] Allow interrupts to be excluded from profiling results (diff) | |
download | ipxe-abf875a2e59c699b503c7272515dac3cdaffb7c1.tar.gz ipxe-abf875a2e59c699b503c7272515dac3cdaffb7c1.tar.xz ipxe-abf875a2e59c699b503c7272515dac3cdaffb7c1.zip |
[intel] Exclude time spent in hypervisor from profiling
When profiling, exclude any time spent inside the hypervisor
responding to our MMIO accesses. This substantially reduces the
variance accumulated on many other profilers.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intel.c')
-rw-r--r-- | src/drivers/net/intel.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c index 6684bdbd..771a4c82 100644 --- a/src/drivers/net/intel.c +++ b/src/drivers/net/intel.c @@ -496,6 +496,7 @@ void intel_refill_rx ( struct intel_nic *intel ) { profile_start ( &intel_vm_refill_profiler ); writel ( rx_tail, intel->regs + intel->rx.reg + INTEL_xDT ); profile_stop ( &intel_vm_refill_profiler ); + profile_exclude ( &intel_vm_refill_profiler ); } } @@ -634,6 +635,7 @@ int intel_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) { profile_start ( &intel_vm_tx_profiler ); writel ( tx_tail, intel->regs + intel->tx.reg + INTEL_xDT ); profile_stop ( &intel_vm_tx_profiler ); + profile_exclude ( &intel_vm_tx_profiler ); DBGC2 ( intel, "INTEL %p TX %d is [%llx,%llx)\n", intel, tx_idx, ( ( unsigned long long ) address ), @@ -728,6 +730,7 @@ static void intel_poll ( struct net_device *netdev ) { profile_start ( &intel_vm_poll_profiler ); icr = readl ( intel->regs + INTEL_ICR ); profile_stop ( &intel_vm_poll_profiler ); + profile_exclude ( &intel_vm_poll_profiler ); if ( ! icr ) return; |