)]}'
{
  "commit": "c776cd89fc705fc8b5c2e5ad906bf5d791620fed",
  "tree": "c6f26e9791042801f87cd36d87ebb0d527b344b1",
  "parents": [
    "fef47e2a2e1e75fe50a10f634a80f16808348cc6"
  ],
  "author": {
    "name": "John David Anglin",
    "email": "dave.anglin@bell.net",
    "time": "Sun May 11 18:40:50 2014 -0400"
  },
  "committer": {
    "name": "Helge Deller",
    "email": "deller@gmx.de",
    "time": "Thu May 15 21:12:26 2014 +0200"
  },
  "message": "parisc: Improve LWS-CAS performance\n\nThe attached change significantly improves the performance of the LWS-CAS code\nin syscall.S.\nThis allows a number of packages to build (e.g., zeromq3, gtest and libxs)\nthat previously failed because slow LWS-CAS performance under contention. In\nparticular, interrupts taken while the lock was taken degraded performance\nsignificantly.\n\nThe change does the following:\n\n1) Disables interrupts around the CAS operation, and\n2) Changes the loads and stores to use the ordered completer, \"o\", on\nPA 2.0. \"o\" and \"ma\" with a zero offset are equivalent. The latter is\naccepted on both PA 1.X and 2.0.\n\nThe use of ordered loads and stores probably makes no difference on all\nexisting hardware, but it seemed pedantically correct. In particular, the CAS\noperation must complete before LDCW lock is released. As written before, a\nprocessor could reorder the operations.\n\nI don\u0027t believe the period interrupts are disabled is long enough to\nsignificantly increase interrupt latency. For example, the TLB insert code is\nlonger. Worst case is a memory fault in the CAS operation.\n\nSigned-off-by: John David Anglin \u003cdave.anglin@bell.net\u003e\nCc: stable@vger.kernel.org # 3.13+\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a63bb179f79a1fcd56a7bcf1adbe759f46587b71",
      "old_mode": 33188,
      "old_path": "arch/parisc/kernel/syscall.S",
      "new_id": "83878601103701df4497913c89d5702897249a38",
      "new_mode": 33188,
      "new_path": "arch/parisc/kernel/syscall.S"
    }
  ]
}
