)]}'
{
  "commit": "9d21493b4beb8f918ba248032fefa393074a5e2b",
  "tree": "653590f3e325da5c4c1fc7d2c00bc196a3167f9d",
  "parents": [
    "0a305720ee597aad41af61e6b6844321d3e24251"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Sun May 17 20:55:16 2009 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sun May 17 20:55:16 2009 -0700"
  },
  "message": "net: tx scalability works : trans_start\n\nstruct net_device trans_start field is a hot spot on SMP and high performance\ndevices, particularly multi queues ones, because every transmitter dirties\nit. Is main use is tx watchdog and bonding alive checks.\n\nBut as most devices dont use NETIF_F_LLTX, we have to lock\na netdev_queue before calling their ndo_start_xmit(). So it makes\nsense to move trans_start from net_device to netdev_queue. Its update\nwill occur on a already present (and in exclusive state) cache line, for\nfree.\n\nWe can do this transition smoothly. An old driver continue to\nupdate dev-\u003etrans_start, while an updated one updates txq-\u003etrans_start.\n\nFurther patches could also put tx_bytes/tx_packets counters in \nnetdev_queue to avoid dirtying dev-\u003estats (vlan device comes to mind)\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": "815191dd03c3611675bcf90026ed00ed5c4d0f36",
      "old_mode": 33188,
      "old_path": "drivers/net/bonding/bond_main.c",
      "new_id": "30b9ea6d62b0a7c18d1e397dffc02a2397defa5a",
      "new_mode": 33188,
      "new_path": "drivers/net/bonding/bond_main.c"
    },
    {
      "type": "modify",
      "old_id": "2af89b662cad689ddea27acba57ac11dc757b478",
      "old_mode": 33188,
      "old_path": "include/linux/netdevice.h",
      "new_id": "cd547d04a8ce56677fda866b95735f18260015ba",
      "new_mode": 33188,
      "new_path": "include/linux/netdevice.h"
    },
    {
      "type": "modify",
      "old_id": "5f5efe4e6072e2959d6f6802a268cc7c5afca66b",
      "old_mode": 33188,
      "old_path": "net/sched/sch_generic.c",
      "new_id": "27d03816ec3e8b307b3ac6eafc2ae1b8ca866c7d",
      "new_mode": 33188,
      "new_path": "net/sched/sch_generic.c"
    }
  ]
}
