)]}'
{
  "commit": "aacf682fd8c66b57383c407eecd9d4a28264ee91",
  "tree": "98179e43e4d15177acb09958d6ef560a46cc88ae",
  "parents": [
    "b7882b7c65abb00194bdb3d4a22d27d70fcc59ba"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Fri Jul 03 12:14:27 2009 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Fri Jul 03 13:26:40 2009 +0200"
  },
  "message": "x86: atomic64: Improve atomic64_read()\n\nLinus noticed that the 32-bit version of atomic64_read() was\nbeing overly complex with re-reading the value and doing a\nretry loop over that.\n\nInstead we can just rely on cmpxchg8b returning either the new\nvalue or returning the current value.\n\nWe can use any \u0027old\u0027 value, which will be faster as it can be\nloaded via immediates. Using some value that is not equal to\nthe real value in memory the instruction gets faster.\n\nThis also has the advantage that the CPU could avoid dirtying\nthe cacheline.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nLKML-Reference: \u003calpine.LFD.2.01.0907021653030.3210@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d21e725d3d8458c4d7a31e895185059af5a008cb",
      "old_mode": 33188,
      "old_path": "arch/x86/lib/atomic64_32.c",
      "new_id": "afa5d444918b4e05cac9d431e7fb01a32e8ffa9e",
      "new_mode": 33188,
      "new_path": "arch/x86/lib/atomic64_32.c"
    }
  ]
}
