)]}'
{
  "log": [
    {
      "commit": "d21142ece414ce1088cfcae760689aa60d6fee80",
      "tree": "9f97b4518cd06fe695476fc6cc4ff9ed8d5bdd58",
      "parents": [
        "544b2c91a9f14f9565af1972203438b7f49afd48"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jun 17 16:50:34 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 22 19:26:27 2011 +0200"
      },
      "message": "ptrace: kill task_ptrace()\n\ntask_ptrace(task) simply dereferences task-\u003eptrace and isn\u0027t even used\nconsistently only adding confusion.  Kill it and directly access\n-\u003eptrace instead.\n\nThis doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "544b2c91a9f14f9565af1972203438b7f49afd48",
      "tree": "38615eeed1e50580a2341b5a9d15c98793d33c2d",
      "parents": [
        "fb1d910c178ba0c5bc32d3e5a9e82e05b7aad3cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:18 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:54 2011 +0200"
      },
      "message": "ptrace: implement PTRACE_LISTEN\n\nThe previous patch implemented async notification for ptrace but it\nonly worked while trace is running.  This patch introduces\nPTRACE_LISTEN which is suggested by Oleg Nestrov.\n\nIt\u0027s allowed iff tracee is in STOP trap and puts tracee into\nquasi-running state - tracee never really runs but wait(2) and\nptrace(2) consider it to be running.  While ptracer is listening,\ntracee is allowed to re-enter STOP to notify an async event.\nListening state is cleared on the first notification.  Ptracer can\nalso clear it by issuing INTERRUPT - tracee will re-trap into STOP\nwith listening state cleared.\n\nThis allows ptracer to monitor group stop state without running tracee\n- use INTERRUPT to put tracee into STOP trap, issue LISTEN and then\nwait(2) to wait for the next group stop event.  When it happens,\nPTRACE_GETSIGINFO provides information to determine the current state.\n\nTest program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_INTERRUPT\t0x4207\n  #define PTRACE_LISTEN\t\t0x4208\n\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee, tracer;\n\t  int i;\n\n\t  tracee \u003d fork();\n\t  if (!tracee)\n\t\t  while (1)\n\t\t\t  pause();\n\n\t  tracer \u003d fork();\n\t  if (!tracer) {\n\t\t  siginfo_t si;\n\n\t\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t\t  ptrace(PTRACE_INTERRUPT, tracee, NULL, NULL);\n\t  repeat:\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\n\t\t  ptrace(PTRACE_GETSIGINFO, tracee, NULL, \u0026si);\n\t\t  if (!si.si_code) {\n\t\t\t  printf(\"tracer: SIG %d\\n\", si.si_signo);\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL,\n\t\t\t\t (void *)(unsigned long)si.si_signo);\n\t\t\t  goto repeat;\n\t\t  }\n\t\t  printf(\"tracer: stopped\u003d%d signo\u003d%d\\n\",\n\t\t\t si.si_signo !\u003d SIGTRAP, si.si_signo);\n\t\t  if (si.si_signo !\u003d SIGTRAP)\n\t\t\t  ptrace(PTRACE_LISTEN, tracee, NULL, NULL);\n\t\t  else\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t\t  goto repeat;\n\t  }\n\n\t  for (i \u003d 0; i \u003c 3; i++) {\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGSTOP\\n\");\n\t\t  kill(tracee, SIGSTOP);\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGCONT\\n\");\n\t\t  kill(tracee, SIGCONT);\n\t  }\n\t  nanosleep(\u0026ts1s, NULL);\n\n\t  kill(tracer, SIGKILL);\n\t  kill(tracee, SIGKILL);\n\t  return 0;\n  }\n\nThis is identical to the program to test TRAP_NOTIFY except that\ntracee is PTRACE_LISTEN\u0027d instead of PTRACE_CONT\u0027d when group stopped.\nThis allows ptracer to monitor when group stop ends without running\ntracee.\n\n  # ./test-listen\n  tracer: stopped\u003d0 signo\u003d5\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n\n-v2: Moved JOBCTL_LISTENING check in wait_task_stopped() into\n     task_stopped_code() as suggested by Oleg.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "fb1d910c178ba0c5bc32d3e5a9e82e05b7aad3cd",
      "tree": "dd889f33758a914cb538583073000bc21aeb1759",
      "parents": [
        "fca26f260c528ee51a2e451b5b200aeb528f3e09"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:17 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:53 2011 +0200"
      },
      "message": "ptrace: implement TRAP_NOTIFY and use it for group stop events\n\nCurrently there\u0027s no way for ptracer to find out whether group stop\nfinished other than polling with INTERRUPT - GETSIGINFO - CONT\nsequence.  This patch implements group stop notification for ptracer\nusing STOP traps.\n\nWhen group stop state of a seized tracee changes, JOBCTL_TRAP_NOTIFY\nis set, which schedules a STOP trap which is sticky - it isn\u0027t cleared\nby other traps and at least one STOP trap will happen eventually.\nSTOP trap is synchronization point for event notification and the\ntracer can determine the current group stop state by looking at the\nsignal number portion of exit code (si_status from waitid(2) or\nsi_code from PTRACE_GETSIGINFO).\n\nNotifications are generated both on start and end of group stops but,\nbecause group stop participation always happens before STOP trap, this\ndoesn\u0027t cause an extra trap while tracee is participating in group\nstop.  The symmetry will be useful later.\n\nNote that this notification works iff tracee is not trapped.\nCurrently there is no way to be notified of group stop state changes\nwhile tracee is trapped.  This will be addressed by a later patch.\n\nAn example program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_INTERRUPT\t0x4207\n\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee, tracer;\n\t  int i;\n\n\t  tracee \u003d fork();\n\t  if (!tracee)\n\t\t  while (1)\n\t\t\t  pause();\n\n\t  tracer \u003d fork();\n\t  if (!tracer) {\n\t\t  siginfo_t si;\n\n\t\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t\t  ptrace(PTRACE_INTERRUPT, tracee, NULL, NULL);\n\t  repeat:\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\n\t\t  ptrace(PTRACE_GETSIGINFO, tracee, NULL, \u0026si);\n\t\t  if (!si.si_code) {\n\t\t\t  printf(\"tracer: SIG %d\\n\", si.si_signo);\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL,\n\t\t\t\t (void *)(unsigned long)si.si_signo);\n\t\t\t  goto repeat;\n\t\t  }\n\t\t  printf(\"tracer: stopped\u003d%d signo\u003d%d\\n\",\n\t\t\t si.si_signo !\u003d SIGTRAP, si.si_signo);\n\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t\t  goto repeat;\n\t  }\n\n\t  for (i \u003d 0; i \u003c 3; i++) {\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGSTOP\\n\");\n\t\t  kill(tracee, SIGSTOP);\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGCONT\\n\");\n\t\t  kill(tracee, SIGCONT);\n\t  }\n\t  nanosleep(\u0026ts1s, NULL);\n\n\t  kill(tracer, SIGKILL);\n\t  kill(tracee, SIGKILL);\n\t  return 0;\n  }\n\nIn the above program, tracer keeps tracee running and gets\nnotification of each group stop state changes.\n\n  # ./test-notify\n  tracer: stopped\u003d0 signo\u003d5\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "fca26f260c528ee51a2e451b5b200aeb528f3e09",
      "tree": "8c64ecdcece48b55e79bbb7f376a834fc99804a3",
      "parents": [
        "3544d72a0e10d0aa1c1bd59ed77a53a59cdc12f7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:16 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:53 2011 +0200"
      },
      "message": "ptrace: implement PTRACE_INTERRUPT\n\nCurrently, there\u0027s no way to trap a running ptracee short of sending a\nsignal which has various side effects.  This patch implements\nPTRACE_INTERRUPT which traps ptracee without any signal or job control\nrelated side effect.\n\nThe implementation is almost trivial.  It uses the group stop trap -\nSIGTRAP | PTRACE_EVENT_STOP \u003c\u003c 8.  A new trap flag\nJOBCTL_TRAP_INTERRUPT is added, which is set on PTRACE_INTERRUPT and\ncleared when any trap happens.  As INTERRUPT should be useable\nregardless of the current state of tracee, task_is_traced() test in\nptrace_check_attach() is skipped for INTERRUPT.\n\nPTRACE_INTERRUPT is available iff tracee is attached with\nPTRACE_SEIZE.\n\nTest program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_INTERRUPT\t0x4207\n\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts100ms \u003d { .tv_nsec \u003d 100000000 };\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n  static const struct timespec ts3s \u003d { .tv_sec \u003d 3 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee;\n\n\t  tracee \u003d fork();\n\t  if (tracee \u003d\u003d 0) {\n\t\t  nanosleep(\u0026ts100ms, NULL);\n\t\t  while (1) {\n\t\t\t  printf(\"tracee: alive pid\u003d%d\\n\", getpid());\n\t\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  }\n\t  }\n\n\t  if (argc \u003e 1)\n\t\t  kill(tracee, SIGSTOP);\n\n\t  nanosleep(\u0026ts100ms, NULL);\n\n\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t  if (argc \u003e 1) {\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t  }\n\t  nanosleep(\u0026ts3s, NULL);\n\n\t  printf(\"tracer: INTERRUPT and DETACH\\n\");\n\t  ptrace(PTRACE_INTERRUPT, tracee, NULL, NULL);\n\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\t  ptrace(PTRACE_DETACH, tracee, NULL, NULL);\n\t  nanosleep(\u0026ts3s, NULL);\n\n\t  printf(\"tracer: exiting\\n\");\n\t  kill(tracee, SIGKILL);\n\t  return 0;\n  }\n\nWhen called without argument, tracee is seized from running state,\ninterrupted and then detached back to running state.\n\n  # ./test-interrupt\n  tracee: alive pid\u003d4546\n  tracee: alive pid\u003d4546\n  tracee: alive pid\u003d4546\n  tracer: INTERRUPT and DETACH\n  tracee: alive pid\u003d4546\n  tracee: alive pid\u003d4546\n  tracee: alive pid\u003d4546\n  tracer: exiting\n\nWhen called with argument, tracee is seized from stopped state,\ncontinued, interrupted and then detached back to stopped state.\n\n  # ./test-interrupt  1\n  tracee: alive pid\u003d4548\n  tracee: alive pid\u003d4548\n  tracee: alive pid\u003d4548\n  tracer: INTERRUPT and DETACH\n  tracer: exiting\n\nBefore PTRACE_INTERRUPT, once the tracee was running, there was no way\nto trap tracee and do PTRACE_DETACH without causing side effect.\n\n-v2: Updated to use task_set_jobctl_pending() so that it doesn\u0027t end\n     up scheduling TRAP_STOP if child is dying which may make the\n     child unkillable.  Spotted by Oleg.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "3544d72a0e10d0aa1c1bd59ed77a53a59cdc12f7",
      "tree": "27eb767b5cb98f58cccb5b7053a58bccd105f9d0",
      "parents": [
        "73ddff2bee159ffb580bd24faf625cd5e628f5ec"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:15 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:53 2011 +0200"
      },
      "message": "ptrace: implement PTRACE_SEIZE\n\nPTRACE_ATTACH implicitly issues SIGSTOP on attach which has side\neffects on tracee signal and job control states.  This patch\nimplements a new ptrace request PTRACE_SEIZE which attaches a tracee\nwithout trapping it or affecting its signal and job control states.\n\nThe usage is the same with PTRACE_ATTACH but it takes PTRACE_SEIZE_*\nflags in @data.  Currently, the only defined flag is\nPTRACE_SEIZE_DEVEL which is a temporary flag to enable PTRACE_SEIZE.\nPTRACE_SEIZE will change ptrace behaviors outside of attach itself.\nThe changes will be implemented gradually and the DEVEL flag is to\nprevent programs which expect full SEIZE behavior from using it before\nall the behavior modifications are complete while allowing unit\ntesting.  The flag will be removed once SEIZE behaviors are completely\nimplemented.\n\n* PTRACE_SEIZE, unlike ATTACH, doesn\u0027t force tracee to trap.  After\n  attaching tracee continues to run unless a trap condition occurs.\n\n* PTRACE_SEIZE doesn\u0027t affect signal or group stop state.\n\n* If PTRACE_SEIZE\u0027d, group stop uses PTRACE_EVENT_STOP trap which uses\n  exit_code of (signr | PTRACE_EVENT_STOP \u003c\u003c 8) where signr is one of\n  the stopping signals if group stop is in effect or SIGTRAP\n  otherwise, and returns usual trap siginfo on PTRACE_GETSIGINFO\n  instead of NULL.\n\nSeizing sets PT_SEIZED in -\u003eptrace of the tracee.  This flag will be\nused to determine whether new SEIZE behaviors should be enabled.\n\nTest program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts100ms \u003d { .tv_nsec \u003d 100000000 };\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n  static const struct timespec ts3s \u003d { .tv_sec \u003d 3 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee;\n\n\t  tracee \u003d fork();\n\t  if (tracee \u003d\u003d 0) {\n\t\t  nanosleep(\u0026ts100ms, NULL);\n\t\t  while (1) {\n\t\t\t  printf(\"tracee: alive\\n\");\n\t\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  }\n\t  }\n\n\t  if (argc \u003e 1)\n\t\t  kill(tracee, SIGSTOP);\n\n\t  nanosleep(\u0026ts100ms, NULL);\n\n\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t  if (argc \u003e 1) {\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t  }\n\t  nanosleep(\u0026ts3s, NULL);\n\t  printf(\"tracer: exiting\\n\");\n\t  return 0;\n  }\n\nWhen the above program is called w/o argument, tracee is seized while\nrunning and remains running.  When tracer exits, tracee continues to\nrun and print out messages.\n\n  # ./test-seize-simple\n  tracee: alive\n  tracee: alive\n  tracee: alive\n  tracer: exiting\n  tracee: alive\n  tracee: alive\n\nWhen called with an argument, tracee is seized from stopped state and\ncontinued, and returns to stopped state when tracer exits.\n\n  # ./test-seize\n  tracee: alive\n  tracee: alive\n  tracee: alive\n  tracer: exiting\n  # ps -el|grep test-seize\n  1 T     0  4720     1  0  80   0 -   941 signal ttyS0    00:00:00 test-seize\n\n-v2: SEIZE doesn\u0027t schedule TRAP_STOP and leaves tracee running as Jan\n     suggested.\n\n-v3: PTRACE_EVENT_STOP traps now report group stop state by signr.  If\n     group stop is in effect the stop signal number is returned as\n     part of exit_code; otherwise, SIGTRAP.  This was suggested by\n     Denys and Oleg.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "73ddff2bee159ffb580bd24faf625cd5e628f5ec",
      "tree": "218cf5101b67c98ef99814e59706976d3ad245c2",
      "parents": [
        "dd1d6772692316fe35094085c5e4d9a370ad3462"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:14 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:52 2011 +0200"
      },
      "message": "job control: introduce JOBCTL_TRAP_STOP and use it for group stop trap\n\ndo_signal_stop() implemented both normal group stop and trap for group\nstop while ptraced.  This approach has been enough but scheduled\nchanges require trap mechanism which can be used in more generic\nmanner and using group stop trap for generic trap site simplifies both\nuserland visible interface and implementation.\n\nThis patch adds a new jobctl flag - JOBCTL_TRAP_STOP.  When set, it\ntriggers a trap site, which behaves like group stop trap, in\nget_signal_to_deliver() after checking for pending signals.  While\nptraced, do_signal_stop() doesn\u0027t stop itself.  It initiates group\nstop if requested and schedules JOBCTL_TRAP_STOP and returns.  The\ncaller - get_signal_to_deliver() - is responsible for checking whether\nTRAP_STOP is pending afterwards and handling it.\n\nptrace_attach() is updated to use JOBCTL_TRAP_STOP instead of\nJOBCTL_STOP_PENDING and __ptrace_unlink() to clear all pending trap\nbits and TRAPPING so that TRAP_STOP and future trap bits don\u0027t linger\nafter detach.\n\nWhile at it, add proper function comment to do_signal_stop() and make\nit return bool.\n\n-v2: __ptrace_unlink() updated to clear JOBCTL_TRAP_MASK and TRAPPING\n     instead of JOBCTL_PENDING_MASK.  This avoids accidentally\n     clearing JOBCTL_STOP_CONSUME.  Spotted by Oleg.\n\n-v3: do_signal_stop() updated to return %false without dropping\n     siglock while ptraced and TRAP_STOP check moved inside for(;;)\n     loop after group stop participation.  This avoids unnecessary\n     relocking and also will help avoiding unnecessary traps by\n     consuming group stop before handling pending traps.\n\n-v4: Jobctl trap handling moved into a separate function -\n     do_jobctl_trap().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "dd1d6772692316fe35094085c5e4d9a370ad3462",
      "tree": "d6f2743d96b93ded07d35a0af2cafa6056bfdc74",
      "parents": [
        "62c124ff3bcdb414af635c2bf822c9e4f2a5abfa"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:11 2011 +0200"
      },
      "message": "signal: remove three noop tracehooks\n\nRemove the following three noop tracehooks in signals.c.\n\n* tracehook_force_sigpending()\n* tracehook_get_signal()\n* tracehook_finish_jctl()\n\nThe code area is about to be updated and these hooks don\u0027t do anything\nother than obfuscating the logic.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "62c124ff3bcdb414af635c2bf822c9e4f2a5abfa",
      "tree": "5d279211e098d24245d49e394d84aa8cfdb6f277",
      "parents": [
        "7dd3db54e77d21eb95e145f19ba53f68250d0e73"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:11 2011 +0200"
      },
      "message": "ptrace: use bit_waitqueue for TRAPPING instead of wait_chldexit\n\nptracer-\u003esignal-\u003ewait_chldexit was used to wait for TRAPPING; however,\n-\u003ewait_chldexit was already complicated with waker-side filtering\nwithout adding TRAPPING wait on top of it.  Also, it unnecessarily\nmade TRAPPING clearing depend on the current ptrace relationship - if\nthe ptracee is detached, wakeup is lost.\n\nThere is no reason to use signal-\u003ewait_chldexit here.  We\u0027re just\nwaiting for JOBCTL_TRAPPING bit to clear and given the relatively\ninfrequent use of ptrace, bit_waitqueue can serve it perfectly.\n\nThis patch makes JOBCTL_TRAPPING wait use bit_waitqueue instead of\nsignal-\u003ewait_chldexit.\n\n-v2: Use JOBCTL_*_BIT macros instead of ilog2() as suggested by Linus.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "7dd3db54e77d21eb95e145f19ba53f68250d0e73",
      "tree": "628e44b22e6fbf2828cf2c533c41b3d24f3e3ec9",
      "parents": [
        "6dfca32984237a8a011b5bf367e53341a265b2a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:11 2011 +0200"
      },
      "message": "job control: introduce task_set_jobctl_pending()\n\ntask-\u003ejobctl currently hosts JOBCTL_STOP_PENDING and will host TRAP\npending bits too.  Setting pending conditions on a dying task may make\nthe task unkillable.  Currently, each setting site is responsible for\nchecking for the condition but with to-be-added job control traps this\nbecomes too fragile.\n\nThis patch adds task_set_jobctl_pending() which should be used when\nsetting task-\u003ejobctl bits to schedule a stop or trap.  The function\nperforms the followings to ease setting pending bits.\n\n* Sanity checks.\n\n* If fatal signal is pending or PF_EXITING is set, no bit is set.\n\n* STOP_SIGMASK is automatically cleared if new value is being set.\n\ndo_signal_stop() and ptrace_attach() are updated to use\ntask_set_jobctl_pending() instead of setting STOP_PENDING explicitly.\nThe surrounding structures around setting are changed to fit\ntask_set_jobctl_pending() better but there should be no userland\nvisible behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "6dfca32984237a8a011b5bf367e53341a265b2a4",
      "tree": "a879c682f00921959ee28b563b9024c0ac54f861",
      "parents": [
        "3759a0d94c18764247b66511d1038f2b93aa95de"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:11 2011 +0200"
      },
      "message": "job control: make task_clear_jobctl_pending() clear TRAPPING automatically\n\nJOBCTL_TRAPPING indicates that ptracer is waiting for tracee to\n(re)transit into TRACED.  task_clear_jobctl_pending() must be called\nwhen either tracee enters TRACED or the transition is cancelled for\nsome reason.  The former is achieved by explicitly calling\ntask_clear_jobctl_pending() in ptrace_stop() and the latter by calling\nit at the end of do_signal_stop().\n\nCalling task_clear_jobctl_trapping() at the end of do_signal_stop()\nlimits the scope TRAPPING can be used and is fragile in that seemingly\nunrelated changes to tracee\u0027s control flow can lead to stuck TRAPPING.\n\nWe already have task_clear_jobctl_pending() calls on those cancelling\nevents to clear JOBCTL_STOP_PENDING.  Cancellations can be handled by\nmaking those call sites use JOBCTL_PENDING_MASK instead and updating\ntask_clear_jobctl_pending() such that task_clear_jobctl_trapping() is\ncalled automatically if no stop/trap is pending.\n\nThis patch makes the above changes and removes the fallback\ntask_clear_jobctl_trapping() call from do_signal_stop().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "3759a0d94c18764247b66511d1038f2b93aa95de",
      "tree": "ec56295fc1bd252bcbe1cb8552102deeef03bbb7",
      "parents": [
        "81be24b8cdeb69e62f9d1b6b425fd9ffdd37f581"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:10 2011 +0200"
      },
      "message": "job control: introduce JOBCTL_PENDING_MASK and task_clear_jobctl_pending()\n\nThis patch introduces JOBCTL_PENDING_MASK and replaces\ntask_clear_jobctl_stop_pending() with task_clear_jobctl_pending()\nwhich takes an extra @mask argument.\n\nJOBCTL_PENDING_MASK is currently equal to JOBCTL_STOP_PENDING but\nfuture patches will add more bits.  recalc_sigpending_tsk() is updated\nto use JOBCTL_PENDING_MASK instead.\n\ntask_clear_jobctl_pending() takes @mask which in subset of\nJOBCTL_PENDING_MASK and clears the relevant jobctl bits.  If\nJOBCTL_STOP_PENDING is set, other STOP bits are cleared together.  All\ntask_clear_jobctl_stop_pending() users are updated to call\ntask_clear_jobctl_pending() with JOBCTL_STOP_PENDING which is\nfunctionally identical to task_clear_jobctl_stop_pending().\n\nThis patch doesn\u0027t cause any functional change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "81be24b8cdeb69e62f9d1b6b425fd9ffdd37f581",
      "tree": "63afd141fdb380c7b00a01a2080ace6bcc232386",
      "parents": [
        "755e276b3326f300585435d2f3876e66e248c476"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:13:59 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:10 2011 +0200"
      },
      "message": "ptrace: relocate set_current_state(TASK_TRACED) in ptrace_stop()\n\nIn ptrace_stop(), after arch hook is done, the task state and jobctl\nbits are updated while holding siglock.  The ordering requirement\nthere is that TASK_TRACED is set before JOBCTL_TRAPPING is cleared to\nprevent ptracer waiting on TRAPPING doesn\u0027t end up waking up TRACED is\nactually set and sees TASK_RUNNING in wait(2).\n\nMove set_current_state(TASK_TRACED) to the top of the block and\nreorganize comments.  This makes the ordering more obvious\n(TASK_TRACED before other updates) and helps future updates to group\nstop participation.\n\nThis patch doesn\u0027t cause any functional change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "755e276b3326f300585435d2f3876e66e248c476",
      "tree": "67ee93cf68a1ee0e307c0d8fcd4514a61dcdd697",
      "parents": [
        "a8f072c1d624a627b67f2ace2f0c25d856ef4e54"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:13:59 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:10 2011 +0200"
      },
      "message": "ptrace: ptrace_check_attach(): rename @kill to @ignore_state and add comments\n\nPTRACE_INTERRUPT is going to be added which should also skip\ntask_is_traced() check in ptrace_check_attach().  Rename @kill to\n@ignore_state and make it bool.  Add function comment while at it.\n\nThis patch doesn\u0027t introduce any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "a8f072c1d624a627b67f2ace2f0c25d856ef4e54",
      "tree": "9ba3e96aa874b08c7156a3584f27187bcdbdd9cd",
      "parents": [
        "0b1007c3578569469a6fab6ae5cca918ccdc3ee1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:13:59 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:09 2011 +0200"
      },
      "message": "job control: rename signal-\u003egroup_stop and flags to jobctl and update them\n\nsignal-\u003egroup_stop currently hosts mostly group stop related flags;\nhowever, it\u0027s gonna be used for wider purposes and the GROUP_STOP_\nflag prefix becomes confusing.  Rename signal-\u003egroup_stop to\nsignal-\u003ejobctl and rename all GROUP_STOP_* flags to JOBCTL_*.\n\nBit position macros JOBCTL_*_BIT are defined and JOBCTL_* flags are\ndefined in terms of them to allow using bitops later.\n\nWhile at it, reassign JOBCTL_TRAPPING to bit 22 to better accomodate\nfuture additions.\n\nThis doesn\u0027t cause any functional change.\n\n-v2: JOBCTL_*_BIT macros added as suggested by Linus.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "0b1007c3578569469a6fab6ae5cca918ccdc3ee1",
      "tree": "f6a5254c6f8caeb843fc1a130f7642b9a55a2694",
      "parents": [
        "23c79d31a3dd2602ee1a5ff31303b2d7a2d3c159"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:13:59 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:09 2011 +0200"
      },
      "message": "ptrace: remove silly wait_trap variable from ptrace_attach()\n\nRemove local variable wait_trap which determines whether to wait for\n!TRAPPING or not and simply wait for it if attach was successful.\n\n-v2: Oleg pointed out wait should happen iff attach was successful.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "d72bce0e67e8afc6eb959f656013cbb577426f1e",
      "tree": "9c93d4df9aa895d6f2f555e0cf50e7ae5ebaded4",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon May 30 13:34:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 10:01:48 2011 +0200"
      },
      "message": "rcu: Cure load woes\n\nCommit cc3ce5176d83 (rcu: Start RCU kthreads in TASK_INTERRUPTIBLE\nstate) fudges a sleeping task\u0027 state, resulting in the scheduler seeing\na TASK_UNINTERRUPTIBLE task going to sleep, but a TASK_INTERRUPTIBLE\ntask waking up. The result is unbalanced load calculation.\n\nThe problem that patch tried to address is that the RCU threads could\nstay in UNINTERRUPTIBLE state for quite a while and triggering the hung\ntask detector due to on-demand wake-ups.\n\nCure the problem differently by always giving the tasks at least one\nwake-up once the CPU is fully up and running, this will kick them out of\nthe initial UNINTERRUPTIBLE state and into the regular INTERRUPTIBLE\nwait state.\n\n[ The alternative would be teaching kthread_create() to start threads as\n  INTERRUPTIBLE but that needs a tad more thought. ]\n\nReported-by: Damien Wyart \u003cdamien.wyart@free.fr\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306755291.1200.2872.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "333c5ae9948194428fe6c5ef5c088304fc98263b",
      "tree": "83d1cf3a781642e2c366086e0b9e244a7b60fae5",
      "parents": [
        "7467571f4480b273007517b26297c07154c73924"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Feb 11 12:49:04 2011 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun May 29 00:50:59 2011 -0400"
      },
      "message": "idle governor: Avoid lock acquisition to read pm_qos before entering idle\n\nThanks to the reviews and comments by Rafael, James, Mark and Andi.\nHere\u0027s version 2 of the patch incorporating your comments and also some\nupdate to my previous patch comments.\n\nI noticed that before entering idle state, the menu idle governor will\nlook up the current pm_qos target value according to the list of qos\nrequests received.  This look up currently needs the acquisition of a\nlock to access the list of qos requests to find the qos target value,\nslowing down the entrance into idle state due to contention by multiple\ncpus to access this list.  The contention is severe when there are a lot\nof cpus waking and going into idle.  For example, for a simple workload\nthat has 32 pair of processes ping ponging messages to each other, where\n64 cpu cores are active in test system, I see the following profile with\n37.82% of cpu cycles spent in contention of pm_qos_lock:\n\n-     37.82%          swapper  [kernel.kallsyms]          [k]\n_raw_spin_lock_irqsave\n   - _raw_spin_lock_irqsave\n      - 95.65% pm_qos_request\n           menu_select\n           cpuidle_idle_call\n         - cpu_idle\n              99.98% start_secondary\n\nA better approach will be to cache the updated pm_qos target value so\nreading it does not require lock acquisition as in the patch below.\nWith this patch the contention for pm_qos_lock is removed and I saw a\n2.2X increase in throughput for my message passing workload.\n\ncc: stable@kernel.org\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "08a8b79600101fd6e13dcf05409b330e7f5b0478",
      "tree": "461cf4061eb33d96966c5c348029bc3b5cb523bf",
      "parents": [
        "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n  sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n  sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: More sched_domain iterations fixes\n"
    },
    {
      "commit": "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
      "tree": "e42d1967025670401758d32964a5fa048f59f10a",
      "parents": [
        "c4a227d89f758e582fd167bb15245f2704de99ef",
        "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n  rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n  rcu: Avoid acquiring rcu_node locks in timer functions\n  atomic: Add atomic_or()\n  Documentation: Add statistics about nested locks\n  rcu: Decrease memory-barrier usage based on semi-formal proof\n  rcu: Make rcu_enter_nohz() pay attention to nesting\n  rcu: Don\u0027t do reschedule unless in irq\n  rcu: Remove old memory barriers from rcu_process_callbacks()\n  rcu: Add memory barriers\n  rcu: Fix unpaired rcu_irq_enter() from locking selftests\n"
    },
    {
      "commit": "c4a227d89f758e582fd167bb15245f2704de99ef",
      "tree": "f5b6e0091e6543c14d1cd7cf1f93e097a96bbd64",
      "parents": [
        "87367a0b71a5188e34a913c05673b5078f71a64d",
        "f506b3dc0ec454a16d40cab9ee5d75435b39dc50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  perf: Fix SIGIO handling\n  perf top: Don\u0027t stop if no kernel symtab is found\n  perf top: Handle kptr_restrict\n  perf top: Remove unused macro\n  perf events: initialize fd array to -1 instead of 0\n  perf tools: Make sure kptr_restrict warnings fit 80 col terms\n  perf tools: Fix build on older systems\n  perf symbols: Handle /proc/sys/kernel/kptr_restrict\n  perf: Remove duplicate headers\n  ftrace: Add internal recursive checks\n  tracing: Update btrfs\u0027s tracepoints to use u64 interface\n  tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n  ftrace: Set ops-\u003eflag to enabled even on static function tracing\n  tracing: Have event with function tracer check error return\n  ftrace: Have ftrace_startup() return failure code\n  jump_label: Check entries limit in __jump_label_update\n  ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM\n  scripts/tags.sh: Add magic for trace-events for etags too\n  scripts/tags.sh: Fix ctags for DEFINE_EVENT()\n  x86/ftrace: Fix compiler warning in ftrace.c\n  ...\n"
    },
    {
      "commit": "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e",
      "tree": "a28ada4c1e5fd8c3e8210ca1a1df950af8a704ff",
      "parents": [
        "08bca60a6912ad225254250c0a9c3a05b4152cfa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 25 13:42:06 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:56 2011 +0200"
      },
      "message": "rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n\nUpon creation, kthreads are in TASK_UNINTERRUPTIBLE state, which can\nresult in softlockup warnings.  Because some of RCU\u0027s kthreads can\nlegitimately be idle indefinitely, start them in TASK_INTERRUPTIBLE\nstate in order to avoid those warnings.\n\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08bca60a6912ad225254250c0a9c3a05b4152cfa",
      "tree": "760b20e6eaaa02412fcecb6bc5c3598b6bc0fdce",
      "parents": [
        "8826f3b0397562eee6f8785d548be9dfdb169100"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 20 16:06:29 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:52 2011 +0200"
      },
      "message": "rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n\nIt is not necessary to use waitqueues for the RCU kthreads because\nwe always know exactly which thread is to be awakened.  In addition,\nwake_up() only issues an actual wakeup when there is a thread waiting on\nthe queue, which was why there was an extra explicit wake_up_process()\nto get the RCU kthreads started.\n\nEliminating the waitqueues (and wake_up()) in favor of wake_up_process()\neliminates the need for the initial wake_up_process() and also shrinks\nthe data structure size a bit.  The wakeup logic is placed in a new\nrcu_wait() macro.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8826f3b0397562eee6f8785d548be9dfdb169100",
      "tree": "3b911e0ffe56b1792126f3f36f1fa4de39fd5979",
      "parents": [
        "55c2945aa9d4d907ec5ca4f6a4e30ae908d8d30d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 11 05:41:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:49 2011 +0200"
      },
      "message": "rcu: Avoid acquiring rcu_node locks in timer functions\n\nThis commit switches manipulations of the rcu_node -\u003ewakemask field\nto atomic operations, which allows rcu_cpu_kthread_timer() to avoid\nacquiring the rcu_node lock.  This should avoid the following lockdep\nsplat reported by Valdis Kletnieks:\n\n[   12.872150] usb 1-4: new high speed USB device number 3 using ehci_hcd\n[   12.986667] usb 1-4: New USB device found, idVendor\u003d413c, idProduct\u003d2513\n[   12.986679] usb 1-4: New USB device strings: Mfr\u003d0, Product\u003d0, SerialNumber\u003d0\n[   12.987691] hub 1-4:1.0: USB hub found\n[   12.987877] hub 1-4:1.0: 3 ports detected\n[   12.996372] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input10\n[   13.071471] udevadm used greatest stack depth: 3984 bytes left\n[   13.172129]\n[   13.172130] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[   13.172425] [ INFO: possible circular locking dependency detected ]\n[   13.172650] 2.6.39-rc6-mmotm0506 #1\n[   13.172773] -------------------------------------------------------\n[   13.172997] blkid/267 is trying to acquire lock:\n[   13.173009]  (\u0026p-\u003epi_lock){-.-.-.}, at: [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]\n[   13.173009] but task is already holding lock:\n[   13.173009]  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] which lock already depends on the new lock.\n[   13.173009]\n[   13.173009]\n[   13.173009] the existing dependency chain (in reverse order) is:\n[   13.173009]\n[   13.173009] -\u003e #2 (rcu_node_level_0){..-...}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81090794\u003e] rcu_read_unlock_special+0x8c/0x1d5\n[   13.173009]        [\u003cffffffff8109092c\u003e] __rcu_read_unlock+0x4f/0xd7\n[   13.173009]        [\u003cffffffff81027bd3\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff8102cc34\u003e] cpuacct_charge+0x6c/0x75\n[   13.173009]        [\u003cffffffff81030cc6\u003e] update_curr+0x101/0x12e\n[   13.173009]        [\u003cffffffff810311d0\u003e] check_preempt_wakeup+0xf7/0x23b\n[   13.173009]        [\u003cffffffff8102acb3\u003e] check_preempt_curr+0x2b/0x68\n[   13.173009]        [\u003cffffffff81031d40\u003e] ttwu_do_wakeup+0x76/0x128\n[   13.173009]        [\u003cffffffff81031e49\u003e] ttwu_do_activate.constprop.63+0x57/0x5c\n[   13.173009]        [\u003cffffffff81031e96\u003e] scheduler_ipi+0x48/0x5d\n[   13.173009]        [\u003cffffffff810177d5\u003e] smp_reschedule_interrupt+0x16/0x18\n[   13.173009]        [\u003cffffffff815710f3\u003e] reschedule_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810b66d1\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff810b739c\u003e] find_get_page+0xa9/0xb9\n[   13.173009]        [\u003cffffffff810b8b48\u003e] filemap_fault+0x6a/0x34d\n[   13.173009]        [\u003cffffffff810d1a25\u003e] __do_fault+0x54/0x3e6\n[   13.173009]        [\u003cffffffff810d447a\u003e] handle_pte_fault+0x12c/0x1ed\n[   13.173009]        [\u003cffffffff810d48f7\u003e] handle_mm_fault+0x1cd/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] -\u003e #1 (\u0026rq-\u003elock){-.-.-.}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81027e19\u003e] __task_rq_lock+0x8b/0xd3\n[   13.173009]        [\u003cffffffff81032f7f\u003e] wake_up_new_task+0x41/0x108\n[   13.173009]        [\u003cffffffff810376c3\u003e] do_fork+0x265/0x33f\n[   13.173009]        [\u003cffffffff81007d02\u003e] kernel_thread+0x6b/0x6d\n[   13.173009]        [\u003cffffffff8153a9dd\u003e] rest_init+0x21/0xd2\n[   13.173009]        [\u003cffffffff81b1db4f\u003e] start_kernel+0x3bb/0x3c6\n[   13.173009]        [\u003cffffffff81b1d29f\u003e] x86_64_start_reservations+0xaf/0xb3\n[   13.173009]        [\u003cffffffff81b1d393\u003e] x86_64_start_kernel+0xf0/0xf7\n[   13.173009]\n[   13.173009] -\u003e #0 (\u0026p-\u003epi_lock){-.-.-.}:\n[   13.173009]        [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]        [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]        [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]        [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]        [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]        [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]        [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]        [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]        [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]        [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]        [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]        [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]        [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]        [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]        [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]        [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] other info that might help us debug this:\n[   13.173009]\n[   13.173009] Chain exists of:\n[   13.173009]   \u0026p-\u003epi_lock --\u003e \u0026rq-\u003elock --\u003e rcu_node_level_0\n[   13.173009]\n[   13.173009]  Possible unsafe locking scenario:\n[   13.173009]\n[   13.173009]        CPU0                    CPU1\n[   13.173009]        ----                    ----\n[   13.173009]   lock(rcu_node_level_0);\n[   13.173009]                                lock(\u0026rq-\u003elock);\n[   13.173009]                                lock(rcu_node_level_0);\n[   13.173009]   lock(\u0026p-\u003epi_lock);\n[   13.173009]\n[   13.173009]  *** DEADLOCK ***\n[   13.173009]\n[   13.173009] 3 locks held by blkid/267:\n[   13.173009]  #0:  (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cffffffff8156cdb4\u003e] do_page_fault+0x1f3/0x5de\n[   13.173009]  #1:  (\u0026yield_timer){+.-...}, at: [\u003cffffffff810451da\u003e] call_timer_fn+0x0/0x1e9\n[   13.173009]  #2:  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] stack backtrace:\n[   13.173009] Pid: 267, comm: blkid Not tainted 2.6.39-rc6-mmotm0506 #1\n[   13.173009] Call Trace:\n[   13.173009]  \u003cIRQ\u003e  [\u003cffffffff8154a529\u003e] print_circular_bug+0xc8/0xd9\n[   13.173009]  [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]  [\u003cffffffff8100c861\u003e] ? save_stack_trace+0x28/0x46\n[   13.173009]  [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]  [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]  [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]  [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]  [\u003cffffffff810451da\u003e] ? del_timer+0x75/0x75\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]  [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]  [\u003cffffffff8106365f\u003e] ? tick_dev_program_event+0x37/0xf6\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]  [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]  [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]  [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]  [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]  \u003cEOI\u003e  [\u003cffffffff810bd384\u003e] ? get_page_from_freelist+0x114/0x310\n[   13.173009]  [\u003cffffffff810bd51a\u003e] ? get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff812220e7\u003e] ? clear_page_c+0x7/0x10\n[   13.173009]  [\u003cffffffff810bd1ef\u003e] ? prep_new_page+0x14c/0x1cd\n[   13.173009]  [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]  [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]  [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]  [\u003cffffffff810d915f\u003e] ? sys_brk+0x32/0x10c\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff81065c4f\u003e] ? trace_hardirqs_off_caller+0x3f/0x9c\n[   13.173009]  [\u003cffffffff812235dd\u003e] ? trace_hardirqs_off_thunk+0x3a/0x3c\n[   13.173009]  [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   14.010075] usb 5-1: new full speed USB device number 2 using uhci_hcd\n\nReported-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29f742f88a32c9ab8cf6d9ba69e1ea918be5aa58",
      "tree": "a38aa38c8025e050ec82a7e64d02dca07f90ffc7",
      "parents": [
        "f62508f68d04adefc4cf9b0177ba02c8818b3eec",
        "23b5c8fa01b723c70a20d6e4ef4ff54c7656d6e1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 12:38:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:05 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "f506b3dc0ec454a16d40cab9ee5d75435b39dc50",
      "tree": "fc0dfaab17f42445e04abf51817016647a9c6b56",
      "parents": [
        "e4a338d05df93ab1ebf291aca1e753064319d301"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 26 17:02:53 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:04:59 2011 +0200"
      },
      "message": "perf: Fix SIGIO handling\n\nVince noticed that unless we mmap() a buffer, SIGIO gets lost. So\nexplicitly push the wakeup (including signals) when requested.\n\nReported-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/n/tip-2euus3f3x3dyvdk52cjxw8zu@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d",
      "tree": "c50e88412c8b42264177dc125f74a30f9c7a82d9",
      "parents": [
        "1e876231785d82443a5ac8b6c660e9f51bc5dede"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 19 15:08:58 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:57 2011 +0200"
      },
      "message": "cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n\nThe rule is, we have to update tsk-\u003ert.nr_cpus_allowed if we change\ntsk-\u003ecpus_allowed. Otherwise RT scheduler may confuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4DD4B3FA.5060901@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e876231785d82443a5ac8b6c660e9f51bc5dede",
      "tree": "cab00c4c8ec3090a41215223dde2f47483287cb7",
      "parents": [
        "d6aa8f85f16379d42c147b22b59e33b67f9ff466"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue May 17 16:21:10 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:56 2011 +0200"
      },
      "message": "sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n\nDima Zavin \u003cdima@android.com\u003e reported:\n\n\"After pulling the thread off the run-queue during a cgroup change,\nthe cfs_rq.min_vruntime gets recalculated. The dequeued thread\u0027s vruntime\nthen gets normalized to this new value. This can then lead to the thread\ngetting an unfair boost in the new group if the vruntime of the next\ntask in the old run-queue was way further ahead.\"\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nRecalls-having-tested-once-upon-a-time-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1305674470-23727-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6aa8f85f16379d42c147b22b59e33b67f9ff466",
      "tree": "7e28fec1b4d23f5a60fb3370dd446b36aff66379",
      "parents": [
        "cd4ae6adf8b1c21d88e83ed56afeeef97b28f356"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 26 14:21:33 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:55 2011 +0200"
      },
      "message": "sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nMarc reported that e4a52bcb9 (sched: Remove rq-\u003elock from the first\nhalf of ttwu()) broke his ARM-SMP machine. Now ARM is one of the few\n__ARCH_WANT_INTERRUPTS_ON_CTXSW users, so that exception in the ttwu()\ncode was suspect.\n\nYong found that the interrupt could hit after context_switch() changes\ncurrent but before it clears p-\u003eon_cpu, if that interrupt were to\nattempt a wake-up of p we would indeed find ourselves spinning in IRQ\ncontext.\n\nFix this by reverting to the old behaviour for this situation and\nperform a full remote wake-up.\n\nCc: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nReported-by: Marc Zyngier \u003cMarc.Zyngier@arm.com\u003e\nTested-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd4ae6adf8b1c21d88e83ed56afeeef97b28f356",
      "tree": "7a0625d20d135deb1e8c142fc13da6b4eaa6ea6c",
      "parents": [
        "dc7acbb2518f250050179c8581a972df3b6a24f1"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Fri Apr 22 18:53:54 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:54 2011 +0200"
      },
      "message": "sched: More sched_domain iterations fixes\n\nsched_domain iterations needs to be protected by rcu_read_lock() now,\nthis patch adds another two places which needs the rcu lock, which is\nspotted by following suspicious rcu_dereference_check() usage warnings.\n\nkernel/sched_rt.c:1244 invoked rcu_dereference_check() without protection!\nkernel/sched_stats.h:41 invoked rcu_dereference_check() without protection!\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1303469634-11678-1-git-send-email-dfeng@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f23a5e1405e47df6cdc86568ea75df266b9e151f",
      "tree": "788fab831a235ce8f143e8562d832336a595cff7",
      "parents": [
        "d24c2af42292cb4ad9c829d71fe0d795112ca6e7",
        "0775a60aca2375ea5598741b30d13fe6d3f15617"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 14:27:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 14:27:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM: Fix PM QOS\u0027s user mode interface to work with ASCII input\n  PM / Hibernate: Update kerneldoc comments in hibernate.c\n  PM / Hibernate: Remove arch_prepare_suspend()\n  PM / Hibernate: Update some comments in core hibernate code\n"
    },
    {
      "commit": "e52e713ec30a31e9a4663d9aebbaae5ec07466a6",
      "tree": "68f9680577ae68f3972a5ed73afed5d1c2794310",
      "parents": [
        "bdf7cf1c83872a0586ce4c4da6889103cc36dbd3",
        "2f3e4af471e38e0658e701973238ae4b5e50fcd6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:25:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:25:02 2011 -0700"
      },
      "message": "Merge branch \u0027docs-move\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs\n\n* \u0027docs-move\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs:\n  Create Documentation/security/, move LSM-, credentials-, and keys-related files from Documentation/   to Documentation/security/, add Documentation/security/00-INDEX, and update all occurrences of Documentation/\u003cmoved_file\u003e   to Documentation/security/\u003cmoved_file\u003e.\n"
    },
    {
      "commit": "d6a72fe465f4c54654a1d5488daeb820b4ecf275",
      "tree": "1b581d3b3452b47ba35e1ee3c96d05c030ed9726",
      "parents": [
        "b1d2dc3c06d8da7d58fb43d7123a91c1d6a4f576",
        "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "6f7bd76f05eb2bfbb48d58c0408a50a7e16b2423",
      "tree": "a6a5c66d200e112cc629b392eafbaa026e1c57bf",
      "parents": [
        "d98808a253f209465ed9f415c565f4c294a213b8"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Thu May 26 16:26:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:37 2011 -0700"
      },
      "message": "kernel/profile.c: remove some duplicate code from profile_hits()\n\nprofile_hits() has a common check for prof_on and prof_buffer regardless\nof SMP or !SMP.  So, remove some duplicate code by splitting profile_hits\ninto two.\n\n[akpm@linux-foundation.org: make do_profile_hits static]\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3864601387cf4196371e3c1897fdffa5228296f9",
      "tree": "1c517a970194f9e49ef98ef434c650771ffa31e1",
      "parents": [
        "63ab25ebbc50f74550bd8d164a34724b498f6fb9"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Thu May 26 16:25:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "message": "mm: extract exe_file handling from procfs\n\nSetup and cleanup of mm_struct-\u003eexe_file is currently done in fs/proc/.\nThis was because exe_file was needed only for /proc/\u003cpid\u003e/exe.  Since we\nwill need the exe_file functionality also for core dumps (so core name can\ncontain full binary path), built this functionality always into the\nkernel.\n\nTo achieve that move that out of proc FS to the kernel/ where in fact it\nshould belong.  By doing that we can make dup_mm_exe_file static.  Also we\ncan drop linux/proc_fs.h inclusion in fs/exec.c and kernel/fork.c.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a77aea92010acf54ad785047234418d5d68772e2",
      "tree": "c7cb57b62fd02bee2baceb79251923f7caec6139",
      "parents": [
        "d846687d7f84e45f23ecf3846dbb43312a1206dd"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Thu May 26 16:25:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroup: remove the ns_cgroup\n\nThe ns_cgroup is an annoying cgroup at the namespace / cgroup frontier and\nleads to some problems:\n\n  * cgroup creation is out-of-control\n  * cgroup name can conflict when pids are looping\n  * it is not possible to have a single process handling a lot of\n    namespaces without falling in a exponential creation time\n  * we may want to create a namespace without creating a cgroup\n\n  The ns_cgroup was replaced by a compatibility flag \u0027clone_children\u0027,\n  where a newly created cgroup will copy the parent cgroup values.\n  The userspace has to manually create a cgroup and add a task to\n  the \u0027tasks\u0027 file.\n\nThis patch removes the ns_cgroup as suggested in the following thread:\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-June/018616.html\n\nThe \u0027cgroup_clone\u0027 function is removed because it is no longer used.\n\nThis is a userspace-visible change.  Commit 45531757b45c (\"cgroup: notify\nns_cgroup deprecated\") (merged into 2.6.27) caused the kernel to emit a\nprintk warning users that the feature is planned for removal.  Since that\ntime we have heard from XXX users who were affected by this.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d846687d7f84e45f23ecf3846dbb43312a1206dd",
      "tree": "5c19cf2e0e2faf288bb536f6878cddf11498ef3e",
      "parents": [
        "74a1166dfe1135dcc168d35fa5261aa7e087011b"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: use flex_array in attach_proc\n\nConvert cgroup_attach_proc to use flex_array.\n\nThe cgroup_attach_proc implementation requires a pre-allocated array to\nstore task pointers to atomically move a thread-group, but asking for a\nmonolithic array with kmalloc() may be unreliable for very large groups.\nUsing flex_array provides the same functionality with less risk of\nfailure.\n\nThis is a post-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74a1166dfe1135dcc168d35fa5261aa7e087011b",
      "tree": "a7add70f0344e2352b8d0d6beb10aef85c6585f7",
      "parents": [
        "f780bdb7c1c73009cb57adcf99ef50027d80bf3c"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: make procs file writable\n\nMake procs file writable to move all threads by tgid at once.\n\nAdd functionality that enables users to move all threads in a threadgroup\nat once to a cgroup by writing the tgid to the \u0027cgroup.procs\u0027 file.  This\ncurrent implementation makes use of a per-threadgroup rwsem that\u0027s taken\nfor reading in the fork() path to prevent newly forking threads within the\nthreadgroup from \"escaping\" while the move is in progress.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f780bdb7c1c73009cb57adcf99ef50027d80bf3c",
      "tree": "d15668ffcc40a2aaa31723b87cfda0b166f84d57",
      "parents": [
        "4714d1d32d97239fb5ae3e10521d3f133a899b66"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: add per-thread subsystem callbacks\n\nAdd cgroup subsystem callbacks for per-thread attachment in atomic contexts\n\nAdd can_attach_task(), pre_attach(), and attach_task() as new callbacks\nfor cgroups\u0027s subsystem interface.  Unlike can_attach and attach, these\nare for per-thread operations, to be called potentially many times when\nattaching an entire threadgroup.\n\nAlso, the old \"bool threadgroup\" interface is removed, as replaced by\nthis.  All subsystems are modified for the new interface - of note is\ncpuset, which requires from/to nodemasks for attach to be globally scoped\n(though per-cpuset would work too) to persist from its pre_attach to\nattach_task and attach.\n\nThis is a pre-patch for cgroup-procs-writable.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4714d1d32d97239fb5ae3e10521d3f133a899b66",
      "tree": "fb50707cefc386bf4e87cac9661a38dcfe3192df",
      "parents": [
        "dcb3a08e69629ea65a3e9647da730bfaf670497d"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: read-write lock CLONE_THREAD forking per threadgroup\n\nAdds functionality to read/write lock CLONE_THREAD fork()ing per-threadgroup\n\nAdd an rwsem that lives in a threadgroup\u0027s signal_struct that\u0027s taken for\nreading in the fork path, under CONFIG_CGROUPS.  If another part of the\nkernel later wants to use such a locking mechanism, the CONFIG_CGROUPS\nifdefs should be changed to a higher-up flag that CGROUPS and the other\nsystem would both depend on.\n\nThis is a pre-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0775a60aca2375ea5598741b30d13fe6d3f15617",
      "tree": "ba7cf639955af770f02b72ab80805ae10b43fd10",
      "parents": [
        "f42a9813fbf930fea3bdd0524dcb43c7feb0c977"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 27 00:05:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 27 00:05:23 2011 +0200"
      },
      "message": "PM: Fix PM QOS\u0027s user mode interface to work with ASCII input\n\nMake pm_qos_power_write() accept values passed to it in the ASCII hex\nformat either with or without an ending newline.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Mark Gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "23b5c8fa01b723c70a20d6e4ef4ff54c7656d6e1",
      "tree": "d03faad5e19848b35a019793b9a1cbc0bb68a708",
      "parents": [
        "4305ce7894dd38b0633bfc8978437320119223bd"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 07 10:38:22 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:23 2011 -0700"
      },
      "message": "rcu: Decrease memory-barrier usage based on semi-formal proof\n\n(Note: this was reverted, and is now being re-applied in pieces, with\nthis being the fifth and final piece.  See below for the reason that\nit is now felt to be safe to re-apply this.)\n\nCommit d09b62d fixed grace-period synchronization, but left some smp_mb()\ninvocations in rcu_process_callbacks() that are no longer needed, but\nsheer paranoia prevented them from being removed.  This commit removes\nthem and provides a proof of correctness in their absence.  It also adds\na memory barrier to rcu_report_qs_rsp() immediately before the update to\nrsp-\u003ecompleted in order to handle the theoretical possibility that the\ncompiler or CPU might move massive quantities of code into a lock-based\ncritical section.  This also proves that the sheer paranoia was not\nentirely unjustified, at least from a theoretical point of view.\n\nIn addition, the old dyntick-idle synchronization depended on the fact\nthat grace periods were many milliseconds in duration, so that it could\nbe assumed that no dyntick-idle CPU could reorder a memory reference\nacross an entire grace period.  Unfortunately for this design, the\naddition of expedited grace periods breaks this assumption, which has\nthe unfortunate side-effect of requiring atomic operations in the\nfunctions that track dyntick-idle state for RCU.  (There is some hope\nthat the algorithms used in user-level RCU might be applied here, but\nsome work is required to handle the NMIs that user-space applications\ncan happily ignore.  For the short term, better safe than sorry.)\n\nThis proof assumes that neither compiler nor CPU will allow a lock\nacquisition and release to be reordered, as doing so can result in\ndeadlock.  The proof is as follows:\n\n1.\tA given CPU declares a quiescent state under the protection of\n\tits leaf rcu_node\u0027s lock.\n\n2.\tIf there is more than one level of rcu_node hierarchy, the\n\tlast CPU to declare a quiescent state will also acquire the\n\t-\u003elock of the next rcu_node up in the hierarchy,  but only\n\tafter releasing the lower level\u0027s lock.  The acquisition of this\n\tlock clearly cannot occur prior to the acquisition of the leaf\n\tnode\u0027s lock.\n\n3.\tStep 2 repeats until we reach the root rcu_node structure.\n\tPlease note again that only one lock is held at a time through\n\tthis process.  The acquisition of the root rcu_node\u0027s -\u003elock\n\tmust occur after the release of that of the leaf rcu_node.\n\n4.\tAt this point, we set the -\u003ecompleted field in the rcu_state\n\tstructure in rcu_report_qs_rsp().  However, if the rcu_node\n\thierarchy contains only one rcu_node, then in theory the code\n\tpreceding the quiescent state could leak into the critical\n\tsection.  We therefore precede the update of -\u003ecompleted with a\n\tmemory barrier.  All CPUs will therefore agree that any updates\n\tpreceding any report of a quiescent state will have happened\n\tbefore the update of -\u003ecompleted.\n\n5.\tRegardless of whether a new grace period is needed, rcu_start_gp()\n\twill propagate the new value of -\u003ecompleted to all of the leaf\n\trcu_node structures, under the protection of each rcu_node\u0027s -\u003elock.\n\tIf a new grace period is needed immediately, this propagation\n\twill occur in the same critical section that -\u003ecompleted was\n\tset in, but courtesy of the memory barrier in #4 above, is still\n\tseen to follow any pre-quiescent-state activity.\n\n6.\tWhen a given CPU invokes __rcu_process_gp_end(), it becomes\n\taware of the end of the old grace period and therefore makes\n\tany RCU callbacks that were waiting on that grace period eligible\n\tfor invocation.\n\n\tIf this CPU is the same one that detected the end of the grace\n\tperiod, and if there is but a single rcu_node in the hierarchy,\n\twe will still be in the single critical section.  In this case,\n\tthe memory barrier in step #4 guarantees that all callbacks will\n\tbe seen to execute after each CPU\u0027s quiescent state.\n\n\tOn the other hand, if this is a different CPU, it will acquire\n\tthe leaf rcu_node\u0027s -\u003elock, and will again be serialized after\n\teach CPU\u0027s quiescent state for the old grace period.\n\nOn the strength of this proof, this commit therefore removes the memory\nbarriers from rcu_process_callbacks() and adds one to rcu_report_qs_rsp().\nThe effect is to reduce the number of memory barriers by one and to\nreduce the frequency of execution from about once per scheduling tick\nper CPU to once per grace period.\n\nThis was reverted do to hangs found during testing by Yinghai Lu and\nIngo Molnar.  Frederic Weisbecker supplied Yinghai with tracing that\nlocated the underlying problem, and Frederic also provided the fix.\n\nThe underlying problem was that the HARDIRQ_ENTER() macro from\nlib/locking-selftest.c invoked irq_enter(), which in turn invokes\nrcu_irq_enter(), but HARDIRQ_EXIT() invoked __irq_exit(), which\ndoes not invoke rcu_irq_exit().  This situation resulted in calls\nto rcu_irq_enter() that were not balanced by the required calls to\nrcu_irq_exit().  Therefore, after these locking selftests completed,\nRCU\u0027s dyntick-idle nesting count was a large number (for example,\n72), which caused RCU to to conclude that the affected CPU was not in\ndyntick-idle mode when in fact it was.\n\nRCU would therefore incorrectly wait for this dyntick-idle CPU, resulting\nin hangs.\n\nIn contrast, with Frederic\u0027s patch, which replaces the irq_enter()\nin HARDIRQ_ENTER() with an __irq_enter(), these tests don\u0027t ever call\neither rcu_irq_enter() or rcu_irq_exit(), which works because the CPU\nrunning the test is already marked as not being in dyntick-idle mode.\nThis means that the rcu_irq_enter() and rcu_irq_exit() calls and RCU\nthen has no problem working out which CPUs are in dyntick-idle mode and\nwhich are not.\n\nThe reason that the imbalance was not noticed before the barrier patch\nwas applied is that the old implementation of rcu_enter_nohz() ignored\nthe nesting depth.  This could still result in delays, but much shorter\nones.  Whenever there was a delay, RCU would IPI the CPU with the\nunbalanced nesting level, which would eventually result in rcu_enter_nohz()\nbeing called, which in turn would force RCU to see that the CPU was in\ndyntick-idle mode.\n\nThe reason that very few people noticed the problem is that the mismatched\nirq_enter() vs. __irq_exit() occured only when the kernel was built with\nCONFIG_DEBUG_LOCKING_API_SELFTESTS.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "4305ce7894dd38b0633bfc8978437320119223bd",
      "tree": "eafe4497236f8dd4ddfdf90fe06a5377912a9c35",
      "parents": [
        "b5904090c754327ed6c2ecaefed4f7d473df393f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 14:27:31 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:22 2011 -0700"
      },
      "message": "rcu: Make rcu_enter_nohz() pay attention to nesting\n\nThe old version of rcu_enter_nohz() forced RCU into nohz mode even if\nthe nesting count was non-zero.  This change causes rcu_enter_nohz()\nto hold off for non-zero nesting counts.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b5904090c754327ed6c2ecaefed4f7d473df393f",
      "tree": "46cf53f98413171d92de3b5e11c9327309f240b7",
      "parents": [
        "1135633bddcf7a819a1490c18d04965c490bcc1e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:52:04 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:21 2011 -0700"
      },
      "message": "rcu: Don\u0027t do reschedule unless in irq\n\nCondition the set_need_resched() in rcu_irq_exit() on in_irq().  This\nshould be a no-op, because rcu_irq_exit() should only be called from irq.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1135633bddcf7a819a1490c18d04965c490bcc1e",
      "tree": "99facc2b3416a7c00cf042d2f782a87859e30d26",
      "parents": [
        "0bbcc529fcea9c7de5e2e7243f9913b8f7302a8c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:44:06 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:21 2011 -0700"
      },
      "message": "rcu: Remove old memory barriers from rcu_process_callbacks()\n\nSecond step of partitioning of commit e59fb3120b.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0bbcc529fcea9c7de5e2e7243f9913b8f7302a8c",
      "tree": "22403b7c9bf3b87818c3a8a606a1bc33dd12bd1a",
      "parents": [
        "ba9f207c9f82115aba4ce04b22e0081af0ae300f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:24:04 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:20 2011 -0700"
      },
      "message": "rcu: Add memory barriers\n\nAdd the memory barriers added by e59fb3120b.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1102c660dd35725a11c7ca9365c237f2f42f6b30",
      "tree": "cd32d3053b30050182218e0d36b4aed7459c48de",
      "parents": [
        "6e9101aeec39961308176e0f59e73ac5d37d243a",
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 26 13:48:30 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 26 13:48:39 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: Linus applied an overlapping commit:\n\n  5f2e8e2b0bf0: kernel/watchdog.c: Use proper ANSI C prototypes\n\nSo merge it in to make sure we can iterate the file without conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "def945eeb920b94e710574454043f080831aefe5",
      "tree": "3ab084b62973e172b98ab731b80b19666eac30e7",
      "parents": [
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed May 25 22:09:40 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 26 13:15:28 2011 +0200"
      },
      "message": "irq: Remove smp_affinity_list when unregister irq proc\n\ncommit 4b06042(bitmap, irq: add smp_affinity_list interface to\n/proc/irq) causes the following warning:\n\n[  274.239500] WARNING: at fs/proc/generic.c:850 remove_proc_entry+0x24c/0x27a()\n[  274.251761] remove_proc_entry: removing non-empty directory \u0027irq/184\u0027,\n    \t       leaking at least \u0027smp_affinity_list\u0027\n\nRemove the new file in the exit path.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nLink: http://lkml.kernel.org/r/4DDDE094.6050505@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1",
      "tree": "81c35a8fe57b1a139416aac637b0fc198f67199d",
      "parents": [
        "7f34b746f79c1e1f8fd6d09799d133263ae7a504"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 14:27:43 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:49 2011 -0400"
      },
      "message": "ftrace: Add internal recursive checks\n\nWitold reported a reboot caused by the selftests of the dynamic function\ntracer. He sent me a config and I used ktest to do a config_bisect on it\n(as my config did not cause the crash). It pointed out that the problem\nconfig was CONFIG_PROVE_RCU.\n\nWhat happened was that if multiple callbacks are attached to the\nfunction tracer, we iterate a list of callbacks. Because the list is\nmanaged by synchronize_sched() and preempt_disable, the access to the\npointers uses rcu_dereference_raw().\n\nWhen PROVE_RCU is enabled, the rcu_dereference_raw() calls some\ndebugging functions, which happen to be traced. The tracing of the debug\nfunction would then call rcu_dereference_raw() which would then call the\ndebug function and then... well you get the idea.\n\nI first wrote two different patches to solve this bug.\n\n1) add a __rcu_dereference_raw() that would not do any checks.\n2) add notrace to the offending debug functions.\n\nBoth of these patches worked.\n\nTalking with Paul McKenney on IRC, he suggested to add recursion\ndetection instead. This seemed to be a better solution, so I decided to\nimplement it. As the task_struct already has a trace_recursion to detect\nrecursion in the ring buffer, and that has a very small number it\nallows, I decided to use that same variable to add flags that can detect\nthe recursion inside the infrastructure of the function tracer.\n\nI plan to change it so that the task struct bit can be checked in\nmcount, but as that requires changes to all archs, I will hold that off\nto the next merge window.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1306348063.1465.116.camel@gandalf.stny.rr.com\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2fc1b6f0d0a719e1e2a30bf076a3a799feaf6af2",
      "tree": "3101c47095ef438b6657b7e0dbb57b2f7188666f",
      "parents": [
        "3b6cfdb1714a33ae4d2ca9fbc818a42cf7adee69"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Tue Apr 19 09:35:28 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:44 2011 -0400"
      },
      "message": "tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n\nFilesystem, like Btrfs, has some \"ULL\" macros, and when these macros are passed\nto tracepoints\u0027__print_symbolic(), there will be 64-\u003e32 truncate WARNINGS during\ncompiling on 32bit box.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4DACE6E0.7000507@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3b6cfdb1714a33ae4d2ca9fbc818a42cf7adee69",
      "tree": "1fc1ca6ff17da6c7ab30d2dffa99d3cb6d4cfca4",
      "parents": [
        "17bb615ad4f8d2d2c0f02794d27d7f83e0009ef4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 23 15:33:49 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:42 2011 -0400"
      },
      "message": "ftrace: Set ops-\u003eflag to enabled even on static function tracing\n\nWhen dynamic ftrace is not configured, the ops-\u003eflags still needs\nto have its FTRACE_OPS_FL_ENABLED bit set in ftrace_startup().\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "17bb615ad4f8d2d2c0f02794d27d7f83e0009ef4",
      "tree": "6d312c4fc2c35c057e77f257ec9b82be0ce27cce",
      "parents": [
        "a1cd6173596c6f7d1f0b41ac7d33ecf03c581edc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 23 15:27:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:39 2011 -0400"
      },
      "message": "tracing: Have event with function tracer check error return\n\nThe self tests for event tracer does not check if the function\ntracing was successfully activated. It needs to before it continues\nthe tests, otherwise the wrong errors may be reported.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a1cd6173596c6f7d1f0b41ac7d33ecf03c581edc",
      "tree": "413ed775a2c48d8ad003740fa6ef0d912f784842",
      "parents": [
        "7cbc5b8d4a775a43875a09e29c49a2a8195b5b2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 23 15:24:25 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:37 2011 -0400"
      },
      "message": "ftrace: Have ftrace_startup() return failure code\n\nThe register_ftrace_function() returns an error code on failure\nexcept if the call to ftrace_startup() fails. Add a error return to\nftrace_startup() if it fails to start, allowing register_ftrace_funtion()\nto return a proper error value.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "14d74e0cab7a7779a7ff0c3863c04c8a8e507106",
      "tree": "5e27d7495f8f7ce178b637d588ec42bd7b4173d8",
      "parents": [
        "49a78d085fa6b44d6ed791923c7172a6433589c2",
        "956c920786694f51601a0ef7ee12956fd6aa216e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 18:10:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 18:10:16 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/linux-2.6-nsfd\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/linux-2.6-nsfd:\n  net: fix get_net_ns_by_fd for !CONFIG_NET_NS\n  ns proc: Return -ENOENT for a nonexistent /proc/self/ns/ entry.\n  ns: Declare sys_setns in syscalls.h\n  net: Allow setting the network namespace by fd\n  ns proc: Add support for the ipc namespace\n  ns proc: Add support for the uts namespace\n  ns proc: Add support for the network namespace.\n  ns: Introduce the setns syscall\n  ns: proc files for namespace naming policy.\n"
    },
    {
      "commit": "7cbc5b8d4a775a43875a09e29c49a2a8195b5b2d",
      "tree": "b172a445ca84bd463abc6006233799e0a5f422b2",
      "parents": [
        "9905ce8ad7b79dddd23c7b4753d0b2cdb65bde3c"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue May 10 12:43:46 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 19:56:36 2011 -0400"
      },
      "message": "jump_label: Check entries limit in __jump_label_update\n\nWhen iterating the jump_label entries array (core or modules),\nthe __jump_label_update function peeks over the last entry.\n\nThe reason is that the end of the for loop depends on the key\nvalue of the processed entry. Thus when going through the\nlast array entry, we will touch the memory behind the array\nlimit.\n\nThis bug probably will never be triggered, since most likely the\nmemory behind the jump_label entries will be accesable and the\nentry-\u003ekey will be different than the expected value.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110510104346.GC1899@jolsa.brq.redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9720d75399fd2655a6b6fb06abcf548150f22362",
      "tree": "a9c239d322420ad96afda07294d0c53295adcd3e",
      "parents": [
        "0c63e38a129e7b1f625c6112439a4efc87b1635c",
        "d92fcf0552a15891b25c343cee340d295e24109c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 16:53:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 16:53:14 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc\n\n* \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc:\n  signal: sys_pause() should check signal_pending()\n  ptrace: ptrace_resume() shouldn\u0027t wake up !TASK_TRACED thread\n"
    },
    {
      "commit": "0798b1dbfbd9ff2a370c5968c5f0621ef0075fe0",
      "tree": "c7f61ab9683786a070da0933b9981fc74a4d865f",
      "parents": [
        "ad363e0916423b2e6cdfcdc30ae707ec709f0a65",
        "6738d3210aabe3016a1b03cd98a7fc479c229197"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (26 commits)\n  arch/tile: prefer \"tilepro\" as the name of the 32-bit architecture\n  compat: include aio_abi.h for aio_context_t\n  arch/tile: cleanups for tilegx compat mode\n  arch/tile: allocate PCI IRQs later in boot\n  arch/tile: support signal \"exception-trace\" hook\n  arch/tile: use better definitions of xchg() and cmpxchg()\n  include/linux/compat.h: coding-style fixes\n  tile: add an RTC driver for the Tilera hypervisor\n  arch/tile: finish enabling support for TILE-Gx 64-bit chip\n  compat: fixes to allow working with tile arch\n  arch/tile: update defconfig file to something more useful\n  tile: do_hardwall_trap: do not play with task-\u003esighand\n  tile: replace mm-\u003ecpu_vm_mask with mm_cpumask()\n  tile,mn10300: add device parameter to dma_cache_sync()\n  audit: support the \"standard\" \u003casm-generic/unistd.h\u003e\n  arch/tile: clarify flush_buffer()/finv_buffer() function names\n  arch/tile: kernel-related cleanups from removing static page size\n  arch/tile: various header improvements for building drivers\n  arch/tile: disable GX prefetcher during cache flush\n  arch/tile: tolerate disabling CONFIG_BLK_DEV_INITRD\n  ...\n"
    },
    {
      "commit": "90ff1f30c0f401e325d6b2747618b7e3a0addaf8",
      "tree": "3b85646d25e9d27fdf6e568a145b85b2c9c79e90",
      "parents": [
        "51b550a41c2ac0373b42f4e211f2df113b735b0a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 25 23:08:17 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:31:58 2011 -0700"
      },
      "message": "hrtimers: Fix typo causing erratic timers\n\ncommit 9ec2690758a5 (\"timerfd: Manage cancelable timers in timerfd\")\nintroduced a CONFIG_HIGHRES_TIMERS (should be CONFIG_HIGH_RES_TIMERS)\ntypo, which caused applications depending on CLOCK_REALTIME timers to\nbecome sluggy due to the fact that the time base of the realtime\ntimers was not updated when the wall clock time was set.\n\nThis causes anything from 100% CPU use for some applications to odd\ndelays and hickups.\n\nReported-bisected-and-tested-by: Anca Emanuel \u003canca.emanuel@gmail.com\u003e\nTested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nFatfingered-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d92fcf0552a15891b25c343cee340d295e24109c",
      "tree": "ad43a9c62d926f223d699544bcef4695af4f3e9d",
      "parents": [
        "0666fb51b1483f27506e212cc7f7b2645b5c7acc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 25 19:22:27 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 25 19:22:27 2011 +0200"
      },
      "message": "signal: sys_pause() should check signal_pending()\n\nERESTART* is always wrong without TIF_SIGPENDING. Teach sys_pause()\nto handle the spurious wakeup correctly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "0666fb51b1483f27506e212cc7f7b2645b5c7acc",
      "tree": "ceb625d70f0c730a46e2d954b74d687cc36b0030",
      "parents": [
        "22e12bbc9bc38c6d0bd541d061a0f547596fc19d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 25 19:20:21 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 25 19:20:21 2011 +0200"
      },
      "message": "ptrace: ptrace_resume() shouldn\u0027t wake up !TASK_TRACED thread\n\nIt is not clear why ptrace_resume() does wake_up_process(). Unless the\ncaller is PTRACE_KILL the tracee should be TASK_TRACED so we can use\nwake_up_state(__TASK_TRACED). If sys_ptrace() races with SIGKILL we do\nnot need the extra and potentionally spurious wakeup.\n\nIf the caller is PTRACE_KILL, wake_up_process() is even more wrong.\nThe tracee can sleep in any state in any place, and if we have a buggy\ncode which doesn\u0027t handle a spurious wakeup correctly PTRACE_KILL can\nbe used to exploit it. For example:\n\n\tint main(void)\n\t{\n\t\tint child, status;\n\n\t\tchild \u003d fork();\n\t\tif (!child) {\n\t\t\tint ret;\n\n\t\t\tassert(ptrace(PTRACE_TRACEME, 0,0,0) \u003d\u003d 0);\n\n\t\t\tret \u003d pause();\n\t\t\tprintf(\"pause: %d %m\\n\", ret);\n\n\t\t\treturn 0x23;\n\t\t}\n\n\t\tsleep(1);\n\t\tassert(ptrace(PTRACE_KILL, child, 0,0) \u003d\u003d 0);\n\n\t\tassert(child \u003d\u003d wait(\u0026status));\n\t\tprintf(\"wait: %x\\n\", status);\n\n\t\treturn 0;\n\t}\n\nprints \"pause: -1 Unknown error 514\", -ERESTARTNOHAND leaks to the\nuserland. In this case sys_pause() is buggy as well and should be\nfixed.\n\nI do not know what was the original rationality behind PTRACE_KILL.\nThe man page is simply wrong and afaics it was always wrong. Imho\nit should be deprecated, or may be it should do send_sig(SIGKILL)\nas Denys suggests, but in any case I do not think that the current\nbehaviour was intentional.\n\nNote: there is another problem, ptrace_resume() changes -\u003eexit_code\nand this can race with SIGKILL too. Eventually we should change ptrace\nto not use -\u003eexit_code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "19426a8f810752b4218e59b1e2187f33e255f7bc",
      "tree": "dd88adc38ef98a10b1eea952f16d7480411e2409",
      "parents": [
        "0f1493a60167cf6333626456d3fc8aff4e6fa237",
        "8af088710d1eb3c980e0ef3779c8d47f3f217b48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:58:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:58:50 2011 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix-timers: RCU conversion\n"
    },
    {
      "commit": "162a7e7500f9664636e649ba59defe541b7c2c60",
      "tree": "f44d4e480975d7f2c4bd4fd8625dbdb81eb04ade",
      "parents": [
        "95dde501907b06e7203c74f8435acfdab9eb2659"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue May 24 17:13:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:48 2011 -0700"
      },
      "message": "printk: allocate kernel log buffer earlier\n\nOn larger systems, because of the numerous ACPI, Bootmem and EFI messages,\nthe static log buffer overflows before the larger one specified by the\nlog_buf_len param is allocated.  Minimize the overflow by allocating the\nnew log buffer as soon as possible.\n\nOn kernels without memblock, a later call to setup_log_buf from\nkernel/init.c is the fallback.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix CONFIG_PRINTK\u003dn build]\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b060420a596095869a6d7849caa798d23839cd1",
      "tree": "ebbbc25555d0358f73527f114f78691ac849ce3e",
      "parents": [
        "e50c1f609c63223adaa38f5a79b18759a00adf72"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue May 24 17:13:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:45 2011 -0700"
      },
      "message": "bitmap, irq: add smp_affinity_list interface to /proc/irq\n\nManually adjusting the smp_affinity for IRQ\u0027s becomes unwieldy when the\ncpu count is large.\n\nSetting smp affinity to cpus 256 to 263 would be:\n\n\techo 000000ff,00000000,00000000,00000000,00000000,00000000,00000000,00000000 \u003e smp_affinity\n\ninstead of:\n\n\techo 256-263 \u003e smp_affinity_list\n\nThink about what it looks like for cpus around say, 4088 to 4095.\n\nWe already have many alternate \"list\" interfaces:\n\n/sys/devices/system/cpu/cpuX/indexY/shared_cpu_list\n/sys/devices/system/cpu/cpuX/topology/thread_siblings_list\n/sys/devices/system/cpu/cpuX/topology/core_siblings_list\n/sys/devices/system/node/nodeX/cpulist\n/sys/devices/pci***/***/local_cpulist\n\nAdd a companion interface, smp_affinity_list to use cpu lists instead of\ncpu maps.  This conforms to other companion interfaces where both a map\nand a list interface exists.\n\nThis required adding a bitmap_parselist_user() function in a manner\nsimilar to the bitmap_parse_user() function.\n\n[akpm@linux-foundation.org: make __bitmap_parselist() static]\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andy Shevchenko \u003candy.shevchenko@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de03c72cfce5b263a674d04348b58475ec50163c",
      "tree": "e2b035234440bcd1aa88078c3f9c8457d461ef9c",
      "parents": [
        "692e0b35427a088bf75d9363788c61c7edbe93a5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:12:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: convert mm-\u003ecpu_vm_cpumask into cpumask_var_t\n\ncpumask_t is very big struct and cpu_vm_mask is placed wrong position.\nIt might lead to reduce cache hit ratio.\n\nThis patch has two change.\n1) Move the place of cpumask into last of mm_struct. Because usually cpumask\n   is accessed only front bits when the system has cpu-hotplug capability\n2) Convert cpu_vm_mask into cpumask_var_t. It may help to reduce memory\n   footprint if cpumask_size() will use nr_cpumask_bits properly in future.\n\nIn addition, this patch change the name of cpu_vm_mask with cpu_vm_mask_var.\nIt may help to detect out of tree cpu_vm_mask users.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea",
      "tree": "1f46db3a8424090dd8e0b58991fa5acc1a73e680",
      "parents": [
        "97a894136f29802da19a15541de3c019e1ca147e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: Convert i_mmap_lock to a mutex\n\nStraightforward conversion of i_mmap_lock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97a894136f29802da19a15541de3c019e1ca147e",
      "tree": "1fd3f92ba92a37d5d8527a1f41458091d0a944dc",
      "parents": [
        "e4c70a6629f9c74c4b0de258a3951890e9047c82"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "mm: Remove i_mmap_lock lockbreak\n\nHugh says:\n \"The only significant loser, I think, would be page reclaim (when\n  concurrent with truncation): could spin for a long time waiting for\n  the i_mmap_mutex it expects would soon be dropped? \"\n\nCounter points:\n - cpu contention makes the spin stop (need_resched())\n - zap pages should be freeing pages at a higher rate than reclaim\n   ever can\n\nI think the simplification of the truncate code is definitely worth it.\n\nEffectively reverts: 2aa15890f3c (\"mm: prevent concurrent\nunmap_mapping_range() on the same inode\") and takes out the code that\ncaused its problem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4c70a6629f9c74c4b0de258a3951890e9047c82",
      "tree": "aac3502b1fa1ed0f53d290aa1a18b9ce493c5a6b",
      "parents": [
        "e303297e6c3a7b847c4731eb14006ca6b435ecca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "lockdep, mutex: provide mutex_lock_nest_lock\n\nIn order to convert i_mmap_lock to a mutex we need a mutex equivalent to\nspin_lock_nest_lock(), thus provide the mutex_lock_nest_lock() annotation.\n\nAs with spin_lock_nest_lock(), mutex_lock_nest_lock() allows annotation of\nthe locking pattern where an outer lock serializes the acquisition order\nof nested locks.  That is, if every time you lock multiple locks A, say A1\nand A2 you first acquire N, the order of acquiring A1 and A2 is\nirrelevant.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f42a9813fbf930fea3bdd0524dcb43c7feb0c977",
      "tree": "9396a7cf0b18ff2ce04cbe4698466ad6196afc75",
      "parents": [
        "354258011e8e86961f7a72ad154ca8caf0c4c6f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:36:06 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:36:06 2011 +0200"
      },
      "message": "PM / Hibernate: Update kerneldoc comments in hibernate.c\n\nSome of the kerneldoc comments in kernel/power/hibernate.c are\noutdated and some of them don\u0027t adhere to the kernel\u0027s standards.\nUpdate them and make them look in a consistent way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "354258011e8e86961f7a72ad154ca8caf0c4c6f7",
      "tree": "e1c680e692a9cdddaabece1fe73dd85928bd1b23",
      "parents": [
        "4e2d9491a78929badcf774869b458486acb96365"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:35:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 23:35:55 2011 +0200"
      },
      "message": "PM / Hibernate: Remove arch_prepare_suspend()\n\nAll architectures supporting hibernation define\narch_prepare_suspend() as an empty function, so remove it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b0ca118dbacbc6c35e15f216e25e95cca7aedf5b",
      "tree": "6c61c91ff0174c8774d4010b892ecf0bed560910",
      "parents": [
        "2bb732cdb48d271ff7a910260ffb851fb4bc8a28",
        "b7b57551bbda1390959207f79f2038aa7adb72ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 13:38:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 13:38:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (43 commits)\n  TOMOYO: Fix wrong domainname validation.\n  SELINUX: add /sys/fs/selinux mount point to put selinuxfs\n  CRED: Fix load_flat_shared_library() to initialise bprm correctly\n  SELinux: introduce path_has_perm\n  flex_array: allow 0 length elements\n  flex_arrays: allow zero length flex arrays\n  flex_array: flex_array_prealloc takes a number of elements, not an end\n  SELinux: pass last path component in may_create\n  SELinux: put name based create rules in a hashtable\n  SELinux: generic hashtab entry counter\n  SELinux: calculate and print hashtab stats with a generic function\n  SELinux: skip filename trans rules if ttype does not match parent dir\n  SELinux: rename filename_compute_type argument to *type instead of *con\n  SELinux: fix comment to state filename_compute_type takes an objname not a qstr\n  SMACK: smack_file_lock can use the struct path\n  LSM: separate LSM_AUDIT_DATA_DENTRY from LSM_AUDIT_DATA_PATH\n  LSM: split LSM_AUDIT_DATA_FS into _PATH and _INODE\n  SELINUX: Make selinux cache VFS RCU walks safe\n  SECURITY: Move exec_permission RCU checks into security modules\n  SELinux: security_read_policy should take a size_t not ssize_t\n  ...\n"
    },
    {
      "commit": "5129df03d0c44b2d5a5f9d7d52f3b079706b9a8f",
      "tree": "799e309a7db032cb7abe9f0fa910c2989c3fdab5",
      "parents": [
        "4d429480352c63db2228489f0db9fd381cdc3c9c",
        "6988f20fe04e9ef3aea488cb8ab57fbeb78e12f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:53:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:53:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: Unify input section names\n  percpu: Avoid extra NOP in percpu_cmpxchg16b_double\n  percpu: Cast away printk format warning\n  percpu: Always align percpu output section to PAGE_SIZE\n\nFix up fairly trivial conflict in arch/x86/include/asm/percpu.h as per Tejun\n"
    },
    {
      "commit": "434d42cfd05a7cc452457a81d2029540cba12150",
      "tree": "3a6b9b7f9ff2e1b7409dd66c15242b2a75aa4422",
      "parents": [
        "d762f4383100c2a87b1a3f2d678cd3b5425655b4",
        "12a5a2621b1ee14d32beca35304d7c6076a58815"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 24 22:55:24 2011 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue May 24 22:55:24 2011 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "8af088710d1eb3c980e0ef3779c8d47f3f217b48",
      "tree": "e122a2e65684f0a40d263ba73afe3d54a2c5993a",
      "parents": [
        "d762f4383100c2a87b1a3f2d678cd3b5425655b4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue May 24 11:12:58 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 24 12:10:51 2011 +0200"
      },
      "message": "posix-timers: RCU conversion\n\nBen Nagy reported a scalability problem with KVM/QEMU that hit very hard\na single spinlock (idr_lock) in posix-timers code, on its 48 core\nmachine.\n\nEven on a 16 cpu machine (2x4x2), a single test can show 98% of cpu time\nused in ticket_spin_lock, from lock_timer\n\nRef: http://www.spinics.net/lists/kvm/msg51526.html\n\nSwitching to RCU is quite easy, IDR being already RCU ready. idr_lock\nshould be locked only for an insert/delete, not a lookup.\n\nBenchmark on a 2x4x2 machine, 16 processes calling timer_gettime().\n\nBefore :\n\nreal    1m18.669s\nuser    0m1.346s\nsys     1m17.180s\n\nAfter :\n\nreal    0m3.296s\nuser    0m1.366s\nsys     0m1.926s\n\nReported-by: Ben Nagy \u003cben@iagu.net\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nTested-by: Ben Nagy \u003cben@iagu.net\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6988f20fe04e9ef3aea488cb8ab57fbeb78e12f0",
      "tree": "c9d7fc50a2e2147a5ca07e3096e7eeb916ad2da9",
      "parents": [
        "0415b00d175e0d8945e6785aad21b5f157976ce0",
        "6ea0c34dac89611126455537552cffe6c7e832ad"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 24 09:59:36 2011 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 24 09:59:36 2011 +0200"
      },
      "message": "Merge branch \u0027fixes-2.6.39\u0027 into for-2.6.40\n"
    },
    {
      "commit": "5214638384a968574a5ea3df1d3b3194da32a496",
      "tree": "f0defc396d154c35cd57692c33e7596cd314a93b",
      "parents": [
        "df462b3dbeeaae7141f1b63cbfcc1e1bae6a85fc",
        "0f61f3e4db71946292ef8d6d6df74b8fcf001646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 21:20:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 21:20:48 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Fix sample type size calculation in 32 bits archs\n  profile: Use vzalloc() rather than vmalloc() \u0026 memset()\n"
    },
    {
      "commit": "5f2e8e2b0bf0f3a1819b25f6117a7f20bd15521d",
      "tree": "f7188c9376072d0ad37ae06832a2554dec320c67",
      "parents": [
        "5e152b4c9e0fce6149c74406346a7ae7e7a17727"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 21:07:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 21:07:40 2011 -0700"
      },
      "message": "kernel/watchdog.c: Use proper ANSI C prototypes\n\nWe try to enforce it by using -Wstrict-prototypes, but apparently they\nsometimes get through.  Introduced by 4eec42f39204 (\"watchdog: Change\nthe default timeout and configure nmi watchdog period based\").\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e9101aeec39961308176e0f59e73ac5d37d243a",
      "tree": "7747bc5884e9e663492e53efaa15ff1f873e7d90",
      "parents": [
        "0f61f3e4db71946292ef8d6d6df74b8fcf001646"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 24 05:43:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 24 05:53:39 2011 +0200"
      },
      "message": "watchdog: Fix non-standard prototype of get_softlockup_thresh()\n\nThis build warning slipped through:\n\n  kernel/watchdog.c:102: warning: function declaration isn\u0027t a prototype\n\nAs reported by Stephen Rothwell.\n\nAlso address an unused variable warning that GCC 4.6.0 reports:\nwe cannot do anything about failed watchdog ops during CPU hotplug\n(it\u0027s not serious enough to return an error from the notifier),\nso ignore them.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110524134129.8da27016.sfr@canb.auug.org.au\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20110517071642.GF22305@elte.hu\u003e\n"
    },
    {
      "commit": "4e2d9491a78929badcf774869b458486acb96365",
      "tree": "772bf28990cec5c78747cbc3c99ba836d6c1737b",
      "parents": [
        "257313b2a87795e07a0bdf58d0fffbdba8b31051"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 00:21:26 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 24 00:21:26 2011 +0200"
      },
      "message": "PM / Hibernate: Update some comments in core hibernate code\n\nSome comments in the core hibernate code are outdated, some aren\u0027t\nnecessary any more and at least one of them is plain wrong.  Remove\nthose comments or update them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "15a3d11b0f2ebdfb3591e411e268aa81998d4723",
      "tree": "56e1d7715653871f015341c7edabd08045f5fc28",
      "parents": [
        "1f3a8e093f470ef193b0ca6011d90180331c8b53",
        "c8b281161dfa4bb5d5be63fb036ce19347b88c63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:53:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:53:48 2011 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Increase SCHED_LOAD_SCALE resolution\n  sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations\n  sched: Cleanup set_load_weight()\n"
    },
    {
      "commit": "1f3a8e093f470ef193b0ca6011d90180331c8b53",
      "tree": "66b7a58decabdc7f76ffb102899881c258c1df59",
      "parents": [
        "c44dead70a841d90ddc01968012f323c33217c9e",
        "1a4b6f66285785ddccef049e6b45be4e7c7a2189"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:49:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:49:28 2011 -0700"
      },
      "message": "Merge branch \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (970 commits)\n  staging: usbip: replace usbip_u{dbg,err,info} and printk with dev_ and pr_\n  staging:iio: Trivial kconfig reorganization and uniformity improvements.\n  staging:iio:documenation partial update.\n  staging:iio: use pollfunc allocation helpers in remaining drivers.\n  staging:iio:max1363 misc cleanups and use of for_each_bit_set to simplify event code spitting out.\n  staging:iio: implement an iio_info structure to take some of the constant elements out of iio_dev.\n  staging:iio:meter:ade7758: Use private data space from iio_allocate_device\n  staging:iio:accel:lis3l02dq make write_reg_8 take value not a pointer to value.\n  staging:iio: ring core cleanups + check if read_last available in lis3l02dq\n  staging:iio:core cleanup: squash tiny wrappers and use dev_set_name to handle creation of event interface name.\n  staging:iio: poll func allocation clean up.\n  staging:iio:ad7780 trivial unused header cleanup.\n  staging:iio:adc: AD7780: Use private data space from iio_allocate_device + trivial fixes\n  staging:iio:adc:AD7780: Convert to new channel registration method\n  staging:iio:adc: AD7606: Drop dev_data in favour of iio_priv()\n  staging:iio:adc: AD7606: Consitently use indio_dev\n  staging:iio: Rip out helper for software rings.\n  staging:iio:adc:AD7298: Use private data space from iio_allocate_device\n  staging:iio: rationalization of different buffer implementation hooks.\n  staging:iio:imu:adis16400 avoid allocating rx, tx, and state separately from iio_dev.\n  ...\n\nFix up trivial conflicts in\n - drivers/staging/intel_sst/intelmid.c: patches applied in both branches\n - drivers/staging/rt2860/common/cmm_data_{pci,usb}.c: removed vs spelling\n - drivers/staging/usbip/vhci_sysfs.c: trivial header file inclusion\n"
    },
    {
      "commit": "30cb6d5f2eb24d15d20139d5ceefaccc68734bd7",
      "tree": "773c5a98645e4b945343caddcfe5af365566ccc5",
      "parents": [
        "4867faab1e3eb8cc3f74e390357615d9b8e8cda6",
        "68fa61c026057a39d6ccb850aa8785043afbee02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 11:30:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 11:30:28 2011 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimers: Reorder clock bases\n  hrtimers: Avoid touching inactive timer bases\n  hrtimers: Make struct hrtimer_cpu_base layout less stupid\n  timerfd: Manage cancelable timers in timerfd\n  clockevents: Move C3 stop test outside lock\n  alarmtimer: Drop device refcount after rtc_open()\n  alarmtimer: Check return value of class_find_device()\n  timerfd: Allow timers to be cancelled when clock was set\n  hrtimers: Prepare for cancel on clock was set timers\n"
    },
    {
      "commit": "19504828b4bee5e471bcd35e214bc6fd0d380692",
      "tree": "30d4ffb6783daf9fadd47548c035646d3f0f073e",
      "parents": [
        "57d19e80f459dd845fb3cfeba8e6df8471bac142",
        "3cb6d1540880e767d911b79eb49578de2190f428"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:25:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:25:52 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Fix sample size bit operations\n  perf tools: Fix ommitted mmap data update on remap\n  watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh\n  watchdog: Disable watchdog when thresh is zero\n  watchdog: Only disable/enable watchdog if neccessary\n  watchdog: Fix rounding bug in get_sample_period()\n  perf tools: Propagate event parse error handling\n  perf tools: Robustify dynamic sample content fetch\n  perf tools: Pre-check sample size before parsing\n  perf tools: Move evlist sample helpers to evlist area\n  perf tools: Remove junk code in mmap size handling\n  perf tools: Check we are able to read the event size on mmap\n"
    },
    {
      "commit": "57d19e80f459dd845fb3cfeba8e6df8471bac142",
      "tree": "8254766715720228db3d50f1ef3c7fe003c06d65",
      "parents": [
        "ee9ec4f82049c678373a611ce20ac67fe9ad836e",
        "e64851f5a0ad6ec991f74ebb3108c35aa0323d5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  b43: fix comment typo reqest -\u003e request\n  Haavard Skinnemoen has left Atmel\n  cris: typo in mach-fs Makefile\n  Kconfig: fix copy/paste-ism for dell-wmi-aio driver\n  doc: timers-howto: fix a typo (\"unsgined\")\n  perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c\n  md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n  treewide: fix a few typos in comments\n  regulator: change debug statement be consistent with the style of the rest\n  Revert \"arm: mach-u300/gpio: Fix mem_region resource size miscalculations\"\n  audit: acquire creds selectively to reduce atomic op overhead\n  rtlwifi: don\u0027t touch with treewide double semicolon removal\n  treewide: cleanup continuations and remove logging message whitespace\n  ath9k_hw: don\u0027t touch with treewide double semicolon removal\n  include/linux/leds-regulator.h: fix syntax in example code\n  tty: fix typo in descripton of tty_termios_encode_baud_rate\n  xtensa: remove obsolete BKL kernel option from defconfig\n  m68k: fix comment typo \u0027occcured\u0027\n  arch:Kconfig.locks Remove unused config option.\n  treewide: remove extra semicolons\n  ...\n"
    },
    {
      "commit": "8ce26169555cf5634263d39d3665e45300218a5e",
      "tree": "fa3dcd7da5af214001e9952bb376e4f0ead8c841",
      "parents": [
        "3cb6d1540880e767d911b79eb49578de2190f428",
        "559fa6e76b271b98ff641fa2a968aa2439e43c28"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 16:15:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 16:15:58 2011 +0200"
      },
      "message": "Merge commit \u0027559fa6e76b27\u0027 into perf/urgent\n\nMerge reason: this commit was queued up quite some time ago but was\n              forgotten about.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68fa61c026057a39d6ccb850aa8785043afbee02",
      "tree": "aa8a96849d4bd9b1e46c602d398cda0e72d4115c",
      "parents": [
        "ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 23:14:04 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 23 13:59:54 2011 +0200"
      },
      "message": "hrtimers: Reorder clock bases\n\nThe ordering of the clock bases is historical due to the\nCLOCK_REALTIME and CLOCK_MONOTONIC constants. Now the hrtimer bases\nhave their own enumeration due to the gap between CLOCK_MONOTONIC and\nCLOCK_BOOTTIME. So we can be more clever as most timers end up on the\nCLOCK_MONOTONIC base due to the virtue of POSIX declaring that\nrelative CLOCK_REALTIME timers are not affected by time changes. In\ndesktop environments this is slowly changing as applications switch to\nabsolute timers, but I\u0027ve observed empty CLOCK_REALTIME bases often\nenough. There is no performance penalty or overhead when\nCLOCK_REALTIME timers are active, but in case they are not we don\u0027t\nskip over a full cache line.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5",
      "tree": "c8b370496497b4f96d6a17da906bdd9314e9a090",
      "parents": [
        "f24444b01bf6c51c300fd3ffc73423383d747882"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 13:05:15 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 23 13:59:54 2011 +0200"
      },
      "message": "hrtimers: Avoid touching inactive timer bases\n\nInstead of iterating over all possible timer bases avoid it by marking\nthe active bases in the cpu base.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "9ec2690758a5467f24beb301cca5098078073bba",
      "tree": "e5bc78f690d12635a56460ea6f54b49318221dc8",
      "parents": [
        "250f972d85effad5b6e10da4bbd877e6a4b503b6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 20 16:18:50 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 23 13:59:53 2011 +0200"
      },
      "message": "timerfd: Manage cancelable timers in timerfd\n\nPeter is concerned about the extra scan of CLOCK_REALTIME_COS in the\ntimer interrupt. Yes, I did not think about it, because the solution\nwas so elegant. I didn\u0027t like the extra list in timerfd when it was\nproposed some time ago, but with a rcu based list the list walk it\u0027s\nless horrible than the original global lock, which was held over the\nlist iteration.\n\nRequested-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "4eec42f392043063d0f019640b4ccc2a45570002",
      "tree": "32db1c354f9c12d1275093efed8101a2bd5db232",
      "parents": [
        "586692a5a5fc5740c8a46abc0f2365495c2d7c5f"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun May 22 22:10:23 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 11:58:59 2011 +0200"
      },
      "message": "watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh\n\nBefore the conversion of the NMI watchdog to perf event, the\nwatchdog timeout was 5 seconds. Now it is 60 seconds. For my\nparticular application, netbooks, 5 seconds was a better\ntimeout. With a short timeout, we catch faults earlier and are\nable to send back a panic. With a 60 second timeout, the user is\nunlikely to wait and will instead hit the power button, causing\nus to lose the panic info.\n\nThis change configures the NMI period to watchdog_thresh and\nsets the softlockup_thresh to watchdog_thresh * 2. In addition,\nwatchdog_thresh was reduced to 10 seconds as suggested by Ingo\nMolnar.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306127423-3347-4-git-send-email-msb@chromium.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20110517071642.GF22305@elte.hu\u003e\n"
    },
    {
      "commit": "586692a5a5fc5740c8a46abc0f2365495c2d7c5f",
      "tree": "bc08228e67a968d83691c9efc5ea1feda9e6f98b",
      "parents": [
        "e04ab2bc41b35c0cb6cdb07c8443f91aa738cf78"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun May 22 22:10:22 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 11:58:59 2011 +0200"
      },
      "message": "watchdog: Disable watchdog when thresh is zero\n\nThis restores the previous behavior of softlock_thresh.\n\nCurrently, setting watchdog_thresh to zero causes the watchdog\nkthreads to consume a lot of CPU.\n\nIn addition, the logic of proc_dowatchdog_thresh and\nproc_dowatchdog_enabled has been factored into proc_dowatchdog.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306127423-3347-3-git-send-email-msb@chromium.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20110517071018.GE22305@elte.hu\u003e\n"
    },
    {
      "commit": "e04ab2bc41b35c0cb6cdb07c8443f91aa738cf78",
      "tree": "511efcd50f74c0a3cf28cf5c68eaa5e70b45fbc7",
      "parents": [
        "824c6b7f6294101f30e141117def224a56c203e6"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun May 22 22:10:21 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 11:58:58 2011 +0200"
      },
      "message": "watchdog: Only disable/enable watchdog if neccessary\n\nDon\u0027t take any action on an unsuccessful write to /proc.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306127423-3347-2-git-send-email-msb@chromium.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "824c6b7f6294101f30e141117def224a56c203e6",
      "tree": "c609d4c12a1d5af1ceccb5c1c2275df2947d9e2c",
      "parents": [
        "3ac1bbcf13c56a19927df670f429eb0c3c11f8e5"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun May 22 22:10:20 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 11:58:58 2011 +0200"
      },
      "message": "watchdog: Fix rounding bug in get_sample_period()\n\nIn get_sample_period(), softlockup_thresh is integer divided by\n5 before the multiplication by NSEC_PER_SEC. This results in\nsoftlockup_thresh being rounded down to the nearest integer\nmultiple of 5.\n\nFor example, a softlockup_thresh of 4 rounds down to 0.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306127423-3347-1-git-send-email-msb@chromium.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e98bae7592a44bdce2e49ccd64f3c7ffe244a0f6",
      "tree": "1887da3331c5214c330226506d229222b454e960",
      "parents": [
        "4b382d0643603819e8b48da58efc254cabc22574",
        "f400bdb1d6de4344980cf39041497b288090dd33"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 22:06:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 22 22:06:24 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6: (28 commits)\n  sparc32: fix build, fix missing cpu_relax declaration\n  SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI\n  sparc32,leon: Remove unnecessary page_address calls in LEON DMA API.\n  sparc: convert old cpumask API into new one\n  sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines\n  sparc32, sun4m: Implemented SMP IPIs support for SUN4M machines\n  sparc32,leon: Implemented SMP IPIs for LEON CPU\n  sparc32: implement SMP IPIs using the generic functions\n  sparc32,leon: SMP power down implementation\n  sparc32,leon: added some SMP comments\n  sparc: add {read,write}*_be routines\n  sparc32,leon: don\u0027t rely on bootloader to mask IRQs\n  sparc32,leon: operate on boot-cpu IRQ controller registers\n  sparc32: always define boot_cpu_id\n  sparc32: removed unused code, implemented by generic code\n  sparc32: avoid build warning at mm/percpu.c:1647\n  sparc32: always register a PROM based early console\n  sparc32: probe for cpu info only during startup\n  sparc: consolidate show_cpuinfo in cpu.c\n  sparc32,leon: implement genirq CPU affinity\n  ...\n"
    },
    {
      "commit": "be84bfcc3ed8f824751ab79349779e50cc98aa01",
      "tree": "ca42d81fbc402405614cae288bf7600bee82cc21",
      "parents": [
        "06f4e926d256d902dd9a53dcb400fd74974ce087"
      ],
      "author": {
        "name": "Kevin Cernekee",
        "email": "cernekee@gmail.com",
        "time": "Tue May 17 10:39:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:53:02 2011 -0700"
      },
      "message": "ipc: Add missing sys_ni entries for ipc/compat.c functions\n\nWhen building with:\n\n  CONFIG_64BIT\u003dy\n  CONFIG_MIPS32_COMPAT\u003dy\n  CONFIG_COMPAT\u003dy\n  CONFIG_MIPS32_O32\u003dy\n  CONFIG_MIPS32_N32\u003dy\n  CONFIG_SYSVIPC is not set\n  (and implicitly: CONFIG_SYSVIPC_COMPAT is not set)\n\nthe final link fails with unresolved symbols for:\n\n  compat_sys_semctl, compat_sys_msgsnd, compat_sys_msgrcv,\n  compat_sys_shmctl, compat_sys_msgctl, compat_sys_semtimedop\n\nThe fix is to add cond_syscall declarations for all syscalls in\nipc/compat.c\n\nSigned-off-by: Kevin Cernekee \u003ccernekee@gmail.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06f4e926d256d902dd9a53dcb400fd74974ce087",
      "tree": "0b438b67f5f0eff6fd617bc497a9dace6164a488",
      "parents": [
        "8e7bfcbab3825d1b404d615cb1b54f44ff81f981",
        "d93515611bbc70c2fe4db232e5feb448ed8e4cc9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:43:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:43:21 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits)\n  macvlan: fix panic if lowerdev in a bond\n  tg3: Add braces around 5906 workaround.\n  tg3: Fix NETIF_F_LOOPBACK error\n  macvlan: remove one synchronize_rcu() call\n  networking: NET_CLS_ROUTE4 depends on INET\n  irda: Fix error propagation in ircomm_lmp_connect_response()\n  irda: Kill set but unused variable \u0027bytes\u0027 in irlan_check_command_param()\n  irda: Kill set but unused variable \u0027clen\u0027 in ircomm_connect_indication()\n  rxrpc: Fix set but unused variable \u0027usage\u0027 in rxrpc_get_transport()\n  be2net: Kill set but unused variable \u0027req\u0027 in lancer_fw_download()\n  irda: Kill set but unused vars \u0027saddr\u0027 and \u0027daddr\u0027 in irlan_provider_connect_indication()\n  atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined.\n  rxrpc: Fix set but unused variable \u0027usage\u0027 in rxrpc_get_peer().\n  rxrpc: Kill set but unused variable \u0027local\u0027 in rxrpc_UDP_error_handler()\n  rxrpc: Kill set but unused variable \u0027sp\u0027 in rxrpc_process_connection()\n  rxrpc: Kill set but unused variable \u0027sp\u0027 in rxrpc_rotate_tx_window()\n  pkt_sched: Kill set but unused variable \u0027protocol\u0027 in tc_classify()\n  isdn: capi: Use pr_debug() instead of ifdefs.\n  tg3: Update version to 3.119\n  tg3: Apply rx_discards fix to 5719/5720\n  ...\n\nFix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c\nas per Davem.\n"
    },
    {
      "commit": "102dc1bae12a20214c9ee2d33a7402dc5175e30d",
      "tree": "dbc2364c164db3743bd86ff02557369daac0fac4",
      "parents": [
        "91444f47b2a0e50a15849f49db8c15382cd8de1b",
        "bbe7b8bef48c567f5ff3f6041c1fb011292e8f12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:38:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:38:28 2011 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  MAINTAINERS: Add drivers/clocksource to TIMEKEEPING\n  clockevents/source: Use u64 to make 32bit happy\n"
    },
    {
      "commit": "bc091c93a0f60717aa99e25c406892cd8c0187dc",
      "tree": "66fc7f6c97a11327c3acb0aee5c346717672a9f3",
      "parents": [
        "3ed4c0583daa34dedb568b26ff99e5a7b58db612",
        "a2d063ac216c1618bfc2b4d40b7176adffa63511"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:37:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:37:22 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  extable, core_kernel_data(): Make sure all archs define _sdata\n  core_kernel_data(): Fix architectures that do not define _sdata\n"
    },
    {
      "commit": "3ed4c0583daa34dedb568b26ff99e5a7b58db612",
      "tree": "a531d4cc94acaa58fe0600cf83da9fb8b77f6e50",
      "parents": [
        "ad9471752ebae25daa133b4e5d9299809c35e155",
        "bd715d9a4f13f87bad5526c2cd41370949473b16"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:33:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:33:21 2011 -0700"
      },
      "message": "Merge branch \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc\n\n* \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (41 commits)\n  signal: trivial, fix the \"timespec declared inside parameter list\" warning\n  job control: reorganize wait_task_stopped()\n  ptrace: fix signal-\u003ewait_chldexit usage in task_clear_group_stop_trapping()\n  signal: sys_sigprocmask() needs retarget_shared_pending()\n  signal: cleanup sys_sigprocmask()\n  signal: rename signandsets() to sigandnsets()\n  signal: do_sigtimedwait() needs retarget_shared_pending()\n  signal: introduce do_sigtimedwait() to factor out compat/native code\n  signal: sys_rt_sigtimedwait: simplify the timeout logic\n  signal: cleanup sys_rt_sigprocmask()\n  x86: signal: sys_rt_sigreturn() should use set_current_blocked()\n  x86: signal: handle_signal() should use set_current_blocked()\n  signal: sigprocmask() should do retarget_shared_pending()\n  signal: sigprocmask: narrow the scope of -\u003esiglock\n  signal: retarget_shared_pending: optimize while_each_thread() loop\n  signal: retarget_shared_pending: consider shared/unblocked signals only\n  signal: introduce retarget_shared_pending()\n  ptrace: ptrace_check_attach() should not do s/STOPPED/TRACED/\n  signal: Turn SIGNAL_STOP_DEQUEUED into GROUP_STOP_DEQUEUED\n  signal: do_signal_stop: Remove the unneeded task_clear_group_stop_pending()\n  ...\n"
    },
    {
      "commit": "17d9f311eca13a42bf950198a358be1420d19c5f",
      "tree": "2d1a77f66ccd607f6ab2cf304f8031724a82c7fc",
      "parents": [
        "90d3ac15e5c637d45849e83c828ed78c62886737"
      ],
      "author": {
        "name": "Daniel Hellstrom",
        "email": "daniel@gaisler.com",
        "time": "Fri May 20 04:01:10 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 20 13:10:55 2011 -0700"
      },
      "message": "SCHED_TTWU_QUEUE is not longer needed since sparc32 now implements IPI\n\nSigned-off-by: Daniel Hellstrom \u003cdaniel@gaisler.com\u003e\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "90d3ac15e5c637d45849e83c828ed78c62886737",
      "tree": "c5568365f32386559d2710e8981ed41e5fe0eb12",
      "parents": [
        "9fafbd806198eb690c9a9f9fe35a879db93a1b8d",
        "317f394160e9beb97d19a84c39b7e5eb3d7815a8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 20 13:10:22 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 20 13:10:22 2011 -0700"
      },
      "message": "Merge commit \u0027317f394160e9beb97d19a84c39b7e5eb3d7815a8\u0027\n\nConflicts:\n\tarch/sparc/kernel/smp_32.c\n\nWith merge conflict help from Daniel Hellstrom.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "268bb0ce3e87872cb9290c322b0d35bce230d88f"
}
