igb: update ring and adapter structure to improve performance
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 26 Aug 2011 07:43:48 +0000 (07:43 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 20 Sep 2011 06:58:04 +0000 (23:58 -0700)
commit238ac817fd23f7dd5f61a8c51b4678f8d199db57
tree0e7a1096c71de92fdc736a5cfd5785e9ce88822a
parentc023cd8898dbee857c8e82b357b4e68dc2d9561d
igb: update ring and adapter structure to improve performance

This change is meant to improve performance by splitting the Tx and Rx
rings into 3 sections.  The first is primarily a read only section
containing basic things like the indexes, a pointer to the dev and netdev
structures, and basic information.  The second section contains the stats
and next_to_use and next_to_clean values.  The third section is primarily
unused values that can just be placed at the end of the ring and are not
used in the hot path.

The adapter structure has several sections that are read in the hot path.
In order to improve performance there I am combining the frequent read
hot path items into a single cache line.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/igb.h
drivers/net/ethernet/intel/igb/igb_main.c