)]}'
{
  "commit": "9aba60fe6eb20453de53a572143bef22fa929fba",
  "tree": "97df44bc298fe40719d6f08000d96532d3ecf27e",
  "parents": [
    "1852fcce181faa237c010a3dbedb473cf9d4555f"
  ],
  "author": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Wed Mar 11 19:52:30 2009 -0400"
  },
  "committer": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Wed Mar 11 22:15:25 2009 -0400"
  },
  "message": "tracing: fix trace_wait to know to wait on all cpus or just one\n\nImpact: fix to task live locking on reading trace_pipe on one CPU\n\nThe same code is used for both trace_pipe (all CPUS) and the per_cpu\ntrace_pipe file. When there is no data to read, it will check for\nsignals and wait on the trace wait queue.\n\nThe problem happens with the per_cpu wait. The trace_wait code checks\nall CPUs. Thus, if there\u0027s data in another CPU buffer, then it will\nexit the wait, without checking for signals or waiting on the wait queue.\n\nIt would then try to read the empty buffer, and since that will just\nreturn nothing, then it will try to wait again. Unfortunately, that will\nagain fail due to there still being data in the other buffers. This\nends up with a live lock for the task.\n\nThis patch fixes the trace_wait to be aware that the iterator may only\nbe waiting on a single buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "35ee63ae41224627bee4a5bcd4cee8e4a8c67fa5",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace.c",
      "new_id": "e60f4be10d64bd5fc62110ef05932072a9791eee",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace.c"
    }
  ]
}
