)]}'
{
  "log": [
    {
      "commit": "85a793533524f333e8d630dc22450e574b7e08d2",
      "tree": "f535f7721bea10ea1ddd79e83159350b457de72b",
      "parents": [
        "6d008153234c4cccae7bb0170defeea18258db4a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 24 20:06:24 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 24 20:06:24 2008 -0700"
      },
      "message": "[SPARC64]: Make save_stack_trace() more efficient.\n\nDoing a \u0027flushw\u0027 every stack trace capture creates so much overhead\nthat it makes lockdep next to unusable.\n\nWe only care about the frame pointer chain and the function caller\nprogram counters, so flush those by hand to the stack frame.\n\nThis is significantly more efficient than a \u0027flushw\u0027 because:\n\n1) We only save 16 bytes per active register window to the stack.\n\n2) This doesn\u0027t push the entire register window context of the current\n   call chain out of the cpu, forcing register window fill traps as we\n   return back down.\n\nNote that we can\u0027t use \u0027restore\u0027 and \u0027save\u0027 instructions to move\naround the register windows because that wouldn\u0027t work on Niagara\nprocessors.  They optimize \u0027save\u0027 into a new register window by\nsimply clearing out the registers instead of pulling them in from\nthe on-chip register window backing store.\n\nBased upon a report by Tom Callaway.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
