)]}'
{
  "log": [
    {
      "commit": "6eb57e0d65ebd99a71d435dc96d83e725752eef8",
      "tree": "0349de8e8478a9b39dd1c75d347c36b9ebbef24c",
      "parents": [
        "ca38062e57e97791c2f62e3dbd06caf3ebb5721c"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:01 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:27 2011 +0200"
      },
      "message": "sched: Request for idle balance during nohz idle load balance\n\nrq\u0027s idle_at_tick is set to idle/busy during the timer tick\ndepending on the cpu was idle or not. This will be used later in the load\nbalance that will be done in the softirq context (which is a process\ncontext in -RT kernels).\n\nFor nohz kernels, for the cpu doing nohz idle load balance on behalf of\nall the idle cpu\u0027s, its rq-\u003eidle_at_tick might have a stale value (which is\nrecorded when it got the timer tick presumably when it is busy).\n\nAs the nohz idle load balancing is also being done at the same place\nas the regular load balancing, nohz idle load balancing was bailing out\nwhen it sees rq\u0027s idle_at_tick not set.\n\nThus leading to poor system utilization.\n\nRename rq\u0027s idle_at_tick to idle_balance and set it when someone requests\nfor nohz idle balance on an idle cpu.\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.892350549@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca38062e57e97791c2f62e3dbd06caf3ebb5721c",
      "tree": "c022f6a3d3087cc8eaebbc5640ca145f7d9c50d8",
      "parents": [
        "9243a169acb9df9c63632fb7d5464359a107877a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:00 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:23 2011 +0200"
      },
      "message": "sched: Use resched IPI to kick off the nohz idle balance\n\nCurrent use of smp call function to kick the nohz idle balance can deadlock\nin this scenario.\n\n1. cpu-A did a generic_exec_single() to cpu-B and after queuing its call single\ndata (csd) to the call single queue, cpu-A took a timer interrupt.  Actual IPI\nto cpu-B to process the call single queue is not yet sent.\n\n2. As part of the timer interrupt handler, cpu-A decided to kick cpu-B\nfor the idle load balancing (sets cpu-B\u0027s rq-\u003enohz_balance_kick to 1)\nand __smp_call_function_single() with nowait will queue the csd to the\ncpu-B\u0027s queue. But the generic_exec_single() won\u0027t send an IPI to cpu-B\nas the call single queue was not empty.\n\n3. cpu-A is busy with lot of interrupts\n\n4. Meanwhile cpu-B is entering and exiting idle and noticed that it has\nit\u0027s rq-\u003enohz_balance_kick set to \u00271\u0027. So it will go ahead and do the\nidle load balancer and clear its rq-\u003enohz_balance_kick.\n\n5. At this point, csd queued as part of the step-2 above is still locked\nand waiting to be serviced on cpu-B.\n\n6. cpu-A is still busy with interrupt load and now it got another timer\ninterrupt and as part of it decided to kick cpu-B for another idle load\nbalancing (as it finds cpu-B\u0027s rq-\u003enohz_balance_kick cleared in step-4\nabove) and does __smp_call_function_single() with the same csd that is\nstill locked.\n\n7. And we get a deadlock waiting for the csd_lock() in the\n__smp_call_function_single().\n\nMain issue here is that cpu-B can service the idle load balancer kick\nrequest from cpu-A even with out receiving the IPI and this lead to\ndoing multiple __smp_call_function_single() on the same csd leading to\ndeadlock.\n\nTo kick a cpu, scheduler already has the reschedule vector reserved. Use\nthat mechanism (kick_process()) instead of using the generic smp call function\nmechanism to kick off the nohz idle load balancing and avoid the deadlock.\n\n   [ This issue is present from 2.6.35+ kernels, but marking it -stable\n     only from v3.0+ as the proposed fix depends on the scheduler_ipi()\n     that is introduced recently. ]\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: stable@kernel.org # v3.0+\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.834943260@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "908a3283728d92df36e0c7cd63304fd35e93a8a9",
      "tree": "2511eb8eee1ebc534f34abd640e0fddb4d4fe5a3",
      "parents": [
        "f0f1d32f931b705c4ee5dd374074d34edf3eae14"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 15 15:32:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 12:44:07 2011 +0200"
      },
      "message": "sched: Fix idle_cpu()\n\nOn -rt we observed hackbench waking all 400 tasks to a single cpu.\nThis is because of select_idle_sibling()\u0027s interaction with the new\nipi based wakeup scheme.\n\nThe existing idle_cpu() test only checks to see if the current task on\nthat cpu is the idle task, it does not take already queued tasks into\naccount, nor does it take queued to be woken tasks into account.\n\nIf the remote wakeup IPIs come hard enough, there won\u0027t be time to\nschedule away from the idle task, and would thus keep thinking the cpu\nwas in fact idle, regardless of the fact that there were already\nseveral hundred tasks runnable.\n\nWe couldn\u0027t reproduce on mainline, but there\u0027s no reason it couldn\u0027t\nhappen.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-3o30p18b2paswpc9ohy2gltp@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa14ff4accfb24e59d2473f3d864d6648d80563b",
      "tree": "a2f3f5a16e1e740c6f96857e60c37826689d7b0b",
      "parents": [
        "924f8f5af31423529cc3940cb2ae9fee736b7517"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 12 13:06:17 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 12:43:58 2011 +0200"
      },
      "message": "sched: Convert to struct llist\n\nUse the generic llist primitives.\n\nWe had a private lockless list implementation in the scheduler in the wake-list\ncode, now that we have a generic llist implementation that provides all required\noperations, switch to it.\n\nThis patch is not expected to change any behavior.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1315836353.26517.42.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "924f8f5af31423529cc3940cb2ae9fee736b7517",
      "tree": "5d6866171b3fc428ebb64720917517534aa80670",
      "parents": [
        "38aaf8090d34b623b7919d8c933f6e938c9bf44b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 12 13:12:28 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 12:43:53 2011 +0200"
      },
      "message": "llist: Add llist_next()\n\nSo we don\u0027t have to expose the struct list_node member.\n\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315836348.26517.41.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38aaf8090d34b623b7919d8c933f6e938c9bf44b",
      "tree": "4d036cfedd9e7669b6491900e407f59adbc93c69",
      "parents": [
        "781f7fd916fc77a862e20063ed3aeedf173234f9"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Thu Sep 08 14:00:46 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 12:43:49 2011 +0200"
      },
      "message": "irq_work: Use llist in the struct irq_work logic\n\nUse llist in irq_work instead of the lock-less linked list\nimplementation in irq_work to avoid the code duplication.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315461646-1379-6-git-send-email-ying.huang@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22f92bacbeea24b20e447444c28e7cad9f1ac3f8",
      "tree": "5c3f2346804a186aa2d954f078fd2f4d44bcc26e",
      "parents": [
        "557ab425429a5123d37f412ce3e6d6137cb621f8",
        "0f86267b79bc6e357b8606077c7f70239045ea9c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 11:08:16 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 11:09:08 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f72a209a3e694ecb8d3ceed4671d98c4364e00e3",
      "tree": "e15bb43a4eb82ead5ca2aa387069353481f3cdef",
      "parents": [
        "47ea91b4052d9e94b9dca5d7a3d947fbebd07ba9",
        "eef24afb28561a5a9f4be8f8da97735b7e6a826f",
        "47997d756aa2a84ab577e1b0383cc12d582fc69c",
        "d670ec13178d0fd8680e6742a2bc6e04f28f87d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 01 08:37:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 01 08:37:25 2011 -0700"
      },
      "message": "Merge branches \u0027irq-urgent-for-linus\u0027, \u0027x86-urgent-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  irq: Fix check for already initialized irq_domain in irq_domain_add\n  irq: Add declaration of irq_domain_simple_ops to irqdomain.h\n\n* \u0027x86-urgent-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  x86/rtc: Don\u0027t recursively acquire rtc_lock\n\n* \u0027sched-urgent-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  posix-cpu-timers: Cure SMP wobbles\n  sched: Fix up wchan borkage\n  sched/rt: Migrate equal priority tasks to available CPUs\n"
    },
    {
      "commit": "d670ec13178d0fd8680e6742a2bc6e04f28f87d8",
      "tree": "81a2ac824dd92a0536e42f9a0ba3d83240856722",
      "parents": [
        "6ebbe7a07b3bc40b168d2afc569a6543c020d2e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 01 12:42:04 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Sep 30 14:07:06 2011 +0200"
      },
      "message": "posix-cpu-timers: Cure SMP wobbles\n\nDavid reported:\n\n  Attached below is a watered-down version of rt/tst-cpuclock2.c from\n  GLIBC.  Just build it with \"gcc -o test test.c -lpthread -lrt\" or\n  similar.\n\n  Run it several times, and you will see cases where the main thread\n  will measure a process clock difference before and after the nanosleep\n  which is smaller than the cpu-burner thread\u0027s individual thread clock\n  difference.  This doesn\u0027t make any sense since the cpu-burner thread\n  is part of the top-level process\u0027s thread group.\n\n  I\u0027ve reproduced this on both x86-64 and sparc64 (using both 32-bit and\n  64-bit binaries).\n\n  For example:\n\n  [davem@boricha build-x86_64-linux]$ ./test\n  process: before(0.001221967) after(0.498624371) diff(497402404)\n  thread:  before(0.000081692) after(0.498316431) diff(498234739)\n  self:    before(0.001223521) after(0.001240219) diff(16698)\n  [davem@boricha build-x86_64-linux]$ \n\n  The diff of \u0027process\u0027 should always be \u003e\u003d the diff of \u0027thread\u0027.\n\n  I make sure to wrap the \u0027thread\u0027 clock measurements the most tightly\n  around the nanosleep() call, and that the \u0027process\u0027 clock measurements\n  are the outer-most ones.\n\n  ---\n  #include \u003cunistd.h\u003e\n  #include \u003cstdio.h\u003e\n  #include \u003cstdlib.h\u003e\n  #include \u003ctime.h\u003e\n  #include \u003cfcntl.h\u003e\n  #include \u003cstring.h\u003e\n  #include \u003cerrno.h\u003e\n  #include \u003cpthread.h\u003e\n\n  static pthread_barrier_t barrier;\n\n  static void *chew_cpu(void *arg)\n  {\n\t  pthread_barrier_wait(\u0026barrier);\n\t  while (1)\n\t\t  __asm__ __volatile__(\"\" : : : \"memory\");\n\t  return NULL;\n  }\n\n  int main(void)\n  {\n\t  clockid_t process_clock, my_thread_clock, th_clock;\n\t  struct timespec process_before, process_after;\n\t  struct timespec me_before, me_after;\n\t  struct timespec th_before, th_after;\n\t  struct timespec sleeptime;\n\t  unsigned long diff;\n\t  pthread_t th;\n\t  int err;\n\n\t  err \u003d clock_getcpuclockid(0, \u0026process_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(pthread_self(), \u0026my_thread_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_init(\u0026barrier, NULL, 2);\n\t  err \u003d pthread_create(\u0026th, NULL, chew_cpu, NULL);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d pthread_getcpuclockid(th, \u0026th_clock);\n\t  if (err)\n\t\t  return 1;\n\n\t  pthread_barrier_wait(\u0026barrier);\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_before);\n\t  if (err)\n\t\t  return 1;\n\n\t  sleeptime.tv_sec \u003d 0;\n\t  sleeptime.tv_nsec \u003d 500000000;\n\t  nanosleep(\u0026sleeptime, NULL);\n\n\t  err \u003d clock_gettime(th_clock, \u0026th_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(my_thread_clock, \u0026me_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  err \u003d clock_gettime(process_clock, \u0026process_after);\n\t  if (err)\n\t\t  return 1;\n\n\t  diff \u003d process_after.tv_nsec - process_before.tv_nsec;\n\t  printf(\"process: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t process_before.tv_sec, process_before.tv_nsec,\n\t\t process_after.tv_sec, process_after.tv_nsec, diff);\n\t  diff \u003d th_after.tv_nsec - th_before.tv_nsec;\n\t  printf(\"thread:  before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t th_before.tv_sec, th_before.tv_nsec,\n\t\t th_after.tv_sec, th_after.tv_nsec, diff);\n\t  diff \u003d me_after.tv_nsec - me_before.tv_nsec;\n\t  printf(\"self:    before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\\n\",\n\t\t me_before.tv_sec, me_before.tv_nsec,\n\t\t me_after.tv_sec, me_after.tv_nsec, diff);\n\n\t  return 0;\n  }\n\nThis is due to us using p-\u003ese.sum_exec_runtime in\nthread_group_cputime() where we iterate the thread group and sum all\ndata. This does not take time since the last schedule operation (tick\nor otherwise) into account. We can cure this by using\ntask_sched_runtime() at the cost of having to take locks.\n\nThis also means we can (and must) do away with\nthread_group_sched_runtime() since the modified thread_group_cputime()\nis now more accurate and would deadlock when called from\nthread_group_sched_runtime().\n\nAside of that it makes the function safe on 32 bit systems. The old\ncode added t-\u003ese.sum_exec_runtime unprotected. sum_exec_runtime is a\n64bit value and could be changed on another cpu at the same time.\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nLink: http://lkml.kernel.org/r/1314874459.7945.22.camel@twins\nTested-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "47ea91b4052d9e94b9dca5d7a3d947fbebd07ba9",
      "tree": "079ecdd16d4e73e783851cca3ba8bda9cbd8fa8d",
      "parents": [
        "92bb062fe36132a04c6dc8b3c51c945730b05224"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Thu Sep 22 15:48:58 2011 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 29 20:04:34 2011 -0700"
      },
      "message": "Resource: fix wrong resource window calculation\n\n__find_resource() incorrectly returns a resource window which overlaps\nan existing allocated window.  This happens when the parent\u0027s\nresource-window spans 0x00000000 to 0xffffffff and is entirely allocated\nto all its children resource-windows.\n\n__find_resource() looks for gaps in resource allocation among the\nchildren resource windows.  When it encounters the last child window it\nblindly tries the range next to one allocated to the last child.  Since\nthe last child\u0027s window ends at 0xffffffff the calculation overflows,\nleading the algorithm to believe that any window in the range 0x0000000\nto 0xfffffff is available for allocation.  This leads to a conflicting\nwindow allocation.\n\nMichal Ludvig reported this issue seen on his platform.  The following\npatch fixes the problem and has been verified by Michal.  I believe this\nbug has been there for ages.  It got exposed by git commit 2bbc6942273b\n(\"PCI : ability to relocate assigned pci-resources\")\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nTested-by: Michal Ludvig \u003cmludvig@logix.net.nz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4cfb33ed980085b14a8f376281edb2e270f0244",
      "tree": "d4f4e8387cefcf44068597328e0901f09f45d4bc",
      "parents": [
        "bfa322c48dc69bfdaee10faf3bd8dbc23b39a21c"
      ],
      "author": {
        "name": "Wang Xingchao",
        "email": "xingchao.wang@intel.com",
        "time": "Fri Sep 16 13:35:52 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 26 13:25:49 2011 +0200"
      },
      "message": "sched: Remove redundant test in check_preempt_tick()\n\nThe caller already checks for nr_running \u003e 1, therefore we don\u0027t have\nto do so again.\n\nSigned-off-by: Wang Xingchao \u003cxingchao.wang@intel.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1316194552-12019-1-git-send-email-xingchao.wang@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ebbe7a07b3bc40b168d2afc569a6543c020d2e3",
      "tree": "5fa7eb4d48796af7aede4f7c0b92fde4047deeaa",
      "parents": [
        "3be209a8e22cedafc1b6945608b7bb8d9887ab61"
      ],
      "author": {
        "name": "Simon Kirby",
        "email": "sim@hostway.ca",
        "time": "Thu Sep 22 17:03:46 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 26 12:51:08 2011 +0200"
      },
      "message": "sched: Fix up wchan borkage\n\nCommit c259e01a1ec (\"sched: Separate the scheduler entry for\npreemption\") contained a boo-boo wrecking wchan output. It forgot to\nput the new schedule() function in the __sched section and thereby\ndoesn\u0027t get properly ignored for things like wchan.\n\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nCc: stable@kernel.org # 2.6.39+\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110923000346.GA25425@hostway.ca\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9d81f61c84aca693bc353dfef4b8c36c2e5e1b5",
      "tree": "adf2453955649221a9a178d7d19d5b1e71f3fe67",
      "parents": [
        "b172e38e435a158cc84169d5b9127a8dd8d21e76"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 25 19:46:22 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 25 11:02:00 2011 -0700"
      },
      "message": "ptrace: PTRACE_LISTEN forgets to unlock -\u003esiglock\n\nIf PTRACE_LISTEN fails after lock_task_sighand() it doesn\u0027t drop -\u003esiglock.\n\nReported-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eef24afb28561a5a9f4be8f8da97735b7e6a826f",
      "tree": "0014317465c4aac43d40fe0cc7f1b269a5a5b95d",
      "parents": [
        "5bd078dda4d4fbdb4bd138a6bd5b6e274c019ed2"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "robherring2@gmail.com",
        "time": "Wed Sep 14 11:31:37 2011 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 20 12:16:22 2011 +0200"
      },
      "message": "irq: Fix check for already initialized irq_domain in irq_domain_add\n\nThe sanity check in irq_domain_add() tests desc-\u003eirq_data !\u003d NULL or\nirq_data-\u003edomain !\u003d NULL. This prevents adding an irq_domain to a irq\ndescriptor when irq_data exists, which true when the irq descriptor\nexists.\n\nThis went unnoticed so far as the simple domain code did not enter\nthis code path because domain-\u003enr_irqs is always 0 for the simple domains.\n\nSplit the check for irq_data \u003d\u003d NULL out and have a separate warning\nfor it.\n\n[ tglx: Made the check for irq_data \u003d\u003d NULL separate ]\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: marc.zyngier@arm.com\nCc: thomas.abraham@linaro.org\nCc: jamie@jamieiles.com\nCc: b-cousson@ti.com\nCc: shawn.guo@linaro.org\nCc: linux-arm-kernel@lists.infradead.org\nCc: devicetree-discuss@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1316017900-19918-3-git-send-email-robherring2@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9d037a777695993ec7437e5f451647dea7919d4c",
      "tree": "05f047598aeff2e48653bb6b3dfa3a63b2068e12",
      "parents": [
        "50f2d407c09be74c77cf9d502d087398a5ba6055",
        "477694e71113fd0694b6bb0bcc2d006b8ac62691"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:23:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:23:41 2011 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  x86, iommu: Mark DMAR IRQ as non-threaded\n  genirq: Make irq_shutdown() symmetric vs. irq_startup again\n"
    },
    {
      "commit": "58c3c3aa01b455ecb99d61ce73f1444274af696b",
      "tree": "0c79541bfd948b06923780d8c651e83b1b6b5822",
      "parents": [
        "1a51410abe7d0ee4b1d112780f46df87d3621043"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:10:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:10:57 2011 -0700"
      },
      "message": "Make taskstats round statistics down to nearest 1k bytes/events\n\nEven with just the interface limited to admin, there really is little to\nreason to give byte-per-byte counts for taskstats.  So round it down to\nsomething less intrusive.\n\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a51410abe7d0ee4b1d112780f46df87d3621043",
      "tree": "fc8a3d70b9fca3692e33e528a420eae1e5407850",
      "parents": [
        "b6a68a5ba4a5111379625d6d921e1c24fc17dc3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:04:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:04:37 2011 -0700"
      },
      "message": "Make TASKSTATS require root access\n\nOk, this isn\u0027t optimal, since it means that \u0027iotop\u0027 needs admin\ncapabilities, and we may have to work on this some more.  But at the\nsame time it is very much not acceptable to let anybody just read\nanybody elses IO statistics quite at this level.\n\nUse of the GENL_ADMIN_PERM suggested by Johannes Berg as an alternative\nto checking the capabilities by hand.\n\nReported-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfa322c48dc69bfdaee10faf3bd8dbc23b39a21c",
      "tree": "95360c5d253115003080264d878f3c0f907f2978",
      "parents": [
        "88ebc08ea9f721d1345d5414288a308ea42ac458",
        "003f6c9df54970d8b19578d195b3e2b398cdbde2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 18 14:01:26 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 18 14:01:39 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: We are queueing up a dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3be209a8e22cedafc1b6945608b7bb8d9887ab61",
      "tree": "643b1083f8863cbdb45b7e2375368391f6bc3486",
      "parents": [
        "003f6c9df54970d8b19578d195b3e2b398cdbde2"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Sep 12 09:28:04 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 18 13:48:56 2011 +0200"
      },
      "message": "sched/rt: Migrate equal priority tasks to available CPUs\n\nCommit 43fa5460fe60dea5c610490a1d263415419c60f6 (\"sched: Try not to\nmigrate higher priority RT tasks\") also introduced a change in behavior\nwhich keeps RT tasks on the same CPU if there is an equal priority RT\ntask currently running even if there are empty CPUs available.\n\nThis can cause unnecessary wakeup latencies, and can prevent the\nscheduler from balancing all RT tasks across available CPUs.\n\nThis change causes an RT task to search for a new CPU if an equal\npriority RT task is already running on wakeup.  Lower priority tasks\nwill still have to wait on higher priority tasks, but the system should\nstill balance out because there is always the possibility that if there\nare both a high and low priority RT tasks on a given CPU that the high\npriority task could wakeup while the low priority task is running and\nforce it to search for a better runqueue.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org # 37+\nLink: http://lkml.kernel.org/r/1315837684-18733-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa2563e41c3d6d6e8af437643981ed28ae0cb56d",
      "tree": "7d0dbcc4214a3bceb4d1dd9251df88752c1313b5",
      "parents": [
        "df4e33ad249b7480d6ba5dd11fc1dac5cfaffce1"
      ],
      "author": {
        "name": "Thomas Tuttle",
        "email": "ttuttle@chromium.org",
        "time": "Wed Sep 14 16:22:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:38 2011 -0700"
      },
      "message": "workqueue: lock cwq access in drain_workqueue\n\nTake cwq-\u003egcwq-\u003elock to avoid racing between drain_workqueue checking to\nmake sure the workqueues are empty and cwq_dec_nr_in_flight decrementing\nand then incrementing nr_active when it activates a delayed work.\n\nWe discovered this when a corner case in one of our drivers resulted in\nus trying to destroy a workqueue in which the remaining work would\nalways requeue itself again in the same workqueue.  We would hit this\nrace condition and trip the BUG_ON on workqueue.c:3080.\n\nSigned-off-by: Thomas Tuttle \u003cttuttle@chromium.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed585a651681e822089087b426e6ebfb6d3d9873",
      "tree": "d16e78437208dd660e05974506449c5260e479c5",
      "parents": [
        "d0a77454c70d0449a5f87087deb8f0cb15145e90"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Sep 11 13:59:27 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 12 09:38:53 2011 +0200"
      },
      "message": "genirq: Make irq_shutdown() symmetric vs. irq_startup again\n\nIf an irq_chip provides .irq_shutdown(), but neither of .irq_disable() or\n.irq_mask(), free_irq() crashes when jumping to NULL.\nFix this by only trying .irq_disable() and .irq_mask() if there\u0027s no\n.irq_shutdown() provided.\n\nThis revives the symmetry with irq_startup(), which tries .irq_startup(),\n.irq_enable(), and irq_unmask(), and makes it consistent with the comment for\nirq_chip.irq_shutdown() in \u003clinux/irq.h\u003e, which says:\n\n * @irq_shutdown:\tshut down the interrupt (defaults to -\u003edisable if NULL)\n\nThis is also how __free_irq() behaved before the big overhaul, cfr. e.g.\n3b56f0585fd4c02d047dc406668cb40159b2d340 (\"genirq: Remove bogus conditional\"),\nwhere the core interrupt code always overrode .irq_shutdown() to\n.irq_disable() if .irq_shutdown() was NULL.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: linux-m68k@lists.linux-m68k.org\nLink: http://lkml.kernel.org/r/1315742394-16036-2-git-send-email-geert@linux-m68k.org\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "79016f648872549392d232cd648bd02298c2d2bb",
      "tree": "8b3f435b7ff3633b0a82313a1bb12d052f36c6b7",
      "parents": [
        "e81b693c0104d6a767f998ee5a2e00b5acbbcd18",
        "486257130873a2172d8eac2c182f7e578465bdd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 07 13:03:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 07 13:03:48 2011 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  rtc: twl: Fix registration vs. init order\n  rtc: Initialized rtc_time-\u003etm_isdst\n  rtc: Fix RTC PIE frequency limit\n  rtc: rtc-twl: Remove lockdep related local_irq_enable()\n  rtc: rtc-twl: Switch to using threaded irq\n  rtc: ep93xx: Fix \u0027rtc\u0027 may be used uninitialized warning\n  alarmtimers: Avoid possible denial of service with high freq periodic timers\n  alarmtimers: Memset itimerspec passed into alarm_timer_get\n  alarmtimers: Avoid possible null pointer traversal\n"
    },
    {
      "commit": "e81b693c0104d6a767f998ee5a2e00b5acbbcd18",
      "tree": "fbf07b1d113be1d3f46ce1d0ca0e938b4e931f4d",
      "parents": [
        "b0fb422281c8c09c8dcf03ca44ec343f0ff9df0b",
        "feff8fa0075bdfd43c841e9d689ed81adda988d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 07 13:01:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 07 13:01:34 2011 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://tesla.tglx.de/git/linux-2.6-tip:\n  sched: Fix a memory leak in __sdt_free()\n  sched: Move blk_schedule_flush_plug() out of __schedule()\n  sched: Separate the scheduler entry for preemption\n"
    },
    {
      "commit": "7f310a5d4e8525ac0cc2f58c973d2100ce034410",
      "tree": "7e61573e73b80d65d29b259c7d1a228038a4439e",
      "parents": [
        "a8d757ef076f0f95f13a918808824058de25b3eb"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "emunson@mgebm.net",
        "time": "Thu Jun 23 16:34:38 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 31 15:56:29 2011 +0200"
      },
      "message": "perf_event: Fix broken calc_timer_values()\n\nWe detected a serious issue with PERF_SAMPLE_READ and\ntiming information when events were being multiplexing.\n\nSamples would have time_running \u003e time_enabled. That\nwas easy to reproduce with a libpfm4 example (ran 3\ntimes to cause multiplexing on Core 2):\n\n $ syst_smpl -e uops_retired:freq\u003d1 \u0026\n $ syst_smpl -e uops_retired:freq\u003d1 \u0026\n $ syst_smpl -e uops_retired:freq\u003d1 \u0026\n IIP:0x0000000040062d ... PERIOD:2355332948 ENA\u003d40144625315 RUN\u003d60014875184\n syst_smpl: WARNING: time_running \u003e time_enabled\n\t63277537998 uops_retired:freq\u003d1 , scaled\n\nThe bug was not present in kernel up to (and including) 3.0. It turns\nout the bug was introduced by the following commit:\n\ncommit c4794295917ebeda8013b6cb9c8d71ab4f74a1fa\n\n    events: Move lockless timer calculation into helper function\n\nThe parameters of the function got reversed yet the call sites\nwere not updated to reflect the change. That lead to time_running\nand time_enabled being swapped. That had no effect when there was\nno multiplexing because in that case time_running \u003d time_enabled\nbut it would show up in any other scenario.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110829124112.GA4828@quad\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8d757ef076f0f95f13a918808824058de25b3eb",
      "tree": "3c1151ef886d9b72d0a7b7b267d9f37c72d5f475",
      "parents": [
        "c6a389f123b9f68d605bb7e0f9b32ec1e3e14132"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Aug 25 15:58:03 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 29 12:28:33 2011 +0200"
      },
      "message": "perf events: Fix slow and broken cgroup context switch code\n\nThe current cgroup context switch code was incorrect leading\nto bogus counts. Furthermore, as soon as there was an active\ncgroup event on a CPU, the context switch cost on that CPU\nwould increase by a significant amount as demonstrated by a\nsimple ping/pong example:\n\n $ ./pong\n Both processes pinned to CPU1, running for 10s\n 10684.51 ctxsw/s\n\nNow start a cgroup perf stat:\n $ perf stat -e cycles,cycles -A -a -G test  -C 1 -- sleep 100\n\n$ ./pong\n Both processes pinned to CPU1, running for 10s\n 6674.61 ctxsw/s\n\nThat\u0027s a 37% penalty.\n\nNote that pong is not even in the monitored cgroup.\n\nThe results shown by perf stat are bogus:\n $ perf stat -e cycles,cycles -A -a -G test  -C 1 -- sleep 100\n\n Performance counter stats for \u0027sleep 100\u0027:\n\n CPU1 \u003cnot counted\u003e cycles   test\n CPU1 16,984,189,138 cycles  #    0.000 GHz\n\nThe second \u0027cycles\u0027 event should report a count @ CPU clock\n(here 2.4GHz) as it is counting across all cgroups.\n\nThe patch below fixes the bogus accounting and bypasses any\ncgroup switches in case the outgoing and incoming tasks are\nin the same cgroup.\n\nWith this patch the same test now yields:\n $ ./pong\n Both processes pinned to CPU1, running for 10s\n 10775.30 ctxsw/s\n\nStart perf stat with cgroup:\n\n $ perf stat -e cycles,cycles -A -a -G test  -C 1 -- sleep 10\n\nRun pong outside the cgroup:\n $ /pong\n Both processes pinned to CPU1, running for 10s\n 10687.80 ctxsw/s\n\nThe penalty is now less than 2%.\n\nAnd the results for perf stat are correct:\n\n$ perf stat -e cycles,cycles -A -a -G test  -C 1 -- sleep 10\n\n Performance counter stats for \u0027sleep 10\u0027:\n\n CPU1 \u003cnot counted\u003e cycles test #    0.000 GHz\n CPU1 23,933,981,448 cycles      #    0.000 GHz\n\nNow perf stat reports the correct counts for\nfor the non cgroup event.\n\nIf we run pong inside the cgroup, then we also get the\ncorrect counts:\n\n$ perf stat -e cycles,cycles -A -a -G test  -C 1 -- sleep 10\n\n Performance counter stats for \u0027sleep 10\u0027:\n\n CPU1 22,297,726,205 cycles test #    0.000 GHz\n CPU1 23,933,981,448 cycles      #    0.000 GHz\n\n      10.001457237 seconds time elapsed\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110825135803.GA4697@quad\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "feff8fa0075bdfd43c841e9d689ed81adda988d6",
      "tree": "1d8829c9b0c82c5eb16ec0994637f61c59c0f1ab",
      "parents": [
        "9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "amwang@redhat.com",
        "time": "Thu Aug 18 20:36:57 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 29 12:27:01 2011 +0200"
      },
      "message": "sched: Fix a memory leak in __sdt_free()\n\nThis patch fixes the following memory leak:\n\nunreferenced object 0xffff880107266800 (size 512):\n  comm \"sched-powersave\", pid 3718, jiffies 4323097853 (age 27495.450s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff81133940\u003e] create_object+0x187/0x28b\n    [\u003cffffffff814ac103\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff811232ba\u003e] __kmalloc_node+0x104/0x159\n    [\u003cffffffff81044b98\u003e] kzalloc_node.clone.97+0x15/0x17\n    [\u003cffffffff8104cb90\u003e] build_sched_domains+0xb7/0x7f3\n    [\u003cffffffff8104d4df\u003e] partition_sched_domains+0x1db/0x24a\n    [\u003cffffffff8109ee4a\u003e] do_rebuild_sched_domains+0x3b/0x47\n    [\u003cffffffff810a00c7\u003e] rebuild_sched_domains+0x10/0x12\n    [\u003cffffffff8104d5ba\u003e] sched_power_savings_store+0x6c/0x7b\n    [\u003cffffffff8104d5df\u003e] sched_mc_power_savings_store+0x16/0x18\n    [\u003cffffffff8131322c\u003e] sysdev_class_store+0x20/0x22\n    [\u003cffffffff81193876\u003e] sysfs_write_file+0x108/0x144\n    [\u003cffffffff81135b10\u003e] vfs_write+0xaf/0x102\n    [\u003cffffffff81135d23\u003e] sys_write+0x4d/0x74\n    [\u003cffffffff814c8a42\u003e] system_call_fastpath+0x16/0x1b\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org # 3.0\nLink: http://lkml.kernel.org/r/1313671017-4112-1-git-send-email-amwang@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c40cef2b799f9b5e7fa5de4d2ad3a0168ba118c",
      "tree": "cb7a48eb2a6d30b90144a55bc6bb82caacfc9622",
      "parents": [
        "c259e01a1ec90063042f758e409cd26b2a0963c8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:01 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 29 12:26:59 2011 +0200"
      },
      "message": "sched: Move blk_schedule_flush_plug() out of __schedule()\n\nThere is no real reason to run blk_schedule_flush_plug() with\ninterrupts and preemption disabled.\n\nMove it into schedule() and call it when the task is going voluntarily\nto sleep. There might be false positives when the task is woken\nbetween that call and actually scheduling, but that\u0027s not really\ndifferent from being woken immediately after switching away.\n\nThis fixes a deadlock in the scheduler where the\nblk_schedule_flush_plug() callchain enables interrupts and thereby\nallows a wakeup to happen of the task that\u0027s going to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: stable@kernel.org # 2.6.39+\nLink: http://lkml.kernel.org/n/tip-dwfxtra7yg1b5r65m32ywtct@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c259e01a1ec90063042f758e409cd26b2a0963c8",
      "tree": "dc5910233294b735fd389e0b0aab79cbb03c70a2",
      "parents": [
        "c6a389f123b9f68d605bb7e0f9b32ec1e3e14132"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 22 19:47:00 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 29 12:26:57 2011 +0200"
      },
      "message": "sched: Separate the scheduler entry for preemption\n\nBlock-IO and workqueues call into notifier functions from the\nscheduler core code with interrupts and preemption disabled. These\ncalls should be made before entering the scheduler core.\n\nTo simplify this, separate the scheduler core code into\n__schedule(). __schedule() is directly called from the places which\nset PREEMPT_ACTIVE and from schedule(). This allows us to add the work\nchecks into schedule(), so they are only called when a task voluntary\ngoes to sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: stable@kernel.org # 2.6.39+\nLink: http://lkml.kernel.org/r/20110622174918.813258321@linutronix.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f5b940997397229975ea073679b03967932a541b",
      "tree": "a477f440175d67b67928d6d11c845fe98f09eb72",
      "parents": [
        "b727d20269e8ef1de002bfea8099f5e9db9e9f23"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Aug 26 18:03:11 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 26 15:09:58 2011 -0700"
      },
      "message": "All Arch: remove linkage for sys_nfsservctl system call\n\nThe nfsservctl system call is now gone, so we should remove all\nlinkage for it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c30c6f566c0989ddaee3407da44751e340a63ed",
      "tree": "0f8801e2449a37c1e4ac78588c474b3327a7c430",
      "parents": [
        "47331231bb997a8adb79774fc4cf4bb48fe4e00a"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Thu Aug 25 15:59:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 25 16:25:34 2011 -0700"
      },
      "message": "kernel/printk: do not turn off bootconsole in printk_late_init() if keep_bootcon\n\nIt seems that 7bf693951a8e (\"console: allow to retain boot console via\nboot option keep_bootcon\") doesn\u0027t always achieve what it aims, as when\nprintk_late_init() runs it unconditionally turns off all boot consoles.\nWith this patch, I am able to see more messages on the boot console in\nKVM guests than I can without, when keep_bootcon is specified.\n\nI think it is appropriate for the relevant -stable trees.  However, it\u0027s\nmore of an annoyance than a serious bug (ideally you don\u0027t need to keep\nthe boot console around as console handover should be working -- I was\nencountering a situation where the console handover wasn\u0027t working and\nnot having the boot console available meant I couldn\u0027t see why).\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Fabio M. Di Nitto \u003cfdinitto@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.39.x, 3.0.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be27425dcc516fd08245b047ea57f83b8f6f0903",
      "tree": "0f7cfb258a663d99ebeedf8ed3b9637b266b021c",
      "parents": [
        "caca9510ff4e5d842c0589110243d60927836222"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Aug 19 16:15:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 25 10:17:28 2011 -0700"
      },
      "message": "Add a personality to report 2.6.x version numbers\n\nI ran into a couple of programs which broke with the new Linux 3.0\nversion.  Some of those were binary only.  I tried to use LD_PRELOAD to\nwork around it, but it was quite difficult and in one case impossible\nbecause of a mix of 32bit and 64bit executables.\n\nFor example, all kind of management software from HP doesnt work, unless\nwe pretend to run a 2.6 kernel.\n\n  $ uname -a\n  Linux svivoipvnx001 3.0.0-08107-g97cd98f #1062 SMP Fri Aug 12 18:11:45 CEST 2011 i686 i686 i386 GNU/Linux\n\n  $ hpacucli ctrl all show\n\n  Error: No controllers detected.\n\n  $ rpm -qf /usr/sbin/hpacucli\n  hpacucli-8.75-12.0\n\nAnother notable case is that Python now reports \"linux3\" from\nsys.platform(); which in turn can break things that were checking\nsys.platform() \u003d\u003d \"linux2\":\n\n  https://bugzilla.mozilla.org/show_bug.cgi?id\u003d664564\n\nIt seems pretty clear to me though it\u0027s a bug in the apps that are using\n\u0027\u003d\u003d\u0027 instead of .startswith(), but this allows us to unbreak broken\nprograms.\n\nThis patch adds a UNAME26 personality that makes the kernel report a\n2.6.40+x version number instead.  The x is the x in 3.x.\n\nI know this is somewhat ugly, but I didn\u0027t find a better workaround, and\ncompatibility to existing programs is important.\n\nSome programs also read /proc/sys/kernel/osrelease.  This can be worked\naround in user space with mount --bind (and a mount namespace)\n\nTo use:\n\n  wget ftp://ftp.kernel.org/pub/linux/kernel/people/ak/uname26/uname26.c\n  gcc -o uname26 uname26.c\n  ./uname26 program\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35a177a08d14f238d89d7f03918d3e0482af3240",
      "tree": "72a71fe4cec13e079e182633a62ea9219dbde656",
      "parents": [
        "a76ef86455fd8d199d482acc402675e4dcbe58fe",
        "b6bede3b4cdfbd188557ab50fceec2e91d295edf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 23 11:41:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 23 11:41:44 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix tracing builds inside the source tree\n  xfs: remove subdirectories\n  xfs: don\u0027t expect xfs headers to be in subdirectories\n"
    },
    {
      "commit": "69dd3d8e29e294caaf63eb5e8a72d250279f9e5f",
      "tree": "51e4d037b96431f2686ebbcd4e54775eb40b4b85",
      "parents": [
        "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 23 10:36:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 23 10:36:51 2011 -0700"
      },
      "message": "Revert \"irq: Always set IRQF_ONESHOT if no primary handler is specified\"\n\nThis reverts commit f3637a5f2e2eb391ff5757bc83fb5de8f9726464.\n\nIt turns out that this breaks several drivers, one example being OMAP\nboards which use the on-board OMAP UARTs and the omap-serial driver that\nwill not boot to userspace after the commit.\n\nPaul Walmsley reports that enabling CONFIG_DEBUG_SHIRQ reveals \u0027IRQ\nhandler type mismatch\u0027 errors:\n\n  IRQ handler type mismatch for IRQ 74\n  current handler: serial idle\n  ...\n\nand the reason is that setting IRQF_ONESHOT will now result in those\ninterrupt handlers having different IRQF flags, and thus being\nunsharable.  So the commit log in the reverted commit:\n\n                            \"Since it is required for those users and\n    there is no difference for others it makes sense to add this flag\n    unconditionally.\"\n\nis simply not true: there may not be any difference from a \"actions at\nirq time\", but there is a *big* difference wrt this flag testing irq\nmanagement (see __setup_irq() in kernel/irq/manage.c).\n\nOne solution may be to stop verifying IRQF_ONESHOT in __setup_irq(), but\nright now the safe course of action is to revert the change.  Let\u0027s\nrevisit this in a later merge window.\n\nReported-by: Paul Walmsley \u003cpaul@pwsan.com\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nRequested-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ccc38740a283aba81a00e92941310d0c1aeb2ee",
      "tree": "ba7d725947975a9391e085bd1d5958b004bfdc3e",
      "parents": [
        "0c3bef612881ee6216a36952ffaabfc35b83545c",
        "b53d1ed734a2b9af8da115b836b658daa7d47a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 19 10:47:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block: (23 commits)\n  Revert \"cfq: Remove special treatment for metadata rqs.\"\n  block: fix flush machinery for stacking drivers with differring flush flags\n  block: improve rq_affinity placement\n  blktrace: add FLUSH/FUA support\n  Move some REQ flags to the common bio/request area\n  allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH\n  xen/blkback: Make description more obvious.\n  cfq-iosched: Add documentation about idling\n  block: Make rq_affinity \u003d 1 work as expected\n  block: swim3: fix unterminated of_device_id table\n  block/genhd.c: remove useless cast in diskstats_show()\n  drivers/cdrom/cdrom.c: relax check on dvd manufacturer value\n  drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse\n  bsg-lib: add module.h include\n  cfq-iosched: Reduce linked group count upon group destruction\n  blk-throttle: correctly determine sync bio\n  loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other\n  loop: add BLK_DEV_LOOP_MIN_COUNT\u003d%i to allow distros 0 pre-allocated loop devices\n  loop: add management interface for on-demand device allocation\n  loop: replace linked list of allocated devices with an idr index\n  ...\n"
    },
    {
      "commit": "d522a0d17963e9c2e556db2cbd60c96d40505b6c",
      "tree": "90391acd50f0fa2b432d9defdb96627e6c1061b7",
      "parents": [
        "8cf2d2399ab60842f55598bc1b00fd15503b9950"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Aug 18 12:19:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 18 14:12:48 2011 -0700"
      },
      "message": "irqdesc: fix new kernel-doc warning\n\nFix kernel-doc warning in irqdesc.c:\n\n  Warning(kernel/irq/irqdesc.c:353): No description found for parameter \u0027owner\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4fd4ae6c6420c18e4bae2c294b7e06f5ff5210f",
      "tree": "a948e1f99dbce5d34da04b3e655d3655335848d7",
      "parents": [
        "aa462abe8aaf2198d6aef97da20c874ac694a39f",
        "17f2ae7f677f023997e02fd2ebabd90ea2a0390d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 13:15:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 13:15:25 2011 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  PM / Domains: Fix build for CONFIG_PM_RUNTIME unset\n"
    },
    {
      "commit": "2da9f365fc401b79627bc7be56d8a2b4ee9b390b",
      "tree": "b5b2d0f6893b353a60c215bb979eee80a9f3fdf5",
      "parents": [
        "950d0a10d12578a270f3dfa9fd76fe5c2deb343f",
        "80e0401e35410a69bfae05b454db8a7187edd6b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 10:25:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 10:25:08 2011 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: Fix wrong assumption in match_held_lock\n"
    },
    {
      "commit": "950d0a10d12578a270f3dfa9fd76fe5c2deb343f",
      "tree": "2467458b05ab13dd8875e43f3701fbc0c38cef0d",
      "parents": [
        "ab7e2dbf9b5da4d4eb4fdb019cc8881fbeb1299b",
        "b6873807a7143b7d6d8b06809295e559d07d7deb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 10:23:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 10:23:50 2011 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: Track the owner of irq descriptor\n  irq: Always set IRQF_ONESHOT if no primary handler is specified\n  genirq: Fix wrong bit operation\n"
    },
    {
      "commit": "17f2ae7f677f023997e02fd2ebabd90ea2a0390d",
      "tree": "9f333057d8771adc432687417c2bfe28164f1e48",
      "parents": [
        "91d85ea6786107aa2837bef3e957165ad7c8b823"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 14 13:34:31 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 14 13:34:31 2011 +0200"
      },
      "message": "PM / Domains: Fix build for CONFIG_PM_RUNTIME unset\n\nFunction genpd_queue_power_off_work() is not defined for\nCONFIG_PM_RUNTIME, so pm_genpd_poweroff_unused() causes a build\nerror to happen in that case.  Fix the problem by making\npm_genpd_poweroff_unused() depend on CONFIG_PM_RUNTIME too.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d8b4986d3dbc4fabc2054d63f1d31d6ed2fb1ca8",
      "tree": "d6afd92e5425f64b337c916d12dc58ca101c334d",
      "parents": [
        "e8da1b18b32064c43881bceef0f051c2110c9ab9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:54 2011 +0200"
      },
      "message": "sched: Return unused runtime on group dequeue\n\nWhen a local cfs_rq blocks we return the majority of its remaining quota to the\nglobal bandwidth pool for use by other runqueues.\n\nWe do this only when the quota is current and there is more than\nmin_cfs_rq_quota [1ms by default] of runtime remaining on the rq.\n\nIn the case where there are throttled runqueues and we have sufficient\nbandwidth to meter out a slice, a second timer is kicked off to handle this\ndelivery, unthrottling where appropriate.\n\nUsing a \u0027worst case\u0027 antagonist which executes on each cpu\nfor 1ms before moving onto the next on a fairly large machine:\n\nno quota generations:\n\n 197.47 ms       /cgroup/a/cpuacct.usage\n 199.46 ms       /cgroup/a/cpuacct.usage\n 205.46 ms       /cgroup/a/cpuacct.usage\n 198.46 ms       /cgroup/a/cpuacct.usage\n 208.39 ms       /cgroup/a/cpuacct.usage\n\nSince we are allowed to use \"stale\" quota our usage is effectively bounded by\nthe rate of input into the global pool and performance is relatively stable.\n\nwith quota generations [1s increments]:\n\n 119.58 ms       /cgroup/a/cpuacct.usage\n 119.65 ms       /cgroup/a/cpuacct.usage\n 119.64 ms       /cgroup/a/cpuacct.usage\n 119.63 ms       /cgroup/a/cpuacct.usage\n 119.60 ms       /cgroup/a/cpuacct.usage\n\nThe large deficit here is due to quota generations (/intentionally/) preventing\nus from now using previously stranded slack quota.  The cost is that this quota\nbecomes unavailable.\n\nwith quota generations and quota return:\n\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 198.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.06 ms       /cgroup/a/cpuacct.usage\n\nBy returning unused quota we\u0027re able to both stably consume our desired quota\nand prevent unintentional overages due to the abuse of slack quota from\nprevious quota periods (especially on a large machine).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.306848658@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8da1b18b32064c43881bceef0f051c2110c9ab9",
      "tree": "8d6e9e5713c1da4cee3ceba1da67df6cab22ab9f",
      "parents": [
        "d3d9dc3302368269acf94b7381663b93000fe2fe"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Thu Jul 21 09:43:40 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:49 2011 +0200"
      },
      "message": "sched: Add exports tracking cfs bandwidth control statistics\n\nThis change introduces statistics exports for the cpu sub-system, these are\nadded through the use of a stat file similar to that exported by other\nsubsystems.\n\nThe following exports are included:\n\nnr_periods:\tnumber of periods in which execution occurred\nnr_throttled:\tthe number of periods above in which execution was throttle\nthrottled_time:\tcumulative wall-time that any cpus have been throttled for\nthis group\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.198901931@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d9dc3302368269acf94b7381663b93000fe2fe",
      "tree": "4659e1f9efdea0f15ab5ef551c718416fb8e7954",
      "parents": [
        "8cb120d3e41a0464a559d639d519cef563717a4e"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:47 2011 +0200"
      },
      "message": "sched: Throttle entities exceeding their allowed bandwidth\n\nWith the machinery in place to throttle and unthrottle entities, as well as\nhandle their participation (or lack there of) we can now enable throttling.\n\nThere are 2 points that we must check whether it\u0027s time to set throttled state:\n put_prev_entity() and enqueue_entity().\n\n- put_prev_entity() is the typical throttle path, we reach it by exceeding our\n  allocated run-time within update_curr()-\u003eaccount_cfs_rq_runtime() and going\n  through a reschedule.\n\n- enqueue_entity() covers the case of a wake-up into an already throttled\n  group.  In this case we know the group cannot be on_rq and can throttle\n  immediately.  Checks are added at time of put_prev_entity() and\n  enqueue_entity()\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.091415417@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8cb120d3e41a0464a559d639d519cef563717a4e",
      "tree": "4d17ae0d3d9a18cb502e5d098bd48b7436620754",
      "parents": [
        "5238cdd3873e67a98b28c1161d65d2a615c320a3"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:38 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:44 2011 +0200"
      },
      "message": "sched: Migrate throttled tasks on HOTPLUG\n\nThrottled tasks are invisisble to cpu-offline since they are not eligible for\nselection by pick_next_task().  The regular \u0027escape\u0027 path for a thread that is\nblocked at offline is via ttwu-\u003eselect_task_rq, however this will not handle a\nthrottled group since there are no individual thread wakeups on an unthrottle.\n\nResolve this by unthrottling offline cpus so that threads can be migrated.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.989000590@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5238cdd3873e67a98b28c1161d65d2a615c320a3",
      "tree": "6c0e162a8ef9e0eb4d0099b537cfde5138aeddb4",
      "parents": [
        "64660c864f46202b932b911a69deb09805bdbaf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:42 2011 +0200"
      },
      "message": "sched: Prevent buddy interactions with throttled entities\n\nBuddies allow us to select \"on-rq\" entities without actually selecting them\nfrom a cfs_rq\u0027s rb_tree.  As a result we must ensure that throttled entities\nare not falsely nominated as buddies.  The fact that entities are dequeued\nwithin throttle_entity is not sufficient for clearing buddy status as the\nnomination may occur after throttling.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.886850167@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64660c864f46202b932b911a69deb09805bdbaf8",
      "tree": "cf49455195a184e4962c6cac2c39c4f690d74ddc",
      "parents": [
        "8277434ef1202ce30315f8edb3fc760aa6e74493"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:36 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:40 2011 +0200"
      },
      "message": "sched: Prevent interactions with throttled entities\n\nFrom the perspective of load-balance and shares distribution, throttled\nentities should be invisible.\n\nHowever, both of these operations work on \u0027active\u0027 lists and are not\ninherently aware of what group hierarchies may be present.  In some cases this\nmay be side-stepped (e.g. we could sideload via tg_load_down in load balance)\nwhile in others (e.g. update_shares()) it is more difficult to compute without\nincurring some O(n^2) costs.\n\nInstead, track hierarchicaal throttled state at time of transition.  This\nallows us to easily identify whether an entity belongs to a throttled hierarchy\nand avoid incorrect interactions with it.\n\nAlso, when an entity leaves a throttled hierarchy we need to advance its\ntime averaging for shares averaging so that the elapsed throttled time is not\nconsidered as part of the cfs_rq\u0027s operation.\n\nWe also use this information to prevent buddy interactions in the wakeup and\nyield_to() paths.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.777916795@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8277434ef1202ce30315f8edb3fc760aa6e74493",
      "tree": "455436e29a5a2e16b33f03aa4b4a9a2911bb7746",
      "parents": [
        "671fd9dabe5239ad218c7eb48b2b9edee50250e6"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:35 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:38 2011 +0200"
      },
      "message": "sched: Allow for positional tg_tree walks\n\nExtend walk_tg_tree to accept a positional argument\n\nstatic int walk_tg_tree_from(struct task_group *from,\n\t\t\t     tg_visitor down, tg_visitor up, void *data)\n\nExisting semantics are preserved, caller must hold rcu_lock() or sufficient\nanalogue.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.677889157@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "671fd9dabe5239ad218c7eb48b2b9edee50250e6",
      "tree": "351f59453eb699661bd811210f24d8b7fd554ca4",
      "parents": [
        "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:34 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:36 2011 +0200"
      },
      "message": "sched: Add support for unthrottling group entities\n\nAt the start of each period we refresh the global bandwidth pool.  At this time\nwe must also unthrottle any cfs_rq entities who are now within bandwidth once\nmore (as quota permits).\n\nUnthrottled entities have their corresponding cfs_rq-\u003ethrottled flag cleared\nand their entities re-enqueued.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.574628950@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8",
      "tree": "5d3f71d409fe002b0dfd2cdfb7ef09a9d5851f66",
      "parents": [
        "a9cf55b2861057a213e610da2fec52125439a11d"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:33 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:34 2011 +0200"
      },
      "message": "sched: Add support for throttling group entities\n\nNow that consumption is tracked (via update_curr()) we add support to throttle\ngroup entities (and their corresponding cfs_rqs) in the case where this is no\nrun-time remaining.\n\nThrottled entities are dequeued to prevent scheduling, additionally we mark\nthem as throttled (using cfs_rq-\u003ethrottled) to prevent them from becoming\nre-enqueued until they are unthrottled.  A list of a task_group\u0027s throttled\nentities are maintained on the cfs_bandwidth structure.\n\nNote: While the machinery for throttling is added in this patch the act of\nthrottling an entity exceeding its bandwidth is deferred until later within\nthe series.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.480608533@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9cf55b2861057a213e610da2fec52125439a11d",
      "tree": "6c0caf35a6e8fbba7325227f11029f5f4d4cbf7e",
      "parents": [
        "58088ad0152ba4b7997388c93d0ca208ec1ece75"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:32 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:31 2011 +0200"
      },
      "message": "sched: Expire invalid runtime\n\nSince quota is managed using a global state but consumed on a per-cpu basis\nwe need to ensure that our per-cpu state is appropriately synchronized.\nMost importantly, runtime that is state (from a previous period) should not be\nlocally consumable.\n\nWe take advantage of existing sched_clock synchronization about the jiffy to\nefficiently detect whether we have (globally) crossed a quota boundary above.\n\nOne catch is that the direction of spread on sched_clock is undefined,\nspecifically, we don\u0027t know whether our local clock is behind or ahead\nof the one responsible for the current expiration time.\n\nFortunately we can differentiate these by considering whether the\nglobal deadline has advanced.  If it has not, then we assume our clock to be\n\"fast\" and advance our local expiration; otherwise, we know the deadline has\ntruly passed and we expire our local runtime.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.379275352@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58088ad0152ba4b7997388c93d0ca208ec1ece75",
      "tree": "22d818b745056effc53ee6fa97ee9103548766b5",
      "parents": [
        "ec12cb7f31e28854efae7dd6f9544e0a66379040"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:31 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:28 2011 +0200"
      },
      "message": "sched: Add a timer to handle CFS bandwidth refresh\n\nThis patch adds a per-task_group timer which handles the refresh of the global\nCFS bandwidth pool.\n\nSince the RT pool is using a similar timer there\u0027s some small refactoring to\nshare this support.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.277271273@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec12cb7f31e28854efae7dd6f9544e0a66379040",
      "tree": "30a7293a4f9d566043f524bb4c43d4ae8b0560db",
      "parents": [
        "a790de99599a29ad3f18667530cf4b9f4b7e3234"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:30 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:26 2011 +0200"
      },
      "message": "sched: Accumulate per-cfs_rq cpu usage and charge against bandwidth\n\nAccount bandwidth usage on the cfs_rq level versus the task_groups to which\nthey belong.  Whether we are tracking bandwidth on a given cfs_rq is maintained\nunder cfs_rq-\u003eruntime_enabled.\n\ncfs_rq\u0027s which belong to a bandwidth constrained task_group have their runtime\naccounted via the update_curr() path, which withdraws bandwidth from the global\npool as desired.  Updates involving the global pool are currently protected\nunder cfs_bandwidth-\u003elock, local runtime is protected by rq-\u003elock.\n\nThis patch only assigns and tracks quota, no action is taken in the case that\ncfs_rq-\u003eruntime_used exceeds cfs_rq-\u003eruntime_assigned.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.179386821@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a790de99599a29ad3f18667530cf4b9f4b7e3234",
      "tree": "58a06419b7a6a90dac6028263a54b3ed3e68e40b",
      "parents": [
        "ab84d31e15502fb626169ba2663381e34bf965b2"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:29 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:22 2011 +0200"
      },
      "message": "sched: Validate CFS quota hierarchies\n\nAdd constraints validation for CFS bandwidth hierarchies.\n\nValidate that:\n   max(child bandwidth) \u003c\u003d parent_bandwidth\n\nIn a quota limited hierarchy, an unconstrained entity\n(e.g. bandwidth\u003d\u003dRUNTIME_INF) inherits the bandwidth of its parent.\n\nThis constraint is chosen over sum(child_bandwidth) as notion of over-commit is\nvaluable within SCHED_OTHER.  Some basic code from the RT case is re-factored\nfor reuse.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.083774572@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ab84d31e15502fb626169ba2663381e34bf965b2",
      "tree": "658ce7caa6199aa74c5feea92ec8d3e9a2cb4296",
      "parents": [
        "953bfcd10e6f3697233e8e5128c611d275da39c1"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:28 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:20 2011 +0200"
      },
      "message": "sched: Introduce primitives to account for CFS bandwidth tracking\n\nIn this patch we introduce the notion of CFS bandwidth, partitioned into\nglobally unassigned bandwidth, and locally claimed bandwidth.\n\n - The global bandwidth is per task_group, it represents a pool of unclaimed\n   bandwidth that cfs_rqs can allocate from.\n - The local bandwidth is tracked per-cfs_rq, this represents allotments from\n   the global pool bandwidth assigned to a specific cpu.\n\nBandwidth is managed via cgroupfs, adding two new interfaces to the cpu subsystem:\n - cpu.cfs_period_us : the bandwidth period in usecs\n - cpu.cfs_quota_us : the cpu bandwidth (in usecs) that this tg will be allowed\n   to consume over period above.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.972636699@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "953bfcd10e6f3697233e8e5128c611d275da39c1",
      "tree": "a3ca8136bb9e992bb40945c5eee2a8dcc0fd0b57",
      "parents": [
        "5710f15b52664ae0bfa60a66d75464769d297b2b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:27 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:13 2011 +0200"
      },
      "message": "sched: Implement hierarchical task accounting for SCHED_OTHER\n\nIntroduce hierarchical task accounting for the group scheduling case in CFS, as\nwell as promoting the responsibility for maintaining rq-\u003enr_running to the\nscheduling classes.\n\nThe primary motivation for this is that with scheduling classes supporting\nbandwidth throttling it is possible for entities participating in throttled\nsub-trees to not have root visible changes in rq-\u003enr_running across activate\nand de-activate operations.  This in turn leads to incorrect idle and\nweight-per-task load balance decisions.\n\nThis also allows us to make a small fixlet to the fastpath in pick_next_task()\nunder group scheduling.\n\nNote: this issue also exists with the existing sched_rt throttling mechanism.\nThis patch does not address that.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.878333391@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5710f15b52664ae0bfa60a66d75464769d297b2b",
      "tree": "3e5ab59e1dafbefe4f4ef6e809866be8ffd2d2e0",
      "parents": [
        "d473750b4073f16f23f46f30dc1bd3de45c35754"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Sat Aug 06 08:10:04 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:11 2011 +0200"
      },
      "message": "sched/cpupri: Remove cpupri-\u003epri_active\n\nSince [sched/cpupri: Remove the vec-\u003elock], member pri_active\nof struct cpupri is not needed any more, just remove it. Also\nclean stuff related to it.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110806001004.GA2207@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d473750b4073f16f23f46f30dc1bd3de45c35754",
      "tree": "cefe6613df0f129836be5e218a768d02c1c7b814",
      "parents": [
        "c92211d9b772792a9dea530c042efb4ab5562f50"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 05 08:27:49 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:07 2011 +0200"
      },
      "message": "sched/cpupri: Fix memory barriers for vec updates to always be in order\n\n[ This patch actually compiles. Thanks to Mike Galbraith for pointing\nthat out. I compiled and booted this patch with no issues. ]\n\nRe-examining the cpupri patch, I see there\u0027s a possible race because the\nupdate of the two priorities vec-\u003ecounts are not protected by a memory\nbarrier.\n\nWhen a RT runqueue is overloaded and wants to push an RT task to another\nrunqueue, it scans the RT priority vectors in a loop from lowest\npriority to highest.\n\nWhen we queue or dequeue an RT task that changes a runqueue\u0027s highest\npriority task, we update the vectors to show that a runqueue is rated at\na different priority. To do this, we first set the new priority mask,\nand increment the vec-\u003ecount, and then set the old priority mask by\ndecrementing the vec-\u003ecount.\n\nIf we are lowering the runqueue\u0027s RT priority rating, it will trigger a\nRT pull, and we do not care if we miss pushing to this runqueue or not.\n\nBut if we raise the priority, but the priority is still lower than an RT\ntask that is looking to be pushed, we must make sure that this runqueue\nis still seen by the push algorithm (the loop).\n\nBecause the loop reads from lowest to highest, and the new priority is\nset before the old one is cleared, we will either see the new or old\npriority set and the vector will be checked.\n\nBut! Since there\u0027s no memory barrier between the updates of the two, the\nold count may be decremented first before the new count is incremented.\nThis means the loop may see the old count of zero and skip it, and also\nthe new count of zero before it was updated. A possible runqueue that\nthe RT task could move to could be missed.\n\nA conditional memory barrier is placed between the vec-\u003ecount updates\nand is only called when both updates are done.\n\nThe smp_wmb() has also been changed to smp_mb__before_atomic_inc/dec(),\nas they are not needed by archs that already synchronize\natomic_inc/dec().\n\nThe smp_rmb() has been moved to be called at every iteration of the loop\nso that the race between seeing the two updates is visible by each\niteration of the loop, as an arch is free to optimize the reading of\nmemory of the counters in the loop.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1312547269.18583.194.camel@gandalf.stny.rr.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c92211d9b772792a9dea530c042efb4ab5562f50",
      "tree": "d4ef2f4aa2e2c0d991a4dbc74a14e305caf46cee",
      "parents": [
        "5181f4a46afd99e5e85c639b189e43e0a42b53df"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 02 16:36:12 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:03 2011 +0200"
      },
      "message": "sched/cpupri: Remove the vec-\u003elock\n\nsched/cpupri: Remove the vec-\u003elock\n\nThe cpupri vec-\u003elock has been showing up as a top contention\nlately. This is because of the RT push/pull logic takes an\nagressive approach for migrating RT tasks. The cpupri logic is\nin place to improve the performance of the push/pull when dealing\nwith large number CPU machines.\n\nThe problem though is a vec-\u003elock is required, where a vec is a\nglobal per RT priority structure. That is, if there are lots of\nRT tasks at the same priority, every time they are added or removed\nfrom the RT queue, this global vec-\u003elock is taken. Now that more\nkernel threads are becoming RT (RCU boost and threaded interrupts)\nthis is becoming much more of an issue.\n\nThere are two variables that are being synced by the vec-\u003elock.\nThe cpupri bitmask, and the vec-\u003ecounter. The cpupri bitmask\nis one bit per priority. If a RT priority vec has a process queued,\nthen the vec-\u003ecount is \u003e 0 and the cpupri bitmask is set for that\nRT priority.\n\nIf the cpupri bitmask gets out of sync with the vec-\u003ecounter, we could\nend up pushing a low proirity RT task to a high priority queue.\nThat RT task that could have run immediately could be queued on a\nrun queue with a higher priority task indefinitely.\n\nThe solution is not to use the cpupri bitmask and just look at the\nvec-\u003ecount directly when doing a pull. The cpupri bitmask is just\na fast way to scan the RT priorities when a pull is made. Instead\nof using the bitmask, and just examine all RT priorities, and\nlook at the vec-\u003ecounts, we could eliminate the vec-\u003elock. The\nscan of RT tasks is to find a run queue that we can push an RT task\nto, and we do not push to a high priority queue, thus the scan only\nneeds to go from 1 to RT task-\u003eprio, and not all 100 RT priorities.\n\nThe push algorithm, which does the scan of RT priorities (and\nscan of the bitmask) only happens when we have an overloaded RT run\nqueue (more than one RT task queued). The grabbing of the vec-\u003elock\nhappens every time any RT task is queued or dequeued on the run\nqueue for that priority. The slowing down of the scan by not using\na bitmask is negligible by the speed up of removing the vec-\u003elock\ncontention, and replacing it with an atomic counter and memory barrier.\n\nTo prove this, I wrote a patch that times both the loop and the code\nthat grabs the vec-\u003elocks. I passed the patches to various people\n(and companies) to test and show the results. I let everyone choose\ntheir own load to test, giving different loads on the system,\nfor various different setups.\n\nHere\u0027s some of the results: (snipping to a few CPUs to not make\nthis change log huge, but the results were consistent across\nthe entire system).\n\nSystem 1 (24 CPUs)\n\nBefore patch:\nCPU:    Name    Count   Max     Min     Average Total\n----    ----    -----   ---     ---     ------- -----\n[...]\ncpu 20: loop    3057    1.766   0.061   0.642   1963.170\n        vec     6782949 90.469  0.089   0.414   2811760.503\ncpu 21: loop    2617    1.723   0.062   0.641   1679.074\n        vec     6782810 90.499  0.089   0.291   1978499.900\ncpu 22: loop    2212    1.863   0.063   0.699   1547.160\n        vec     6767244 85.685  0.089   0.435   2949676.898\ncpu 23: loop    2320    2.013   0.062   0.594   1380.265\n        vec     6781694 87.923  0.088   0.431   2928538.224\n\nAfter patch:\ncpu 20: loop    2078    1.579   0.061   0.533   1108.006\n        vec     6164555 5.704   0.060   0.143   885185.809\ncpu 21: loop    2268    1.712   0.065   0.575   1305.248\n        vec     6153376 5.558   0.060   0.187   1154960.469\ncpu 22: loop    1542    1.639   0.095   0.533   823.249\n        vec     6156510 5.720   0.060   0.190   1172727.232\ncpu 23: loop    1650    1.733   0.068   0.545   900.781\n        vec     6170784 5.533   0.060   0.167   1034287.953\n\nAll times are in microseconds. The \u0027loop\u0027 is the amount of time spent\ndoing the loop across the priorities (before patch uses bitmask).\nthe \u0027vec\u0027 is the amount of time in the code that requires grabbing\nthe vec-\u003elock. The second patch just does not have the vec lock, but\nencompasses the same code.\n\nAmazingly the loop code even went down on average. The vec code went\nfrom .5 down to .18, that\u0027s more than half the time spent!\n\nNote, more than one test was run, but they all had the same results.\n\nSystem 2 (64 CPUs)\n\nBefore patch:\nCPU:    Name    Count   Max     Min     Average Total\n----    ----    -----   ---     ---     ------- -----\ncpu 60: loop    0       0       0       0       0\n        vec     5410840 277.954 0.084   0.782   4232895.727\ncpu 61: loop    0       0       0       0       0\n        vec     4915648 188.399 0.084   0.570   2803220.301\ncpu 62: loop    0       0       0       0       0\n        vec     5356076 276.417 0.085   0.786   4214544.548\ncpu 63: loop    0       0       0       0       0\n        vec     4891837 170.531 0.085   0.799   3910948.833\n\nAfter patch:\ncpu 60: loop    0       0       0       0       0\n        vec     5365118 5.080   0.021   0.063   340490.267\ncpu 61: loop    0       0       0       0       0\n        vec     4898590 1.757   0.019   0.071   347903.615\ncpu 62: loop    0       0       0       0       0\n        vec     5737130 3.067   0.021   0.119   687108.734\ncpu 63: loop    0       0       0       0       0\n        vec     4903228 1.822   0.021   0.071   348506.477\n\nThe test run during the measurement did not have any (very few,\nfrom other CPUs) RT tasks pushing. But this shows that it helped\nout tremendously with the contention, as the contention happens\nbecause the vec-\u003elock is taken only on queuing at an RT priority,\nand different CPUs that queue tasks at the same priority will\nhave contention.\n\nI tested on my own 4 CPU machine with the following results:\n\nBefore patch:\nCPU:    Name    Count   Max     Min     Average Total\n----    ----    -----   ---     ---     ------- -----\ncpu 0:  loop    2377    1.489   0.158   0.588   1398.395\n        vec     4484    770.146 2.301   4.396   19711.755\ncpu 1:  loop    2169    1.962   0.160   0.576   1250.110\n        vec     4425    152.769 2.297   4.030   17834.228\ncpu 2:  loop    2324    1.749   0.155   0.559   1299.799\n        vec     4368    779.632 2.325   4.665   20379.268\ncpu 3:  loop    2325    1.629   0.157   0.561   1306.113\n        vec     4650    408.782 2.394   4.348   20222.577\n\nAfter patch:\nCPU:    Name    Count   Max     Min     Average Total\n----    ----    -----   ---     ---     ------- -----\ncpu 0:  loop    2121    1.616   0.113   0.636   1349.189\n        vec     4303    1.151   0.225   0.421   1811.966\ncpu 1:  loop    2130    1.638   0.178   0.644   1372.927\n        vec     4627    1.379   0.235   0.428   1983.648\ncpu 2:  loop    2056    1.464   0.165   0.637   1310.141\n        vec     4471    1.311   0.217   0.433   1937.927\ncpu 3:  loop    2154    1.481   0.162   0.601   1295.083\n        vec     4236    1.253   0.230   0.425   1803.008\n\nThis was running my migrate.c code that can be found at:\nhttp://lwn.net/Articles/425763/\n\nThe migrate code does stress the RT tasks a bit. This shows that\nthe loop did increase a little after the patch, but not by much.\nThe vec code dropped dramatically. From 4.3us down to .42us.\nThat\u0027s a 10x improvement!\n\nTested-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nTested-by: Luis Claudio R. Gonçalves \u003clgoncalv@redhat.com\u003e\nTested-by: Matthew Hank Sabins\u003cmsabins@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nReviewed-by: Gregory Haskins \u003cgregory.haskins@gmail.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nLink: http://lkml.kernel.org/r/1312317372.18583.101.camel@gandalf.stny.rr.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5181f4a46afd99e5e85c639b189e43e0a42b53df",
      "tree": "a9adeec7cbfccf118e4c9317e48999e02b01cdd1",
      "parents": [
        "c37495fd0f64fc139b5a07d242bcb485174d1206"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 16 21:55:23 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:55 2011 +0200"
      },
      "message": "sched: Use pushable_tasks to determine next highest prio\n\nHillf Danton proposed a patch (see link) that cleaned up the\nsched_rt code that calculates the priority of the next highest priority\ntask to be used in finding run queues to pull from.\n\nHis patch removed the calculating of the next prio to just use the current\nprio when deteriming if we should examine a run queue to pull from. The problem\nwith his patch was that it caused more false checks. Because we check a run\nqueue for pushable tasks if the current priority of that run queue is higher\nin priority than the task about to run on our run queue. But after grabbing\nthe locks and doing the real check, we find that there may not be a task\nthat has a higher prio task to pull. Thus the locks were taken with nothing to\ndo.\n\nI added some trace_printks() to record when and how many times the run queue\nlocks were taken to check for pullable tasks, compared to how many times we\npulled a task.\n\nWith the current method, it was:\n\n  3806 locks taken vs 2812 pulled tasks\n\nWith Hillf\u0027s patch:\n\n  6728 locks taken vs 2804 pulled tasks\n\nThe number of times locks were taken to pull a task went up almost double with\nno more success rate.\n\nBut his patch did get me thinking. When we look at the priority of the highest\ntask to consider taking the locks to do a pull, a failure to pull can be one\nof the following: (in order of most likely)\n\n o RT task was pushed off already between the check and taking the lock\n o Waiting RT task can not be migrated\n o RT task\u0027s CPU affinity does not include the target run queue\u0027s CPU\n o RT task\u0027s priority changed between the check and taking the lock\n\nAnd with Hillf\u0027s patch, the thing that caused most of the failures, is\nthe RT task to pull was not at the right priority to pull (not greater than\nthe current RT task priority on the target run queue).\n\nMost of the above cases we can\u0027t help. But the current method does not check\nif the next highest prio RT task can be migrated or not, and if it can not,\nwe still grab the locks to do the test (we don\u0027t find out about this fact until\nafter we have the locks). I thought about this case, and realized that the\npushable task plist that is maintained only holds RT tasks that can migrate.\nIf we move the calculating of the next highest prio task from the inc/dec_rt_task()\nfunctions into the queuing of the pushable tasks, then we only measure the\npriorities of those tasks that we push, and we get this basically for free.\n\nNot only does this patch make the code a little more efficient, it cleans it\nup and makes it a little simpler.\n\nThanks to Hillf Danton for inspiring me on this patch.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nLink: http://lkml.kernel.org/r/BANLkTimQ67180HxCx5vgMqumqw1EkFh3qg@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c37495fd0f64fc139b5a07d242bcb485174d1206",
      "tree": "0b60964cdb549e5e455d560aa4397102a666a617",
      "parents": [
        "1812a643ccbfeb61a00a7f0d7219606e63d8815b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 16 21:55:22 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:52 2011 +0200"
      },
      "message": "sched: Balance RT tasks when forked as well\n\nWhen a new task is woken, the code to balance the RT task is currently\nskipped in the select_task_rq() call. But it will be pushed if the rq\nis currently overloaded with RT tasks anyway. The issue is that we\nalready queued the task, and if it does get pushed, it will have to\nbe dequeued and requeued on the new run queue. The advantage with\npushing it first is that we avoid this requeuing as we are pushing it\noff before the task is ever queued.\n\nSee commit 318e0893ce3f524 (\"sched: pre-route RT tasks on wakeup\")\nfor more details.\n\nThe return of select_task_rq() when it is not a wake up has also been\nchanged to return task_cpu() instead of smp_processor_id(). This is more\nof a sanity because the current only other user of select_task_rq()\nbesides wake ups, is an exec, where task_cpu() should also be the same\nas smp_processor_id(). But if it is used for other purposes, lets keep\nthe task on the same CPU. Why would we mant to migrate it to the current\nCPU?\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110617015919.832743148@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1812a643ccbfeb61a00a7f0d7219606e63d8815b",
      "tree": "874b7db2d6382e32160127b7e880007b9c8e7c87",
      "parents": [
        "311e800e16f63d909136a64ed17ca353a160be59"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:21 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:50 2011 +0200"
      },
      "message": "sched: Remove resetting exec_start in put_prev_task_rt()\n\nThere\u0027s no reason to clean the exec_start in put_prev_task_rt() as it is reset\nwhen the task gets back to the run queue. This saves us doing a store() in the\nfast path.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nLink: http://lkml.kernel.org/r/BANLkTimqWD\u003dq6YnSDi-v9y\u003dLMWecgEzEWg@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "311e800e16f63d909136a64ed17ca353a160be59",
      "tree": "c5d65afd1b0abd748ad50dd15bb81434fce9a17a",
      "parents": [
        "0835471697255b415edcefd6b1e25b6c034439f2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:20 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:48 2011 +0200"
      },
      "message": "sched, rt: Fix rq-\u003ert.pushable_tasks bug in push_rt_task()\n\nDo not call dequeue_pushable_task() when failing to push an eligible\ntask, as it remains pushable, merely not at this particular moment.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Mike Galbraith \u003cmgalbraith@gmx.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306895385.4791.26.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0835471697255b415edcefd6b1e25b6c034439f2",
      "tree": "921d1c42bf9b6656135a1126ee8723287ef4bfa1",
      "parents": [
        "67d955383ab2ef8866c494c14156a4f3d29e441c"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:19 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:46 2011 +0200"
      },
      "message": "sched: Remove noop in lowest_flag_domain()\n\nChecking for the validity of sd is removed, since it is already\nchecked by the for_each_domain macro.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTimT+Tut-3TshCDm-NiLLXrOznibNA@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67d955383ab2ef8866c494c14156a4f3d29e441c",
      "tree": "3b18abcc6ccc8c7d4001319d41fb1af6c2971377",
      "parents": [
        "c350a04efd1c89cd256b2abc8f07a21d0d53ff24"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:18 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:45 2011 +0200"
      },
      "message": "sched: Remove noop in next_prio()\n\nWhen computing the next priority for a given run-queue, the check for\nRT priority of the task determined by the pick_next_highest_task_rt()\nfunction could be removed, since only RT tasks are returned by the\nfunction.\n\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTimxmWiof9s5AvS3v_0X+sMiE\u003d0x5g@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c350a04efd1c89cd256b2abc8f07a21d0d53ff24",
      "tree": "81b7ad7cd7e86c21aeb81fcfe68bb38892e1ddbb",
      "parents": [
        "2c2efaed9bc973e3aeab1385c618017b56c8f6d7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Jul 27 17:14:55 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:43 2011 +0200"
      },
      "message": "sched: fix broken SCHED_RESET_ON_FORK handling\n\nSetting child-\u003eprio \u003d current-\u003enormal_prio _after_ SCHED_RESET_ON_FORK has\nbeen handled for an RT parent gives birth to a deranged mutant child with\nnon-RT policy, but RT prio and sched_class.\n\nMove PI leakage protection up, always set priorities and weight, and if the\nchild is leaving RT class, reset rt_priority to the proper value.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311779695.8691.2.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c2efaed9bc973e3aeab1385c618017b56c8f6d7",
      "tree": "2a401b92c58c8aa8a40dafc513fb6be42f92c80a",
      "parents": [
        "e2b245f89ee3f5b03fb42d843a79a58cf4773181"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jul 29 16:20:33 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:41 2011 +0200"
      },
      "message": "sched: Kill WAKEUP_PREEMPT\n\nRemove the WAKEUP_PREEMPT feature, disabling it doesn\u0027t make any sense\nand its outlived its use by a long long while.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110729082033.GB12106@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2b245f89ee3f5b03fb42d843a79a58cf4773181",
      "tree": "3e20888a72b6750701b6c3b35edc74b4310aa7f6",
      "parents": [
        "eeca7360f756f7e36e846f35018df20808c7ef63"
      ],
      "author": {
        "name": "Jan H. Schönherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Mon Aug 01 11:03:28 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 11:55:24 2011 +0200"
      },
      "message": "sched: Remove rq-\u003eavg_load_per_task\n\nSince commit a2d47777 (\"sched: fix stale value in average load per task\")\nthe variable rq-\u003eavg_load_per_task is no longer required. Remove it.\n\nSigned-off-by: Jan H. Schönherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1312189408-17172-1-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c59d87c460767bc35dafd490139d3cfe78fb8da4",
      "tree": "2aad8261f86488e501d9645bd35d1398906da46d",
      "parents": [
        "06f8e2d6754dc631732415b741b5aa58a0f7133f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Aug 12 16:21:35 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 16:21:35 2011 -0500"
      },
      "message": "xfs: remove subdirectories\n\nUse the move from Linux 2.6 to Linux 3.x as an excuse to kill the\nannoying subdirectories in the XFS source code.  Besides the large\namount of file rename the only changes are to the Makefile, a few\nfiles including headers with the subdirectory prefix, and the binary\nsysctl compat code that includes a header under fs/xfs/ from\nkernel/.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "72fa59970f8698023045ab0713d66f3f4f96945c",
      "tree": "ed9a5eaf8212270d464c6d4396ae5a568352a997",
      "parents": [
        "1d229d54dbc26971142f61c3d271a68db236d178"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Aug 08 19:02:04 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 11 11:24:42 2011 -0700"
      },
      "message": "move RLIMIT_NPROC check from set_user() to do_execve_common()\n\nThe patch http://lkml.org/lkml/2003/7/13/226 introduced an RLIMIT_NPROC\ncheck in set_user() to check for NPROC exceeding via setuid() and\nsimilar functions.\n\nBefore the check there was a possibility to greatly exceed the allowed\nnumber of processes by an unprivileged user if the program relied on\nrlimit only.  But the check created new security threat: many poorly\nwritten programs simply don\u0027t check setuid() return code and believe it\ncannot fail if executed with root privileges.  So, the check is removed\nin this patch because of too often privilege escalations related to\nbuggy programs.\n\nThe NPROC can still be enforced in the common code flow of daemons\nspawning user processes.  Most of daemons do fork()+setuid()+execve().\nThe check introduced in execve() (1) enforces the same limit as in\nsetuid() and (2) doesn\u0027t create similar security issues.\n\nNeil Brown suggested to track what specific process has exceeded the\nlimit by setting PF_NPROC_EXCEEDED process flag.  With the change only\nthis process would fail on execve(), and other processes\u0027 execve()\nbehaviour is not changed.\n\nSolar Designer suggested to re-check whether NPROC limit is still\nexceeded at the moment of execve().  If the process was sleeping for\ndays between set*uid() and execve(), and the NPROC counter step down\nunder the limit, the defered execve() failure because NPROC limit was\nexceeded days ago would be unexpected.  If the limit is not exceeded\nanymore, we clear the flag on successful calls to execve() and fork().\n\nThe flag is also cleared on successful calls to set_user() as the limit\nwas exceeded for the previous user, not the current one.\n\nSimilar check was introduced in -ow patches (without the process flag).\n\nv3 - clear PF_NPROC_EXCEEDED on successful calls to set_user().\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d229d54dbc26971142f61c3d271a68db236d178",
      "tree": "92b4721faa4d966d741d49def90c424b45bd5abc",
      "parents": [
        "d16adea3c9d215d98c6fcccc3f91fa8269f91fac",
        "7676ebbaf21c3828e6315baadb6fcde448aa79b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 11 09:03:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 11 09:03: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 symbols: Check \u0027/tmp/perf-\u0027 symbol file ownership\n  perf sched: Usage leftover from trace -\u003e script rename\n  perf sched: Do not delete session object prematurely\n  perf tools: Check $HOME/.perfconfig ownership\n  perf, x86: Add model 45 SandyBridge support\n  perf tools: Add support to install perf python extension\n  perf tools: do not look at ./config for configuration\n  perf tools: Make clean leaves some files\n  perf lock: Dropping unsupported \u0027:r\u0027 modifier\n  perf probe: Fix coredump introduced by probe module option\n  jump label: Reduce the cycle count by changing the link order\n  perf report: Use ui__warning in some more places\n  perf python: Add PERF_RECORD_{LOST,READ,SAMPLE} routine tables\n  perf evlist: Introduce \u0027disable\u0027 method\n  trace events: Update version number reference to new 3.x scheme for EVENT_POWER_TRACING_DEPRECATED\n  perf buildid-cache: Zero out buffer of filenames when adding/removing buildid\n"
    },
    {
      "commit": "c09c47caedc9854d59378d6e34c989e51cfdd2b4",
      "tree": "ad7de20c08092cdf1cbbb83625a76acab3b0e2ce",
      "parents": [
        "8e4bf84474960e832b56293c9b0674c88b5b05ce"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Thu Aug 11 10:36:05 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Aug 11 10:36:05 2011 +0200"
      },
      "message": "blktrace: add FLUSH/FUA support\n\nAdd FLUSH/FUA support to blktrace. As FLUSH precedes WRITE and/or\nFUA follows WRITE, use the same \u0027F\u0027 flag for both cases and\ndistinguish them by their (relative) position. The end results\nlook like (other flags might be shown also):\n\n - WRITE:            W\n - WRITE_FLUSH:      FW\n - WRITE_FUA:        WF\n - WRITE_FLUSH_FUA:  FWF\n\nNote that we reuse TC_BARRIER due to lack of bit space of act_mask\nso that the older versions of blktrace tools will report flush\nrequests as barriers from now on.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6af7e471e5a7746b8024d70b4363d3dfe41d36b8",
      "tree": "33b1af81dfadefcc367307939acbb0d28c07c7c1",
      "parents": [
        "ea7802f630d356acaf66b3c0b28c00a945fc35dc"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 10:26:09 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible denial of service with high freq periodic timers\n\nIts possible to jam up the alarm timers by setting very small interval\ntimers, which will cause the alarmtimer subsystem to spend all of its time\nfiring and restarting timers. This can effectivly lock up a box.\n\nA deeper fix is needed, closely mimicking the hrtimer code, but for now\njust cap the interval to 100us to avoid userland hanging the system.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ea7802f630d356acaf66b3c0b28c00a945fc35dc",
      "tree": "9eb23fe08c124bfab7af964c3a4c614ac61c93aa",
      "parents": [
        "971c90bfa2f0b4fe52d6d9002178d547706f1343"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:51:56 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 07:10:09 2011 -0700"
      },
      "message": "alarmtimers: Memset itimerspec passed into alarm_timer_get\n\nFollowing common_timer_get, zero out the itimerspec passed in.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "971c90bfa2f0b4fe52d6d9002178d547706f1343",
      "tree": "f3075f495780a0ffc5d433ae7cb93aca8a40cf8e",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 04 07:25:35 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 07:09:53 2011 -0700"
      },
      "message": "alarmtimers: Avoid possible null pointer traversal\n\nWe don\u0027t check if old_setting is non null before assigning it, so\ncorrect this.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "f2c0d0266cc5eb36a4aa44944b4096ec121490aa",
      "tree": "1f3ec14316bf428e278c06059868c85c87df53cb",
      "parents": [
        "9f50fad65b87a8776ae989ca059ad6c17925dfc3"
      ],
      "author": {
        "name": "Jonathan Nieder",
        "email": "jrnieder@gmail.com",
        "time": "Mon Aug 08 06:22:43 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 09 18:22:22 2011 -0700"
      },
      "message": "cap_syslog: don\u0027t use WARN_ONCE for CAP_SYS_ADMIN deprecation warning\n\nsyslog-ng versions before 3.3.0beta1 (2011-05-12) assume that\nCAP_SYS_ADMIN is sufficient to access syslog, so ever since CAP_SYSLOG\nwas introduced (2010-11-25) they have triggered a warning.\n\nCommit ee24aebffb75 (\"cap_syslog: accept CAP_SYS_ADMIN for now\")\nimproved matters a little by making syslog-ng work again, just keeping\nthe WARN_ONCE().  But still, this is a warning that writes a stack trace\nwe don\u0027t care about to syslog, sets a taint flag, and alarms sysadmins\nwhen nothing worse has happened than use of an old userspace with a\nrecent kernel.\n\nConvert the WARN_ONCE to a printk_once to avoid that while continuing to\ngive userspace developers a hint that this is an unwanted\nbackward-compatibility feature and won\u0027t be around forever.\n\nReported-by: Ralf Hildebrandt \u003cralf.hildebrandt@charite.de\u003e\nReported-by: Niels \u003czorglub_olsen@hotmail.com\u003e\nReported-by: Paweł Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nLiked-by: Gergely Nagy \u003calgernon@madhouse-project.org\u003e\nAcked-by: Serge Hallyn \u003cserge@hallyn.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80e0401e35410a69bfae05b454db8a7187edd6b8",
      "tree": "d43eb51e0ca861e18284a85ccb790b321ed08320",
      "parents": [
        "2f84dd70916ccadd25e94d28363182a978f569b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Aug 05 14:26:17 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 09 11:57:35 2011 +0200"
      },
      "message": "lockdep: Fix wrong assumption in match_held_lock\n\nmatch_held_lock() was assuming it was being called on a lock class\nthat had already seen usage.\n\nThis condition was true for bug-free code using lockdep_assert_held(),\nsince you\u0027re in fact holding the lock when calling it. However the\nassumption fails the moment you assume the assertion can fail, which\nis the whole point of having the assertion in the first place.\n\nAnyway, now that there\u0027s more lockdep_is_held() users, notably\n__rcu_dereference_check(), its much easier to trigger this since we\ntest for a number of locks and we only need to hold any one of them to\nbe good.\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1312547787.28695.2.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b77f0f3c1f587791aa5d9bd1b0012c9a89eb9258",
      "tree": "994a1acc79d69ae13caa965df035ae5da1828fb3",
      "parents": [
        "6d158f3ec537bd6d3786196b6db97fcc0f973aef"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Aug 05 16:40:40 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 05 23:57:33 2011 +0200"
      },
      "message": "jump label: Reduce the cycle count by changing the link order\n\nIn the course of testing jump labels for use with the CFS\nbandwidth controller, Paul Turner, discovered that using jump\nlabels reduced the branch count and the instruction count, but\ndid not reduce the cycle count or wall time.\n\nI noticed that having the jump_label.o included in the kernel\nbut not used in any way still caused this increase in cycle\ncount and wall time. Thus, I moved jump_label.o in the\nkernel/Makefile, thus changing the link order, and presumably\nmoving it out of hot icache areas. This brought down the cycle\ncount/time as expected.\n\nIn addition to Paul\u0027s testing,  I\u0027ve tested the patch using a\nsingle \u0027static_branch()\u0027 in the getppid() path, and basically\nrunning tight loops of calls to getppid(). Here are my results\nfor the branch disabled case:\n\nWith jump labels turned on (CONFIG_JUMP_LABEL), branch disabled:\n\n Performance counter stats for \u0027bash -c /tmp/getppid;true\u0027 (50 runs):\n\n     3,969,510,217 instructions             #\t   0.864 IPC     ( +-0.000% )\n     4,592,334,954 cycles                     ( +-   0.046% )\n       751,634,470 branches                   ( +-   0.000% )\n\n        1.722635797  seconds time elapsed   ( +-   0.046% )\n\nJump labels turned off (CONFIG_JUMP_LABEL not set), branch\ndisabled:\n\n Performance counter stats for \u0027bash -c /tmp/getppid;true\u0027 (50 runs):\n\n     4,009,611,846 instructions             #\t   0.867 IPC     ( +-0.000% )\n     4,622,210,580 cycles                     ( +-   0.012% )\n       771,662,904 branches                   ( +-   0.000% )\n\n        1.734341454  seconds time elapsed   ( +-   0.022% )\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: rth@redhat.com\nCc: a.p.zijlstra@chello.nl\nCc: rostedt@goodmis.org\nLink: http://lkml.kernel.org/r/20110805204040.GG2522@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Paul Turner \u003cpjt@google.com\u003e\n"
    },
    {
      "commit": "3272cab4063467410802367a8d69f06c65b2a866",
      "tree": "1c665f8572b0aab2a5343d32b5eaa6713669b04f",
      "parents": [
        "f629299b544b6cc12b4e3e85fec96f4ce5809482",
        "140d0b2108faebc77c6523296e211e509cb9f5f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 05 10:32:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 05 10:33:55 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: Include most of the merge window trees, to do fixes on top.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f03683b8fb7e03862d2f1366a16c1b01732a5741",
      "tree": "af8143877e0d56e6a8206d937027a1fd8d8a9ec1",
      "parents": [
        "7f3bf7cd348cead84f8027b32aa30ea49fa64df5",
        "30765b92ada267c5395fc788623cb15233276f5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 04 16:44:04 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 04 16:44:04 2011 -1000"
      },
      "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  slab, lockdep: Annotate the locks before using them\n  lockdep: Clear whole lockdep_map on initialization\n  slab, lockdep: Annotate slab -\u003e rcu -\u003e debug_object -\u003e slab\n  lockdep: Fix up warning\n  lockdep: Fix trace_hardirqs_on_caller()\n  futex: Fix regression with read only mappings\n"
    },
    {
      "commit": "f59de8992aa6dc85e81aadc26b0f69e17809721d",
      "tree": "4cdb87598edb67a774281bf3cea2800114d2fa0c",
      "parents": [
        "83835b3d9aec8e9f666d8223d8a386814f756266"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 15:19:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:56 2011 +0200"
      },
      "message": "lockdep: Clear whole lockdep_map on initialization\n\nlockdep_init_map() only initializes parts of lockdep_map and triggers\nkmemcheck warning when it is copied as a whole.  There isn\u0027t anything\nto be gained by clearing selectively.  memset() the whole structure\nand remove loop for -\u003eclass_cache[] clearing.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d35532\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-tested-by: Christian Casteyde \u003ccasteyde.christian@free.fr\u003e\nBugzilla: https://bugzilla.kernel.org/show_bug.cgi?id\u003d35532\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110714131909.GJ3455@htj.dyndns.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70a0686a72c7a7e554b404ca11406ceec709d425",
      "tree": "e6f1d4bdb72ca93e7b13975b02e6e9199148666f",
      "parents": [
        "7d36b26be0f3c6b86e3ab7e1539e42f3a3bc79ca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 25 12:09:59 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:41 2011 +0200"
      },
      "message": "lockdep: Fix up warning\n\nOn Sun, 2011-07-24 at 21:06 -0400, Arnaud Lacombe wrote:\n\n\u003e /src/linux/linux/kernel/lockdep.c: In function \u0027mark_held_locks\u0027:\n\u003e /src/linux/linux/kernel/lockdep.c:2471:31: warning: comparison of\n\u003e distinct pointer types lacks a cast\n\nThe warning is harmless in this case, but the below makes it go away.\n\nReported-by: Arnaud Lacombe \u003clacombar@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311588599.2617.56.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d36b26be0f3c6b86e3ab7e1539e42f3a3bc79ca",
      "tree": "f22ac58f11dc1d0738e66024052f2e1c709533f1",
      "parents": [
        "d7619fe39d9769b4d4545cc511c891deea18ae08"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 26 13:13:44 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:36 2011 +0200"
      },
      "message": "lockdep: Fix trace_hardirqs_on_caller()\n\nCommit dd4e5d3ac4a (\"lockdep: Fix trace_[soft,hard]irqs_[on,off]()\nrecursion\") made a bit of a mess of the various checks and error\nconditions.\n\nIn particular it moved the check for !irqs_disabled() before the\nspurious enable test, resulting in some warnings.\n\nReported-by: Arnaud Lacombe \u003clacombar@gmail.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-and-tested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311679697.24752.28.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "288d5abec8314ae50fe6692f324b0444acae8486",
      "tree": "58a6903344b8d9b2252144356a132a05a8359876",
      "parents": [
        "33f35f2a4ee3abfc0f87990058aa1b6b5092f725"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 22:03:29 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 22:03:29 2011 -1000"
      },
      "message": "Boot up with usermodehelper disabled\n\nThe core device layer sends tons of uevent notifications for each device\nit finds, and if the kernel has been built with a non-empty\nCONFIG_UEVENT_HELPER_PATH that will make us try to execute the usermode\nhelper binary for all these events very early in the boot.\n\nNot only won\u0027t the root filesystem even be mounted at that point, we\nliterally won\u0027t have necessarily even initialized all the process\nhandling data structures at that point, which causes no end of silly\nproblems even when the usermode helper doesn\u0027t actually succeed in\nexecuting.\n\nSo just use our existing infrastructure to disable the usermodehelpers\nto make the kernel start out with them disabled.  We enable them when\nwe\u0027ve at least initialized stuff a bit.\n\nProblems related to an uninitialized\n\n\tinit_ipc_ns.ids[IPC_SHM_IDS].rw_mutex\n\nreported by various people.\n\nReported-by: Manuel Lauss \u003cmanuel.lauss@googlemail.com\u003e\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nReported-by: Marc Zyngier \u003cmaz@misterjones.org\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7619fe39d9769b4d4545cc511c891deea18ae08",
      "tree": "0a902533414001075b2245825e145cc2e35ce985",
      "parents": [
        "9ea71503a8ed9184d2d0b8ccc4d269d05f7940ae",
        "ed8f37370d83e695c0a4fa5d5fc7a83ecb947526"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 09:09:27 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 09:09:27 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/urgent\n"
    },
    {
      "commit": "a7295898a1d2e501427f557111c2b4bdfc90b1ed",
      "tree": "143ce6e69d8aa795494120a00c62ca0ade8bac40",
      "parents": [
        "dfc428b656c4693a2334a8d9865b430beddb562a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 03 16:21:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:25:20 2011 -1000"
      },
      "message": "taskstats: add_del_listener() should ignore !valid listeners\n\nWhen send_cpu_listeners() finds the orphaned listener it marks it as\n!valid and drops listeners-\u003esem.  Before it takes this sem for writing,\ns-\u003epid can be reused and add_del_listener() can wrongly try to re-use\nthis entry.\n\nChange add_del_listener() to check -\u003evalid \u003d T.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfc428b656c4693a2334a8d9865b430beddb562a",
      "tree": "ad8aa91d2e3c5e9cedc5f4efb2e04a86b4a0784e",
      "parents": [
        "12b3e038e5bb4860c17d001e92a6fa9964c0a7b9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 03 16:21:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:25:20 2011 -1000"
      },
      "message": "taskstats: add_del_listener() shouldn\u0027t use the wrong node\n\n1. Commit 26c4caea9d69 \"don\u0027t allow duplicate entries in listener mode\"\n   changed add_del_listener(REGISTER) so that \"next_cpu:\" can reuse the\n   listener allocated for the previous cpu, this doesn\u0027t look exactly\n   right even if minor.\n\n   Change the code to kfree() in the already-registered case, this case\n   is unlikely anyway so the extra kmalloc_node() shouldn\u0027t hurt but\n   looke more correct and clean.\n\n2. use the plain list_for_each_entry() instead of _safe() to scan\n   listeners-\u003elist.\n\n3. Remove the unneeded INIT_LIST_HEAD(\u0026s-\u003elist), we are going to\n   list_add(\u0026s-\u003elist).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nReviewed-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72f9adfd20e3be8a33ff3ef96cec787ed97b9ba9",
      "tree": "2e59de0152634f577ba996a1a3f35eceb9c5ebee",
      "parents": [
        "5f66d2b58ca879e70740c82422354144845d6dd3",
        "37f86b469d73fc2f2a925536fb99b8f513f641b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:39:40 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:39:40 2011 -1000"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kdb,kgdb: Allow arbitrary kgdb magic knock sequences\n  kdb: Remove all references to DOING_KGDB2\n  kdb,kgdb: Implement switch and pass buffer from kdb -\u003e gdb\n  kdb: cleanup unused variables missed in the original kdb merge\n"
    },
    {
      "commit": "37f86b469d73fc2f2a925536fb99b8f513f641b7",
      "tree": "f3f5a0c9d360e0bca2a6184b7063a4ab746dc433",
      "parents": [
        "d613d828e8987a1f794378022f900b454fa95403"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Tue May 24 10:43:06 2011 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 01 13:23:59 2011 -0500"
      },
      "message": "kdb,kgdb: Allow arbitrary kgdb magic knock sequences\n\nThe first packet that gdb sends when the kernel is in kdb mode seems\nto change with every release of gdb.  Instead of continuing to add\nmany different gdb packets, change kdb to automatically look for any\nthing that looks like a gdb packet.\n\nExample 1 cold start test:\necho g \u003e /proc/sysrq-trigger\n$D#44+\n\nExample 2 cold start test:\necho g \u003e /proc/sysrq-trigger\n$3#33\n\nThe second one should re-enter kdb\u0027s shell right away and is purely a\ntest.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "d613d828e8987a1f794378022f900b454fa95403",
      "tree": "637d466ae00621139e9d019c3a439ab0d8959cd5",
      "parents": [
        "f679c4985bb2e7de9d39a5d40b6031361c4ad861"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon May 23 13:22:54 2011 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 01 13:23:59 2011 -0500"
      },
      "message": "kdb: Remove all references to DOING_KGDB2\n\nThe DOING_KGDB2 was originally a state variable for one of the two\nways to automatically transition from kdb to kgdb.  Purge all these\nvariables and just use one single state for the transition.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f679c4985bb2e7de9d39a5d40b6031361c4ad861",
      "tree": "9750abdc0f876f38642c06c188b152324c512fdb",
      "parents": [
        "3bdb65ec95e6cccffc40102d7c003047c45da90c"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon May 23 13:17:41 2011 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 01 13:23:59 2011 -0500"
      },
      "message": "kdb,kgdb: Implement switch and pass buffer from kdb -\u003e gdb\n\nWhen switching from kdb mode to kgdb mode packets were getting lost\ndepending on the size of the fifo queue of the serial chip.  When gdb\ninitially connects if it is in kdb mode it should entirely send any\ncharacter buffer over to the gdbstub when switching connections.\n\nPreviously kdb was zero\u0027ing out the character buffer and this could\nlead to gdb failing to connect at all, or a lengthy pause could occur\non the initial connect.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "3bdb65ec95e6cccffc40102d7c003047c45da90c",
      "tree": "6a93a5c062d5b7c496268005503749bb9080a217",
      "parents": [
        "02f8c6aee8df3cdc935e9bdd4f2d020306035dbe"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Jun 30 14:12:00 2011 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 01 13:23:58 2011 -0500"
      },
      "message": "kdb: cleanup unused variables missed in the original kdb merge\n\nThe BTARGS and BTSYMARG variables do not have any function in the\nmainline version of kdb.\n\nReported-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "968e75fc13b6d582f42ce44172e13ba58157e11f",
      "tree": "306eacdf2815f8a49b47228c3b50e7a6083ef7d4",
      "parents": [
        "a00ed25cce6fe856388f89c7cd40da0eee7666a6",
        "d3690f8b713f9710e68214ca38fb8b07b587a2a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 31 14:30:59 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 31 14:30:59 2011 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:\n  m68k/math-emu: Remove unnecessary code\n  m68k/math-emu: Remove commented out old code\n  m68k: Kill warning in setup_arch() when compiling for Sun3\n  m68k/atari: Prefix GPIO_{IN,OUT} with CODEC_\n  sparc: iounmap() and *_free_coherent() - Use lookup_resource()\n  m68k/atari: Reserve some ST-RAM early on for device buffer use\n  m68k/amiga: Chip RAM - Use lookup_resource()\n  resources: Add lookup_resource()\n  sparc: _sparc_find_resource() should check for exact matches\n  m68k/amiga: Chip RAM - Offset resource end by CHIP_PHYSADDR\n  m68k/amiga: Chip RAM - Use resource_size() to fix off-by-one error\n  m68k/amiga: Chip RAM - Change chipavail to an atomic_t\n  m68k/amiga: Chip RAM - Always allocate from the start of memory\n  m68k/amiga: Chip RAM - Convert from printk() to pr_*()\n  m68k/amiga: Chip RAM - Use tabs for indentation\n"
    },
    {
      "commit": "1c388919d89ca35741e9c4d3255adf87f76f0c06",
      "tree": "3858d97ce2f91cdf6ec3badafbf66ef058e178a7",
      "parents": [
        "88efd0bbc0fe403a9948e6f94cc48b9f15ee4861"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sat May 07 20:53:16 2011 +0200"
      },
      "committer": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sat Jul 30 21:21:39 2011 +0200"
      },
      "message": "resources: Add lookup_resource()\n\nAdd a function to find an existing resource by a resource start address.\nThis allows to implement simple allocators (with a malloc/free-alike API)\non top of the resource system.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\n"
    },
    {
      "commit": "664a41b8a91bf78a01a751e15175e0008977685a",
      "tree": "d9dc15c83400ad2dfb430ff27ae3e7fdc9395856",
      "parents": [
        "983236b5741e557451f3ed4ec5ebf1f62a5b2c15",
        "ee2ce3a0b43d14d792d34cf88e7bc2091096744b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 00:08:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 00:08:53 2011 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (430 commits)\n  [media] ir-mce_kbd-decoder: include module.h for its facilities\n  [media] ov5642: include module.h for its facilities\n  [media] em28xx: Fix DVB-C maxsize for em2884\n  [media] tda18271c2dd: Fix saw filter configuration for DVB-C @6MHz\n  [media] v4l: mt9v032: Fix Bayer pattern\n  [media] V4L: mt9m111: rewrite set_pixfmt\n  [media] V4L: mt9m111: fix missing return value check mt9m111_reg_clear\n  [media] V4L: initial driver for ov5642 CMOS sensor\n  [media] V4L: sh_mobile_ceu_camera: fix Oops when USERPTR mapping fails\n  [media] V4L: soc-camera: remove soc-camera bus and devices on it\n  [media] V4L: soc-camera: un-export the soc-camera bus\n  [media] V4L: sh_mobile_csi2: switch away from using the soc-camera bus notifier\n  [media] V4L: add media bus configuration subdev operations\n  [media] V4L: soc-camera: group struct field initialisations together\n  [media] V4L: soc-camera: remove now unused soc-camera specific PM hooks\n  [media] V4L: pxa-camera: switch to using standard PM hooks\n  [media] NetUP Dual DVB-T/C CI RF: force card hardware revision by module param\n  [media] Don\u0027t OOPS if videobuf_dvb_get_frontend return NULL\n  [media] NetUP Dual DVB-T/C CI RF: load firmware according card revision\n  [media] omap3isp: Support configurable HS/VS polarities\n  ...\n\nFix up conflicts:\n - arch/arm/mach-omap2/board-rx51-peripherals.c:\n     cleanup regulator supply definitions in mach-omap2\n   vs\n     OMAP3: RX-51: define vdds_csib regulator supply\n - drivers/staging/tm6000/tm6000-alsa.c (trivial)\n"
    },
    {
      "commit": "cb7dee8d22f3e9320424e769d860fbd9712a0666",
      "tree": "58f33d70453e7cd26ec78e96f33ca7a9673df26e",
      "parents": [
        "49267fc82ad2825132be3b016d8eb58a90cb0c36",
        "6124a4e430b64d1577438c8648c59e996d02e73e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 29 23:32:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 29 23:32:02 2011 -0700"
      },
      "message": "Merge branch \u0027next/dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (21 commits)\n  arm/dt: tegra devicetree support\n  arm/versatile: Add device tree support\n  dt/irq: add irq_domain_generate_simple() helper\n  irq: add irq_domain translation infrastructure\n  dmaengine: imx-sdma: add device tree probe support\n  dmaengine: imx-sdma: sdma_get_firmware does not need to copy fw_name\n  dmaengine: imx-sdma: use platform_device_id to identify sdma version\n  mmc: sdhci-esdhc-imx: add device tree probe support\n  mmc: sdhci-pltfm: dt device does not pass parent to sdhci_alloc_host\n  mmc: sdhci-esdhc-imx: get rid of the uses of cpu_is_mx()\n  mmc: sdhci-esdhc-imx: do not reference platform data after probe\n  mmc: sdhci-esdhc-imx: extend card_detect and write_protect support for mx5\n  net/fec: add device tree probe support\n  net: ibm_newemac: convert it to use of_get_phy_mode\n  dt/net: add helper function of_get_phy_mode\n  net/fec: gasket needs to be enabled for some i.mx\n  serial/imx: add device tree probe support\n  serial/imx: get rid of the uses of cpu_is_mx1()\n  arm/dt: Add dtb make rule\n  arm/dt: Add skeleton dtsi file\n  ...\n"
    },
    {
      "commit": "6124a4e430b64d1577438c8648c59e996d02e73e",
      "tree": "49cfafad785d1c9e403a5b0d755298b9af2c260f",
      "parents": [
        "8e267f3da5f117d2f1316cf6ddf740f93f1c73aa",
        "580975d7f48d7d047e22bb0f42adf7557801d8d4"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 28 15:25:46 2011 +0000"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 28 15:25:46 2011 +0000"
      },
      "message": "Merge branch \u0027imx/dt\u0027 into next/dt\n"
    },
    {
      "commit": "b6873807a7143b7d6d8b06809295e559d07d7deb",
      "tree": "1187413ab85f1a7b7d5da91bf61ae21601da3855",
      "parents": [
        "f3637a5f2e2eb391ff5757bc83fb5de8f9726464"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Mon Jul 11 12:17:31 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 28 11:23:21 2011 +0200"
      },
      "message": "irq: Track the owner of irq descriptor\n\nInterrupt descriptors can be allocated from modules. The interrupts\nare used by other modules, but we have no refcount on the module which\nprovides the interrupts and there is no way to establish one on the\ndevice level as the interrupt using module is agnostic to the fact\nthat the interrupt is provided by a module rather than by some builtin\ninterrupt controller.\n\nTo prevent removal of the interrupt providing module, we can track the\nowner of the interrupt descriptor, which also provides the relevant\nirq chip functions in the irq descriptor.\n\nrequest/setup_irq() can now acquire a refcount on the owner module to\nprevent unloading. free_irq() drops the refcount.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/20110711101731.GA13804@Chamillionaire.breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f3637a5f2e2eb391ff5757bc83fb5de8f9726464",
      "tree": "4573995893bfe66e505b11bf4277cf062e1a7eea",
      "parents": [
        "1dd75f91ae713049eb6baaa640078f3a6549e522"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Jul 07 22:32:17 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 28 11:23:21 2011 +0200"
      },
      "message": "irq: Always set IRQF_ONESHOT if no primary handler is specified\n\nIf no primary handler is specified then a default one is assigned\nwhich always returns IRQ_WAKE_THREAD. This handler requires the\nIRQF_ONESHOT flag on LEVEL / EIO typed irqs because the source of\ninterrupt is not disabled. Since it is required for those users and\nthere is no difference for others it makes sense to add this flag\nunconditionally.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/1310070737-18514-1-git-send-email-bigeasy@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7e71330169d8056536b299290544980bccc6b300",
      "tree": "7dab4954a7683e35bbf66adadd89b26971960311",
      "parents": [
        "08a543ad33fc188650801bd36eed4ffe272643e1"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 26 03:19:06 2011 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Jul 28 01:32:04 2011 -0600"
      },
      "message": "dt/irq: add irq_domain_generate_simple() helper\n\nirq_domain_generate_simple() is an easy way to generate an irq translation\ndomain for simple irq controllers.  It assumes a flat 1:1 mapping from\nhardware irq number to an offset of the first linux irq number assigned\nto the controller\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "08a543ad33fc188650801bd36eed4ffe272643e1",
      "tree": "cf2b41b922e77190425f999c2268f1558dd52d18",
      "parents": [
        "5fd1a2ed0ec6fb5449c71a988cc15edb8671b3d0"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Jul 26 03:19:06 2011 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Jul 28 01:32:04 2011 -0600"
      },
      "message": "irq: add irq_domain translation infrastructure\n\nThis patch adds irq_domain infrastructure for translating from\nhardware irq numbers to linux irqs.  This is particularly important\nfor architectures adding device tree support because the current\nimplementation (excluding PowerPC and SPARC) cannot handle\ntranslation for more than a single interrupt controller.  irq_domain\nsupports device tree translation for any number of interrupt\ncontrollers.\n\nThis patch converts x86, Microblaze, ARM and MIPS to use irq_domain\nfor device tree irq translation.  x86 is untested beyond compiling it,\nirq_domain is enabled for MIPS and Microblaze, but the old behaviour is\npreserved until the core code is modified to actually register an\nirq_domain yet.  On ARM it works and is required for much of the new\nARM device tree board support.\n\nPowerPC has /not/ been converted to use this new infrastructure.  It\nis still missing some features before it can replace the virq\ninfrastructure already in powerpc (see documentation on\nirq_domain_map/unmap for details).  Followup patches will add the\nmissing pieces and migrate PowerPC to use irq_domain.\n\nSPARC has its own method of managing interrupts from the device tree\nand is unaffected by this change.\n\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "95b6886526bb510b8370b625a49bc0ab3b8ff10f",
      "tree": "2862606224820d200be12d2092dcd26df1654b80",
      "parents": [
        "22712200e175e0df5c7f9edfe6c6bf5c94c23b83",
        "29412f0f6a19e34336368f13eab848091c343952"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 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: (54 commits)\n  tpm_nsc: Fix bug when loading multiple TPM drivers\n  tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block\n  tpm: Fix compilation warning when CONFIG_PNP is not defined\n  TOMOYO: Update kernel-doc.\n  tpm: Fix a typo\n  tpm_tis: Probing function for Intel iTPM bug\n  tpm_tis: Fix the probing for interrupts\n  tpm_tis: Delay ACPI S3 suspend while the TPM is busy\n  tpm_tis: Re-enable interrupts upon (S3) resume\n  tpm: Fix display of data in pubek sysfs entry\n  tpm_tis: Add timeouts sysfs entry\n  tpm: Adjust interface timeouts if they are too small\n  tpm: Use interface timeouts returned from the TPM\n  tpm_tis: Introduce durations sysfs entry\n  tpm: Adjust the durations if they are too small\n  tpm: Use durations returned from TPM\n  TOMOYO: Enable conditional ACL.\n  TOMOYO: Allow using argv[]/envp[] of execve() as conditions.\n  TOMOYO: Allow using executable\u0027s realpath and symlink\u0027s target as conditions.\n  TOMOYO: Allow using owner/group etc. of file objects as conditions.\n  ...\n\nFix up trivial conflict in security/tomoyo/realpath.c\n"
    }
  ],
  "next": "2330fb8242c3efc281ab8a2d3e22686023699955"
}
