)]}'
{
  "log": [
    {
      "commit": "468e6a20afaccb67e2a7d7f60d301f90e1c6f301",
      "tree": "5558e92e85decd0fa0bb95ed6e637e1f68ea2fe1",
      "parents": [
        "1df647197c5b8aacaeb58592cba9a1df322c9000"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Sep 07 10:41:32 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Nov 17 20:49:06 2011 +0800"
      },
      "message": "writeback: remove vm_dirties and task-\u003edirties\n\nThey are not used any more.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
      "tree": "d76974986aaaa8549baf2d6a106fa6cb60d64b88",
      "parents": [
        "8686a0e200419322654a75155e2e6f80346a1297",
        "540f41edc15473ca3b2876de72646546ae101374"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:08:43 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:08:43 2011 +0200"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)\n  llist: Add back llist_add_batch() and llist_del_first() prototypes\n  sched: Don\u0027t use tasklist_lock for debug prints\n  sched: Warn on rt throttling\n  sched: Unify the -\u003ecpus_allowed mask copy\n  sched: Wrap scheduler p-\u003ecpus_allowed access\n  sched: Request for idle balance during nohz idle load balance\n  sched: Use resched IPI to kick off the nohz idle balance\n  sched: Fix idle_cpu()\n  llist: Remove cpu_relax() usage in cmpxchg loops\n  sched: Convert to struct llist\n  llist: Add llist_next()\n  irq_work: Use llist in the struct irq_work logic\n  llist: Return whether list is empty before adding in llist_add()\n  llist: Move cpu_relax() to after the cmpxchg()\n  llist: Remove the platform-dependent NMI checks\n  llist: Make some llist functions inline\n  sched, tracing: Show PREEMPT_ACTIVE state in trace_sched_switch\n  sched: Remove redundant test in check_preempt_tick()\n  sched: Add documentation for bandwidth control\n  sched: Return unused runtime on group dequeue\n  ...\n"
    },
    {
      "commit": "19b4a8d520a6e0176dd52aaa429261ad4fcaa545",
      "tree": "6dcf5a780718fc50b9cd79cc803daa7c7e080a02",
      "parents": [
        "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
        "048b718029033af117870d3da47da12995be14a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)\n  rcu: Move propagation of -\u003ecompleted from rcu_start_gp() to rcu_report_qs_rsp()\n  rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent states\n  rcu: Wire up RCU_BOOST_PRIO for rcutree\n  rcu: Make rcu_torture_boost() exit loops at end of test\n  rcu: Make rcu_torture_fqs() exit loops at end of test\n  rcu: Permit rt_mutex_unlock() with irqs disabled\n  rcu: Avoid having just-onlined CPU resched itself when RCU is idle\n  rcu: Suppress NMI backtraces when stall ends before dump\n  rcu: Prohibit grace periods during early boot\n  rcu: Simplify unboosting checks\n  rcu: Prevent early boot set_need_resched() from __rcu_pending()\n  rcu: Dump local stack if cannot dump all CPUs\u0027 stacks\n  rcu: Move __rcu_read_unlock()\u0027s barrier() within if-statement\n  rcu: Improve rcu_assign_pointer() and RCU_INIT_POINTER() documentation\n  rcu: Make rcu_assign_pointer() unconditionally insert a memory barrier\n  rcu: Make rcu_implicit_dynticks_qs() locals be correct size\n  rcu: Eliminate in_irq() checks in rcu_enter_nohz()\n  nohz: Remove nohz_cpu_mask\n  rcu: Document interpretation of RCU-lockdep splats\n  rcu: Allow rcutorture\u0027s stat_interval parameter to be changed at runtime\n  ...\n"
    },
    {
      "commit": "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
      "tree": "88647d9dc50d634dee9cfeb7f354d620977a2f33",
      "parents": [
        "982653009b883ef1529089e3e6f1ae2fee41cbe2",
        "68cc3990a545dc0da221b4844dd8b9c06623a6c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:17:32 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:17:32 2011 +0200"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  rtmutex: Add missing rcu_read_unlock() in debug_rt_mutex_print_deadlock()\n  lockdep: Comment all warnings\n  lib: atomic64: Change the type of local lock to raw_spinlock_t\n  locking, lib/atomic64: Annotate atomic64_lock::lock as raw\n  locking, x86, iommu: Annotate qi-\u003eq_lock as raw\n  locking, x86, iommu: Annotate irq_2_ir_lock as raw\n  locking, x86, iommu: Annotate iommu-\u003eregister_lock as raw\n  locking, dma, ipu: Annotate bank_lock as raw\n  locking, ARM: Annotate low level hw locks as raw\n  locking, drivers/dca: Annotate dca_lock as raw\n  locking, powerpc: Annotate uic-\u003elock as raw\n  locking, x86: mce: Annotate cmci_discover_lock as raw\n  locking, ACPI: Annotate c3_lock as raw\n  locking, oprofile: Annotate oprofilefs lock as raw\n  locking, video: Annotate vga console lock as raw\n  locking, latencytop: Annotate latency_lock as raw\n  locking, timer_stats: Annotate table_lock as raw\n  locking, rwsem: Annotate inner lock as raw\n  locking, semaphores: Annotate inner lock as raw\n  locking, sched: Annotate thread_group_cputimer as raw\n  ...\n\nFix up conflicts in kernel/posix-cpu-timers.c manually: making\ncputimer-\u003ecputime a raw lock conflicted with the ABBA fix in commit\nbcd5cff7216f (\"cputimer: Cure lock inversion\").\n"
    },
    {
      "commit": "1be025d3cb40cd295123af2c394f7229ef9b30ca",
      "tree": "5dc14e1ea412cc7fdc3e563ad23187059fe8bfb5",
      "parents": [
        "2d03423b2319cc854adeb28a03f65de5b5e0ab63",
        "a2c76b83fdd763c826f38a55127ccf25708099ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:23:15 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:23:15 2011 +0200"
      },
      "message": "Merge branch \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\n* \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (260 commits)\n  usb: renesas_usbhs: fixup inconsistent return from usbhs_pkt_push()\n  usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB.\n  USB: gadget: midi: memory leak in f_midi_bind_config()\n  USB: gadget: midi: fix range check in f_midi_out_open()\n  QE/FHCI: fixed the CONTROL bug\n  usb: renesas_usbhs: tidyup for smatch warnings\n  USB: Fix USB Kconfig dependency problem on 85xx/QoirQ platforms\n  EHCI: workaround for MosChip controller bug\n  usb: gadget: file_storage: fix race on unloading\n  USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers\n  USB: ftdi_sio.c:Fill MSR fields of the ftdi async_icount structure\n  USB: ftdi_sio.c: Fill LSR fields of the ftdi async_icount structure\n  USB: ftdi_sio.c:Fill TX field of the ftdi async_icount structure\n  USB: ftdi_sio.c: Fill the RX field of the ftdi async_icount structure\n  USB: ftdi_sio.c: Basic icount infrastructure for ftdi_sio\n  usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .\n  USB: ftdi_sio: Support TI/Luminary Micro Stellaris BD-ICDI Board\n  USB: Fix runtime wakeup on OHCI\n  xHCI/USB: Make xHCI driver have a BOS descriptor.\n  usb: gadget: add new usb gadget for ACM and mass storage\n  ...\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": "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": "9d823e8f6b1b7b39f952d7d1795f29162143a433",
      "tree": "2ef4c0d29353452dd2f894e7dbd240a31bdd0a02",
      "parents": [
        "7381131cbcf7e15d201a0ffd782a4698efe4e740"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Sat Jun 11 18:10:12 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 03 21:08:57 2011 +0800"
      },
      "message": "writeback: per task dirty rate limit\n\nAdd two fields to task_struct.\n\n1) account dirtied pages in the individual tasks, for accuracy\n2) per-task balance_dirty_pages() call intervals, for flexibility\n\nThe balance_dirty_pages() call interval (ie. nr_dirtied_pause) will\nscale near-sqrt to the safety gap between dirty pages and threshold.\n\nThe main problem of per-task nr_dirtied is, if 1k+ tasks start dirtying\npages at exactly the same time, each task will be assigned a large\ninitial nr_dirtied_pause, so that the dirty threshold will be exceeded\nlong before each task reached its nr_dirtied_pause and hence call\nbalance_dirty_pages().\n\nThe solution is to watch for the number of pages dirtied on each CPU in\nbetween the calls into balance_dirty_pages(). If it exceeds ratelimit_pages\n(3% dirty threshold), force call balance_dirty_pages() for a chance to\nset bdi-\u003edirty_exceeded. In normal situations, this safeguarding\ncondition is not expected to trigger at all.\n\nOn the sqrt in dirty_poll_interval():\n\nIt will serve as an initial guess when dirty pages are still in the\nfreerun area.\n\nWhen dirty pages are floating inside the dirty control scope [freerun,\nlimit], a followup patch will use some refined dirty poll interval to\nget the desired pause time.\n\n   thresh-dirty (MB)    sqrt\n\t\t   1      16\n\t\t   2      22\n\t\t   4      32\n\t\t   8      45\n\t\t  16      64\n\t\t  32      90\n\t\t  64     128\n\t\t 128     181\n\t\t 256     256\n\t\t 512     362\n\t\t1024     512\n\nThe above table means, given 1MB (or 1GB) gap and the dd tasks polling\nbalance_dirty_pages() on every 16 (or 512) pages, the dirty limit won\u0027t\nbe exceeded as long as there are less than 16 (or 512) concurrent dd\u0027s.\n\nSo sqrt naturally leads to less overheads and more safe concurrent tasks\nfor large memory servers, which have large (thresh-freerun) gaps.\n\npeter: keep the per-CPU ratelimit for safeguarding the 1k+ tasks case\n\nCC: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Andrea Righi \u003candrea@betterlinux.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\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": "d178bc3a708f39cbfefc3fab37032d3f2511b4ec",
      "tree": "af492e92e140f1f6abad5a377a269ef7335824de",
      "parents": [
        "edb2b255a0bebac5aeb17c7613aeb76ba4e6c63c"
      ],
      "author": {
        "name": "Serge Hallyn",
        "email": "serge.hallyn@canonical.com",
        "time": "Mon Sep 26 10:45:18 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Sep 29 13:13:08 2011 -0700"
      },
      "message": "user namespace: usb: make usb urbs user namespace aware (v2)\n\nAdd to the dev_state and alloc_async structures the user namespace\ncorresponding to the uid and euid.  Pass these to kill_pid_info_as_uid(),\nwhich can then implement a proper, user-namespace-aware uid check.\n\nChangelog:\nSep 20: Per Oleg\u0027s suggestion: Instead of caching and passing user namespace,\n\tuid, and euid each separately, pass a struct cred.\nSep 26: Address Alan Stern\u0027s comments: don\u0027t define a struct cred at\n\tusbdev_open(), and take and put a cred at async_completed() to\n\tensure it lasts for the duration of kill_pid_info_as_cred().\n\nSigned-off-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "82e78d80fc392ac7e98326bc8beeb8a679913ffd",
      "tree": "4999d3c03ed711056474c3a31512e7d3cf253b87",
      "parents": [
        "5c51dd7349d4bb26f845f17f85daa168f5fa03f2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Aug 04 07:55:34 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:38:39 2011 -0700"
      },
      "message": "rcu: Simplify unboosting checks\n\nCommit 7765be (Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special)\nintroduced a new -\u003ercu_boosted field in the task structure.  This is\nredundant because the existing -\u003ercu_boost_mutex will be non-NULL at\nany time that -\u003ercu_boosted is nonzero.  Therefore, this commit removes\n-\u003ercu_boosted and tests -\u003ercu_boost_mutex instead.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fc0763f53e3ff6a6bfa66934662a3446b9ca6f16",
      "tree": "2671d3f6275c9707a620032658ecb05025e4e9fa",
      "parents": [
        "d7bd2d68aa2ee2738a10c8ad9346b805e4ab2e1c"
      ],
      "author": {
        "name": "Shi, Alex",
        "email": "alex.shi@intel.com",
        "time": "Thu Jul 28 14:56:12 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:38:29 2011 -0700"
      },
      "message": "nohz: Remove nohz_cpu_mask\n\nRCU no longer uses this global variable, nor does anyone else.  This\ncommit therefore removes this variable.  This reduces memory footprint\nand also removes some atomic instructions and memory barriers from\nthe dyntick-idle path.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ee30a7b2fc072f139dac44826860d2c1f422137c",
      "tree": "4f11173879b25cc31822cb0a8d9dbd48395e74bc",
      "parents": [
        "07354eb1a74d1e1ece29f8bafe0b46e8c77a95ef"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 25 18:56:56 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:11:55 2011 +0200"
      },
      "message": "locking, sched: Annotate thread_group_cputimer as raw\n\nThe thread_group_cputimer lock can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\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": "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": "096a705bbc080a4041636d07514560da8d78acbe",
      "tree": "38c3c01225709ffa53419083ea6332f8a72610de",
      "parents": [
        "fea80311a939a746533a6d7e7c3183729d6a3faf",
        "5757a6d76cdf6dda2a492c09b985c015e86779b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 10:33:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 10:33:36 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.1/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.1/core\u0027 of git://git.kernel.dk/linux-block: (24 commits)\n  block: strict rq_affinity\n  backing-dev: use synchronize_rcu_expedited instead of synchronize_rcu\n  block: fix patch import error in max_discard_sectors check\n  block: reorder request_queue to remove 64 bit alignment padding\n  CFQ: add think time check for group\n  CFQ: add think time check for service tree\n  CFQ: move think time check variables to a separate struct\n  fixlet: Remove fs_excl from struct task.\n  cfq: Remove special treatment for metadata rqs.\n  block: document blk_plug list access\n  block: avoid building too big plug list\n  compat_ioctl: fix make headers_check regression\n  block: eliminate potential for infinite loop in blkdev_issue_discard\n  compat_ioctl: fix warning caused by qemu\n  block: flush MEDIA_CHANGE from drivers on close(2)\n  blk-throttle: Make total_nr_queued unsigned\n  block: Add __attribute__((format(printf...) and fix fallout\n  fs/partitions/check.c: make local symbols static\n  block:remove some spare spaces in genhd.c\n  block:fix the comment error in blkdev.h\n  ...\n"
    },
    {
      "commit": "bdc7ccfc0631797636837b10df7f87bc1e2e4ae3",
      "tree": "70f09f8ffee07486d41ca254b8abb05692713d1e",
      "parents": [
        "4d4abdcb1dee03a4f9d6d2021622ed07e14dfd17",
        "0f3171438fc917b9f6b8b60dbb7a3fff9a0f68fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:45:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:45:02 2011 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)\n  sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair\n  sched: Replace use of entity_key()\n  sched: Separate group-scheduling code more clearly\n  sched: Reorder root_domain to remove 64 bit alignment padding\n  sched: Do not attempt to destroy uninitialized rt_bandwidth\n  sched: Remove unused function cpu_cfs_rq()\n  sched: Fix (harmless) typo \u0027CONFG_FAIR_GROUP_SCHED\u0027\n  sched, cgroup: Optimize load_balance_fair()\n  sched: Don\u0027t update shares twice on on_rq parent\n  sched: update correct entity\u0027s runtime in check_preempt_wakeup()\n  xtensa: Use generic config PREEMPT definition\n  h8300: Use generic config PREEMPT definition\n  m32r: Use generic PREEMPT config\n  sched: Skip autogroup when looking for all rt sched groups\n  sched: Simplify mutex_spin_on_owner()\n  sched: Remove rcu_read_lock() from wake_affine()\n  sched: Generalize sleep inside spinlock detection\n  sched: Make sleeping inside spinlock detection working in !CONFIG_PREEMPT\n  sched: Isolate preempt counting in its own config option\n  sched: Remove pointless in_atomic() definition check\n  ...\n"
    },
    {
      "commit": "8209f53d79444747782a28520187abaf689761f2",
      "tree": "726270ea29e037f026d77a99787b9d844531ac42",
      "parents": [
        "22a3b9771117d566def0150ea787fcc95f16e724",
        "eac1b5e57d7abc836e78fd3fbcf77dbeed01edc9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:06:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:06:50 2011 -0700"
      },
      "message": "Merge branch \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc\n\n* \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (39 commits)\n  ptrace: do_wait(traced_leader_killed_by_mt_exec) can block forever\n  ptrace: fix ptrace_signal() \u0026\u0026 STOP_DEQUEUED interaction\n  connector: add an event for monitoring process tracers\n  ptrace: dont send SIGSTOP on auto-attach if PT_SEIZED\n  ptrace: mv send-SIGSTOP from do_fork() to ptrace_init_task()\n  ptrace_init_task: initialize child-\u003ejobctl explicitly\n  has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/\n  ptrace: make former thread ID available via PTRACE_GETEVENTMSG after PTRACE_EVENT_EXEC stop\n  ptrace: wait_consider_task: s/same_thread_group/ptrace_reparented/\n  ptrace: kill real_parent_is_ptracer() in in favor of ptrace_reparented()\n  ptrace: ptrace_reparented() should check same_thread_group()\n  redefine thread_group_leader() as exit_signal \u003e\u003d 0\n  do not change dead_task-\u003eexit_signal\n  kill task_detached()\n  reparent_leader: check EXIT_DEAD instead of task_detached()\n  make do_notify_parent() __must_check, update the callers\n  __ptrace_detach: avoid task_detached(), check do_notify_parent()\n  kill tracehook_notify_death()\n  make do_notify_parent() return bool\n  ptrace: s/tracehook_tracer_task()/ptrace_parent()/\n  ...\n"
    },
    {
      "commit": "994bf1c92270e3d7731ea08f1d1bd7a668314e60",
      "tree": "4409a21eab486e53fbe350a66e8a4f28b7a720c0",
      "parents": [
        "bd96efe17d945f0bad56d592f8686dc6309905e7",
        "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 17:59:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:00:01 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest scheduler fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f",
      "tree": "489c64380668e8c5a29d3f36f37554e4b081a647",
      "parents": [
        "acc11eab70591744369722280c9ce162a6193494",
        "d1e9ae47a0285d3f1699e8219ce50f656243b93f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: align __lock_task_sighand() irq disabling and RCU\n  softirq,rcu: Inform RCU of irq_exit() activity\n  sched: Add irq_{enter,exit}() to scheduler_ipi()\n  rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n  rcu: Streamline code produced by __rcu_read_unlock()\n  rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n  rcu: decrease rcu_report_exp_rnp coupling with scheduler\n"
    },
    {
      "commit": "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c",
      "tree": "414bf6bdbad3f04f629fa2a72254ea85acf723f4",
      "parents": [
        "9c3f75cbd144014bea6af866a154cc2e73ab2287"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 15 10:35:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:41 2011 +0200"
      },
      "message": "sched: Allow for overlapping sched_domain spans\n\nAllow for sched_domain spans that overlap by giving such domains their\nown sched_group list instead of sharing the sched_groups amongst\neach-other.\n\nThis is needed for machines with more than 16 nodes, because\nsched_domain_node_span() will generate a node mask from the\n16 nearest nodes without regard if these masks have any overlap.\n\nCurrently sched_domains have a sched_group that maps to their child\nsched_domain span, and since there is no overlap we share the\nsched_group between the sched_domains of the various CPUs. If however\nthere is overlap, we would need to link the sched_group list in\ndifferent ways for each cpu, and hence sharing isn\u0027t possible.\n\nIn order to solve this, allocate private sched_groups for each CPU\u0027s\nsched_domain but have the sched_groups share a sched_group_power\nstructure such that we can uniquely track the power.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7765be2fec0f476fcd61812d5f9406b04c765020",
      "tree": "e89ccb3fbd5655090b05f608f8e1d39924f23a9a",
      "parents": [
        "131906b0062ddde7f85bbe67754983c754648bd8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jul 14 12:24:11 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:52 2011 -0700"
      },
      "message": "rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n\nThe RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task\nwrite to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure\u0027s\n-\u003ercu_read_unlock_special field, but, as noted by Steven Rostedt, without\ncorrectly synchronizing all accesses to -\u003ercu_read_unlock_special.\nThis could result in bits in -\u003ercu_read_unlock_special being spuriously\nset and cleared due to conflicting accesses, which in turn could result\nin deadlocks between the rcu_node structure\u0027s -\u003elock and the scheduler\u0027s\nrq and pi locks.  These deadlocks would result from RCU incorrectly\nbelieving that the just-ended RCU read-side critical section had been\npreempted and/or boosted.  If that RCU read-side critical section was\nexecuted with either rq or pi locks held, RCU\u0027s ensuing (incorrect)\ncalls to the scheduler would cause the scheduler to attempt to once\nagain acquire the rq and pi locks, resulting in deadlock.  More complex\ndeadlock cycles are also possible, involving multiple rq and pi locks\nas well as locks from multiple rcu_node structures.\n\nThis commit fixes synchronization by creating -\u003ercu_boosted field in\ntask_struct that is accessed and modified only when holding the -\u003elock\nin the rcu_node structure on which the task is queued (on that rcu_node\nstructure\u0027s -\u003eblkd_tasks list).  This results in tasks accessing only\ntheir own current-\u003ercu_read_unlock_special fields, making unsynchronized\naccess once again legal, and keeping the rcu_read_unlock() fastpath free\nof atomic instructions and memory barriers.\n\nThe reason that the rcu_read_unlock() fastpath does not need to access\nthe new current-\u003ercu_boosted field is that this new field cannot\nbe non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the\ncurrent-\u003ercu_read_unlock_special field.  Therefore, rcu_read_unlock()\nneed only test current-\u003ercu_read_unlock_special: if that is zero, then\ncurrent-\u003ercu_boosted must also be zero.\n\nThis bug does not affect TINY_PREEMPT_RCU because this implementation\nof RCU accesses current-\u003ercu_read_unlock_special with irqs disabled,\nthus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on.\n\nMaybe-reported-by: Dave Jones \u003cdavej@redhat.com\u003e\nMaybe-reported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4aede84b33d6beb401136a3deca0651ae07c5e99",
      "tree": "831266dbb15227584da5011ae4bb1e5038a69677",
      "parents": [
        "a07405b7802691d29ab3b23bdc76ee6d006aad0b"
      ],
      "author": {
        "name": "Justin TerAvest",
        "email": "teravest@google.com",
        "time": "Tue Jul 12 08:31:45 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 12 08:35:10 2011 +0200"
      },
      "message": "fixlet: Remove fs_excl from struct task.\n\nfs_excl is a poor man\u0027s priority inheritance for filesystems to hint to\nthe block layer that an operation is important. It was never clearly\nspecified, not widely adopted, and will not prevent starvation in many\ncases (like across cgroups).\n\nfs_excl was introduced with the time sliced CFQ IO scheduler, to\nindicate when a process held FS exclusive resources and thus needed\na boost.\n\nIt doesn\u0027t cover all file systems, and it was never fully complete.\nLets kill it.\n\nSigned-off-by: Justin TerAvest \u003cteravest@google.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "e4c2fb0d5776b58049d2556b456144a4db3fe5a9",
      "tree": "04cebbb24f524408728492cfeb396d66aa6127e4",
      "parents": [
        "cd62287e364c0d15d517c6ced4e4808b54711475"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 05 10:56:32 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:28:18 2011 +0200"
      },
      "message": "sched: Disable (revert) SCHED_LOAD_SCALE increase\n\nAlex reported that commit c8b281161df (\"sched: Increase\nSCHED_LOAD_SCALE resolution\") caused a power usage regression\nunder light load as it increases the number of load-balance\noperations and keeps idle cpus from staying idle.\n\nTime has run out to find the root cause for this release so\ndisable the feature for v3.0 until we can figure out what\ncauses the problem.\n\nReported-by: \"Alex, Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-m4onxn0sxnyn5iz9o88eskc3@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ecc818c51b1f6886825dae3885792d5e49ec798",
      "tree": "2179ae53fa86ea6a42d01ff4efc1a3f6a32e76f2",
      "parents": [
        "1c09ab0d257317f97e8629a3d0c8713d6dd9de4c",
        "d902db1eb60387040fe541573083e47469db50ac"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 13:20:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 13:20:51 2011 +0200"
      },
      "message": "Merge branch \u0027sched/core-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into sched/core\n"
    },
    {
      "commit": "087806b1281563e4ae7a5bce3155f894af5f4118",
      "tree": "01547cd793de4e06f633293efa530a13ff2724a6",
      "parents": [
        "d4f7c511c1c2a67eb287987cf1ce9554149030e6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 22 23:10:26 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 27 20:30:10 2011 +0200"
      },
      "message": "redefine thread_group_leader() as exit_signal \u003e\u003d 0\n\nChange de_thread() to set old_leader-\u003eexit_signal \u003d -1. This is\ngood for the consistency, it is no longer the leader and all\nsub-threads have exit_signal \u003d -1 set by copy_process(CLONE_THREAD).\n\nAnd this allows us to micro-optimize thread_group_leader(), it can\nsimply check exit_signal \u003e\u003d 0. This also makes sense because we\nshould move -\u003egroup_leader from task_struct to signal_struct.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e550f14dc6322e794d4e70825f63c9c99177ae8b",
      "tree": "64f918a0d70f82842211a3c0d54ca658877b5b5d",
      "parents": [
        "0976a03e5ce8ec346e985f21046d7a75bb7fdffd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 22 23:09:54 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 27 20:30:09 2011 +0200"
      },
      "message": "kill task_detached()\n\nUpadate the last user of task_detached(), wait_task_zombie(), to\nuse thread_group_leader() and kill task_detached().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "8677347378044ab564470bced2275520efb3670d",
      "tree": "61baa72f24bb12eadd6956fb0abeb7eabda46b88",
      "parents": [
        "9843a1e977977986d0a4c1000f2229b032572534"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 22 23:09:09 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 27 20:30:09 2011 +0200"
      },
      "message": "make do_notify_parent() __must_check, update the callers\n\nChange other callers of do_notify_parent() to check the value it\nreturns, this makes the subsequent task_detached() unnecessary.\nMark do_notify_parent() as __must_check.\n\nUse thread_group_leader() instead of !task_detached() to check\nif we need to notify the real parent in wait_task_zombie().\n\nRemove the stale comment in release_task(). \"just for sanity\" is\nno longer true, we have to set EXIT_DEAD to avoid the races with\ndo_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "53c8f9f199b239668e6b1a907735ee323a0d1ccd",
      "tree": "785afb9c72a2df27cd6802cf311df18711c59b76",
      "parents": [
        "06d984737bac0545fe20bb5447ee488b95adb531"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 22 23:08:18 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jun 27 20:30:08 2011 +0200"
      },
      "message": "make do_notify_parent() return bool\n\n- change do_notify_parent() to return a boolean, true if the task should\n  be reaped because its parent ignores SIGCHLD.\n\n- update the only caller which checks the returned value, exit_notify().\n\nThis temporary uglifies exit_notify() even more, will be cleanuped by\nthe next change.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "544b2c91a9f14f9565af1972203438b7f49afd48",
      "tree": "38615eeed1e50580a2341b5a9d15c98793d33c2d",
      "parents": [
        "fb1d910c178ba0c5bc32d3e5a9e82e05b7aad3cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:18 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:54 2011 +0200"
      },
      "message": "ptrace: implement PTRACE_LISTEN\n\nThe previous patch implemented async notification for ptrace but it\nonly worked while trace is running.  This patch introduces\nPTRACE_LISTEN which is suggested by Oleg Nestrov.\n\nIt\u0027s allowed iff tracee is in STOP trap and puts tracee into\nquasi-running state - tracee never really runs but wait(2) and\nptrace(2) consider it to be running.  While ptracer is listening,\ntracee is allowed to re-enter STOP to notify an async event.\nListening state is cleared on the first notification.  Ptracer can\nalso clear it by issuing INTERRUPT - tracee will re-trap into STOP\nwith listening state cleared.\n\nThis allows ptracer to monitor group stop state without running tracee\n- use INTERRUPT to put tracee into STOP trap, issue LISTEN and then\nwait(2) to wait for the next group stop event.  When it happens,\nPTRACE_GETSIGINFO provides information to determine the current state.\n\nTest program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_INTERRUPT\t0x4207\n  #define PTRACE_LISTEN\t\t0x4208\n\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee, tracer;\n\t  int i;\n\n\t  tracee \u003d fork();\n\t  if (!tracee)\n\t\t  while (1)\n\t\t\t  pause();\n\n\t  tracer \u003d fork();\n\t  if (!tracer) {\n\t\t  siginfo_t si;\n\n\t\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t\t  ptrace(PTRACE_INTERRUPT, tracee, NULL, NULL);\n\t  repeat:\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\n\t\t  ptrace(PTRACE_GETSIGINFO, tracee, NULL, \u0026si);\n\t\t  if (!si.si_code) {\n\t\t\t  printf(\"tracer: SIG %d\\n\", si.si_signo);\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL,\n\t\t\t\t (void *)(unsigned long)si.si_signo);\n\t\t\t  goto repeat;\n\t\t  }\n\t\t  printf(\"tracer: stopped\u003d%d signo\u003d%d\\n\",\n\t\t\t si.si_signo !\u003d SIGTRAP, si.si_signo);\n\t\t  if (si.si_signo !\u003d SIGTRAP)\n\t\t\t  ptrace(PTRACE_LISTEN, tracee, NULL, NULL);\n\t\t  else\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t\t  goto repeat;\n\t  }\n\n\t  for (i \u003d 0; i \u003c 3; i++) {\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGSTOP\\n\");\n\t\t  kill(tracee, SIGSTOP);\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGCONT\\n\");\n\t\t  kill(tracee, SIGCONT);\n\t  }\n\t  nanosleep(\u0026ts1s, NULL);\n\n\t  kill(tracer, SIGKILL);\n\t  kill(tracee, SIGKILL);\n\t  return 0;\n  }\n\nThis is identical to the program to test TRAP_NOTIFY except that\ntracee is PTRACE_LISTEN\u0027d instead of PTRACE_CONT\u0027d when group stopped.\nThis allows ptracer to monitor when group stop ends without running\ntracee.\n\n  # ./test-listen\n  tracer: stopped\u003d0 signo\u003d5\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n\n-v2: Moved JOBCTL_LISTENING check in wait_task_stopped() into\n     task_stopped_code() as suggested by Oleg.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "fb1d910c178ba0c5bc32d3e5a9e82e05b7aad3cd",
      "tree": "dd889f33758a914cb538583073000bc21aeb1759",
      "parents": [
        "fca26f260c528ee51a2e451b5b200aeb528f3e09"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:17 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:53 2011 +0200"
      },
      "message": "ptrace: implement TRAP_NOTIFY and use it for group stop events\n\nCurrently there\u0027s no way for ptracer to find out whether group stop\nfinished other than polling with INTERRUPT - GETSIGINFO - CONT\nsequence.  This patch implements group stop notification for ptracer\nusing STOP traps.\n\nWhen group stop state of a seized tracee changes, JOBCTL_TRAP_NOTIFY\nis set, which schedules a STOP trap which is sticky - it isn\u0027t cleared\nby other traps and at least one STOP trap will happen eventually.\nSTOP trap is synchronization point for event notification and the\ntracer can determine the current group stop state by looking at the\nsignal number portion of exit code (si_status from waitid(2) or\nsi_code from PTRACE_GETSIGINFO).\n\nNotifications are generated both on start and end of group stops but,\nbecause group stop participation always happens before STOP trap, this\ndoesn\u0027t cause an extra trap while tracee is participating in group\nstop.  The symmetry will be useful later.\n\nNote that this notification works iff tracee is not trapped.\nCurrently there is no way to be notified of group stop state changes\nwhile tracee is trapped.  This will be addressed by a later patch.\n\nAn example program follows.\n\n  #define PTRACE_SEIZE\t\t0x4206\n  #define PTRACE_INTERRUPT\t0x4207\n\n  #define PTRACE_SEIZE_DEVEL\t0x80000000\n\n  static const struct timespec ts1s \u003d { .tv_sec \u003d 1 };\n\n  int main(int argc, char **argv)\n  {\n\t  pid_t tracee, tracer;\n\t  int i;\n\n\t  tracee \u003d fork();\n\t  if (!tracee)\n\t\t  while (1)\n\t\t\t  pause();\n\n\t  tracer \u003d fork();\n\t  if (!tracer) {\n\t\t  siginfo_t si;\n\n\t\t  ptrace(PTRACE_SEIZE, tracee, NULL,\n\t\t\t (void *)(unsigned long)PTRACE_SEIZE_DEVEL);\n\t\t  ptrace(PTRACE_INTERRUPT, tracee, NULL, NULL);\n\t  repeat:\n\t\t  waitid(P_PID, tracee, NULL, WSTOPPED);\n\n\t\t  ptrace(PTRACE_GETSIGINFO, tracee, NULL, \u0026si);\n\t\t  if (!si.si_code) {\n\t\t\t  printf(\"tracer: SIG %d\\n\", si.si_signo);\n\t\t\t  ptrace(PTRACE_CONT, tracee, NULL,\n\t\t\t\t (void *)(unsigned long)si.si_signo);\n\t\t\t  goto repeat;\n\t\t  }\n\t\t  printf(\"tracer: stopped\u003d%d signo\u003d%d\\n\",\n\t\t\t si.si_signo !\u003d SIGTRAP, si.si_signo);\n\t\t  ptrace(PTRACE_CONT, tracee, NULL, NULL);\n\t\t  goto repeat;\n\t  }\n\n\t  for (i \u003d 0; i \u003c 3; i++) {\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGSTOP\\n\");\n\t\t  kill(tracee, SIGSTOP);\n\t\t  nanosleep(\u0026ts1s, NULL);\n\t\t  printf(\"mother: SIGCONT\\n\");\n\t\t  kill(tracee, SIGCONT);\n\t  }\n\t  nanosleep(\u0026ts1s, NULL);\n\n\t  kill(tracer, SIGKILL);\n\t  kill(tracee, SIGKILL);\n\t  return 0;\n  }\n\nIn the above program, tracer keeps tracee running and gets\nnotification of each group stop state changes.\n\n  # ./test-notify\n  tracer: stopped\u003d0 signo\u003d5\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n  mother: SIGSTOP\n  tracer: SIG 19\n  tracer: stopped\u003d1 signo\u003d19\n  mother: SIGCONT\n  tracer: stopped\u003d0 signo\u003d5\n  tracer: SIG 18\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "73ddff2bee159ffb580bd24faf625cd5e628f5ec",
      "tree": "218cf5101b67c98ef99814e59706976d3ad245c2",
      "parents": [
        "dd1d6772692316fe35094085c5e4d9a370ad3462"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 14 11:20:14 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 16 21:41:52 2011 +0200"
      },
      "message": "job control: introduce JOBCTL_TRAP_STOP and use it for group stop trap\n\ndo_signal_stop() implemented both normal group stop and trap for group\nstop while ptraced.  This approach has been enough but scheduled\nchanges require trap mechanism which can be used in more generic\nmanner and using group stop trap for generic trap site simplifies both\nuserland visible interface and implementation.\n\nThis patch adds a new jobctl flag - JOBCTL_TRAP_STOP.  When set, it\ntriggers a trap site, which behaves like group stop trap, in\nget_signal_to_deliver() after checking for pending signals.  While\nptraced, do_signal_stop() doesn\u0027t stop itself.  It initiates group\nstop if requested and schedules JOBCTL_TRAP_STOP and returns.  The\ncaller - get_signal_to_deliver() - is responsible for checking whether\nTRAP_STOP is pending afterwards and handling it.\n\nptrace_attach() is updated to use JOBCTL_TRAP_STOP instead of\nJOBCTL_STOP_PENDING and __ptrace_unlink() to clear all pending trap\nbits and TRAPPING so that TRAP_STOP and future trap bits don\u0027t linger\nafter detach.\n\nWhile at it, add proper function comment to do_signal_stop() and make\nit return bool.\n\n-v2: __ptrace_unlink() updated to clear JOBCTL_TRAP_MASK and TRAPPING\n     instead of JOBCTL_PENDING_MASK.  This avoids accidentally\n     clearing JOBCTL_STOP_CONSUME.  Spotted by Oleg.\n\n-v3: do_signal_stop() updated to return %false without dropping\n     siglock while ptraced and TRAP_STOP check moved inside for(;;)\n     loop after group stop participation.  This avoids unnecessary\n     relocking and also will help avoiding unnecessary traps by\n     consuming group stop before handling pending traps.\n\n-v4: Jobctl trap handling moved into a separate function -\n     do_jobctl_trap().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "bdd4e85dc36cdbcfc1608a5b2a17c80a9db8986a",
      "tree": "9cee98e78a5aa6a00f3b7ce805b1e39a0137b4a4",
      "parents": [
        "2da8c8bc44b572cbf623629ff736608dc7968436"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jun 08 01:13:27 2011 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jun 10 15:15:40 2011 +0200"
      },
      "message": "sched: Isolate preempt counting in its own config option\n\nCreate a new CONFIG_PREEMPT_COUNT that handles the inc/dec\nof preempt count offset independently. So that the offset\ncan be updated by preempt_disable() and preempt_enable()\neven without the need for CONFIG_PREEMPT beeing set.\n\nThis prepares to make CONFIG_DEBUG_SPINLOCK_SLEEP working\nwith !CONFIG_PREEMPT where it currently doesn\u0027t detect\ncode that sleeps inside explicit preemption disabled\nsections.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "6715a52a581c891e9a2034abe1c81ddb482d70b3",
      "tree": "03bac8851232d11382af718c2d10559cc16e4f0f",
      "parents": [
        "ef2398019b305827ea7130ebaf7bf521b444530e",
        "6c6c54e1807faf116724451ef2bd14993780470a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix/clarify set_task_cpu() locking rules\n  lockdep: Fix lock_is_held() on recursion\n  sched: Fix schedstat.nr_wakeups_migrate\n  sched: Fix cross-cpu clock sync on remote wakeups\n"
    },
    {
      "commit": "7dd3db54e77d21eb95e145f19ba53f68250d0e73",
      "tree": "628e44b22e6fbf2828cf2c533c41b3d24f3e3ec9",
      "parents": [
        "6dfca32984237a8a011b5bf367e53341a265b2a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:11 2011 +0200"
      },
      "message": "job control: introduce task_set_jobctl_pending()\n\ntask-\u003ejobctl currently hosts JOBCTL_STOP_PENDING and will host TRAP\npending bits too.  Setting pending conditions on a dying task may make\nthe task unkillable.  Currently, each setting site is responsible for\nchecking for the condition but with to-be-added job control traps this\nbecomes too fragile.\n\nThis patch adds task_set_jobctl_pending() which should be used when\nsetting task-\u003ejobctl bits to schedule a stop or trap.  The function\nperforms the followings to ease setting pending bits.\n\n* Sanity checks.\n\n* If fatal signal is pending or PF_EXITING is set, no bit is set.\n\n* STOP_SIGMASK is automatically cleared if new value is being set.\n\ndo_signal_stop() and ptrace_attach() are updated to use\ntask_set_jobctl_pending() instead of setting STOP_PENDING explicitly.\nThe surrounding structures around setting are changed to fit\ntask_set_jobctl_pending() better but there should be no userland\nvisible behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "3759a0d94c18764247b66511d1038f2b93aa95de",
      "tree": "ec56295fc1bd252bcbe1cb8552102deeef03bbb7",
      "parents": [
        "81be24b8cdeb69e62f9d1b6b425fd9ffdd37f581"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:14:00 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:10 2011 +0200"
      },
      "message": "job control: introduce JOBCTL_PENDING_MASK and task_clear_jobctl_pending()\n\nThis patch introduces JOBCTL_PENDING_MASK and replaces\ntask_clear_jobctl_stop_pending() with task_clear_jobctl_pending()\nwhich takes an extra @mask argument.\n\nJOBCTL_PENDING_MASK is currently equal to JOBCTL_STOP_PENDING but\nfuture patches will add more bits.  recalc_sigpending_tsk() is updated\nto use JOBCTL_PENDING_MASK instead.\n\ntask_clear_jobctl_pending() takes @mask which in subset of\nJOBCTL_PENDING_MASK and clears the relevant jobctl bits.  If\nJOBCTL_STOP_PENDING is set, other STOP bits are cleared together.  All\ntask_clear_jobctl_stop_pending() users are updated to call\ntask_clear_jobctl_pending() with JOBCTL_STOP_PENDING which is\nfunctionally identical to task_clear_jobctl_stop_pending().\n\nThis patch doesn\u0027t cause any functional change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "a8f072c1d624a627b67f2ace2f0c25d856ef4e54",
      "tree": "9ba3e96aa874b08c7156a3584f27187bcdbdd9cd",
      "parents": [
        "0b1007c3578569469a6fab6ae5cca918ccdc3ee1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 02 11:13:59 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Jun 04 18:17:09 2011 +0200"
      },
      "message": "job control: rename signal-\u003egroup_stop and flags to jobctl and update them\n\nsignal-\u003egroup_stop currently hosts mostly group stop related flags;\nhowever, it\u0027s gonna be used for wider purposes and the GROUP_STOP_\nflag prefix becomes confusing.  Rename signal-\u003egroup_stop to\nsignal-\u003ejobctl and rename all GROUP_STOP_* flags to JOBCTL_*.\n\nBit position macros JOBCTL_*_BIT are defined and JOBCTL_* flags are\ndefined in terms of them to allow using bitops later.\n\nWhile at it, reassign JOBCTL_TRAPPING to bit 22 to better accomodate\nfuture additions.\n\nThis doesn\u0027t cause any functional change.\n\n-v2: JOBCTL_*_BIT macros added as suggested by Linus.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "f339b9dc1f03591761d5d930800db24bc0eda1e1",
      "tree": "901c78b6e8ccaf9e74515d176084c75389bc2832",
      "parents": [
        "f01114cb59d670e9b4f2c335930dd57db96e9360"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 10:49:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:57 2011 +0200"
      },
      "message": "sched: Fix schedstat.nr_wakeups_migrate\n\nWhile looking over the code I found that with the ttwu rework the\nnr_wakeups_migrate test broke since we now switch cpus prior to\ncalling ttwu_stat(), hence the test is always true.\n\nCure this by passing the migration state in wake_flags. Also move the\nwhole test under CONFIG_SMP, its hard to migrate tasks on UP :-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-pwwxl7gdqs5676f1d4cx6pj7@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08a8b79600101fd6e13dcf05409b330e7f5b0478",
      "tree": "461cf4061eb33d96966c5c348029bc3b5cb523bf",
      "parents": [
        "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n  sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n  sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: More sched_domain iterations fixes\n"
    },
    {
      "commit": "c4a227d89f758e582fd167bb15245f2704de99ef",
      "tree": "f5b6e0091e6543c14d1cd7cf1f93e097a96bbd64",
      "parents": [
        "87367a0b71a5188e34a913c05673b5078f71a64d",
        "f506b3dc0ec454a16d40cab9ee5d75435b39dc50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  perf: Fix SIGIO handling\n  perf top: Don\u0027t stop if no kernel symtab is found\n  perf top: Handle kptr_restrict\n  perf top: Remove unused macro\n  perf events: initialize fd array to -1 instead of 0\n  perf tools: Make sure kptr_restrict warnings fit 80 col terms\n  perf tools: Fix build on older systems\n  perf symbols: Handle /proc/sys/kernel/kptr_restrict\n  perf: Remove duplicate headers\n  ftrace: Add internal recursive checks\n  tracing: Update btrfs\u0027s tracepoints to use u64 interface\n  tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n  ftrace: Set ops-\u003eflag to enabled even on static function tracing\n  tracing: Have event with function tracer check error return\n  ftrace: Have ftrace_startup() return failure code\n  jump_label: Check entries limit in __jump_label_update\n  ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM\n  scripts/tags.sh: Add magic for trace-events for etags too\n  scripts/tags.sh: Fix ctags for DEFINE_EVENT()\n  x86/ftrace: Fix compiler warning in ftrace.c\n  ...\n"
    },
    {
      "commit": "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d",
      "tree": "c50e88412c8b42264177dc125f74a30f9c7a82d9",
      "parents": [
        "1e876231785d82443a5ac8b6c660e9f51bc5dede"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 19 15:08:58 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:57 2011 +0200"
      },
      "message": "cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n\nThe rule is, we have to update tsk-\u003ert.nr_cpus_allowed if we change\ntsk-\u003ecpus_allowed. Otherwise RT scheduler may confuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4DD4B3FA.5060901@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6a72fe465f4c54654a1d5488daeb820b4ecf275",
      "tree": "1b581d3b3452b47ba35e1ee3c96d05c030ed9726",
      "parents": [
        "b1d2dc3c06d8da7d58fb43d7123a91c1d6a4f576",
        "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "4714d1d32d97239fb5ae3e10521d3f133a899b66",
      "tree": "fb50707cefc386bf4e87cac9661a38dcfe3192df",
      "parents": [
        "dcb3a08e69629ea65a3e9647da730bfaf670497d"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: read-write lock CLONE_THREAD forking per threadgroup\n\nAdds functionality to read/write lock CLONE_THREAD fork()ing per-threadgroup\n\nAdd an rwsem that lives in a threadgroup\u0027s signal_struct that\u0027s taken for\nreading in the fork path, under CONFIG_CGROUPS.  If another part of the\nkernel later wants to use such a locking mechanism, the CONFIG_CGROUPS\nifdefs should be changed to a higher-up flag that CGROUPS and the other\nsystem would both depend on.\n\nThis is a pre-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1",
      "tree": "81c35a8fe57b1a139416aac637b0fc198f67199d",
      "parents": [
        "7f34b746f79c1e1f8fd6d09799d133263ae7a504"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 14:27:43 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:49 2011 -0400"
      },
      "message": "ftrace: Add internal recursive checks\n\nWitold reported a reboot caused by the selftests of the dynamic function\ntracer. He sent me a config and I used ktest to do a config_bisect on it\n(as my config did not cause the crash). It pointed out that the problem\nconfig was CONFIG_PROVE_RCU.\n\nWhat happened was that if multiple callbacks are attached to the\nfunction tracer, we iterate a list of callbacks. Because the list is\nmanaged by synchronize_sched() and preempt_disable, the access to the\npointers uses rcu_dereference_raw().\n\nWhen PROVE_RCU is enabled, the rcu_dereference_raw() calls some\ndebugging functions, which happen to be traced. The tracing of the debug\nfunction would then call rcu_dereference_raw() which would then call the\ndebug function and then... well you get the idea.\n\nI first wrote two different patches to solve this bug.\n\n1) add a __rcu_dereference_raw() that would not do any checks.\n2) add notrace to the offending debug functions.\n\nBoth of these patches worked.\n\nTalking with Paul McKenney on IRC, he suggested to add recursion\ndetection instead. This seemed to be a better solution, so I decided to\nimplement it. As the task_struct already has a trace_recursion to detect\nrecursion in the ring buffer, and that has a very small number it\nallows, I decided to use that same variable to add flags that can detect\nthe recursion inside the infrastructure of the function tracer.\n\nI plan to change it so that the task struct bit can be checked in\nmcount, but as that requires changes to all archs, I will hold that off\nto the next merge window.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1306348063.1465.116.camel@gandalf.stny.rr.com\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "de03c72cfce5b263a674d04348b58475ec50163c",
      "tree": "e2b035234440bcd1aa88078c3f9c8457d461ef9c",
      "parents": [
        "692e0b35427a088bf75d9363788c61c7edbe93a5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:12:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: convert mm-\u003ecpu_vm_cpumask into cpumask_var_t\n\ncpumask_t is very big struct and cpu_vm_mask is placed wrong position.\nIt might lead to reduce cache hit ratio.\n\nThis patch has two change.\n1) Move the place of cpumask into last of mm_struct. Because usually cpumask\n   is accessed only front bits when the system has cpu-hotplug capability\n2) Convert cpu_vm_mask into cpumask_var_t. It may help to reduce memory\n   footprint if cpumask_size() will use nr_cpumask_bits properly in future.\n\nIn addition, this patch change the name of cpu_vm_mask with cpu_vm_mask_var.\nIt may help to detect out of tree cpu_vm_mask users.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72788c385604523422592249c19cba0187021e9b",
      "tree": "3552a4b6ae4adb77e723d8a8d1d2669bfb04a8bb",
      "parents": [
        "c6a140bf164829769499b5e50d380893da39b29e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 24 17:11:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:10 2011 -0700"
      },
      "message": "oom: replace PF_OOM_ORIGIN with toggling oom_score_adj\n\nThere\u0027s a kernel-wide shortage of per-process flags, so it\u0027s always\nhelpful to trim one when possible without incurring a significant penalty.\n It\u0027s even more important when you\u0027re planning on adding a per- process\nflag yourself, which I plan to do shortly for transparent hugepages.\n\nPF_OOM_ORIGIN is used by ksm and swapoff to prefer current since it has a\ntendency to allocate large amounts of memory and should be preferred for\nkilling over other tasks.  We\u0027d rather immediately kill the task making\nthe errant syscall rather than penalizing an innocent task.\n\nThis patch removes PF_OOM_ORIGIN since its behavior is equivalent to\nsetting the process\u0027s oom_score_adj to OOM_SCORE_ADJ_MAX.\n\nThe process\u0027s old oom_score_adj is stored and then set to\nOOM_SCORE_ADJ_MAX during the time it used to have PF_OOM_ORIGIN.  The old\nvalue is then reinstated when the process should no longer be considered a\nhigh priority for oom killing.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15a3d11b0f2ebdfb3591e411e268aa81998d4723",
      "tree": "56e1d7715653871f015341c7edabd08045f5fc28",
      "parents": [
        "1f3a8e093f470ef193b0ca6011d90180331c8b53",
        "c8b281161dfa4bb5d5be63fb036ce19347b88c63"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:53:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 12:53:48 2011 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Increase SCHED_LOAD_SCALE resolution\n  sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations\n  sched: Cleanup set_load_weight()\n"
    },
    {
      "commit": "19504828b4bee5e471bcd35e214bc6fd0d380692",
      "tree": "30d4ffb6783daf9fadd47548c035646d3f0f073e",
      "parents": [
        "57d19e80f459dd845fb3cfeba8e6df8471bac142",
        "3cb6d1540880e767d911b79eb49578de2190f428"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:25:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:25:52 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Fix sample size bit operations\n  perf tools: Fix ommitted mmap data update on remap\n  watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh\n  watchdog: Disable watchdog when thresh is zero\n  watchdog: Only disable/enable watchdog if neccessary\n  watchdog: Fix rounding bug in get_sample_period()\n  perf tools: Propagate event parse error handling\n  perf tools: Robustify dynamic sample content fetch\n  perf tools: Pre-check sample size before parsing\n  perf tools: Move evlist sample helpers to evlist area\n  perf tools: Remove junk code in mmap size handling\n  perf tools: Check we are able to read the event size on mmap\n"
    },
    {
      "commit": "586692a5a5fc5740c8a46abc0f2365495c2d7c5f",
      "tree": "bc08228e67a968d83691c9efc5ea1feda9e6f98b",
      "parents": [
        "e04ab2bc41b35c0cb6cdb07c8443f91aa738cf78"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun May 22 22:10:22 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 23 11:58:59 2011 +0200"
      },
      "message": "watchdog: Disable watchdog when thresh is zero\n\nThis restores the previous behavior of softlock_thresh.\n\nCurrently, setting watchdog_thresh to zero causes the watchdog\nkthreads to consume a lot of CPU.\n\nIn addition, the logic of proc_dowatchdog_thresh and\nproc_dowatchdog_enabled has been factored into proc_dowatchdog.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306127423-3347-3-git-send-email-msb@chromium.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20110517071018.GE22305@elte.hu\u003e\n"
    },
    {
      "commit": "3ed4c0583daa34dedb568b26ff99e5a7b58db612",
      "tree": "a531d4cc94acaa58fe0600cf83da9fb8b77f6e50",
      "parents": [
        "ad9471752ebae25daa133b4e5d9299809c35e155",
        "bd715d9a4f13f87bad5526c2cd41370949473b16"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:33:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:33:21 2011 -0700"
      },
      "message": "Merge branch \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc\n\n* \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (41 commits)\n  signal: trivial, fix the \"timespec declared inside parameter list\" warning\n  job control: reorganize wait_task_stopped()\n  ptrace: fix signal-\u003ewait_chldexit usage in task_clear_group_stop_trapping()\n  signal: sys_sigprocmask() needs retarget_shared_pending()\n  signal: cleanup sys_sigprocmask()\n  signal: rename signandsets() to sigandnsets()\n  signal: do_sigtimedwait() needs retarget_shared_pending()\n  signal: introduce do_sigtimedwait() to factor out compat/native code\n  signal: sys_rt_sigtimedwait: simplify the timeout logic\n  signal: cleanup sys_rt_sigprocmask()\n  x86: signal: sys_rt_sigreturn() should use set_current_blocked()\n  x86: signal: handle_signal() should use set_current_blocked()\n  signal: sigprocmask() should do retarget_shared_pending()\n  signal: sigprocmask: narrow the scope of -\u003esiglock\n  signal: retarget_shared_pending: optimize while_each_thread() loop\n  signal: retarget_shared_pending: consider shared/unblocked signals only\n  signal: introduce retarget_shared_pending()\n  ptrace: ptrace_check_attach() should not do s/STOPPED/TRACED/\n  signal: Turn SIGNAL_STOP_DEQUEUED into GROUP_STOP_DEQUEUED\n  signal: do_signal_stop: Remove the unneeded task_clear_group_stop_pending()\n  ...\n"
    },
    {
      "commit": "c8b281161dfa4bb5d5be63fb036ce19347b88c63",
      "tree": "45a6357cd0b5d50de8608e30616cb2eea2619a1a",
      "parents": [
        "1399fa7807a1a5998bbf147e80668e9950661dfa"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed May 18 14:37:48 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 20 14:16:50 2011 +0200"
      },
      "message": "sched: Increase SCHED_LOAD_SCALE resolution\n\nIntroduce SCHED_LOAD_RESOLUTION, which scales is added to\nSCHED_LOAD_SHIFT and increases the resolution of\nSCHED_LOAD_SCALE. This patch sets the value of\nSCHED_LOAD_RESOLUTION to 10, scaling up the weights for all\nsched entities by a factor of 1024. With this extra resolution,\nwe can handle deeper cgroup hiearchies and the scheduler can do\nbetter shares distribution and load load balancing on larger\nsystems (especially for low weight task groups).\n\nThis does not change the existing user interface, the scaled\nweights are only used internally. We do not modify\nprio_to_weight values or inverses, but use the original weights\nwhen calculating the inverse which is used to scale execution\ntime delta in calc_delta_mine(). This ensures we do not lose\naccuracy when accounting time to the sched entities. Thanks to\nNikunj Dadhania for fixing an bug in c_d_m() that broken fairness.\n\nBelow is some analysis of the performance costs/improvements of\nthis patch.\n\n1. Micro-arch performance costs:\n\nExperiment was to run Ingo\u0027s pipe_test_100k 200 times with the\ntask pinned to one cpu. I measured instruction, cycles and\nstalled-cycles for the runs. See:\n\n   http://thread.gmane.org/gmane.linux.kernel/1129232/focus\u003d1129389\n\nfor more info.\n\n-tip (baseline):\n\n Performance counter stats for \u0027/root/load-scale/pipe-test-100k\u0027 (200 runs):\n\n       964,991,769 instructions             #    0.82  insns per cycle\n                                            #    0.33  stalled cycles per insn\n                                            #    ( +-  0.05% )\n     1,171,186,635 cycles                   #    0.000 GHz                      ( +-  0.08% )\n       306,373,664 stalled-cycles-backend   #   26.16% backend  cycles idle     ( +-  0.28% )\n       314,933,621 stalled-cycles-frontend  #   26.89% frontend cycles idle     ( +-  0.34% )\n\n        1.122405684  seconds time elapsed  ( +-  0.05% )\n\n-tip+patches:\n\n Performance counter stats for \u0027./load-scale/pipe-test-100k\u0027 (200 runs):\n\n       963,624,821 instructions             #    0.82  insns per cycle\n                                            #    0.33  stalled cycles per insn\n                                            #    ( +-  0.04% )\n     1,175,215,649 cycles                   #    0.000 GHz                      ( +-  0.08% )\n       315,321,126 stalled-cycles-backend   #   26.83% backend  cycles idle     ( +-  0.28% )\n       316,835,873 stalled-cycles-frontend  #   26.96% frontend cycles idle     ( +-  0.29% )\n\n        1.122238659  seconds time elapsed  ( +-  0.06% )\n\nWith this patch, instructions decrease by ~0.10% and cycles\nincrease by 0.27%. This doesn\u0027t look statistically significant.\nThe number of stalled cycles in the backend increased from\n26.16% to 26.83%. This can be attributed to the shifts we do in\nc_d_m() and other places. The fraction of stalled cycles in the\nfrontend remains about the same, at 26.96% compared to 26.89% in -tip.\n\n2. Balancing low-weight task groups\n\nTest setup: run 50 tasks with random sleep/busy times (biased\naround 100ms) in a low weight container (with cpu.shares \u003d 2).\nMeasure %idle as reported by mpstat over a 10s window.\n\n-tip (baseline):\n\n06:47:48 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle    intr/s\n06:47:49 PM  all   94.32    0.00    0.06    0.00    0.00    0.00    0.00    0.00    5.62  15888.00\n06:47:50 PM  all   94.57    0.00    0.62    0.00    0.00    0.00    0.00    0.00    4.81  16180.00\n06:47:51 PM  all   94.69    0.00    0.06    0.00    0.00    0.00    0.00    0.00    5.25  15966.00\n06:47:52 PM  all   95.81    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.19  16053.00\n06:47:53 PM  all   94.88    0.06    0.00    0.00    0.00    0.00    0.00    0.00    5.06  15984.00\n06:47:54 PM  all   93.31    0.00    0.00    0.00    0.00    0.00    0.00    0.00    6.69  15806.00\n06:47:55 PM  all   94.19    0.00    0.06    0.00    0.00    0.00    0.00    0.00    5.75  15896.00\n06:47:56 PM  all   92.87    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.13  15716.00\n06:47:57 PM  all   94.88    0.00    0.00    0.00    0.00    0.00    0.00    0.00    5.12  15982.00\n06:47:58 PM  all   95.44    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.56  16075.00\nAverage:     all   94.49    0.01    0.08    0.00    0.00    0.00    0.00    0.00    5.42  15954.60\n\n-tip+patches:\n\n06:47:03 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle    intr/s\n06:47:04 PM  all  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  16630.00\n06:47:05 PM  all   99.69    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.31  16580.20\n06:47:06 PM  all   99.69    0.00    0.06    0.00    0.00    0.00    0.00    0.00    0.25  16596.00\n06:47:07 PM  all   99.20    0.00    0.74    0.00    0.00    0.06    0.00    0.00    0.00  17838.61\n06:47:08 PM  all  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  16540.00\n06:47:09 PM  all  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  16575.00\n06:47:10 PM  all  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  16614.00\n06:47:11 PM  all   99.94    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.06  16588.00\n06:47:12 PM  all   99.94    0.00    0.06    0.00    0.00    0.00    0.00    0.00    0.00  16593.00\n06:47:13 PM  all   99.94    0.00    0.06    0.00    0.00    0.00    0.00    0.00    0.00  16551.00\nAverage:     all   99.84    0.00    0.09    0.00    0.00    0.01    0.00    0.00    0.06  16711.58\n\nWe see an improvement in idle% on the system (drops from 5.42% on -tip to 0.06%\nwith the patches).\n\nWe see an improvement in idle% on the system (drops from 5.42%\non -tip to 0.06% with the patches).\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Stephan Barwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1305754668-18792-1-git-send-email-ncrao@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1399fa7807a1a5998bbf147e80668e9950661dfa",
      "tree": "dc4e1a97f50b8e7297c82f63e1ad2b15430b33d9",
      "parents": [
        "f05998d4b80632f2cc00f108da503066ef5d38d5"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed May 18 10:09:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 20 14:16:50 2011 +0200"
      },
      "message": "sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations\n\nSCHED_LOAD_SCALE is used to increase nice resolution and to\nscale cpu_power calculations in the scheduler. This patch\nintroduces SCHED_POWER_SCALE and converts all uses of\nSCHED_LOAD_SCALE for scaling cpu_power to use SCHED_POWER_SCALE\ninstead.\n\nThis is a preparatory patch for increasing the resolution of\nSCHED_LOAD_SCALE, and there is no need to increase resolution\nfor cpu_power calculations.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Stephan Barwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1305738580-9924-3-git-send-email-ncrao@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e51e3edfd81bfd9853ad7de91167e4ce33d0fe7",
      "tree": "777d871949911f3e79a5b94545a7b6a55bdc2259",
      "parents": [
        "9cb5baba5e3acba0994ad899ee908799104c9965"
      ],
      "author": {
        "name": "Samir Bellabes",
        "email": "sam@synack.fr",
        "time": "Wed May 11 18:18:05 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 12 09:36:37 2011 +0200"
      },
      "message": "sched: Remove unused parameters from sched_fork() and wake_up_new_task()\n\nsched_fork() and wake_up_new_task() are defined with a parameter\n\u0027unsigned long clone_flags\u0027, which is unused.\n\nThis patch removes the parameters.\n\nSigned-off-by: Samir Bellabes \u003csam@synack.fr\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1305130685-1047-1-git-send-email-sam@synack.fr\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9cb5baba5e3acba0994ad899ee908799104c9965",
      "tree": "d5ff16000256a0bf56279926e6114b4603ede2b4",
      "parents": [
        "7142d17e8f935fa842e9f6eece2281b6d41625d6",
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 12 09:36:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 12 09:36:18 2011 +0200"
      },
      "message": "Merge commit \u0027v2.6.39-rc7\u0027 into sched/core\n"
    },
    {
      "commit": "bf26c018490c2fce7fe9b629083b96ce0e6ad019",
      "tree": "ff595f6268cb6fc675beb6accf6abb0701829443",
      "parents": [
        "f4929bd37208540c2c6f416e9035ff1938f2dbc6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 07 16:53:20 2011 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Apr 25 17:28:24 2011 +0200"
      },
      "message": "ptrace: Prepare to fix racy accesses on task breakpoints\n\nWhen a task is traced and is in a stopped state, the tracer\nmay execute a ptrace request to examine the tracee state and\nget its task struct. Right after, the tracee can be killed\nand thus its breakpoints released.\nThis can happen concurrently when the tracer is in the middle\nof reading or modifying these breakpoints, leading to dereferencing\na freed pointer.\n\nHence, to prepare the fix, create a generic breakpoint reference\nholding API. When a reference on the breakpoints of a task is\nheld, the breakpoints won\u0027t be released until the last reference\nis dropped. After that, no more ptrace request on the task\u0027s\nbreakpoints can be serviced for the tracer.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: v2.6.33.. \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1302284067-7860-2-git-send-email-fweisbec@gmail.com\n"
    },
    {
      "commit": "625f2a378e5a10f45fdc37932fc9f8a21676de9e",
      "tree": "1bf966a8e65463cdcc313c559533f032657c9dcf",
      "parents": [
        "d3bf52e998056a6002b2aecfe1d25486376382ac"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Apr 22 11:19:10 2011 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 24 13:18:38 2011 +0200"
      },
      "message": "sched: Get rid of lock_depth\n\nNeil Brown pointed out that lock_depth somehow escaped the BKL\nremoval work.  Let\u0027s get rid of it now.\n\nNote that the perf scripting utilities still have a bunch of\ncode for dealing with common_lock_depth in tracepoints; I have\nleft that in place in case anybody wants to use that code with\nolder kernels.\n\nSuggested-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110422111910.456c0e84@bike.lwn.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42ac9e87fdd89b77fa2ca0a5226023c1c2d83226",
      "tree": "dfdb1b720347a40f24a89a3e9c2727ae26ad5f01",
      "parents": [
        "057f3fadb347e9c51b07e1b277bbdda79f976768",
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 21 11:39:21 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 21 11:39:28 2011 +0200"
      },
      "message": "Merge commit \u0027v2.6.39-rc4\u0027 into sched/core\n\nMerge reason: Pick up upstream fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ddafdaab3f809b110ada253d2f2d4910ebd3ac5",
      "tree": "366bb7513511a05b6e11ab89bfe3b2dbd1d62a03",
      "parents": [
        "3905c54f2bd2c6f937f87307987ca072eabc3e7b",
        "bd8e7dded88a3e1c085c333f19ff31387616f71a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:33 2011 +0200"
      },
      "message": "Merge branch \u0027sched/locking\u0027 into sched/core\n\nMerge reason: the rq locking changes are stable,\n              propagate them into the .40 queue.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4471a675dfc7ca676c165079e91c712b09dc9ce4",
      "tree": "9746321a818cefbb2aa97d8ac4d44c4a6ae84f5a",
      "parents": [
        "5de1743e2434fcb24e3d944a20130029b8fe867a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Apr 14 15:22:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:55 2011 -0700"
      },
      "message": "brk: COMPAT_BRK: fix detection of randomized brk\n\n5520e89 (\"brk: fix min_brk lower bound computation for COMPAT_BRK\")\ntried to get the whole logic of brk randomization for legacy\n(libc5-based) applications finally right.\n\nIt turns out that the way to detect whether brk has actually been\nrandomized in the end or not introduced by that patch still doesn\u0027t work\nfor those binaries, as reported by Geert:\n\n: /sbin/init from my old m68k ramdisk exists prematurely.\n:\n: Before the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80006000\n:\n: After the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80005c8e\n:\n: Old libc5 considers brk() to have failed if the return value is not\n: identical to the requested value.\n\nI don\u0027t like it, but currently see no better option than a bit flag in\ntask_struct to catch the CONFIG_COMPAT_BRK \u0026\u0026 randomize_va_space \u003d\u003d 2\ncase.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.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": "317f394160e9beb97d19a84c39b7e5eb3d7815a8",
      "tree": "486f268e9ec010744c17333f0f543da9d3909ff4",
      "parents": [
        "c05fbafba1c5482bee399b360288fa405415e126"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:58 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:41 2011 +0200"
      },
      "message": "sched: Move the second half of ttwu() to the remote cpu\n\nNow that we\u0027ve removed the rq-\u003elock requirement from the first part of\nttwu() and can compute placement without holding any rq-\u003elock, ensure\nwe execute the second half of ttwu() on the actual cpu we want the\ntask to run on.\n\nThis avoids having to take rq-\u003elock and doing the task enqueue\nremotely, saving lots on cacheline transfers.\n\nAs measured using: http://oss.oracle.com/~mason/sembench.c\n\n  $ for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ; do echo performance \u003e $i; done\n  $ echo 4096 32000 64 128 \u003e /proc/sys/kernel/sem\n  $ ./sembench -t 2048 -w 1900 -o 0\n\n  unpatched: run time 30 seconds 647278 worker burns per second\n  patched:   run time 30 seconds 816715 worker burns per second\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152729.515897185@chello.nl\n"
    },
    {
      "commit": "a8e4f2eaecc9bfa4954adf79a04f4f22fddd829c",
      "tree": "b470d8a12be46bcc2a6be6a1c26be7028d6af1dd",
      "parents": [
        "3fe1698b7fe05aeb063564e71e40d09f28d8e80c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:49 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:37 2011 +0200"
      },
      "message": "sched: Delay task_contributes_to_load()\n\nIn prepratation of having to call task_contributes_to_load() without\nholding rq-\u003elock, we need to store the result until we do and can\nupdate the rq accounting accordingly.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152729.151523907@chello.nl\n"
    },
    {
      "commit": "74f8e4b2335de45485b8d5b31a504747f13c8070",
      "tree": "f8f8ba3e346239c44177d09620e65b18870d911f",
      "parents": [
        "7608dec2ce2004c234339bef8c8074e5e601d0e9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:47 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Remove rq argument to sched_class::task_waking()\n\nIn preparation of calling this without rq-\u003elock held, remove the\ndependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.071474242@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7608dec2ce2004c234339bef8c8074e5e601d0e9",
      "tree": "a855754a4fa3de6fe0d287c9d94d58d7bd6e8978",
      "parents": [
        "013fdb8086acaae5f8eb96f9ad48fcd98882ac46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:46 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Drop the rq argument to sched_class::select_task_rq()\n\nIn preparation of calling select_task_rq() without rq-\u003elock held, drop\nthe dependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.031077745@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd2f4419b4cbe8fe90796df9617c355762afd6a4",
      "tree": "9eefa7f46c7163f00adb416ff4b9db97653d2665",
      "parents": [
        "d7c01d27ab767a30d672d1fd657aa8336ebdcbca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:44 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:35 2011 +0200"
      },
      "message": "sched: Provide p-\u003eon_rq\n\nProvide a generic p-\u003eon_rq because the p-\u003ese.on_rq semantics are\nunfavourable for lockless wakeups but needed for sched_fair.\n\nIn particular, p-\u003eon_rq is only cleared when we actually dequeue the\ntask in schedule() and not on any random dequeue as done by things\nlike __migrate_task() and __sched_setscheduler().\n\nThis also allows us to remove p-\u003ese usage from !sched_fair code.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152728.949545047@chello.nl\n"
    },
    {
      "commit": "c6eb3dda25892f1f974f5420f63e6721aab02f6f",
      "tree": "b9be3e193dcfeda3589832be10189085cde496c5",
      "parents": [
        "3ca7a440da394808571dad32d33d3bc0389982e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:41 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:33 2011 +0200"
      },
      "message": "mutex: Use p-\u003eon_cpu for the adaptive spin\n\nSince we now have p-\u003eon_cpu unconditionally available, use it to\nre-implement mutex_spin_on_owner.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152728.826338173@chello.nl\n"
    },
    {
      "commit": "3ca7a440da394808571dad32d33d3bc0389982e6",
      "tree": "ed749666030d201249f62a8dcb93224271d43241",
      "parents": [
        "184748cc50b2dceb8287f9fb657eda48ff8fcfe7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:40 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:32 2011 +0200"
      },
      "message": "sched: Always provide p-\u003eon_cpu\n\nAlways provide p-\u003eon_cpu so that we can determine if its on a cpu\nwithout having to lock the rq.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152728.785452014@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "184748cc50b2dceb8287f9fb657eda48ff8fcfe7",
      "tree": "da32494cf29e5ec9f80b17dc8590bdc450ea545a",
      "parents": [
        "a4c98f8bbeafee12c979c90743f6fda94f7515c7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:39 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:32 2011 +0200"
      },
      "message": "sched: Provide scheduler_ipi() callback in response to smp_send_reschedule()\n\nFor future rework of try_to_wake_up() we\u0027d like to push part of that\nfunction onto the CPU the task is actually going to run on.\n\nIn order to do so we need a generic callback from the existing scheduler IPI.\n\nThis patch introduces such a generic callback: scheduler_ipi() and\nimplements it as a NOP.\n\nBenH notes: PowerPC might use this IPI on offline CPUs under rare conditions!\n\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152728.744338123@chello.nl\n"
    },
    {
      "commit": "60495e7760d8ee364695006af37309b0755e0e17",
      "tree": "1c842c0797a6a6b0066b18f296661fcf77cd0d0a",
      "parents": [
        "54ab4ff4316eb329d2c1acc110fbc623d2966931"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:10:04 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 14:09:32 2011 +0200"
      },
      "message": "sched: Dynamic sched_domain::level\n\nRemove the SD_LV_ enum and use dynamic level assignments.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.969433965@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7dd04b730749f957c116f363524fd622b05e5141",
      "tree": "cfadbf894d653a44f774ebdeb1487f049657d7d0",
      "parents": [
        "bf28b253266ebd73c331dde24d64606afde32ceb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:56 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:22 2011 +0200"
      },
      "message": "sched: Remove some dead code\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.553814623@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3859173d43658d51a749bc0201b943922577d39c",
      "tree": "39ad8fcc235cc40076bcb3e5f34b8db6e2230880",
      "parents": [
        "a6c75f2f8d988ecfecf971f98f1cb6fc4de522fe"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:53 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:21 2011 +0200"
      },
      "message": "sched: Reduce some allocation pressure\n\nSince we now allocate SD_LV_MAX * nr_cpu_ids sched_domain/sched_group\nstructures when rebuilding the scheduler toplogy it might make sense\nto shrink that depending on the CONFIG_ options.\n\nThis is only needed until we get rid of SD_LV_* alltogether and\nprovide a full dynamic topology interface.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.406226449@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dce840a08702bd13a9a186e07e63d1ef82256b5e",
      "tree": "168bb98aed7f5761ebe31aa92c34959e9d0f238a",
      "parents": [
        "a9c9a9b6bff27ac9c746344a9c1a19bf3327002c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:50 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:19 2011 +0200"
      },
      "message": "sched: Dynamically allocate sched_domain/sched_group data-structures\n\nInstead of relying on static allocations for the sched_domain and\nsched_group trees, dynamically allocate and RCU free them.\n\nAllocating this dynamically also allows for some build_sched_groups()\nsimplification since we can now (like with other simplifications) rely\non the sched_domain tree instead of hard-coded knowledge.\n\nOne tricky to note is that detach_destroy_domains() needs to hold\nrcu_read_lock() over the entire tear-down, per-cpu is not sufficient\nsince that can lead to partial sched_group existance (could possibly\nbe solved by doing the tear-down backwards but this is much more\nrobust).\n\nA concequence of the above is that we can no longer print the\nsched_domain debug stuff from cpu_attach_domain() since that might now\nrun with preemption disabled (due to classic RCU etc.) and\nsched_domain_debug() does some GFP_KERNEL allocations.\n\nAnother thing to note is that we now fully rely on normal RCU and not\nRCU-sched, this is because with the new and exiting RCU flavours we\ngrew over the years BH doesn\u0027t necessarily hold off RCU-sched grace\nperiods (-rt is known to break this). This would in fact already cause\nus grief since we do sched_domain/sched_group iterations from softirq\ncontext.\n\nThis patch is somewhat larger than I would like it to be, but I didn\u0027t\nfind any means of shrinking/splitting this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.245307941@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e46bc9b6fd65bc9f406a4211fbf95683cc9c2937",
      "tree": "57046f6b2f4674a0c9048ab1ad1ff50fae7e373a",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "321fb561971ba0f10ce18c0f8a4b9fbfc7cef4b9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 07 20:44:11 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 07 20:44:11 2011 +0200"
      },
      "message": "Merge branch \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into ptrace\n"
    },
    {
      "commit": "ee77f075921730b2b465880f9fd4367003bdab39",
      "tree": "dfae10b9718b79650477f912de148c903bc1bbd0",
      "parents": [
        "780006eac2fe7f4d2582da16a096e5a44c4767ff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Apr 01 20:12:38 2011 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 04 02:11:05 2011 +0200"
      },
      "message": "signal: Turn SIGNAL_STOP_DEQUEUED into GROUP_STOP_DEQUEUED\n\nThis patch moves SIGNAL_STOP_DEQUEUED from signal_struct-\u003eflags to\ntask_struct-\u003egroup_stop, and thus makes it per-thread.\n\nLike SIGNAL_STOP_DEQUEUED, GROUP_STOP_DEQUEUED can be false-positive\nafter return from get_signal_to_deliver(), this is fine. The only\npurpose of this bit is: we can drop -\u003esiglock after __dequeue_signal()\nreturns the sig_kernel_stop() signal and before we call\ndo_signal_stop(), in this case we must not miss SIGCONT if it comes in\nbetween.\n\nBut, unlike SIGNAL_STOP_DEQUEUED, GROUP_STOP_DEQUEUED can not be\nfalse-positive in do_signal_stop() if multiple threads dequeue the\nsig_kernel_stop() signal at the same time.\n\nConsider two threads T1 and T2, SIGTTIN has a hanlder.\n\n\t- T1 dequeues SIGTSTP and sets SIGNAL_STOP_DEQUEUED, then\n\t  it drops -\u003esiglock\n\n\t- SIGCONT comes and clears SIGNAL_STOP_DEQUEUED, SIGTSTP\n\t  should be cancelled.\n\n\t- T2 dequeues SIGTTIN and sets SIGNAL_STOP_DEQUEUED again.\n\t  Since we have a handler we should not stop, T2 returns\n\t  to usermode to run the handler.\n\n\t- T1 continues, calls do_signal_stop() and wrongly starts\n\t  the group stop because SIGNAL_STOP_DEQUEUED was restored\n\t  in between.\n\nWith or without this change:\n\n\t- we need to do something with ptrace_signal() which can\n\t  return SIGSTOP, but this needs another discussion\n\n\t- SIGSTOP can be lost if it races with the mt exec, will\n\t  be fixed later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "8dd90265ac0754da0df47d9c597f25187bb1c947",
      "tree": "76b3e83a9417ae8eaf959f9a6306c3da446763b8",
      "parents": [
        "2a20b02c055a14eb60ac8da737d79dc940bb9ee0",
        "1232d6132a986125f6a687ab9b61a4330e319270"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:59:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:59:38 2011 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched, doc: Update sched-design-CFS.txt\n  sched: Remove unused \u0027rq\u0027 variable and cpu_rq() call from alloc_fair_sched_group()\n  sched.h: Fix a typo (\"its\")\n  sched: Fix yield_to kernel-doc\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "7ffd4ca7a2cdd7a18f0b499a4e9e0e7cf36ba018",
      "tree": "1a2678ce91b9dfb2118d19e0ec457ca5582793f9",
      "parents": [
        "11c9ea4e80fc3be83485667204c68d0a732f3757"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:30 2011 -0700"
      },
      "message": "memcg: convert uncharge batching from bytes to page granularity\n\nWe never uncharge subpage quantities.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e815f0a84fc9a98e5cc3ef0b520122e5e18520e7",
      "tree": "ad4b1df3e1446d293f325b4d0a5a5dfa5f32d1a5",
      "parents": [
        "16addf954d3954a72fd56abc02ffcba3c18529a1"
      ],
      "author": {
        "name": "Jonathan Neuschäfer",
        "email": "j.neuschaefer@gmx.net",
        "time": "Mon Mar 21 20:24:47 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 23 12:10:02 2011 +0100"
      },
      "message": "sched.h: Fix a typo (\"its\")\n\nThe sentence uses the possessive pronoun, which is spelled\nwithout an apostrophe.\n\nSigned-off-by: Jonathan Neuschäfer \u003cj.neuschaefer@gmx.net\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c1300735487-2406-1-git-send-email-j.neuschaefer@gmx.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d79fdd6d96f46fabb779d86332e3677c6f5c2a4f",
      "tree": "2797e34888c687b47997b7c7ea3150468bcbb737",
      "parents": [
        "5224fa3660ad3881d2f2ad726d22614117963f10"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "message": "ptrace: Clean transitions between TASK_STOPPED and TRACED\n\nCurrently, if the task is STOPPED on ptrace attach, it\u0027s left alone\nand the state is silently changed to TRACED on the next ptrace call.\nThe behavior breaks the assumption that arch_ptrace_stop() is called\nbefore any task is poked by ptrace and is ugly in that a task\nmanipulates the state of another task directly.\n\nWith GROUP_STOP_PENDING, the transitions between TASK_STOPPED and\nTRACED can be made clean.  The tracer can use the flag to tell the\ntracee to retry stop on attach and detach.  On retry, the tracee will\nenter the desired state in the correct way.  The lower 16bits of\ntask-\u003egroup_stop is used to remember the signal number which caused\nthe last group stop.  This is used while retrying for ptrace attach as\nthe original group_exit_code could have been consumed with wait(2) by\nthen.\n\nAs the real parent may wait(2) and consume the group_exit_code\nanytime, the group_exit_code needs to be saved separately so that it\ncan be used when switching from regular sleep to ptrace_stop().  This\nis recorded in the lower 16bits of task-\u003egroup_stop.\n\nIf a task is already stopped and there\u0027s no intervening SIGCONT, a\nptrace request immediately following a successful PTRACE_ATTACH should\nalways succeed even if the tracer doesn\u0027t wait(2) for attach\ncompletion; however, with this change, the tracee might still be\nTASK_RUNNING trying to enter TASK_TRACED which would cause the\nfollowing request to fail with -ESRCH.\n\nThis intermediate state is hidden from the ptracer by setting\nGROUP_STOP_TRAPPING on attach and making ptrace_check_attach() wait\nfor it to clear on its signal-\u003ewait_chldexit.  Completing the\ntransition or getting killed clears TRAPPING and wakes up the tracer.\n\nNote that the STOPPED -\u003e RUNNING -\u003e TRACED transition is still visible\nto other threads which are in the same group as the ptracer and the\nreverse transition is visible to all.  Please read the comments for\ndetails.\n\nOleg:\n\n* Spotted a race condition where a task may retry group stop without\n  proper bookkeeping.  Fixed by redoing bookkeeping on retry.\n\n* Spotted that the transition is visible to userland in several\n  different ways.  Most are fixed with GROUP_STOP_TRAPPING.  Unhandled\n  corner case is documented.\n\n* Pointed out not setting GROUP_STOP_SIGMASK on an already stopped\n  task would result in more consistent behavior.\n\n* Pointed out that calling ptrace_stop() from do_signal_stop() in\n  TASK_STOPPED can race with group stop start logic and then confuse\n  the TRAPPING wait in ptrace_check_attach().  ptrace_stop() is now\n  called with TASK_RUNNING.\n\n* Suggested using signal-\u003ewait_chldexit instead of bit wait.\n\n* Spotted a race condition between TRACED transition and clearing of\n  TRAPPING.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\n"
    },
    {
      "commit": "39efa3ef3a376a4e53de2f82fc91182459d34200",
      "tree": "f75a44fa77396edcf74e41686912554f96681340",
      "parents": [
        "e5c1902e9260a0075ea52cb5ef627a8d9aaede89"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "message": "signal: Use GROUP_STOP_PENDING to stop once for a single group stop\n\nCurrently task-\u003esignal-\u003egroup_stop_count is used to decide whether to\nstop for group stop.  However, if there is a task in the group which\nis taking a long time to stop, other tasks which are continued by\nptrace would repeatedly stop for the same group stop until the group\nstop is complete.\n\nConversely, if a ptraced task is in TASK_TRACED state, the debugger\nwon\u0027t get notified of group stops which is inconsistent compared to\nthe ptraced task in any other state.\n\nThis patch introduces GROUP_STOP_PENDING which tracks whether a task\nis yet to stop for the group stop in progress.  The flag is set when a\ngroup stop starts and cleared when the task stops the first time for\nthe group stop, and consulted whenever whether the task should\nparticipate in a group stop needs to be determined.  Note that now\ntasks in TASK_TRACED also participate in group stop.\n\nThis results in the following behavior changes.\n\n* For a single group stop, a ptracer would see at most one stop\n  reported.\n\n* A ptracee in TASK_TRACED now also participates in group stop and the\n  tracer would get the notification.  However, as a ptraced task could\n  be in TASK_STOPPED state or any ptrace trap could consume group\n  stop, the notification may still be missing.  These will be\n  addressed with further patches.\n\n* A ptracee may start a group stop while one is still in progress if\n  the tracer let it continue with stop signal delivery.  Group stop\n  code handles this correctly.\n\nOleg:\n\n* Spotted that a task might skip signal check even when its\n  GROUP_STOP_PENDING is set.  Fixed by updating\n  recalc_sigpending_tsk() to check GROUP_STOP_PENDING instead of\n  group_stop_count.\n\n* Pointed out that task-\u003egroup_stop should be cleared whenever\n  task-\u003esignal-\u003egroup_stop_count is cleared.  Fixed accordingly.\n\n* Pointed out the behavior inconsistency between TASK_TRACED and\n  RUNNING and the last behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "e5c1902e9260a0075ea52cb5ef627a8d9aaede89",
      "tree": "0fc5ec2460fecfe564323d89227bec9293238c2a",
      "parents": [
        "fe1bc6a0954611b806f9e158eb0817cf8ba21660"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 23 10:37:00 2011 +0100"
      },
      "message": "signal: Fix premature completion of group stop when interfered by ptrace\n\ntask-\u003esignal-\u003egroup_stop_count is used to track the progress of group\nstop.  It\u0027s initialized to the number of tasks which need to stop for\ngroup stop to finish and each stopping or trapping task decrements.\nHowever, each task doesn\u0027t keep track of whether it decremented the\ncounter or not and if woken up before the group stop is complete and\nstops again, it can decrement the counter multiple times.\n\nPlease consider the following example code.\n\n static void *worker(void *arg)\n {\n\t while (1) ;\n\t return NULL;\n }\n\n int main(void)\n {\n\t pthread_t thread;\n\t pid_t pid;\n\t int i;\n\n\t pid \u003d fork();\n\t if (!pid) {\n\t\t for (i \u003d 0; i \u003c 5; i++)\n\t\t\t pthread_create(\u0026thread, NULL, worker, NULL);\n\t\t while (1) ;\n\t\t return 0;\n\t }\n\n\t ptrace(PTRACE_ATTACH, pid, NULL, NULL);\n\t while (1) {\n\t\t waitid(P_PID, pid, NULL, WSTOPPED);\n\t\t ptrace(PTRACE_SINGLESTEP, pid, NULL, (void *)(long)SIGSTOP);\n\t }\n\t return 0;\n }\n\nThe child creates five threads and the parent continuously traps the\nfirst thread and whenever the child gets a signal, SIGSTOP is\ndelivered.  If an external process sends SIGSTOP to the child, all\nother threads in the process should reliably stop.  However, due to\nthe above bug, the first thread will often end up consuming\ngroup_stop_count multiple times and SIGSTOP often ends up stopping\nnone or part of the other four threads.\n\nThis patch adds a new field task-\u003egroup_stop which is protected by\nsiglock and uses GROUP_STOP_CONSUME flag to track which task is still\nto consume group_stop_count to fix this bug.\n\ntask_clear_group_stop_pending() and task_participate_group_stop() are\nadded to help manipulating group stop states.  As ptrace_stop() now\nalso uses task_participate_group_stop(), it will set\nSIGNAL_STOP_STOPPED if it completes a group stop.\n\nThere still are many issues regarding the interaction between group\nstop and ptrace.  Patches to address them will follow.\n\n- Oleg spotted duplicate GROUP_STOP_CONSUME.  Dropped.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "207205a2ba2655652fe46a60b49838af6c16a919",
      "tree": "4309aa7cd5cf39c805219001e0ed8ec5b71e4d5e",
      "parents": [
        "b6a84016bd2598e35ead635147fa53619982648d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: NUMA aware kthread_create_on_node()\n\nAll kthreads being created from a single helper task, they all use memory\nfrom a single node for their kernel stack and task struct.\n\nThis patch suite creates kthread_create_on_node(), adding a \u0027cpu\u0027 parameter\nto parameters already used by kthread_create().\n\nThis parameter serves in allocating memory for the new kthread on its\nmemory node if possible.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.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": "420c1c572d4ceaa2f37b6311b7017ac6cf049fe2",
      "tree": "df04e6b4b756b7a46d9887462d54a3ad0e1f91d5",
      "parents": [
        "9620639b7ea3843983f4ced8b4c81eb4d8974838",
        "6e6823d17b157f185be09f4c70181299f9273f0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:53:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:53:35 2011 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (62 commits)\n  posix-clocks: Check write permissions in posix syscalls\n  hrtimer: Remove empty hrtimer_init_hres_timer()\n  hrtimer: Update hrtimer-\u003estate documentation\n  hrtimer: Update base[CLOCK_BOOTTIME].offset correctly\n  timers: Export CLOCK_BOOTTIME via the posix timers interface\n  timers: Add CLOCK_BOOTTIME hrtimer base\n  time: Extend get_xtime_and_monotonic_offset() to also return sleep\n  time: Introduce get_monotonic_boottime and ktime_get_boottime\n  hrtimers: extend hrtimer base code to handle more then 2 clockids\n  ntp: Remove redundant and incorrect parameter check\n  mn10300: Switch do_timer() to xtimer_update()\n  posix clocks: Introduce dynamic clocks\n  posix-timers: Cleanup namespace\n  posix-timers: Add support for fd based clocks\n  x86: Add clock_adjtime for x86\n  posix-timers: Introduce a syscall for clock tuning.\n  time: Splitout compat timex accessors\n  ntp: Add ADJ_SETOFFSET mode bit\n  time: Introduce timekeeping_inject_offset\n  posix-timer: Update comment\n  ...\n\nFix up new system-call-related conflicts in\n\tarch/x86/ia32/ia32entry.S\n\tarch/x86/include/asm/unistd_32.h\n\tarch/x86/include/asm/unistd_64.h\n\tarch/x86/kernel/syscall_table_32.S\n(name_to_handle_at()/open_by_handle_at() vs clock_adjtime()), and some\ndue to movement of get_jiffies_64() in:\n\tkernel/time.c\n"
    },
    {
      "commit": "9620639b7ea3843983f4ced8b4c81eb4d8974838",
      "tree": "54266fac3bcf89e61ae06c7d36ca708df6e0ea33",
      "parents": [
        "a926021cb1f8a99a275eaf6eb546102e9469dc59",
        "6d1cafd8b56ea726c10a5a104de57cc3ed8fa953"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:37:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 15 18:37:30 2011 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (26 commits)\n  sched: Resched proper CPU on yield_to()\n  sched: Allow users with sufficient RLIMIT_NICE to change from SCHED_IDLE policy\n  sched: Allow SCHED_BATCH to preempt SCHED_IDLE tasks\n  sched: Clean up the IRQ_TIME_ACCOUNTING code\n  sched: Add #ifdef around irq time accounting functions\n  sched, autogroup: Stop claiming ownership of the root task group\n  sched, autogroup: Stop going ahead if autogroup is disabled\n  sched, autogroup, sysctl: Use proc_dointvec_minmax() instead\n  sched: Fix the group_imb logic\n  sched: Clean up some f_b_g() comments\n  sched: Clean up remnants of sd_idle\n  sched: Wholesale removal of sd_idle logic\n  sched: Add yield_to(task, preempt) functionality\n  sched: Use a buddy to implement yield_task_fair()\n  sched: Limit the scope of clear_buddies\n  sched: Check the right -\u003enr_running in yield_task_fair()\n  sched: Avoid expensive initial update_cfs_load(), on UP too\n  sched: Fix switch_from_fair()\n  sched: Simplify the idle scheduling class\n  softirqs: Account ksoftirqd time as cpustat softirq\n  ...\n"
    },
    {
      "commit": "73c101011926c5832e6e141682180c4debe2cf45",
      "tree": "b8eeb521a7833cb198d6f39d5a931d820e2a663f",
      "parents": [
        "a488e74976bf0a9bccecdd094378394942dacef1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Mar 08 13:19:51 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:45:54 2011 +0100"
      },
      "message": "block: initial patch for on-stack per-task plugging\n\nThis patch adds support for creating a queuing context outside\nof the queue itself. This enables us to batch up pieces of IO\nbefore grabbing the block device queue lock and submitting them to\nthe IO scheduler.\n\nThe context is created on the stack of the process and assigned in\nthe task structure, so that we can auto-unplug it if we hit a schedule\nevent.\n\nThe current queue plugging happens implicitly if IO is submitted to\nan empty device, yet callers have to remember to unplug that IO when\nthey are going to wait for it. This is an ugly API and has caused bugs\nin the past. Additionally, it requires hacks in the vm (-\u003esync_page()\ncallback) to handle that logic. By switching to an explicit plugging\nscheme we make the API a lot nicer and can get rid of the -\u003esync_page()\nhack in the vm.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "888a8a3e9d79cbb9d83e53955f684998248580ec",
      "tree": "3dbf548438c77d89c8696a9a79c4129cdc2f3d3e",
      "parents": [
        "cfff2d909cbdaf8c467bd321aa0502a548ec8f7e",
        "b06b3d49699a52e8f9ca056c4f96e81b1987d78e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 10:40:22 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 10:40:25 2011 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Pick up updates before queueing up dependent patches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d927dc937910ad8c7350266cac70e42a5f0b48cf",
      "tree": "c26c8ffa1d764bb7fea66118cc05bf7617b71c19",
      "parents": [
        "46e49b3836c7cd2ae5b5fe76fa981d0d292a52fe",
        "f5412be599602124d2bdd49947b231dd77c0bf99"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:31:34 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:31:38 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.38-rc6\u0027 into sched/core\n\nMerge reason: Pick up the latest fixes before queueing up new changes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58a69cb47ec6991bf006a3e5d202e8571b0327a4",
      "tree": "56abdf817649c352f70bff3263f9351ed6c42062",
      "parents": [
        "7576958a9d5a4a677ad7dd40901cdbb6c1110c98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 09:25:31 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:48:59 2011 +0100"
      },
      "message": "workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n\nThere are two spellings in use for \u0027freeze\u0027 + \u0027able\u0027 - \u0027freezable\u0027 and\n\u0027freezeable\u0027.  The former is the more prominent one.  The latter is\nmostly used by workqueue and in a few other odd places.  Unify the\nspelling to \u0027freezable\u0027.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d95f412200652694e63e64bfd49f0ae274a54479",
      "tree": "d2abb7b2c635bbc9f344b45051b6186b1317718c",
      "parents": [
        "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Feb 01 09:50:51 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Add yield_to(task, preempt) functionality\n\nCurrently only implemented for fair class tasks.\n\nAdd a yield_to_task method() to the fair scheduling class. allowing the\ncaller of yield_to() to accelerate another thread in it\u0027s thread group,\ntask group.\n\nImplemented via a scheduler hint, using cfs_rq-\u003enext to encourage the\ntarget being selected.  We can rely on pick_next_entity to keep things\nfair, so noone can accelerate a thread that has already used its fair\nshare of CPU time.\n\nThis also means callers should only call yield_to when they really\nmean it.  Calling it too often can result in the scheduler just\nignoring the hint.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095051.4ddb7738@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4",
      "tree": "c263b558772213530532026af6fa9e34a8f88375",
      "parents": [
        "2c13c919d9e9a3db9896143a501f83dcbbe1ced4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:51:03 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Use a buddy to implement yield_task_fair()\n\nUse the buddy mechanism to implement yield_task_fair.  This\nallows us to skip onto the next highest priority se at every\nlevel in the CFS tree, unless doing so would introduce gross\nunfairness in CPU time distribution.\n\nWe order the buddy selection in pick_next_entity to check\nyield first, then last, then next.  We need next to be able\nto override yield, because it is possible for the \"next\" and\n\"yield\" task to be different processen in the same sub-tree\nof the CFS tree.  When they are, we need to go into that\nsub-tree regardless of the \"yield\" hint, and pick the correct\nentity once we get to the right level.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095103.3a79e92a@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fe4b04fa31a6dcf4358aa84cf81e5a7fd079469b",
      "tree": "20a6db874d0db2a2f2e38e3ff77df4bdaa5f1cfe",
      "parents": [
        "b84defe6036e6dea782d41b80a4590e54f249671"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 02 13:19:09 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 12:14:43 2011 +0100"
      },
      "message": "perf: Cure task_oncpu_function_call() races\n\nOleg reported that on architectures with\n__ARCH_WANT_INTERRUPTS_ON_CTXSW the IPI from\ntask_oncpu_function_call() can land before perf_event_task_sched_in()\nand cause interesting situations for eg. perf_install_in_context().\n\nThis patch reworks the task_oncpu_function_call() interface to give a\nmore usable primitive as well as rework all its users to hopefully be\nmore obvious as well as remove the races.\n\nWhile looking at the code I also found a number of races against\nperf_event_task_sched_out() which can flip contexts between tasks so\nplug those too.\n\nReported-and-reviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2830b5c1b2b2217894370a3b95af87d4a958401",
      "tree": "9eec3de82a30fffc32beae7826e4a356220c52f7",
      "parents": [
        "d12b0e24c56c6fb2398609f26858e5278d688840"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Thu Jan 27 16:00:32 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 31 19:26:50 2011 +0100"
      },
      "message": "time: Make do_timer() and xtime_lock local to kernel/time/\n\nAll callers of do_timer() are converted to xtime_update(). The only\nusers of xtime_lock are in kernel/time/. Make both local to\nkernel/time/ and remove them from the global header files.\n\n[ tglx: Reuse tick-internal.h instead of creating another local header\n  \tfile. Massaged changelog ]\n\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: johnstul@us.ibm.com\nCc: yong.zhang0@gmail.com\nCc: hch@infradead.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f0af911a9dec9de702645182c8d269449e24d24b",
      "tree": "17cd5683ab3878479b59d9786102fcf699d3051a",
      "parents": [
        "79ecaf0d15344d78904becf0f25de3fc9b49d430"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Thu Jan 27 15:59:10 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 31 14:55:43 2011 +0100"
      },
      "message": "time: Provide xtime_update()\n\nxtime_update() takes xtime_lock write locked and calls\ndo_timer(). Provided to replace the do_timer() calls in the\narchitecture code.\n\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: johnstul@us.ibm.com\nCc: yong.zhang0@gmail.com\nCc: hch@infradead.org\nLKML-Reference: \u003c20110127145910.23248.21379.stgit@localhost\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "da7a735e51f9622eb3e1672594d4a41da01d7e4f",
      "tree": "27623dcd39c52a80b79e0ee86ab426fc9c7e2b46",
      "parents": [
        "a8941d7ec81678fb69aea7183338175f112f3e0d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 17 17:03:27 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:22 2011 +0100"
      },
      "message": "sched: Fix switch_from_fair()\n\nWhen a task is taken out of the fair class we must ensure the vruntime\nis properly normalized because when we put it back in it will assume\nto be normalized.\n\nThe case that goes wrong is when changing away from the fair class\nwhile sleeping. Sleeping tasks have non-normalized vruntime in order\nto make sleeper-fairness work. So treat the switch away from fair as a\nwakeup and preserve the relative vruntime.\n\nAlso update sysrq-n to call the -\u003eswitch_{to,from} methods.\n\nReported-by: Onkalo Samu \u003csamu.p.onkalo@nokia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dd53d891ca46dcc1fde0376a33540d3fd83cb9a",
      "tree": "9a6c242176f196c062ae76c50b0f321251900b5a",
      "parents": [
        "f07333bf6ee66d9b49286cec4371cf375e745b7a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Tue Dec 21 17:09:00 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:20 2011 +0100"
      },
      "message": "softirqs: Free up pf flag PF_KSOFTIRQD\n\nCleanup patch, freeing up PF_KSOFTIRQD and use per_cpu ksoftirqd pointer\ninstead, as suggested by Eric Dumazet.\n\nTested-by: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1292980144-28796-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ba76149f47d8c939efa0acc07a191237af900471",
      "tree": "162990f51dd24984f114cba14fc7169a3b54f0f1",
      "parents": [
        "79134171df238171daa4c024a42b77b401ccb00b"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:46:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:43 2011 -0800"
      },
      "message": "thp: khugepaged\n\nAdd khugepaged to relocate fragmented pages into hugepages if new\nhugepages become available.  (this is indipendent of the defrag logic that\nwill have to make new hugepages available)\n\nThe fundamental reason why khugepaged is unavoidable, is that some memory\ncan be fragmented and not everything can be relocated.  So when a virtual\nmachine quits and releases gigabytes of hugepages, we want to use those\nfreely available hugepages to create huge-pmd in the other virtual\nmachines that may be running on fragmented memory, to maximize the CPU\nefficiency at all times.  The scan is slow, it takes nearly zero cpu time,\nexcept when it copies data (in which case it means we definitely want to\npay for that cpu time) so it seems a good tradeoff.\n\nIn addition to the hugepages being released by other process releasing\nmemory, we have the strong suspicion that the performance impact of\npotentially defragmenting hugepages during or before each page fault could\nlead to more performance inconsistency than allocating small pages at\nfirst and having them collapsed into large pages later...  if they prove\nthemselfs to be long lived mappings (khugepaged scan is slow so short\nlived mappings have low probability to run into khugepaged if compared to\nlong lived mappings).\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@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": "dabb16f639820267b3850d804571c70bd93d4e07",
      "tree": "7da59e6133cd2f820389574ac9206c56e046f5d4",
      "parents": [
        "d0a21265dfb5fa8ae54e90d0fb6d1c215b10a28a"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Thu Jan 13 15:46:05 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:35 2011 -0800"
      },
      "message": "oom: allow a non-CAP_SYS_RESOURCE proces to oom_score_adj down\n\nWe\u0027d like to be able to oom_score_adj a process up/down as it\nenters/leaves the foreground.  Currently, it is not possible to oom_adj\ndown without CAP_SYS_RESOURCE.  This patch allows a task to decrease its\noom_score_adj back to the value that a CAP_SYS_RESOURCE thread set it to\nor its inherited value at fork.  Assuming the thread that has forked it\nhas oom_score_adj of 0, each process could decrease it back from 0 upon\nactivation unless a CAP_SYS_RESOURCE thread elevated it to something\nhigher.\n\nAlternative considered:\n\n* a setuid binary\n* a daemon with CAP_SYS_RESOURCE\n\nSince you don\u0027t wan\u0027t all processes to be able to reduce their oom_adj, a\nsetuid or daemon implementation would be complex.  The alternatives also\nhave much higher overhead.\n\nThis patch updated from original patch based on feedback from David\nRientjes.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "43bb40c9e3aa51a3b038c9df2c9afb4d4685614d"
}
