From abf875a2e59c699b503c7272515dac3cdaffb7c1 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 6 May 2014 22:53:33 +0100 Subject: [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 --- src/drivers/net/intel.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/drivers/net/intel.c') 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; -- cgit v1.2.3-55-g7522