Re: [E1000-devel] [PATCH 01/21] net: slight optimization of addrcompare for some modules

From: Alexander Duyck
Date: Mon Dec 23 2013 - 12:20:50 EST


On 12/22/2013 09:09 PM, Ding Tianhong wrote:
> Use the recently added and possibly more efficient
> ether_addr_equal_unaligned to instead of memcmp.
>
> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: e1000-devel@xxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Ding Tianhong <dingtianhong@xxxxxxxxxx>
> ---
> drivers/net/bonding/bond_3ad.c | 2 +-
> drivers/net/ethernet/3com/3c509.c | 3 +--
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 10 ++++------
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +-
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 2 +-
> drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c | 2 +-
> drivers/net/ethernet/chelsio/cxgb3/l2t.c | 2 +-
> drivers/net/ethernet/cisco/enic/enic_pp.c | 2 +-
> drivers/net/ethernet/emulex/benet/be_main.c | 2 +-
> drivers/net/ethernet/intel/igbvf/netdev.c | 2 +-
> drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 3 +--
> drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ++--
> drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 2 +-
> drivers/net/ethernet/micrel/ksz884x.c | 9 ++++-----
> drivers/net/ethernet/neterion/vxge/vxge-main.c | 2 +-
> drivers/net/ethernet/packetengines/yellowfin.c | 8 ++------
> drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c | 2 +-
> drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 4 ++--
> drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 4 ++--
> drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 ++--
> drivers/net/ethernet/renesas/sh_eth.c | 2 +-
> drivers/net/ethernet/seeq/sgiseeq.c | 2 +-
> drivers/net/ethernet/sun/sunvnet.c | 2 +-
> drivers/net/ethernet/ti/cpsw_ale.c | 2 +-
> drivers/net/fddi/skfp/fplustm.c | 3 ++-
> drivers/net/plip/plip.c | 2 +-
> net/caif/cfrfml.c | 2 +-
> 27 files changed, 39 insertions(+), 47 deletions(-)

What is it you are trying to optimize for, size or speed? Most of these
calls are in slow path. Replacing the memcmp with an inline operation
may provide little to no gain in terms of speed and in many cases as you
might actually be increasing the resultant driver size.

Also I would recommend reviewing the addresses you are comparing. It is
likely that you could use ether_addr_equal or compare_ether_addr in many
cases as I suspect a number of spots are using 16b aligned MAC addresses
for both operands.

Thanks,

Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/