)]}'
{
  "commit": "1f87e235e6fb92c2968b52b9191de04f1aff8e77",
  "tree": "ab774d239c61b6c206ef07398828533cdd01915e",
  "parents": [
    "70eb1bfd52e97120eddf9b5aaabfe1ecdf4eb663"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Sun Nov 23 23:24:32 2008 -0800"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sun Nov 23 23:24:32 2008 -0800"
  },
  "message": "eth: Declare an optimized compare_ether_addr_64bits() function\n\nLinus mentioned we could try to perform long word operations, even\non potentially unaligned addresses, on x86 at least. David mentioned\nthe HAVE_EFFICIENT_UNALIGNED_ACCESS test to handle this on all\narches that have efficient unailgned accesses.\n\nI tried this idea and got nice assembly on 32 bits:\n\n158:   33 82 38 01 00 00       xor    0x138(%edx),%eax\n15e:   33 8a 34 01 00 00       xor    0x134(%edx),%ecx\n164:   c1 e0 10                shl    $0x10,%eax\n167:   09 c1                   or     %eax,%ecx\n169:   74 0b                   je     176 \u003ceth_type_trans+0x87\u003e\n\nAnd very nice assembly on 64 bits of course (one xor, one shl)\n\nNice oprofile improvement in eth_type_trans(), 0.17 % instead of 0.41 %,\nexpected since we remove 8 instructions on a fast path.\n\nThis patch implements a compare_ether_addr_64bits() function, that\nuses the CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ifdef to efficiently\nperform the 6 bytes comparison on all capable arches.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e5e9706003420f1d2074bc7df7d3d19883c92db",
      "old_mode": 33188,
      "old_path": "include/linux/etherdevice.h",
      "new_id": "1cb0f0b90926116cdbe854b85a6b144a3bf021ed",
      "new_mode": 33188,
      "new_path": "include/linux/etherdevice.h"
    },
    {
      "type": "modify",
      "old_id": "a87a171d99149d745cc81276e5e0cdcea635f883",
      "old_mode": 33188,
      "old_path": "net/ethernet/eth.c",
      "new_id": "280352aba4034bc2d343171e72f6942635fd74c3",
      "new_mode": 33188,
      "new_path": "net/ethernet/eth.c"
    }
  ]
}
