Skip to content
NIC latency test.
C Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Makefile
README.md
mmio_test.c

README.md

mmio_test -- A simple NIC latency tool

Abstract

This is code to measure latency from various NIC's. It maps chip registers and reads latency. Of course bus latency etc is included.

History

This code was used as "tool" for driver and performance understanding. Harald Welte, Jamal Hadi Salim, Grant Grundler, Lennert Bytenheck and probably som Intel folks. Dave M? Jessie?. Feel free to remind me.

Introduction

From code comment from 2005: Part of it is that uncached accesses are plain slow. An L2 miss is ~370 cycles on my hardware (155ns*2.4 confirms that), but an uncached access to the same memory location is consistently ~490 cycles.

And part of it seems to be the e1000. Reading the device control register (E1000_CTRL, offset 0x00) is ~1700 cycles each, but reading the interrupt cause register (E1000_ICR, 0xc0) is ~2100 cycles each. The interrupt mask register (E1000_IMS, 0x100) is also ~2100 cycles each.

Status

Worked 2005. :) But should be updated for recent adapters. Legacy support for e1000 and tg3.

Copyright

Open-Source via GPL. See code.

Authors

Robert Olsson robert@Radio-Sensors.COM Harald Welte

You can’t perform that action at this time.