)]}'
{
  "log": [
    {
      "commit": "ee89f81252179dcbf6cd65bd48299f5e52292d88",
      "tree": "805846cd12821f84cfe619d44c9e3e36e0b0f9e6",
      "parents": [
        "21f3b24da9328415792efc780f50b9f434c12465",
        "de33127d8d3f1d570aad8c2223cd81b206636bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO core bits from Jens Axboe:\n \"Below are the core block IO bits for 3.9.  It was delayed a few days\n  since my workstation kept crashing every 2-8h after pulling it into\n  current -git, but turns out it is a bug in the new pstate code (divide\n  by zero, will report separately).  In any case, it contains:\n\n   - The big cfq/blkcg update from Tejun and and Vivek.\n\n   - Additional block and writeback tracepoints from Tejun.\n\n   - Improvement of the should sort (based on queues) logic in the plug\n     flushing.\n\n   - _io() variants of the wait_for_completion() interface, using\n     io_schedule() instead of schedule() to contribute to io wait\n     properly.\n\n   - Various little fixes.\n\n  You\u0027ll get two trivial merge conflicts, which should be easy enough to\n  fix up\"\n\nFix up the trivial conflicts due to hlist traversal cleanups (commit\nb67bfe0d42ca: \"hlist: drop the node parameter from iterators\").\n\n* \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block: (39 commits)\n  block: remove redundant check to bd_openers()\n  block: use i_size_write() in bd_set_size()\n  cfq: fix lock imbalance with failed allocations\n  drivers/block/swim3.c: fix null pointer dereference\n  block: don\u0027t select PERCPU_RWSEM\n  block: account iowait time when waiting for completion of IO request\n  sched: add wait_for_completion_io[_timeout]\n  writeback: add more tracepoints\n  block: add block_{touch|dirty}_buffer tracepoint\n  buffer: make touch_buffer() an exported function\n  block: add @req to bio_{front|back}_merge tracepoints\n  block: add missing block_bio_complete() tracepoint\n  block: Remove should_sort judgement when flush blk_plug\n  block,elevator: use new hashtable implementation\n  cfq-iosched: add hierarchical cfq_group statistics\n  cfq-iosched: collect stats from dead cfqgs\n  cfq-iosched: separate out cfqg_stats_reset() from cfq_pd_reset_stats()\n  blkcg: make blkcg_print_blkgs() grab q locks instead of blkcg lock\n  block: RCU free request_queue\n  blkcg: implement blkg_[rw]stat_recursive_sum() and blkg_[rw]stat_merge()\n  ...\n"
    },
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@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": "dcad0fceae528e8007610308bad7e5a3370e5c39",
      "tree": "1af69697e0988e8dbdf42d915508bd58a1887b4f",
      "parents": [
        "f8ef15d6b9d8e38729cd740a43919adf88468119",
        "7f6575f1fb963d5231afbceecd3feadb6ab58cd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 19:42:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 19:42:08 2013 -0800"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar.\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  cputime: Use local_clock() for full dynticks cputime accounting\n  cputime: Constify timeval_to_cputime(timeval) argument\n  sched: Move RR_TIMESLICE from sysctl.h to rt.h\n  sched: Fix /proc/sched_debug failure on very very large systems\n  sched: Fix /proc/sched_stat failure on very very large systems\n  sched/core: Remove the obsolete and unused nr_uninterruptible() function\n"
    },
    {
      "commit": "9043a2650cd21f96f831a97f516c2c302e21fb70",
      "tree": "926720afb0acc7bad8cfcae537dc58de552f9249",
      "parents": [
        "ab7826595e9ec51a51f622c5fc91e2f59440481a",
        "d9d8d7ed498ec65bea72dd24be7b9cd35af0c200"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 25 15:41:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 25 15:41:43 2013 -0800"
      },
      "message": "Merge tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module update from Rusty Russell:\n \"The sweeping change is to make add_taint() explicitly indicate whether\n  to disable lockdep, but it\u0027s a mechanical change.\"\n\n* tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  MODSIGN: Add option to not sign modules during modules_install\n  MODSIGN: Add -s \u003csignature\u003e option to sign-file\n  MODSIGN: Specify the hash algorithm on sign-file command line\n  MODSIGN: Simplify Makefile with a Kconfig helper\n  module: clean up load_module a little more.\n  modpost: Ignore ARC specific non-alloc sections\n  module: constify within_module_*\n  taint: add explicit flag to show whether lock dep is still OK.\n  module: printk message when module signature fail taints kernel.\n"
    },
    {
      "commit": "89f883372fa60f604d136924baf3e89ff1870e9e",
      "tree": "cb69b0a14957945ba00d3d392bf9ccbbef56f3b8",
      "parents": [
        "9e2d59ad580d590134285f361a0e80f0e98c0207",
        "6b73a96065e89dc9fa75ba4f78b1aa3a3bbd0470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 24 13:07:18 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 24 13:07:18 2013 -0800"
      },
      "message": "Merge tag \u0027kvm-3.9-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM updates from Marcelo Tosatti:\n \"KVM updates for the 3.9 merge window, including x86 real mode\n  emulation fixes, stronger memory slot interface restrictions, mmu_lock\n  spinlock hold time reduction, improved handling of large page faults\n  on shadow, initial APICv HW acceleration support, s390 channel IO\n  based virtio, amongst others\"\n\n* tag \u0027kvm-3.9-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (143 commits)\n  Revert \"KVM: MMU: lazily drop large spte\"\n  x86: pvclock kvm: align allocation size to page size\n  KVM: nVMX: Remove redundant get_vmcs12 from nested_vmx_exit_handled_msr\n  x86 emulator: fix parity calculation for AAD instruction\n  KVM: PPC: BookE: Handle alignment interrupts\n  booke: Added DBCR4 SPR number\n  KVM: PPC: booke: Allow multiple exception types\n  KVM: PPC: booke: use vcpu reference from thread_struct\n  KVM: Remove user_alloc from struct kvm_memory_slot\n  KVM: VMX: disable apicv by default\n  KVM: s390: Fix handling of iscs.\n  KVM: MMU: cleanup __direct_map\n  KVM: MMU: remove pt_access in mmu_set_spte\n  KVM: MMU: cleanup mapping-level\n  KVM: MMU: lazily drop large spte\n  KVM: VMX: cleanup vmx_set_cr0().\n  KVM: VMX: add missing exit names to VMX_EXIT_REASONS array\n  KVM: VMX: disable SMEP feature when guest is in non-paging mode\n  KVM: Remove duplicate text in api.txt\n  Revert \"KVM: MMU: split kvm_mmu_free_page\"\n  ...\n"
    },
    {
      "commit": "7f6575f1fb963d5231afbceecd3feadb6ab58cd3",
      "tree": "b66acd09037319c1489e97e78f44b5dcdafda523",
      "parents": [
        "c78a4bcd1a879b39fb7646c887b0c195f1018909"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 23 17:28:45 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 24 12:57:16 2013 +0100"
      },
      "message": "cputime: Use local_clock() for full dynticks cputime accounting\n\nRunning the full dynticks cputime accounting with preemptible\nkernel debugging trigger the following warning:\n\n\t[    4.488303] BUG: using smp_processor_id() in preemptible [00000000] code: init/1\n\t[    4.490971] caller is native_sched_clock+0x22/0x80\n\t[    4.493663] Pid: 1, comm: init Not tainted 3.8.0+ #13\n\t[    4.496376] Call Trace:\n\t[    4.498996]  [\u003cffffffff813410eb\u003e] debug_smp_processor_id+0xdb/0xf0\n\t[    4.501716]  [\u003cffffffff8101e642\u003e] native_sched_clock+0x22/0x80\n\t[    4.504434]  [\u003cffffffff8101db99\u003e] sched_clock+0x9/0x10\n\t[    4.507185]  [\u003cffffffff81096ccd\u003e] fetch_task_cputime+0xad/0x120\n\t[    4.509916]  [\u003cffffffff81096dd5\u003e] task_cputime+0x35/0x60\n\t[    4.512622]  [\u003cffffffff810f146e\u003e] acct_update_integrals+0x1e/0x40\n\t[    4.515372]  [\u003cffffffff8117d2cf\u003e] do_execve_common+0x4ff/0x5c0\n\t[    4.518117]  [\u003cffffffff8117cf14\u003e] ? do_execve_common+0x144/0x5c0\n\t[    4.520844]  [\u003cffffffff81867a10\u003e] ? rest_init+0x160/0x160\n\t[    4.523554]  [\u003cffffffff8117d457\u003e] do_execve+0x37/0x40\n\t[    4.526276]  [\u003cffffffff810021a3\u003e] run_init_process+0x23/0x30\n\t[    4.528953]  [\u003cffffffff81867aac\u003e] kernel_init+0x9c/0xf0\n\t[    4.531608]  [\u003cffffffff8188356c\u003e] ret_from_fork+0x7c/0xb0\n\nWe use sched_clock() to perform and fixup the cputime\naccounting. However we are calling it with preemption enabled\nfrom the read side, which trigger the bug above.\n\nTo fix this up, use local_clock() instead. It takes care of\npreemption and also provide a more reliable clock source. This\nis welcome for this kind of statistic that is widely relied on\nin userspace.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSuggested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1361636925-22288-3-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aa00d89c2780d72d082a015e8cbb751e65fb30ee",
      "tree": "a326cbf62ab21d76af7c82c0038a985db77e69b1",
      "parents": [
        "e13fe8695c57fed678877a9f3f8e99fc637ff4fb"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:33 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:13 2013 -0800"
      },
      "message": "sched: do not use cpu_to_node() to find an offlined cpu\u0027s node.\n\nIf a cpu is offline, its nid will be set to -1, and cpu_to_node(cpu)\nwill return -1.  As a result, cpumask_of_node(nid) will return NULL.  In\nthis case, find_next_bit() in for_each_cpu will get a NULL pointer and\ncause panic.\n\nHere is a call trace:\n  Call Trace:\n   \u003cIRQ\u003e\n    select_fallback_rq+0x71/0x190\n    try_to_wake_up+0x2cb/0x2f0\n    wake_up_process+0x15/0x20\n    hrtimer_wakeup+0x22/0x30\n    __run_hrtimer+0x83/0x320\n    hrtimer_interrupt+0x106/0x280\n    smp_apic_timer_interrupt+0x69/0x99\n    apic_timer_interrupt+0x6f/0x80\n\nThere is a hrtimer process sleeping, whose cpu has already been\nofflined.  When it is waken up, it tries to find another cpu to run, and\nget a -1 nid.  As a result, cpumask_of_node(-1) returns NULL, and causes\nernel panic.\n\nThis patch fixes this problem by judging if the nid is -1.  If nid is\nnot -1, a cpu on the same node will be picked.  Else, a online cpu on\nanother node will be picked.\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbbfeac92beff40eb86c7f682a7f1395f9f0ae52",
      "tree": "80a9f7d32d7a9a7898349c6e6ca88a1a7c1edf13",
      "parents": [
        "cb152ff26717961b10d0888cd983ba284cb99cd1"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Thu Feb 21 15:15:09 2013 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Feb 22 10:27:25 2013 +0100"
      },
      "message": "sched: Fix /proc/sched_debug failure on very very large systems\n\nOn systems with 4096 cores attemping to read /proc/sched_debug\nfails because we are trying to push all the data into a single\nkmalloc buffer.\n\nThe issue is on these very large machines all the data will not\nfit in 4mb.\n\nA better solution is to not us the single_open mechanism but to\nprovide our own seq_operations and treat each cpu as an\nindividual record.\n\nThe output should be identical to the previous version.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e)\n[ Whitespace fixlet]\n[ Fix spello in comment]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cb152ff26717961b10d0888cd983ba284cb99cd1",
      "tree": "fa23de9f176321a54e60529e21389f1ac930bc30",
      "parents": [
        "1c3e826482ab698e418c7a894440e62c76aac893"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Thu Feb 21 15:15:08 2013 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Feb 22 10:27:24 2013 +0100"
      },
      "message": "sched: Fix /proc/sched_stat failure on very very large systems\n\nOn systems with 4096 cores doing a cat /proc/sched_stat fails,\nbecause we are trying to push all the data into a single kmalloc\nbuffer.\n\nThe issue is on these very large machines all the data will not\nfit in 4mb.\n\nA better solution is to not use the single_open() mechanism but\nto provide our own seq_operations.\n\nThe output should be identical to previous version and thus not\nneed the version number.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n[ Fix memleak]\n[ Fix spello in comment]\n[ Fix warnings]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "502b24c23b44fbaa01cc2cbd86d8035845b7811f",
      "tree": "3096deeb99f6acc2d72ee33f145008ec5e2c68b3",
      "parents": [
        "ece8e0b2f9c980e5511fe8db2d68c6f1859b9d83",
        "f169007b2773f285e098cb84c74aac0154d65ff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 09:16:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 09:16:21 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"Nothing too drastic.\n\n   - Removal of synchronize_rcu() from userland visible paths.\n\n   - Various fixes and cleanups from Li.\n\n   - cgroup_rightmost_descendant() added which will be used by cpuset\n     changes (it will be a separate pull request).\"\n\n* \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: fail if monitored file and event_control are in different cgroup\n  cgroup: fix cgroup_rmdir() vs close(eventfd) race\n  cpuset: fix cpuset_print_task_mems_allowed() vs rename() race\n  cgroup: fix exit() vs rmdir() race\n  cgroup: remove bogus comments in cgroup_diput()\n  cgroup: remove synchronize_rcu() from cgroup_diput()\n  cgroup: remove duplicate RCU free on struct cgroup\n  sched: remove redundant NULL cgroup check in task_group_path()\n  sched: split out css_online/css_offline from tg creation/destruction\n  cgroup: initialize cgrp-\u003edentry before css_alloc()\n  cgroup: remove a NULL check in cgroup_exit()\n  cgroup: fix bogus kernel warnings when cgroup_create() failed\n  cgroup: remove synchronize_rcu() from rebind_subsystems()\n  cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()\n  cgroup: use new hashtable implementation\n  cgroups: fix cgroup_event_listener error handling\n  cgroups: move cgroup_event_listener.c to tools/cgroup\n  cgroup: implement cgroup_rightmost_descendant()\n  cgroup: remove unused dummy cgroup_fork_callbacks()\n"
    },
    {
      "commit": "1c3e826482ab698e418c7a894440e62c76aac893",
      "tree": "308b6ec83faaf1185c937ef4d2a5387bef00ff99",
      "parents": [
        "ece8e0b2f9c980e5511fe8db2d68c6f1859b9d83"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Wed Feb 20 17:14:38 2013 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Feb 20 11:39:24 2013 +0100"
      },
      "message": "sched/core: Remove the obsolete and unused nr_uninterruptible() function\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1361351678-8065-1-git-send-email-handai.szj@taobao.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "67cb104b4c30bd52292b6a7f526349aab2dd5cbd",
      "tree": "b7d2659f9c7bfe676016680339c0ffe47ef29afd",
      "parents": [
        "1eaec8212e35aef6606a4e8b40aa9ad9ba87672a",
        "1438ade5670b56d5386c220e1ad4b5a824a1e585"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 22:01:33 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 22:01:33 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"A lot of reorganization is going on mostly to prepare for worker pools\n  with custom attributes so that workqueue can replace custom pool\n  implementations in places including writeback and btrfs and make CPU\n  assignment in crypto more flexible.\n\n  workqueue evolved from purely per-cpu design and implementation, so\n  there are a lot of assumptions regarding being bound to CPUs and even\n  unbound workqueues are implemented as an extension of the model -\n  workqueues running on the special unbound CPU.  Bulk of changes this\n  round are about promoting worker_pools as the top level abstraction\n  replacing global_cwq (global cpu workqueue).  At this point, I\u0027m\n  fairly confident about getting custom worker pools working pretty soon\n  and ready for the next merge window.\n\n  Lai\u0027s patches are replacing the convoluted mb() dancing workqueue has\n  been doing with much simpler mechanism which only depends on\n  assignment atomicity of long.  For details, please read the commit\n  message of 0b3dae68ac (\"workqueue: simplify is-work-item-queued-here\n  test\").  While the change ends up adding one pointer to struct\n  delayed_work, the inflation in percentage is less than five percent\n  and it decouples delayed_work logic a lot more cleaner from usual work\n  handling, removes the unusual memory barrier dancing, and allows for\n  further simplification, so I think the trade-off is acceptable.\n\n  There will be two more workqueue related pull requests and there are\n  some shared commits among them.  I\u0027ll write further pull requests\n  assuming this pull request is pulled first.\"\n\n* \u0027for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (37 commits)\n  workqueue: un-GPL function delayed_work_timer_fn()\n  workqueue: rename cpu_workqueue to pool_workqueue\n  workqueue: reimplement is_chained_work() using current_wq_worker()\n  workqueue: fix is_chained_work() regression\n  workqueue: pick cwq instead of pool in __queue_work()\n  workqueue: make get_work_pool_id() cheaper\n  workqueue: move nr_running into worker_pool\n  workqueue: cosmetic update in try_to_grab_pending()\n  workqueue: simplify is-work-item-queued-here test\n  workqueue: make work-\u003edata point to pool after try_to_grab_pending()\n  workqueue: add delayed_work-\u003ewq to simplify reentrancy handling\n  workqueue: make work_busy() test WORK_STRUCT_PENDING first\n  workqueue: replace WORK_CPU_NONE/LAST with WORK_CPU_END\n  workqueue: post global_cwq removal cleanups\n  workqueue: rename nr_running variables\n  workqueue: remove global_cwq\n  workqueue: remove worker_pool-\u003egcwq\n  workqueue: replace for_each_worker_pool() with for_each_std_worker_pool()\n  workqueue: make freezing/thawing per-pool\n  workqueue: make hotplug processing per-pool\n  ...\n"
    },
    {
      "commit": "d652e1eb8e7b739fccbfb503a3da3e9f640fbf3d",
      "tree": "55ab77bad0cbb045eac0b84b80d63f88f1ae09e6",
      "parents": [
        "8f55cea410dbc56114bb71a3742032070c8108d0",
        "77852fea6e2442a0e654a9292060489895de18c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Main changes:\n\n   - scheduler side full-dynticks (user-space execution is undisturbed\n     and receives no timer IRQs) preparation changes that convert the\n     cputime accounting code to be full-dynticks ready, from Frederic\n     Weisbecker.\n\n   - Initial sched.h split-up changes, by Clark Williams\n\n   - select_idle_sibling() performance improvement by Mike Galbraith:\n\n        \" 1 tbench pair (worst case) in a 10 core + SMT package:\n\n          pre   15.22 MB/sec 1 procs\n          post 252.01 MB/sec 1 procs \"\n\n  - sched_rr_get_interval() ABI fix/change.  We think this detail is not\n    used by apps (so it\u0027s not an ABI in practice), but lets keep it\n    under observation.\n\n  - misc RT scheduling cleanups, optimizations\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  sched/rt: Add \u003clinux/sched/rt.h\u003e header to \u003clinux/init_task.h\u003e\n  cputime: Remove irqsave from seqlock readers\n  sched, powerpc: Fix sched.h split-up build failure\n  cputime: Restore CPU_ACCOUNTING config defaults for PPC64\n  sched/rt: Move rt specific bits into new header file\n  sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n  sched: Move sched.h sysctl bits into separate header\n  sched: Fix signedness bug in yield_to()\n  sched: Fix select_idle_sibling() bouncing cow syndrome\n  sched/rt: Further simplify pick_rt_task()\n  sched/rt: Do not account zero delta_exec in update_curr_rt()\n  cputime: Safely read cputime of full dynticks CPUs\n  kvm: Prepare to add generic guest entry/exit callbacks\n  cputime: Use accessors to read task cputime stats\n  cputime: Allow dynamic switch between tick/virtual based cputime accounting\n  cputime: Generic on-demand virtual cputime accounting\n  cputime: Move default nsecs_to_cputime() to jiffies based cputime file\n  cputime: Librarize per nsecs resolution cputime definitions\n  cputime: Avoid multiplication overflow on utime scaling\n  context_tracking: Export context state for generic vtime\n  ...\n\nFix up conflict in kernel/context_tracking.c due to comment additions.\n"
    },
    {
      "commit": "cdc4e86b58a95005ef500916b4a8e91a0037a822",
      "tree": "208e5eaf42c25fae3dfe5d086687c2a2fa30418b",
      "parents": [
        "993db4b45fd99949d8f6e004a7744b523dca473a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 15 23:47:07 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 19 08:05:53 2013 +0100"
      },
      "message": "cputime: Remove irqsave from seqlock readers\n\nThe reader side code has no requirement to disable interrupts while\nsampling data. The sequence counter is enough to ensure consistency.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "686855f5d833178e518d79e7912cdb3268a9fa69",
      "tree": "2adae2efee0d3ae072084806231a5d0fd9e2b262",
      "parents": [
        "9fb0a7da0c528d9bd49b597aa63b1fe2216c7203"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Thu Feb 14 18:19:58 2013 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Feb 15 16:45:06 2013 +0100"
      },
      "message": "sched: add wait_for_completion_io[_timeout]\n\nThe only difference between wait_for_completion[_timeout]() and\nwait_for_completion_io[_timeout]() is that the latter calls\nio_schedule_timeout() instead of schedule_timeout() so that the caller\nis accounted as waiting for IO, not just sleeping.\n\nThese functions can be used for correct iowait time accounting when the\ncompletion struct is actually used for waiting for IO (e.g. completion\nof a bio request in the block layer).\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8bd75c77b7c6a3954140dd2e20346aef3efe4a35",
      "tree": "10e0d451a58aeb6c8f48b871a848276bf3a8a359",
      "parents": [
        "ce0dbbbb30aee6a835511d5be446462388ba9eee"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:07 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:08 2013 +0100"
      },
      "message": "sched/rt: Move rt specific bits into new header file\n\nMove rt scheduler definitions out of include/linux/sched.h into\nnew file include/linux/sched/rt.h\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094707.7b9f825f@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ce0dbbbb30aee6a835511d5be446462388ba9eee",
      "tree": "c3d4d6f64a0fe7eec9283f4413d111a8d37d7053",
      "parents": [
        "cf4aebc292fac7f34f8345664320e9d4a42ca76c"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:04 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:07 2013 +0100"
      },
      "message": "sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n\nAdd a /proc/sys/kernel scheduler knob named\nsched_rr_timeslice_ms that allows global changing of the\nSCHED_RR timeslice value. User visable value is in milliseconds\nbut is stored as jiffies.  Setting to 0 (zero) resets to the\ndefault (currently 100ms).\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094704.13751796@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cf4aebc292fac7f34f8345664320e9d4a42ca76c",
      "tree": "6eceb9bb2d8382c4499366a8fee060688aad6107",
      "parents": [
        "b2c77a57e4a0a7877e357dead7ee8acc19944f3e"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:46:59 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:50:54 2013 +0100"
      },
      "message": "sched: Move sched.h sysctl bits into separate header\n\nMove the sysctl-related bits from include/linux/sched.h into\na new file: include/linux/sched/sysctl.h. Then update source\nfiles requiring access to those bits by including the new\nheader file.\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094659.06dced96@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b2c77a57e4a0a7877e357dead7ee8acc19944f3e",
      "tree": "fa192b5a058711299c2a8ce2621df6c9bd8f3a99",
      "parents": [
        "c3c186403c6abd32e719f005f0af950155a9e54d",
        "6a61671bb2f3a1bd12cd17b8fca811a624782632"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "message": "Merge tag \u0027full-dynticks-cputime-for-mingo\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/core\n\nPull full-dynticks (user-space execution is undisturbed and\nreceives no timer IRQs) preparation changes that convert the\ncputime accounting code to be full-dynticks ready,\nfrom Frederic Weisbecker:\n\n \"This implements the cputime accounting on full dynticks CPUs.\n\n  Typical cputime stats infrastructure relies on the timer tick and\n  its periodic polling on the CPU to account the amount of time\n  spent by the CPUs and the tasks per high level domains such as\n  userspace, kernelspace, guest, ...\n\n  Now we are preparing to implement full dynticks capability on\n  Linux for Real Time and HPC users who want full CPU isolation.\n  This feature requires a cputime accounting that doesn\u0027t depend\n  on the timer tick.\n\n  To implement it, this new cputime infrastructure plugs into\n  kernel/user/guest boundaries to take snapshots of cputime and\n  flush these to the stats when needed. This performs pretty\n  much like CONFIG_VIRT_CPU_ACCOUNTING except that context location\n  and cputime snaphots are synchronized between write and read\n  side such that the latter can safely retrieve the pending tickless\n  cputime of a task and add it to its latest cputime snapshot to\n  return the correct result to the user.\"\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c3c186403c6abd32e719f005f0af950155a9e54d",
      "tree": "76b0b2bc308c24d0e8b3729993de548fdf4a42aa",
      "parents": [
        "e0a79f529d5ba2507486d498b25da40911d95cf6"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Feb 05 14:37:51 2013 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 12:59:29 2013 +0100"
      },
      "message": "sched: Fix signedness bug in yield_to()\n\nIn 7b270f6099 \"sched: Bail out of yield_to when source and\ntarget runqueue has one task\" we changed this to store -ESRCH so\nit needs to be signed.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: kbuild@01.org\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/20130205113751.GA20521@elgon.mountain\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e0a79f529d5ba2507486d498b25da40911d95cf6",
      "tree": "469947cd4407877ba69aa474cdfed0f2bda61d92",
      "parents": [
        "60334caf37dc7c59120b21faa625534a6fffead0"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "bitbucket@online.de",
        "time": "Mon Jan 28 12:19:25 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Feb 04 20:07:24 2013 +0100"
      },
      "message": "sched: Fix select_idle_sibling() bouncing cow syndrome\n\nIf the previous CPU is cache affine and idle, select it.\n\nThe current implementation simply traverses the sd_llc domain,\ntaking the first idle CPU encountered, which walks buddy pairs\nhand in hand over the package, inflicting excruciating pain.\n\n1 tbench pair (worst case) in a 10 core + SMT package:\n\n  pre   15.22 MB/sec 1 procs\n  post 252.01 MB/sec 1 procs\n\nSigned-off-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1359371965.5783.127.camel@marge.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "60334caf37dc7c59120b21faa625534a6fffead0",
      "tree": "be8e95b454f5e24334a9b8e280ea4fe25f330d61",
      "parents": [
        "fc79e240be5aa379dd36a62158be5a5ee0e4aec7"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Thu Jan 31 18:56:17 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 19:54:58 2013 +0100"
      },
      "message": "sched/rt: Further simplify pick_rt_task()\n\nFunction next_prio() has been removed and pull_rt_task() is the\nonly user of pick_next_highest_task_rt() at the moment.\n\npull_rt_task is not interested in p-\u003enr_cpus_allowed, its only\ninterest is the fact that cpu is allowed to execute p. If\nnr_cpus_allowed \u003d\u003d 1, cpu !\u003d task_cpu(p) and cpu is allowed then\nit means that task p is in the middle of the migration\ntechniques; the task waits until it is moved by migration\nthread. So, lets pull it earlier.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/70871359644177@web16d.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fc79e240be5aa379dd36a62158be5a5ee0e4aec7",
      "tree": "84e29ffa57509f586aff6a31ed0b0461f830fdaa",
      "parents": [
        "62188451f0d63add7ad0cd2a1ae269d600c1663d"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Wed Jan 30 16:50:36 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 31 10:31:13 2013 +0100"
      },
      "message": "sched/rt: Do not account zero delta_exec in update_curr_rt()\n\nThere are several places of consecutive calls of\ndequeue_task_rt() and put_prev_task_rt() in the scheduler.\nFor example, function rt_mutex_setprio() does it.\n\nThe both calls lead to update_curr_rt(), the second of it\nreceives zeroed delta_exec. The only effective action in this\ncase is call of sched_rt_avg_update(), which can change\nrq-\u003eage_stamp and rq-\u003ert_avg. But it is possible in case of\n\"\"floating\"\" rq-\u003eclock. This fact is not reasonable to be\naccounted. Another actions do nothing.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/931541359550236@web1g.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7b270f609982f68f2433442bf167f735e7364b06",
      "tree": "07430a425125c1938fad3befc6debec667310ec4",
      "parents": [
        "c7c9c56ca26f7b9458711b2d78b60b60e0d38ba7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jan 22 13:09:13 2013 +0530"
      },
      "committer": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Jan 29 15:38:37 2013 +0200"
      },
      "message": "sched: Bail out of yield_to when source and target runqueue has one task\n\nIn case of undercomitted scenarios, especially in large guests\nyield_to overhead is significantly high. when run queue length of\nsource and target is one, take an opportunity to bail out and return\n-ESRCH. This return condition can be further exploited to quickly come\nout of PLE handler.\n\n(History: Raghavendra initially worked on break out of kvm ple handler upon\n seeing source runqueue length \u003d 1, but it had to export rq length).\n Peter came up with the elegant idea of return -ESRCH in scheduler core.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nRaghavendra, Checking the rq length of target vcpu condition added.(thanks Avi)\nReviewed-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Raghavendra K T \u003craghavendra.kt@linux.vnet.ibm.com\u003e\nAcked-by: Andrew Jones \u003cdrjones@redhat.com\u003e\nTested-by: Chegu Vinod \u003cchegu_vinod@hp.com\u003e\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\n"
    },
    {
      "commit": "6a61671bb2f3a1bd12cd17b8fca811a624782632",
      "tree": "0afc2915fb7e517472710a49a524510322dd5baa",
      "parents": [
        "c11f11fcbdb5be790c565aed46411486a7586afc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 16 20:00:34 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 20:35:47 2013 +0100"
      },
      "message": "cputime: Safely read cputime of full dynticks CPUs\n\nWhile remotely reading the cputime of a task running in a\nfull dynticks CPU, the values stored in utime/stime fields\nof struct task_struct may be stale. Its values may be those\nof the last kernel \u003c-\u003e user transition time snapshot and\nwe need to add the tickless time spent since this snapshot.\n\nTo fix this, flush the cputime of the dynticks CPUs on\nkernel \u003c-\u003e user transition and record the time / context\nwhere we did this. Then on top of this snapshot and the current\ntime, perform the fixup on the reader side from task_times()\naccessors.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[fixed kvm module related build errors]\nSigned-off-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\n"
    },
    {
      "commit": "c11f11fcbdb5be790c565aed46411486a7586afc",
      "tree": "56552d483192df72e9c2bbb4c3b976ba05740626",
      "parents": [
        "6fac4829ce0ef9b7f24369086ce5f0e9f38d37bc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jan 21 00:50:22 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 20:35:40 2013 +0100"
      },
      "message": "kvm: Prepare to add generic guest entry/exit callbacks\n\nDo some ground preparatory work before adding guest_enter()\nand guest_exit() context tracking callbacks. Those will\nbe later used to read the guest cputime safely when we\nrun in full dynticks mode.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6fac4829ce0ef9b7f24369086ce5f0e9f38d37bc",
      "tree": "44da712b66d778c2fd701f9c96b00e108530e1a9",
      "parents": [
        "3f4724ea85b7d9055a9976fa8f30b471bdfbca93"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 13 14:20:55 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 19:23:31 2013 +0100"
      },
      "message": "cputime: Use accessors to read task cputime stats\n\nThis is in preparation for the full dynticks feature. While\nremotely reading the cputime of a task running in a full\ndynticks CPU, we\u0027ll need to do some extra-computation. This\nway we can account the time it spent tickless in userspace\nsince its last cputime snapshot.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3f4724ea85b7d9055a9976fa8f30b471bdfbca93",
      "tree": "aaa1792d0b78ea33c07ee6f5e707a07d9ef1795e",
      "parents": [
        "abf917cd91cbb73952758f9741e2fa65002a48ee"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jul 16 18:00:34 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 19:23:29 2013 +0100"
      },
      "message": "cputime: Allow dynamic switch between tick/virtual based cputime accounting\n\nAllow to dynamically switch between tick and virtual based\ncputime accounting. This way we can provide a kind of \"on-demand\"\nvirtual based cputime accounting. In this mode, the kernel relies\non the context tracking subsystem to dynamically probe on kernel\nboundaries.\n\nThis is in preparation for being able to stop the timer tick in\nmore places than just the idle state. Doing so will depend on\nCONFIG_VIRT_CPU_ACCOUNTING_GEN which makes it possible to account\nthe cputime without the tick by hooking on kernel/user boundaries.\n\nDepending whether the tick is stopped or not, we can switch between\ntick and vtime based accounting anytime in order to minimize the\noverhead associated to user hooks.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "abf917cd91cbb73952758f9741e2fa65002a48ee",
      "tree": "5f975b87615dcaed9c98bc74b4548d568b92dcbc",
      "parents": [
        "ae8dda5c473bf1a85913942adcaac449e5754bf3"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 25 07:56:04 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 19:23:27 2013 +0100"
      },
      "message": "cputime: Generic on-demand virtual cputime accounting\n\nIf we want to stop the tick further idle, we need to be\nable to account the cputime without using the tick.\n\nVirtual based cputime accounting solves that problem by\nhooking into kernel/user boundaries.\n\nHowever implementing CONFIG_VIRT_CPU_ACCOUNTING require\nlow level hooks and involves more overhead. But we already\nhave a generic context tracking subsystem that is required\nfor RCU needs by archs which plan to shut down the tick\noutside idle.\n\nThis patch implements a generic virtual based cputime\naccounting that relies on these generic kernel/user hooks.\n\nThere are some upsides of doing this:\n\n- This requires no arch code to implement CONFIG_VIRT_CPU_ACCOUNTING\nif context tracking is already built (already necessary for RCU in full\ntickless mode).\n\n- We can rely on the generic context tracking subsystem to dynamically\n(de)activate the hooks, so that we can switch anytime between virtual\nand tick based accounting. This way we don\u0027t have the overhead\nof the virtual accounting when the tick is running periodically.\n\nAnd one downside:\n\n- There is probably more overhead than a native virtual based cputime\naccounting. But this relies on hooks that are already set anyway.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ae8dda5c473bf1a85913942adcaac449e5754bf3",
      "tree": "7cb2d086198296ac862c4c96a627c3686af17842",
      "parents": [
        "39613766e8826756a4bf8c74274eb971c3c1d929"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 16 18:02:04 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 19:23:25 2013 +0100"
      },
      "message": "cputime: Move default nsecs_to_cputime() to jiffies based cputime file\n\nIf the architecture doesn\u0027t provide an implementation of\nnsecs_to_cputime(), the cputime accounting core uses a\ndefault one that converts the nanoseconds to jiffies. However\nthis only makes sense if we use the jiffies based cputime.\n\nFor now it doesn\u0027t matter much because this API is only\ncalled on code that uses jiffies based cputime accounting.\n\nBut the code may evolve and this API may be used more\nbroadly in the future. Keeping this default implementation\naround is very error prone as it may introduce a bug and\nhide it on architectures that don\u0027t override this API.\n\nFix this by moving this definition to the jiffies based\ncputime headers as it is the only place where it belongs to.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "62188451f0d63add7ad0cd2a1ae269d600c1663d",
      "tree": "7ed03f5c0a4a10cdde5f72bb0c81a29f1667ce1d",
      "parents": [
        "57d2aa00dcec67afa52478730f2b524521af14fb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jan 26 17:19:42 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 27 14:04:44 2013 +0100"
      },
      "message": "cputime: Avoid multiplication overflow on utime scaling\n\nWe scale stime, utime values based on rtime (sum_exec_runtime\nconverted to jiffies). During scaling we multiple rtime * utime,\nwhich seems to be fine, since both values are converted to u64,\nbut it\u0027s not.\n\nLet assume HZ is 1000 - 1ms tick. Process consist of 64 threads,\nrun for 1 day, threads utilize 100% cpu on user space. Machine\nhas 64 cpus.\n\nProcess rtime \u003d utime will be 64 * 24 * 60 * 60 * 1000 jiffies,\nwhich is 0x149970000. Multiplication rtime * utime result is\n0x1a855771100000000, which can not be covered in 64 bits.\n\nResult of overflow is stall of utime values visible in user\nspace (prev_utime in kernel), even if application still consume\nlot of CPU time.\n\nA solution to solve this is to perform the multiplication on\nstime instead of utime. It\u0027s easy to grow the utime value fast\nwith a CPU bound thread in userspace for example. Now we assume\nthat doing so with stime is much harder. In most cases a task\nshouldn\u0027t ever spend much time in kernel space as it tends to\nsleep waiting for jobs completion when they take long to\nachieve. IO is the typical example of that.\n\nHence scaling the cputime by performing the multiplication on\nstime instead of utime should considerably reduce the chances of\nan overflow on most workloads.\n\nThis is largely inspired by a patch from Stanislaw Gruszka:\nhttp://lkml.kernel.org/r/20130107113144.GA7544@redhat.com\n\nInspired-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nReported-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1359217182-25184-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cff3c124a7e82ca0ea1d6864b27ef18c403c0773",
      "tree": "1edf50c211024b6ec2dc34dd592cbe2e4c9f5f81",
      "parents": [
        "38dc3348e36d6cbe6ad51d771e4db948cda5b0e3"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Jan 25 14:14:23 2013 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 15:23:15 2013 +0100"
      },
      "message": "sched/debug: Fix format string for 32-bit platforms\n\nThe type returned from atomic64_t can be either unsigned\nlong or unsigned long long, depending on the architecture.\nUsing a cast to unsigned long long lets us use the same\nformat string for all architectures.\n\nWithout this patch, building with scheduler debugging\nenabled results in:\n\n  kernel/sched/debug.c: In function \u0027print_cfs_rq\u0027:\n  kernel/sched/debug.c:225:2: warning: format \u0027%ld\u0027 expects argument of type \u0027long int\u0027, but argument 4 has type \u0027long long int\u0027 [-Wformat]\n  kernel/sched/debug.c:225:2: warning: format \u0027%ld\u0027 expects argument of type \u0027long int\u0027, but argument 3 has type \u0027long long int\u0027 [-Wformat]\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: linux-arm-kernel@list.infradead.org\nLink: http://lkml.kernel.org/r/1359123276-15833-7-git-send-email-arnd@arndb.de\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "38dc3348e36d6cbe6ad51d771e4db948cda5b0e3",
      "tree": "07e6792c56b477ae2e7a49d9f5fa502d884e1247",
      "parents": [
        "aa7f67304d1a03180f463258aa6f15a8b434e77d"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Jan 25 14:14:22 2013 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 15:23:14 2013 +0100"
      },
      "message": "sched: Fix warning in kernel/sched/fair.c\n\na4c96ae319 \"sched: Unthrottle rt runqueues in\n__disable_runtime()\" turned the unthrottle_offline_cfs_rqs\nfunction into a static symbol, which now triggers a warning\nabout it being potentially unused:\n\n  kernel/sched/fair.c:2055:13: warning: \u0027unthrottle_offline_cfs_rqs\u0027 defined but not used [-Wunused-function]\n\nMarking it __maybe_unused shuts up the gcc warning and lets the\ncompiler safely drop the function body when it\u0027s not being used.\n\nTo reproduce, build the ARM bcm2835_defconfig.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Peter Boonstoppel \u003cpboonstoppel@nvidia.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: linux-arm-kernel@list.infradead.org\nLink: http://lkml.kernel.org/r/1359123276-15833-6-git-send-email-arnd@arndb.de\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "57d2aa00dcec67afa52478730f2b524521af14fb",
      "tree": "ee5ba553c8d22aaeb5c4ecf946d298ddb7d63fa0",
      "parents": [
        "16c8f1c72ece3871a6c93003cd888fc2d003a7eb"
      ],
      "author": {
        "name": "Ying Xue",
        "email": "ying.xue@windriver.com",
        "time": "Tue Jul 17 15:03:43 2012 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 08:31:54 2013 +0100"
      },
      "message": "sched/rt: Avoid updating RT entry timeout twice within one tick period\n\nThe issue below was found in 2.6.34-rt rather than mainline rt\nkernel, but the issue still exists upstream as well.\n\nSo please let me describe how it was noticed on 2.6.34-rt:\n\nOn this version, each softirq has its own thread, it means there\nis at least one RT FIFO task per cpu. The priority of these\ntasks is set to 49 by default. If user launches an RT FIFO task\nwith priority lower than 49 of softirq RT tasks, it\u0027s possible\nthere are two RT FIFO tasks enqueued one cpu runqueue at one\nmoment. By current strategy of balancing RT tasks, when it comes\nto RT tasks, we really need to put them off to a CPU that they\ncan run on as soon as possible. Even if it means a bit of cache\nline flushing, we want RT tasks to be run with the least latency.\n\nWhen the user RT FIFO task which just launched before is\nrunning, the sched timer tick of the current cpu happens. In this\ntick period, the timeout value of the user RT task will be\nupdated once. Subsequently, we try to wake up one softirq RT\ntask on its local cpu. As the priority of current user RT task\nis lower than the softirq RT task, the current task will be\npreempted by the higher priority softirq RT task. Before\npreemption, we check to see if current can readily move to a\ndifferent cpu. If so, we will reschedule to allow the RT push logic\nto try to move current somewhere else. Whenever the woken\nsoftirq RT task runs, it first tries to migrate the user FIFO RT\ntask over to a cpu that is running a task of lesser priority. If\nmigration is done, it will send a reschedule request to the found\ncpu by IPI interrupt. Once the target cpu responds the IPI\ninterrupt, it will pick the migrated user RT task to preempt its\ncurrent task. When the user RT task is running on the new cpu,\nthe sched timer tick of the cpu fires. So it will tick the user\nRT task again. This also means the RT task timeout value will be\nupdated again. As the migration may be done in one tick period,\nit means the user RT task timeout value will be updated twice\nwithin one tick.\n\nIf we set a limit on the amount of cpu time for the user RT task\nby setrlimit(RLIMIT_RTTIME), the SIGXCPU signal should be posted\nupon reaching the soft limit.\n\nBut exactly when the SIGXCPU signal should be sent depends on the\nRT task timeout value. In fact the timeout mechanism of sending\nthe SIGXCPU signal assumes the RT task timeout is increased once\nevery tick.\n\nHowever, currently the timeout value may be added twice per\ntick. So it results in the SIGXCPU signal being sent earlier\nthan expected.\n\nTo solve this issue, we prevent the timeout value from increasing\ntwice within one tick time by remembering the jiffies value of\nlast updating the timeout. As long as the RT task\u0027s jiffies is\ndifferent with the global jiffies value, we allow its timeout to\nbe updated.\n\nSigned-off-by: Ying Xue \u003cying.xue@windriver.com\u003e\nSigned-off-by: Fan Du \u003cfan.du@windriver.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1342508623-2887-1-git-send-email-ying.xue@windriver.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aa7f67304d1a03180f463258aa6f15a8b434e77d",
      "tree": "14c1f290447fb84483c0eeed81806835a07d73f8",
      "parents": [
        "ff7532ca2c631e7e96dcd305a967b610259dc0ea"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Jan 14 11:55:31 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 08:20:47 2013 +0100"
      },
      "message": "sched/rt: Use root_domain of rt_rq not current processor\n\nWhen the system has multiple domains do_sched_rt_period_timer()\ncan run on any CPU and may iterate over all rt_rq in\ncpu_online_mask.  This means when balance_runtime() is run for a\ngiven rt_rq that rt_rq may be in a different rd than the current\nprocessor.  Thus if we use smp_processor_id() to get rd in\ndo_balance_runtime() we may borrow runtime from a rt_rq that is\nnot part of our rd.\n\nThis changes do_balance_runtime to get the rd from the passed in\nrt_rq ensuring that we borrow runtime only from the correct rd\nfor the given rt_rq.\n\nThis fixes a BUG at kernel/sched/rt.c:687! in __disable_runtime\nwhen we try reclaim runtime lent to other rt_rq but runtime has\nbeen lent to a rt_rq in another rd.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: peterz@infradead.org\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1358186131-29494-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "2a73991b76cbd38c4a0c6704449ccc08c89c3ff3",
      "tree": "cde2e683c5d2139dcde24c8c2c90467fa3d5b91a",
      "parents": [
        "ace783b9bbfa2182b4a561498db3f09a0c56bc79"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Thu Jan 24 14:31:11 2013 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 24 12:05:18 2013 -0800"
      },
      "message": "sched: remove redundant NULL cgroup check in task_group_path()\n\nA task_group won\u0027t be online (thus no one can see it) until\ncpu_cgroup_css_online(), and at that time tg-\u003ecss.cgroup has\nbeen initialized, so this NULL check is redundant.\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "ace783b9bbfa2182b4a561498db3f09a0c56bc79",
      "tree": "e490b561cbd0d14f6514f4f2cf1413bcab05c275",
      "parents": [
        "fe1c06ca7523baa668c1eaf1e1016fa64753c32e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Thu Jan 24 14:30:48 2013 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 24 12:05:18 2013 -0800"
      },
      "message": "sched: split out css_online/css_offline from tg creation/destruction\n\nThis is a preparaton for later patches.\n\n- What do we gain from cpu_cgroup_css_online():\n\nAfter ss-\u003ecss_alloc() and before ss-\u003ecss_online(), there\u0027s a small\nwindow that tg-\u003ecss.cgroup is NULL. With this change, tg won\u0027t be seen\nbefore ss-\u003ecss_online(), where it\u0027s added to the global list, so we\u0027re\nguaranteed we\u0027ll never see NULL tg-\u003ecss.cgroup.\n\n- What do we gain from cpu_cgroup_css_offline():\n\ntg is freed via RCU, so is cgroup. Without this change, This is how\nsynchronization works:\n\ncgroup_rmdir()\n  no ss-\u003ecss_offline()\ndiput()\n  syncornize_rcu()\n  ss-\u003ecss_free()       \u003c-- unregister tg, and free it via call_rcu()\n  kfree_rcu(cgroup)    \u003c-- wait possible refs to cgroup, and free cgroup\n\nWe can\u0027t just kfree(cgroup), because tg might access tg-\u003ecss.cgroup.\n\nWith this change:\n\ncgroup_rmdir()\n  ss-\u003ecss_offline()    \u003c-- unregister tg\ndiput()\n  synchronize_rcu()    \u003c-- wait possible refs to tg and cgroup\n  ss-\u003ecss_free()       \u003c-- free tg\n  kfree_rcu(cgroup)    \u003c-- free cgroup\n\nAs you see, kfree_rcu() is redundant now.\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "16c8f1c72ece3871a6c93003cd888fc2d003a7eb",
      "tree": "684644cac424f066b238c9b8003a4c61dc242209",
      "parents": [
        "1158ddb55416855fd17abe3214298f736f00426a"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Thu Nov 08 13:33:46 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 24 18:06:11 2013 +0100"
      },
      "message": "sched/fair: Set se-\u003evruntime directly in place_entity()\n\nWe are first storing the new vruntime in a variable and then\nstoring it in se-\u003evruntime. Simply update se-\u003evruntime directly.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nCc: linaro-dev@lists.linaro.org\nCc: patches@linaro.org\nCc: peterz@infradead.org\nLink: http://lkml.kernel.org/r/ae59db1945518d6f6250920d46eb1f1a9cc0024e.1352361704.git.viresh.kumar@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1158ddb55416855fd17abe3214298f736f00426a",
      "tree": "493bc349d3e2b33b6c851ff72b2b15b7cc683ee8",
      "parents": [
        "a59f4e079d19464eebb9b06513a1d4f55fdae5ba"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Fri Nov 23 00:02:15 2012 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 24 17:14:30 2013 +0100"
      },
      "message": "sched/rt: Add reschedule check to switched_from_rt()\n\nReschedule rq-\u003ecurr if the first RT task has just been\npulled to the rq.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tkhai Kirill \u003ctkhai@yandex.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/118761353614535@web28f.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a59f4e079d19464eebb9b06513a1d4f55fdae5ba",
      "tree": "608a8b463cbc07bd252644ec25f73dfed480a71c",
      "parents": [
        "ff7532ca2c631e7e96dcd305a967b610259dc0ea"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "gaoyang.zyh@taobao.com",
        "time": "Tue Jan 08 12:56:52 2013 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 24 14:41:00 2013 +0100"
      },
      "message": "sched: Fix the broken sched_rr_get_interval()\n\nThe caller of sched_sliced() should pass se.cfs_rq and se as the\narguments, however in sched_rr_get_interval() we gave it\nrq.cfs_rq and se, which made the following computation obviously\nwrong.\n\nThe change was introduced by commit:\n\n  77034937dc45 sched: fix crash in sys_sched_rr_get_interval()\n\n... 5 years ago, while it had been the correct \u0027cfs_rq_of\u0027 before\nthe commit. The change seems to be irrelevant to the commit\nmsg, which was to return a 0 timeslice for tasks that are on an\nidle runqueue. So I believe that was just a plain typo.\n\nSigned-off-by: Zhu Yanhai \u003cgaoyang.zyh@taobao.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1357621012-15039-1-git-send-email-gaoyang.zyh@taobao.com\n[ Since this is an ABI and an old bug, we\u0027ll test this via a\n  slow upstream route, to hopefully discover any app breakage. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9067ac85d533651b98c2ff903182a20cbb361fcb",
      "tree": "30e741b4f1fa71b155c216d7e7212e3befa3cde3",
      "parents": [
        "9899d11f654474d2d54ea52ceaa2a1f4db3abd68"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jan 21 20:48:17 2013 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 22 10:08:17 2013 -0800"
      },
      "message": "wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task\n\nwake_up_process() should never wakeup a TASK_STOPPED/TRACED task.\nChange it to use TASK_NORMAL and add the WARN_ON().\n\nTASK_ALL has no other users, probably can be killed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "373d4d099761cb1f637bed488ab3871945882273",
      "tree": "954bef7bc724aee105dd246d5f2b1ea04ed38b20",
      "parents": [
        "64748a2c9062da0c32b59c1b368a86fc4613b1e1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 21 17:17:39 2013 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 21 17:17:57 2013 +1030"
      },
      "message": "taint: add explicit flag to show whether lock dep is still OK.\n\nFix up all callers as they were before, with make one change: an\nunsigned module taints the kernel, but doesn\u0027t turn off lockdep.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ea138446e51f7bfe55cdeffa3f1dd9cafc786bd8",
      "tree": "a441a0546a062817946eb1c28f7d2f9cdaf6062a",
      "parents": [
        "111c225a5f8d872bc9327ada18d13b75edaa34be"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 18 14:05:55 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 18 14:05:55 2013 -0800"
      },
      "message": "workqueue: rename kernel/workqueue_sched.h to kernel/workqueue_internal.h\n\nWorkqueue wants to expose more interface internal to kernel/.  Instead\nof adding a new header file, repurpose kernel/workqueue_sched.h.\nRename it to workqueue_internal.h and add include protector.\n\nThis patch doesn\u0027t introduce any functional changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "2832bc19f6668fd00116f61f821105040599ef8b",
      "tree": "9839b9321ab7c3dc86f003d69cae522a78d02f20",
      "parents": [
        "cda73a10eb3f493871ed39f468db50a65ebeddce"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Dec 19 17:42:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 07:06:56 2012 -0800"
      },
      "message": "sched: numa: ksm: fix oops in task_numa_placment()\n\ntask_numa_placement() oopsed on NULL p-\u003emm when task_numa_fault() got\ncalled in the handling of break_ksm() for ksmd.  That might be a\npeculiar case, which perhaps KSM could takes steps to avoid? but it\u0027s\nmore robust if task_numa_placement() allows for such a possibility.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a2b60b17b3e48a418695a94bd2420f6ab32e519",
      "tree": "54b7792fa68b8890f710fa6398b6ba8626a039a8",
      "parents": [
        "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
        "98f842e675f96ffac96e6c50315790912b2812be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"While small this set of changes is very significant with respect to\n  containers in general and user namespaces in particular.  The user\n  space interface is now complete.\n\n  This set of changes adds support for unprivileged users to create user\n  namespaces and as a user namespace root to create other namespaces.\n  The tyranny of supporting suid root preventing unprivileged users from\n  using cool new kernel features is broken.\n\n  This set of changes completes the work on setns, adding support for\n  the pid, user, mount namespaces.\n\n  This set of changes includes a bunch of basic pid namespace\n  cleanups/simplifications.  Of particular significance is the rework of\n  the pid namespace cleanup so it no longer requires sending out\n  tendrils into all kinds of unexpected cleanup paths for operation.  At\n  least one case of broken error handling is fixed by this cleanup.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been converted from regular files\n  to magic symlinks which prevents incorrect caching by the VFS,\n  ensuring the files always refer to the namespace the process is\n  currently using and ensuring that the ptrace_mayaccess permission\n  checks are always applied.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been given stable inode numbers\n  so it is now possible to see if different processes share the same\n  namespaces.\n\n  Through the David Miller\u0027s net tree are changes to relax many of the\n  permission checks in the networking stack to allowing the user\n  namespace root to usefully use the networking stack.  Similar changes\n  for the mount namespace and the pid namespace are coming through my\n  tree.\n\n  Two small changes to add user namespace support were commited here adn\n  in David Miller\u0027s -net tree so that I could complete the work on the\n  /proc/\u003cpid\u003e/ns/ files in this tree.\n\n  Work remains to make it safe to build user namespaces and 9p, afs,\n  ceph, cifs, coda, gfs2, ncpfs, nfs, nfsd, ocfs2, and xfs so the\n  Kconfig guard remains in place preventing that user namespaces from\n  being built when any of those filesystems are enabled.\n\n  Future design work remains to allow root users outside of the initial\n  user namespace to mount more than just /proc and /sys.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (38 commits)\n  proc: Usable inode numbers for the namespace file descriptors.\n  proc: Fix the namespace inode permission checks.\n  proc: Generalize proc inode allocation\n  userns: Allow unprivilged mounts of proc and sysfs\n  userns: For /proc/self/{uid,gid}_map derive the lower userns from the struct file\n  procfs: Print task uids and gids in the userns that opened the proc file\n  userns: Implement unshare of the user namespace\n  userns: Implent proc namespace operations\n  userns: Kill task_user_ns\n  userns: Make create_new_namespaces take a user_ns parameter\n  userns: Allow unprivileged use of setns.\n  userns: Allow unprivileged users to create new namespaces\n  userns: Allow setting a userns mapping to your current uid.\n  userns: Allow chown and setgid preservation\n  userns: Allow unprivileged users to create user namespaces.\n  userns: Ignore suid and sgid on binaries if the uid or gid can not be mapped\n  userns: fix return value on mntns_install() failure\n  vfs: Allow unprivileged manipulation of the mount namespace.\n  vfs: Only support slave subtrees across different user namespaces\n  vfs: Add a user namespace reference from struct mnt_namespace\n  ...\n"
    },
    {
      "commit": "221392c3ad0432e39fd74a349364f66cb0ed78f6",
      "tree": "cc47a75ade22ee1e32da36c67f3dea2bb9a42393",
      "parents": [
        "a4f1de176614f634c367e5994a7bcc428c940df0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Dec 17 14:05:53 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 08:25:50 2012 -0800"
      },
      "message": "sched: numa: Fix build error if CONFIG_NUMA_BALANCING \u0026\u0026 !CONFIG_TRANSPARENT_HUGEPAGE\n\nMichal Hocko reported that the following build error occurs if\nCONFIG_NUMA_BALANCING is set without THP support\n\n  kernel/sched/fair.c: In function ‘task_numa_work’:\n  kernel/sched/fair.c:932:55: error: call to ‘__build_bug_failed’ declared with attribute error: BUILD_BUG failed\n\nThe problem is that HPAGE_PMD_SHIFT triggers a BUILD_BUG() on\n!CONFIG_TRANSPARENT_HUGEPAGE. This patch addresses the problem.\n\nReported-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d59eebc5e137bd89c6351e4c70e90ba1d0dc234",
      "tree": "b4ddfd0b057454a7437a3b4e3074a3b8b4b03817",
      "parents": [
        "11520e5e7c1855fc3bf202bb3be35a39d9efa034",
        "4fc3f1d66b1ef0d7b8dc11f4ff1cc510f78b37d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 14:33:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 15:18:08 2012 -0800"
      },
      "message": "Merge tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma\n\nPull Automatic NUMA Balancing bare-bones from Mel Gorman:\n \"There are three implementations for NUMA balancing, this tree\n  (balancenuma), numacore which has been developed in tip/master and\n  autonuma which is in aa.git.\n\n  In almost all respects balancenuma is the dumbest of the three because\n  its main impact is on the VM side with no attempt to be smart about\n  scheduling.  In the interest of getting the ball rolling, it would be\n  desirable to see this much merged for 3.8 with the view to building\n  scheduler smarts on top and adapting the VM where required for 3.9.\n\n  The most recent set of comparisons available from different people are\n\n    mel:    https://lkml.org/lkml/2012/12/9/108\n    mingo:  https://lkml.org/lkml/2012/12/7/331\n    tglx:   https://lkml.org/lkml/2012/12/10/437\n    srikar: https://lkml.org/lkml/2012/12/10/397\n\n  The results are a mixed bag.  In my own tests, balancenuma does\n  reasonably well.  It\u0027s dumb as rocks and does not regress against\n  mainline.  On the other hand, Ingo\u0027s tests shows that balancenuma is\n  incapable of converging for this workloads driven by perf which is bad\n  but is potentially explained by the lack of scheduler smarts.  Thomas\u0027\n  results show balancenuma improves on mainline but falls far short of\n  numacore or autonuma.  Srikar\u0027s results indicate we all suffer on a\n  large machine with imbalanced node sizes.\n\n  My own testing showed that recent numacore results have improved\n  dramatically, particularly in the last week but not universally.\n  We\u0027ve butted heads heavily on system CPU usage and high levels of\n  migration even when it shows that overall performance is better.\n  There are also cases where it regresses.  Of interest is that for\n  specjbb in some configurations it will regress for lower numbers of\n  warehouses and show gains for higher numbers which is not reported by\n  the tool by default and sometimes missed in treports.  Recently I\n  reported for numacore that the JVM was crashing with\n  NullPointerExceptions but currently it\u0027s unclear what the source of\n  this problem is.  Initially I thought it was in how numacore batch\n  handles PTEs but I\u0027m no longer think this is the case.  It\u0027s possible\n  numacore is just able to trigger it due to higher rates of migration.\n\n  These reports were quite late in the cycle so I/we would like to start\n  with this tree as it contains much of the code we can agree on and has\n  not changed significantly over the last 2-3 weeks.\"\n\n* tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma: (50 commits)\n  mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable\n  mm/rmap: Convert the struct anon_vma::mutex to an rwsem\n  mm: migrate: Account a transhuge page properly when rate limiting\n  mm: numa: Account for failed allocations and isolations as migration failures\n  mm: numa: Add THP migration for the NUMA working set scanning fault case build fix\n  mm: numa: Add THP migration for the NUMA working set scanning fault case.\n  mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n  mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG\n  mm: sched: numa: Control enabling and disabling of NUMA balancing\n  mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate\n  mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task\u003c-\u003enode relationships\n  mm: numa: migrate: Set last_nid on newly allocated page\n  mm: numa: split_huge_page: Transfer last_nid on tail page\n  mm: numa: Introduce last_nid to the page frame\n  sched: numa: Slowly increase the scanning period as NUMA faults are handled\n  mm: numa: Rate limit setting of pte_numa if node is saturated\n  mm: numa: Rate limit the amount of memory that is migrated between nodes\n  mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting\n  mm: numa: Migrate pages handled during a pmd_numa hinting fault\n  mm: numa: Migrate on reference policy\n  ...\n"
    },
    {
      "commit": "17bc14b767cf0692420c43dbe5310ae98a5a7836",
      "tree": "9b0f339e5d9769a51acdeb7a246f6e7522efa966",
      "parents": [
        "7313264b899bbf3988841296265a6e0e8a7b6521"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 14 07:20:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 14 07:20:43 2012 -0800"
      },
      "message": "Revert \"sched: Update_cfs_shares at period edge\"\n\nThis reverts commit f269ae0469fc882332bdfb5db15d3c1315fe2a10.\n\nIt turns out it causes a very noticeable interactivity regression with\nCONFIG_SCHED_AUTOGROUP (test-case: \"make -j32\" of the kernel in a\nterminal window, while scrolling in a browser - the autogrouping means\nthat the two end up in separate cgroups, and the browser should be\nsmooth as silk despite the high load).\n\nSays Paul Turner:\n \"It seems that the update-throttling on the wake-side is reducing the\n  interactive tasks\u0027 ability to preempt.  While I suspect the right\n  longer term answer here is force these updates only in the\n  cross-cgroup case; this is less trivial.  For this release I believe\n  the right answer is either going to be a revert or restore the updates\n  on the enqueue-side.\"\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nBisected-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Paul Turner \u003cpjt@google.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66cdd0ceaf65a18996f561b770eedde1d123b019",
      "tree": "4892eaa422d366fce5d1e866ff1fe0988af95569",
      "parents": [
        "896ea17d3da5f44b2625c9cda9874d7dfe447393",
        "58b7825bc324da55415034a9f6ca5d716b8fd898"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 15:31:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 15:31:08 2012 -0800"
      },
      "message": "Merge tag \u0027kvm-3.8-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM updates from Marcelo Tosatti:\n \"Considerable KVM/PPC work, x86 kvmclock vsyscall support,\n  IA32_TSC_ADJUST MSR emulation, amongst others.\"\n\nFix up trivial conflict in kernel/sched/core.c due to cross-cpu\nmigration notifier added next to rq migration call-back.\n\n* tag \u0027kvm-3.8-1\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (156 commits)\n  KVM: emulator: fix real mode segment checks in address linearization\n  VMX: remove unneeded enable_unrestricted_guest check\n  KVM: VMX: fix DPL during entry to protected mode\n  x86/kexec: crash_vmclear_local_vmcss needs __rcu\n  kvm: Fix irqfd resampler list walk\n  KVM: VMX: provide the vmclear function and a bitmap to support VMCLEAR in kdump\n  x86/kexec: VMCLEAR VMCSs loaded on all cpus if necessary\n  KVM: MMU: optimize for set_spte\n  KVM: PPC: booke: Get/set guest EPCR register using ONE_REG interface\n  KVM: PPC: bookehv: Add EPCR support in mtspr/mfspr emulation\n  KVM: PPC: bookehv: Add guest computation mode for irq delivery\n  KVM: PPC: Make EPCR a valid field for booke64 and bookehv\n  KVM: PPC: booke: Extend MAS2 EPN mask for 64-bit\n  KVM: PPC: e500: Mask MAS2 EPN high 32-bits in 32/64 tlbwe emulation\n  KVM: PPC: Mask ea\u0027s high 32-bits in 32/64 instr emulation\n  KVM: PPC: e500: Add emulation helper for getting instruction ea\n  KVM: PPC: bookehv64: Add support for interrupt handling\n  KVM: PPC: bookehv: Remove GET_VCPU macro from exception handler\n  KVM: PPC: booke: Fix get_tb() compile error on 64-bit\n  KVM: PPC: e500: Silence bogus GCC warning in tlb code\n  ...\n"
    },
    {
      "commit": "d206e09036d6201f90b2719484c8a59526c46125",
      "tree": "84b9057919bcb8cfd1cff47baa5fc74457e77d6d",
      "parents": [
        "fef3ff2eb777e76cfa5ae67591982d902c17139c",
        "15ef4ffaa797034d5ff82844daf8f595d7c6d53c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"A lot of activities on cgroup side.  The big changes are focused on\n  making cgroup hierarchy handling saner.\n\n   - cgroup_rmdir() had peculiar semantics - it allowed cgroup\n     destruction to be vetoed by individual controllers and tried to\n     drain refcnt synchronously.  The vetoing never worked properly and\n     caused good deal of contortions in cgroup.  memcg was the last\n     reamining user.  Michal Hocko removed the usage and cgroup_rmdir()\n     path has been simplified significantly.  This was done in a\n     separate branch so that the memcg people can base further memcg\n     changes on top.\n\n   - The above allowed cleaning up cgroup lifecycle management and\n     implementation of generic cgroup iterators which are used to\n     improve hierarchy support.\n\n   - cgroup_freezer updated to allow migration in and out of a frozen\n     cgroup and handle hierarchy.  If a cgroup is frozen, all descendant\n     cgroups are frozen.\n\n   - netcls_cgroup and netprio_cgroup updated to handle hierarchy\n     properly.\n\n   - Various fixes and cleanups.\n\n   - Two merge commits.  One to pull in memcg and rmdir cleanups (needed\n     to build iterators).  The other pulled in cgroup/for-3.7-fixes for\n     device_cgroup fixes so that further device_cgroup patches can be\n     stacked on top.\"\n\nFixed up a trivial conflict in mm/memcontrol.c as per Tejun (due to\ncommit bea8c150a7 (\"memcg: fix hotplugged memory zone oops\") in master\ntouching code close to commit 2ef37d3fe4 (\"memcg: Simplify\nmem_cgroup_force_empty_list error handling\") in for-3.8)\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (65 commits)\n  cgroup: update Documentation/cgroups/00-INDEX\n  cgroup_rm_file: don\u0027t delete the uncreated files\n  cgroup: remove subsystem files when remounting cgroup\n  cgroup: use cgroup_addrm_files() in cgroup_clear_directory()\n  cgroup: warn about broken hierarchies only after css_online\n  cgroup: list_del_init() on removed events\n  cgroup: fix lockdep warning for event_control\n  cgroup: move list add after list head initilization\n  netprio_cgroup: allow nesting and inherit config on cgroup creation\n  netprio_cgroup: implement netprio[_set]_prio() helpers\n  netprio_cgroup: use cgroup-\u003eid instead of cgroup_netprio_state-\u003eprioidx\n  netprio_cgroup: reimplement priomap expansion\n  netprio_cgroup: shorten variable names in extend_netdev_table()\n  netprio_cgroup: simplify write_priomap()\n  netcls_cgroup: move config inheritance to -\u003ecss_online() and remove .broken_hierarchy marking\n  cgroup: remove obsolete guarantee from cgroup_task_migrate.\n  cgroup: add cgroup-\u003eid\n  cgroup, cpuset: remove cgroup_subsys-\u003epost_clone()\n  cgroup: s/CGRP_CLONE_CHILDREN/CGRP_CPUSET_CLONE_CHILDREN/\n  cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n  ...\n"
    },
    {
      "commit": "f57d54bab696133fae569c5f01352249c36fc74f",
      "tree": "8ebe3c6deaf95c424c86843c3d290fbf2a9e80d2",
      "parents": [
        "da830e589a45f0c42eef6f3cbd07275f8893f181",
        "c1ad41f1f7270c1956da13fa8fd59d8d5929d56e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler updates from Ingo Molnar:\n \"The biggest change affects group scheduling: we now track the runnable\n  average on a per-task entity basis, allowing a smoother, exponential\n  decay average based load/weight estimation instead of the previous\n  binary on-the-runqueue/off-the-runqueue load weight method.\n\n  This will inevitably disturb workloads that were in some sort of\n  borderline balancing state or unstable equilibrium, so an eye has to\n  be kept on regressions.\n\n  For that reason the new load average is only limited to group\n  scheduling (shares distribution) at the moment (which was also hurting\n  the most from the prior, crude weight calculation and whose scheduling\n  quality wins most from this change) - but we plan to extend this to\n  regular SMP balancing as well in the future, which will simplify and\n  speed up things a bit.\n\n  Other changes involve ongoing preparatory work to extend NOHZ to the\n  scheduler as well, eventually allowing completely irq-free user-space\n  execution.\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)\n  Revert \"sched/autogroup: Fix crash on reboot when autogroup is disabled\"\n  cputime: Comment cputime\u0027s adjusting code\n  cputime: Consolidate cputime adjustment code\n  cputime: Rename thread_group_times to thread_group_cputime_adjusted\n  cputime: Move thread_group_cputime() to sched code\n  vtime: Warn if irqs aren\u0027t disabled on system time accounting APIs\n  vtime: No need to disable irqs on vtime_account()\n  vtime: Consolidate a bit the ctx switch code\n  vtime: Explicitly account pending user time on process tick\n  vtime: Remove the underscore prefix invasion\n  sched/autogroup: Fix crash on reboot when autogroup is disabled\n  cputime: Separate irqtime accounting from generic vtime\n  cputime: Specialize irq vtime hooks\n  kvm: Directly account vtime to system on guest switch\n  vtime: Make vtime_account_system() irqsafe\n  vtime: Gather vtime declarations to their own header file\n  sched: Describe CFS load-balancer\n  sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n  sched: Make __update_entity_runnable_avg() fast\n  sched: Update_cfs_shares at period edge\n  ...\n"
    },
    {
      "commit": "37ea95a959d4a49846ecbf2dd45326b6b34bf049",
      "tree": "43791e1244ce06d8ca18ecbfd0b0f6dcb86ebb8b",
      "parents": [
        "de0c276b31538fcd56611132f20b63eae2891876",
        "630e1e0bcddfda9566462d4f9a0d58b31c29d467"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU update from Ingo Molnar:\n \"The major features of this tree are:\n\n     1. A first version of no-callbacks CPUs.  This version prohibits\n        offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n        Relaxing this constraint is in progress, but not yet ready\n        for prime time.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/724.\n\n     2. Changes to SRCU that allows statically initialized srcu_struct\n        structures.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/296.\n\n     3. Restructuring of RCU\u0027s debugfs output.  These commits were posted\n        to LKML at https://lkml.org/lkml/2012/10/30/341.\n\n     4. Additional CPU-hotplug/RCU improvements, posted to LKML at\n        https://lkml.org/lkml/2012/10/30/327.\n        Note that the commit eliminating __stop_machine() was judged to\n        be too-high of risk, so is deferred to 3.9.\n\n     5. Changes to RCU\u0027s idle interface, most notably a new module\n        parameter that redirects normal grace-period operations to\n        their expedited equivalents.  These were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/739.\n\n     6. Additional diagnostics for RCU\u0027s CPU stall warning facility,\n        posted to LKML at https://lkml.org/lkml/2012/10/30/315.\n        The most notable change reduces the\n        default RCU CPU stall-warning time from 60 seconds to 21 seconds,\n        so that it once again happens sooner than the softlockup timeout.\n\n     7. Documentation updates, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/280.\n        A couple of late-breaking changes were posted at\n        https://lkml.org/lkml/2012/11/16/634 and\n        https://lkml.org/lkml/2012/11/16/547.\n\n     8. Miscellaneous fixes, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/309.\n\n     9. Finally, a fix for an lockdep-RCU splat was posted to LKML\n        at https://lkml.org/lkml/2012/11/7/486.\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)\n  context_tracking: New context tracking susbsystem\n  sched: Mark RCU reader in sched_show_task()\n  rcu: Separate accounting of callbacks from callback-free CPUs\n  rcu: Add callback-free CPUs\n  rcu: Add documentation for the new rcuexp debugfs trace file\n  rcu: Update documentation for TREE_RCU debugfs tracing\n  rcu: Reduce default RCU CPU stall warning timeout\n  rcu: Fix TINY_RCU rcu_is_cpu_rrupt_from_idle check\n  rcu: Clarify memory-ordering properties of grace-period primitives\n  rcu: Add new rcutorture module parameters to start/end test messages\n  rcu: Remove list_for_each_continue_rcu()\n  rcu: Fix batch-limit size problem\n  rcu: Add tracing for synchronize_sched_expedited()\n  rcu: Remove old debugfs interfaces and also RCU flavor name\n  rcu: split \u0027rcuhier\u0027 to each flavor\n  rcu: split \u0027rcugp\u0027 to each flavor\n  rcu: split \u0027rcuboost\u0027 to each flavor\n  rcu: split \u0027rcubarrier\u0027 to each flavor\n  rcu: Fix tracing formatting\n  rcu: Remove the interface \"rcudata.csv\"\n  ...\n"
    },
    {
      "commit": "5bca23035391928c4c7301835accca3551b96cc2",
      "tree": "2feb63abf318e6edfded8bb97b43ca29c3c5b312",
      "parents": [
        "3105b86a9fee7d2c2e76edb53bbbc4027599628f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Nov 22 14:40:03 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:56 2012 +0000"
      },
      "message": "mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n\nDue to the fact that migrations are driven by the CPU a task is running\non there is no point tracking NUMA faults until one task runs on a new\nnode. This patch tracks the first node used by an address space. Until\nit changes, PTE scanning is disabled and no NUMA hinting faults are\ntrapped. This should help workloads that are short-lived, do not care\nabout NUMA placement or have bound themselves to a single node.\n\nThis takes advantage of the logic in \"mm: sched: numa: Implement slow\nstart for working set sampling\" to delay when the checks are made. This\nwill take advantage of processes that set their CPU and node bindings\nearly in their lifetime. It will also potentially allow any initial load\nbalancing to take place.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "3105b86a9fee7d2c2e76edb53bbbc4027599628f",
      "tree": "d9c3cfed4b98873d92dafadf2a8820fbbd71ae1c",
      "parents": [
        "1a687c2e9a99335c9e77392f050fe607fa18a652"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Nov 23 11:23:49 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:56 2012 +0000"
      },
      "message": "mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG\n\nThe \"mm: sched: numa: Control enabling and disabling of NUMA balancing\"\ndepends on scheduling debug being enabled but it\u0027s perfectly legimate to\ndisable automatic NUMA balancing even without this option. This should\ntake care of it.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "1a687c2e9a99335c9e77392f050fe607fa18a652",
      "tree": "06df958bfdfeaf9f38f333af106b55faa81f1c6b",
      "parents": [
        "b8593bfda1652755136333cdd362de125b283a9c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Nov 22 11:16:36 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:55 2012 +0000"
      },
      "message": "mm: sched: numa: Control enabling and disabling of NUMA balancing\n\nThis patch adds Kconfig options and kernel parameters to allow the\nenabling and disabling of automatic NUMA balancing. The existance\nof such a switch was and is very important when debugging problems\nrelated to transparent hugepages and we should have the same for\nautomatic NUMA placement.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "b8593bfda1652755136333cdd362de125b283a9c",
      "tree": "c0395d9cf775fd9225e81b055fc8f5540a14333a",
      "parents": [
        "e42c8ff2999de1239a57d434bfbd8e9f2a56e814"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Wed Nov 21 01:18:23 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:55 2012 +0000"
      },
      "message": "mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate\n\nThe PTE scanning rate and fault rates are two of the biggest sources of\nsystem CPU overhead with automatic NUMA placement.  Ideally a proper policy\nwould detect if a workload was properly placed, schedule and adjust the\nPTE scanning rate accordingly. We do not track the necessary information\nto do that but we at least know if we migrated or not.\n\nThis patch scans slower if a page was not migrated as the result of a\nNUMA hinting fault up to sysctl_numa_balancing_scan_period_max which is\nnow higher than the previous default. Once every minute it will reset\nthe scanner in case of phase changes.\n\nThis is hilariously crude and the numbers are arbitrary. Workloads will\nconverge quite slowly in comparison to what a proper policy should be able\nto do. On the plus side, we will chew up less CPU for workloads that have\nno need for automatic balancing.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "fb003b80daa0dead5b87f4e2e4fb8da68b110ff2",
      "tree": "aa9c3694cb21e61774471e88bd22918c5746c706",
      "parents": [
        "e14808b49f55e0e1135da5e4a154a540dd9f3662"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Nov 15 09:01:14 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:51 2012 +0000"
      },
      "message": "sched: numa: Slowly increase the scanning period as NUMA faults are handled\n\nCurrently the rate of scanning for an address space is controlled\nby the individual tasks. The next scan is simply determined by\n2*p-\u003enuma_scan_period.\n\nThe 2*p-\u003enuma_scan_period is arbitrary and never changes. At this point\nthere is still no proper policy that decides if a task or process is\nproperly placed. It just scans and assumes the next NUMA fault will\nplace it properly. As it is assumed that pages will get properly placed\nover time, increase the scan window each time a fault is incurred. This\nis a big assumption as noted in the comments.\n\nIt should be noted that changing to p-\u003enuma_scan_period will increase\nsystem CPU usage because now the scanning rate has effectively doubled.\nIf that is a problem then the min_rate should be made 200ms instead of\nrestoring the 2* logic.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "e14808b49f55e0e1135da5e4a154a540dd9f3662",
      "tree": "d66708455dcc1b6e2e15937d732ab12c121e623a",
      "parents": [
        "a8f6077213d285ca08dbf6d4a67470787388138b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Nov 19 10:59:15 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:51 2012 +0000"
      },
      "message": "mm: numa: Rate limit setting of pte_numa if node is saturated\n\nIf there are a large number of NUMA hinting faults and all of them\nare resulting in migrations it may indicate that memory is just\nbouncing uselessly around. NUMA balancing cost is likely exceeding\nany benefit from locality. Rate limit the PTE updates if the node\nis migration rate-limited. As noted in the comments, this distorts\nthe NUMA faulting statistics.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "4b96a29ba891dd59734cb7be80a900fe93aa2d9f",
      "tree": "5162223c4ceae37f6ccf0ef1b84993c2556e60cf",
      "parents": [
        "9f40604cdab935e80db57b309c48659de349d4e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:47 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:47 2012 +0000"
      },
      "message": "mm: sched: numa: Implement slow start for working set sampling\n\nAdd a 1 second delay before starting to scan the working set of\na task and starting to balance it amongst nodes.\n\n[ note that before the constant per task WSS sampling rate patch\n  the initial scan would happen much later still, in effect that\n  patch caused this regression. ]\n\nThe theory is that short-run tasks benefit very little from NUMA\nplacement: they come and go, and they better stick to the node\nthey were started on. As tasks mature and rebalance to other CPUs\nand nodes, so does their NUMA placement have to change and so\ndoes it start to matter more and more.\n\nIn practice this change fixes an observable kbuild regression:\n\n   # [ a perf stat --null --repeat 10 test of ten bzImage builds to /dev/shm ]\n\n   !NUMA:\n   45.291088843 seconds time elapsed                                          ( +-  0.40% )\n   45.154231752 seconds time elapsed                                          ( +-  0.36% )\n\n   +NUMA, no slow start:\n   46.172308123 seconds time elapsed                                          ( +-  0.30% )\n   46.343168745 seconds time elapsed                                          ( +-  0.25% )\n\n   +NUMA, 1 sec slow start:\n   45.224189155 seconds time elapsed                                          ( +-  0.25% )\n   45.160866532 seconds time elapsed                                          ( +-  0.17% )\n\nand it also fixes an observable perf bench (hackbench) regression:\n\n   # perf stat --null --repeat 10 perf bench sched messaging\n\n   -NUMA:\n\n   -NUMA:                  0.246225691 seconds time elapsed                   ( +-  1.31% )\n   +NUMA no slow start:    0.252620063 seconds time elapsed                   ( +-  1.13% )\n\n   +NUMA 1sec delay:       0.248076230 seconds time elapsed                   ( +-  1.35% )\n\nThe implementation is simple and straightforward, most of the patch\ndeals with adding the /proc/sys/kernel/numa_balancing_scan_delay_ms tunable\nknob.\n\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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\n[ Wrote the changelog, ran measurements, tuned the default. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "9f40604cdab935e80db57b309c48659de349d4e6",
      "tree": "72f77bdb7d8ab07e4db4323642db7c04eca8e9e9",
      "parents": [
        "6e5fb223e89dbe5cb5c563f8d4a4a0a7d62455a8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Wed Nov 14 18:34:32 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:46 2012 +0000"
      },
      "message": "sched, numa, mm: Count WS scanning against present PTEs, not virtual memory ranges\n\nBy accounting against the present PTEs, scanning speed reflects the\nactual present (mapped) memory.\n\nSuggested-by: Ingo Molnar \u003cmingo@kernel.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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "6e5fb223e89dbe5cb5c563f8d4a4a0a7d62455a8",
      "tree": "0d5c93240702a51b1d6f22fefd979235a19692fd",
      "parents": [
        "cbee9f88ec1b8dd6b58f25f54e4f52c82ed77690"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:45 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:46 2012 +0000"
      },
      "message": "mm: sched: numa: Implement constant, per task Working Set Sampling (WSS) rate\n\nPreviously, to probe the working set of a task, we\u0027d use\na very simple and crude method: mark all of its address\nspace PROT_NONE.\n\nThat method has various (obvious) disadvantages:\n\n - it samples the working set at dissimilar rates,\n   giving some tasks a sampling quality advantage\n   over others.\n\n - creates performance problems for tasks with very\n   large working sets\n\n - over-samples processes with large address spaces but\n   which only very rarely execute\n\nImprove that method by keeping a rotating offset into the\naddress space that marks the current position of the scan,\nand advance it by a constant rate (in a CPU cycles execution\nproportional manner). If the offset reaches the last mapped\naddress of the mm then it then it starts over at the first\naddress.\n\nThe per-task nature of the working set sampling functionality in this tree\nallows such constant rate, per task, execution-weight proportional sampling\nof the working set, with an adaptive sampling interval/frequency that\ngoes from once per 100ms up to just once per 8 seconds.  The current\nsampling volume is 256 MB per interval.\n\nAs tasks mature and converge their working set, so does the\nsampling rate slow down to just a trickle, 256 MB per 8\nseconds of CPU time executed.\n\nThis, beyond being adaptive, also rate-limits rarely\nexecuting systems and does not over-sample on overloaded\nsystems.\n\n[ In AutoNUMA speak, this patch deals with the effective sampling\n  rate of the \u0027hinting page fault\u0027. AutoNUMA\u0027s scanning is\n  currently rate-limited, but it is also fundamentally\n  single-threaded, executing in the knuma_scand kernel thread,\n  so the limit in AutoNUMA is global and does not scale up with\n  the number of CPUs, nor does it scan tasks in an execution\n  proportional manner.\n\n  So the idea of rate-limiting the scanning was first implemented\n  in the AutoNUMA tree via a global rate limit. This patch goes\n  beyond that by implementing an execution rate proportional\n  working set sampling rate that is not implemented via a single\n  global scanning daemon. ]\n\n[ Dan Carpenter pointed out a possible NULL pointer dereference in the\n  first version of this patch. ]\n\nBased-on-idea-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nBug-Found-By: Dan Carpenter \u003cdan.carpenter@oracle.com\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\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\n[ Wrote changelog and fixed bug. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "cbee9f88ec1b8dd6b58f25f54e4f52c82ed77690",
      "tree": "d4cfbcfa3e89742216cd792d4aa914356406b532",
      "parents": [
        "a720094ded8cbb303111035be91858011d2eac71"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 25 14:16:43 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:45 2012 +0000"
      },
      "message": "mm: numa: Add fault driven placement and migration\n\nNOTE: This patch is based on \"sched, numa, mm: Add fault driven\n\tplacement and migration policy\" but as it throws away all the policy\n\tto just leave a basic foundation I had to drop the signed-offs-by.\n\nThis patch creates a bare-bones method for setting PTEs pte_numa in the\ncontext of the scheduler that when faulted later will be faulted onto the\nnode the CPU is running on.  In itself this does nothing useful but any\nplacement policy will fundamentally depend on receiving hints on placement\nfrom fault context and doing something intelligent about it.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "c1ad41f1f7270c1956da13fa8fd59d8d5929d56e",
      "tree": "2a9812fe4a5bee0f354273c34411e00e94746b64",
      "parents": [
        "38130ec08716ae2ece8060eca01607b58da7258c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Dec 11 10:23:45 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Dec 11 10:23:45 2012 +0100"
      },
      "message": "Revert \"sched/autogroup: Fix crash on reboot when autogroup is disabled\"\n\nThis reverts commit 5258f386ea4e8454bc801fb443e8a4217da1947c,\nbecause the underlying autogroups bug got fixed upstream in\na better way, via:\n\n  fd8ef11730f1 Revert \"sched, autogroup: Stop going ahead if autogroup is disabled\"\n\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "38130ec08716ae2ece8060eca01607b58da7258c",
      "tree": "71d0cd76ccfb2b960ddb6b820850269265389052",
      "parents": [
        "e783377e93d4043a11013ce6e9173db34998e653",
        "1b2852b152be5150fbef7b585388ec43cf6f4415"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:44:43 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:44:43 2012 +0100"
      },
      "message": "Merge tag \u0027sched-cputime-for-mingo\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/core\n\nPull more cputime cleanups from Frederic Weisbecker:\n\n * Get rid of underscores polluting the vtime namespace\n\n * Consolidate context switch and tick handling\n\n * Improve debuggability by detecting irq unsafe callers\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fd8ef11730f1d03d5d6555aa53126e9e34f52f12",
      "tree": "b5121d6016bf20b46ae0fdc760b9e2f4e836bf21",
      "parents": [
        "d3594ea2b343fbbabaaebeb4ce4e1f29e88ab6b3"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Dec 03 06:25:25 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 03 11:10:24 2012 -0800"
      },
      "message": "Revert \"sched, autogroup: Stop going ahead if autogroup is disabled\"\n\nThis reverts commit 800d4d30c8f20bd728e5741a3b77c4859a613f7c.\n\nBetween commits 8323f26ce342 (\"sched: Fix race in task_group()\") and\n800d4d30c8f2 (\"sched, autogroup: Stop going ahead if autogroup is\ndisabled\"), autogroup is a wreck.\n\nWith both applied, all you have to do to crash a box is disable\nautogroup during boot up, then reboot..  boom, NULL pointer dereference\ndue to commit 800d4d30c8f2 not allowing autogroup to move things, and\ncommit 8323f26ce342 making that the only way to switch runqueues:\n\n  BUG: unable to handle kernel NULL pointer dereference at           (null)\n  IP: [\u003cffffffff81063ac0\u003e] effective_load.isra.43+0x50/0x90\n  Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502\n  RIP: effective_load.isra.43+0x50/0x90\n  Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)\n  Call Trace:\n    select_task_rq_fair+0x255/0x780\n    try_to_wake_up+0x156/0x2c0\n    wake_up_state+0xb/0x10\n    signal_wake_up+0x28/0x40\n    complete_signal+0x1d6/0x250\n    __send_signal+0x170/0x310\n    send_signal+0x40/0x80\n    do_send_sig_info+0x47/0x90\n    group_send_sig_info+0x4a/0x70\n    kill_pid_info+0x3a/0x60\n    sys_kill+0x97/0x1a0\n    ? vfs_read+0x120/0x160\n    ? sys_read+0x45/0x90\n    system_call_fastpath+0x16/0x1b\n  Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 \u003c48\u003e 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c\n  RIP  [\u003cffffffff81063ac0\u003e] effective_load.isra.43+0x50/0x90\n   RSP \u003cffff880221ddfbd8\u003e\n  CR2: 0000000000000000\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@vger.kernel.org # 2.6.39+\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91d1aa43d30505b0b825db8898ffc80a8eca96c7",
      "tree": "911636f846d800c8a44efd540842dc726ec7c191",
      "parents": [
        "4e79752c25ec221ac1e28f8875b539ed7631a0db"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 27 19:33:25 2012 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 30 11:40:07 2012 -0800"
      },
      "message": "context_tracking: New context tracking susbsystem\n\nCreate a new subsystem that probes on kernel boundaries\nto keep track of the transitions between level contexts\nwith two basic initial contexts: user or kernel.\n\nThis is an abstraction of some RCU code that use such tracking\nto implement its userspace extended quiescent state.\n\nWe need to pull this up from RCU into this new level of indirection\nbecause this tracking is also going to be used to implement an \"on\ndemand\" generic virtual cputime accounting. A necessary step to\nshutdown the tick while still accounting the cputime.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ paulmck: fix whitespace error and email address. ]\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fa09205783d11cc05122ad6e4ce06074624b2c0c",
      "tree": "ee13b0a24856952b06b8ad92640ef90602fd4a86",
      "parents": [
        "d37f761dbd276790f70dcf73a287fde2c3464482"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:00:57 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:08:20 2012 +0100"
      },
      "message": "cputime: Comment cputime\u0027s adjusting code\n\nThe reason for the scaling and monotonicity correction performed\nby cputime_adjust() may not be immediately clear to the reviewer.\n\nAdd some comments to explain what happens there.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "d37f761dbd276790f70dcf73a287fde2c3464482",
      "tree": "302d4bda699ab2e159b3a180f253019a38bf8132",
      "parents": [
        "e80d0a1ae8bb8fee0edd37427836f108b30f596b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 22 00:58:35 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:08:10 2012 +0100"
      },
      "message": "cputime: Consolidate cputime adjustment code\n\ntask_cputime_adjusted() and thread_group_cputime_adjusted()\nessentially share the same code. They just don\u0027t use the same\nsource:\n\n* The first function uses the cputime in the task struct and the\nprevious adjusted snapshot that ensures monotonicity.\n\n* The second adds the cputime of all tasks in the group and the\nprevious adjusted snapshot of the whole group from the signal\nstructure.\n\nJust consolidate the common code that does the adjustment. These\nfunctions just need to fetch the values from the appropriate\nsource.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "e80d0a1ae8bb8fee0edd37427836f108b30f596b",
      "tree": "437db8b1643e39d3d114a7c0e3c913455e693b70",
      "parents": [
        "a634f93335daa8f38180a0e576ccd68a73c36eaf"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 21 16:26:44 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:07:57 2012 +0100"
      },
      "message": "cputime: Rename thread_group_times to thread_group_cputime_adjusted\n\nWe have thread_group_cputime() and thread_group_times(). The naming\ndoesn\u0027t provide enough information about the difference between\nthese two APIs.\n\nTo lower the confusion, rename thread_group_times() to\nthread_group_cputime_adjusted(). This name better suggests that\nit\u0027s a version of thread_group_cputime() that does some stabilization\non the raw cputime values. ie here: scale on top of CFS runtime\nstats and bound lower value for monotonicity.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "a634f93335daa8f38180a0e576ccd68a73c36eaf",
      "tree": "19cb10ec27da81bd07a3eec1b4d4e9f814402c3a",
      "parents": [
        "ec05a2311c35243cea08bca00bcf53a576ee41a2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 21 15:55:59 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:07:38 2012 +0100"
      },
      "message": "cputime: Move thread_group_cputime() to sched code\n\nthread_group_cputime() is a general cputime API that is not only\nused by posix cpu timer. Let\u0027s move this helper to sched code.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "582b336ec2c0f0076f5650a029fcc9abd4a906f7",
      "tree": "4827fe468a1aac8be0227cac5bab922b32c2facc",
      "parents": [
        "189e11731aa858597095fbe1e6d243bad26bd96b"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Tue Nov 27 23:28:54 2012 -0200"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Tue Nov 27 23:29:09 2012 -0200"
      },
      "message": "sched: add notifier for cross-cpu migrations\n\nOriginally from Jeremy Fitzhardinge.\n\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "4c44aaafa8108f584831850ab48a975e971db2de",
      "tree": "c86f225e8256d28271acf3ea8926e70358f3e5c1",
      "parents": [
        "bcf58e725ddc45d31addbc6627d4f0edccc824c1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 05:05:21 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 20 04:17:44 2012 -0800"
      },
      "message": "userns: Kill task_user_ns\n\nThe task_user_ns function hides the fact that it is getting the user\nnamespace from struct cred on the task.  struct cred may go away as\nsoon as the rcu lock is released.  This leads to a race where we\ncan dereference a stale user namespace pointer.\n\nTo make it obvious a struct cred is involved kill task_user_ns.\n\nTo kill the race modify the users of task_user_ns to only\nreference the user namespace while the rcu lock is held.\n\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "92fb97487a7e41b222c1417cabd1d1ab7cc3a48c",
      "tree": "c220c622b9ac9b16535535d448e9cd29be72c77e",
      "parents": [
        "b1929db42f8a649d9a9e397119f628c27fd4021f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 19 08:13:38 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 19 08:13:38 2012 -0800"
      },
      "message": "cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n\nRename cgroup_subsys css lifetime related callbacks to better describe\nwhat their roles are.  Also, update documentation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1017769bd0073f0a73e066377cd79a10cf0a33ab",
      "tree": "b9abda7f6e5b9525c1685acbffbc4f6034f8f3b3",
      "parents": [
        "e3942ba04052364d3c6454103362cafd87456010"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 14 00:26:54 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 19 16:41:41 2012 +0100"
      },
      "message": "vtime: No need to disable irqs on vtime_account()\n\nvtime_account() is only called from irq entry. irqs\nare always disabled at this point so we can safely\nremove the irq disabling guards on that function.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "e3942ba04052364d3c6454103362cafd87456010",
      "tree": "31e5cd4013fd140cb3e50ad6147382798bc88631",
      "parents": [
        "bcebdf846522056a84ba0b0cba5f5413868c9394"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 14 00:24:25 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 19 16:41:32 2012 +0100"
      },
      "message": "vtime: Consolidate a bit the ctx switch code\n\nOn ia64 and powerpc, vtime context switch only consists\nin flushing system and user pending time, plus a few\narch housekeeping.\n\nConsolidate that into a generic implementation. s390 is\na special case because pending user and system time accounting\nthere is hard to dissociate. So it\u0027s keeping its own implementation.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "fd25b4c2f226de818e1d2b71e3e681d28bcaf5ba",
      "tree": "dd1ce241709d2363e0d8b2c853f51dc5c897805c",
      "parents": [
        "38ca9c927c7d3db61f57e3d3a9334958c3af6e9a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 13 18:21:22 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 19 16:40:16 2012 +0100"
      },
      "message": "vtime: Remove the underscore prefix invasion\n\nPrepending irq-unsafe vtime APIs with underscores was actually\na bad idea as the result is a big mess in the API namespace that\nis even waiting to be further extended. Also these helpers\nare always called from irq safe callers except kvm. Just\nprovide a vtime_account_system_irqsafe() for this specific\ncase so that we can remove the underscore prefix on other\nvtime functions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "ec05a2311c35243cea08bca00bcf53a576ee41a2",
      "tree": "b6feae6520bdeeb40f5c08e509b108d84199db7b",
      "parents": [
        "a7a0aaa17ace589897021d668e09d474e7fc4c4d",
        "5258f386ea4e8454bc801fb443e8a4217da1947c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Nov 18 09:34:44 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Nov 18 09:34:44 2012 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge in fixes before we queue up dependent bits, to avoid conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4e79752c25ec221ac1e28f8875b539ed7631a0db",
      "tree": "3ea71973fadee2363004c1d4bea10b632c9fd922",
      "parents": [
        "c635a4e1c24e9396db10ed7424b2084908b32252"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Nov 07 13:35:32 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 10:05:58 2012 -0800"
      },
      "message": "sched: Mark RCU reader in sched_show_task()\n\nWhen sched_show_task() is invoked from try_to_freeze_tasks(), there is\nno RCU read-side critical section, resulting in the following splat:\n\n[  125.780730] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  125.780766] [ INFO: suspicious RCU usage. ]\n[  125.780804] 3.7.0-rc3+ #988 Not tainted\n[  125.780838] -------------------------------\n[  125.780875] /home/rafael/src/linux/kernel/sched/core.c:4497 suspicious rcu_dereference_check() usage!\n[  125.780946]\n[  125.780946] other info that might help us debug this:\n[  125.780946]\n[  125.781031]\n[  125.781031] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[  125.781087] 4 locks held by s2ram/4211:\n[  125.781120]  #0:  (\u0026buffer-\u003emutex){+.+.+.}, at: [\u003cffffffff811e2acf\u003e] sysfs_write_file+0x3f/0x160\n[  125.781233]  #1:  (s_active#94){.+.+.+}, at: [\u003cffffffff811e2b58\u003e] sysfs_write_file+0xc8/0x160\n[  125.781339]  #2:  (pm_mutex){+.+.+.}, at: [\u003cffffffff81090a81\u003e] pm_suspend+0x81/0x230\n[  125.781439]  #3:  (tasklist_lock){.?.?..}, at: [\u003cffffffff8108feed\u003e] try_to_freeze_tasks+0x2cd/0x3f0\n[  125.781543]\n[  125.781543] stack backtrace:\n[  125.781584] Pid: 4211, comm: s2ram Not tainted 3.7.0-rc3+ #988\n[  125.781632] Call Trace:\n[  125.781662]  [\u003cffffffff810a3c73\u003e] lockdep_rcu_suspicious+0x103/0x140\n[  125.781719]  [\u003cffffffff8107cf21\u003e] sched_show_task+0x121/0x180\n[  125.781770]  [\u003cffffffff8108ffb4\u003e] try_to_freeze_tasks+0x394/0x3f0\n[  125.781823]  [\u003cffffffff810903b5\u003e] freeze_kernel_threads+0x25/0x80\n[  125.781876]  [\u003cffffffff81090b65\u003e] pm_suspend+0x165/0x230\n[  125.781924]  [\u003cffffffff8108fa29\u003e] state_store+0x99/0x100\n[  125.781975]  [\u003cffffffff812f5867\u003e] kobj_attr_store+0x17/0x20\n[  125.782038]  [\u003cffffffff811e2b71\u003e] sysfs_write_file+0xe1/0x160\n[  125.782091]  [\u003cffffffff811667a6\u003e] vfs_write+0xc6/0x180\n[  125.782138]  [\u003cffffffff81166ada\u003e] sys_write+0x5a/0xa0\n[  125.782185]  [\u003cffffffff812ff6ae\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3f\n[  125.782242]  [\u003cffffffff81669dd2\u003e] system_call_fastpath+0x16/0x1b\n\nThis commit therefore adds the needed RCU read-side critical section.\n\nReported-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "aac1cda34b84a9411d6b8d18c3658f094c834911",
      "tree": "60cc2e3d6793fdbf8b13704608aafdf01bcec118",
      "parents": [
        "2c5594df344cd1ff0cc9bf007dea3235582b3acf",
        "d484a215139cf556cb718a7ec7042260b7fc2d28",
        "351573a86d0ef17cbba1c5436706602692781bfe",
        "cda4dc813071e6cb04944c5a140610bd06acd295",
        "c896054f75f9a720ecf2ab3e688f4da79a55fe05",
        "7bd8f2a74bcbd39f4277766f4d49441c45dd10a0",
        "af71befa282ddf51c09509978abe1e83de8fe7eb"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 09:59:58 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 09:59:58 2012 -0800"
      },
      "message": "Merge branches \u0027urgent.2012.10.27a\u0027, \u0027doc.2012.11.16a\u0027, \u0027fixes.2012.11.13a\u0027, \u0027srcu.2012.10.27a\u0027, \u0027stall.2012.11.13a\u0027, \u0027tracing.2012.11.08a\u0027 and \u0027idle.2012.10.24a\u0027 into HEAD\n\nurgent.2012.10.27a: Fix for RCU user-mode transition (already in -tip).\n\ndoc.2012.11.08a: Documentation updates, most notably codifying the\n\tmemory-barrier guarantees inherent to grace periods.\n\nfixes.2012.11.13a: Miscellaneous fixes.\n\nsrcu.2012.10.27a: Allow statically allocated and initialized srcu_struct\n\tstructures (courtesy of Lai Jiangshan).\n\nstall.2012.11.13a: Add more diagnostic information to RCU CPU stall\n\twarnings, also decrease from 60 seconds to 21 seconds.\n\nhotplug.2012.11.08a: Minor updates to CPU hotplug handling.\n\ntracing.2012.11.08a: Improved debugfs tracing, courtesy of Michael Wang.\n\nidle.2012.10.24a: Updates to RCU idle/adaptive-idle handling, including\n\ta boot parameter that maps normal grace periods to expedited.\n\nResolved conflict in kernel/rcutree.c due to side-by-side change.\n"
    },
    {
      "commit": "5258f386ea4e8454bc801fb443e8a4217da1947c",
      "tree": "c97487f040b95f83a2c9d31d51cbfe57f35e59e3",
      "parents": [
        "8ed92e51f99c2199c64cb33b4ba95ab12940a94c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Sun Oct 28 12:19:23 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Oct 30 10:26:04 2012 +0100"
      },
      "message": "sched/autogroup: Fix crash on reboot when autogroup is disabled\n\nDue to these two commits:\n\n  8323f26ce342 sched: Fix race in task_group()\n  800d4d30c8f2 sched, autogroup: Stop going ahead if autogroup is disabled\n\n... autogroup scheduling\u0027s dynamic knobs are wrecked.\n\nWith both patches applied, all you have to do to crash a box is\ndisable autogroup during boot up, then reboot.. boom, NULL pointer\ndereference due to 800d4d30 not allowing autogroup to move things,\nand 8323f26ce making that the only way to switch runqueues.\n\nRemove most of the (dysfunctional) knobs and turn the remaining\nsched_autogroup_enabled knob readonly.\n\nIf the user fiddles with cgroups hereafter, once tasks\nare moved, autogroup won\u0027t mess with them again unless\nthey call setsid().\n\nNo knobs, no glitz, nada, just a cute little thing folks can\nturn on if they don\u0027t want to muck about with cgroups and/or\nsystemd.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Xiaotian Feng \u003cxtfeng@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Xiaotian Feng \u003cdannyfeng@tencent.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e # v3.6\nLink: http://lkml.kernel.org/r/1351451963.4999.8.camel@maggy.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "3e1df4f506836e6bea1ab61cf88c75c8b1840643",
      "tree": "58be18cf3dce7a407c84ab2532e92bdb8b7ee067",
      "parents": [
        "fa5058f3b63153e0147ef65bcdb3a4ee63581346"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Oct 06 05:23:22 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 29 21:31:32 2012 +0100"
      },
      "message": "cputime: Separate irqtime accounting from generic vtime\n\nvtime_account() doesn\u0027t have the same role in\nCONFIG_VIRT_CPU_ACCOUNTING and CONFIG_IRQ_TIME_ACCOUNTING.\n\nIn the first case it handles time accounting in any context. In\nthe second case it only handles irq time accounting.\n\nSo when vtime_account() is called from outside vtime_account_irq_*()\nthis call is pointless to CONFIG_IRQ_TIME_ACCOUNTING.\n\nTo fix the confusion, change vtime_account() to irqtime_account_irq()\nin CONFIG_IRQ_TIME_ACCOUNTING. This way we ensure future account_vtime()\ncalls won\u0027t waste useless cycles in the irqtime APIs.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "11113334d1c5dd5355c86e531c29f1202a855c86",
      "tree": "259c7c3344733444ca39263b1a79f40b243b155f",
      "parents": [
        "dcbf832e5823156e8f155359b47bd108cac8ad68"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 24 18:05:51 2012 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Oct 29 21:31:31 2012 +0100"
      },
      "message": "vtime: Make vtime_account_system() irqsafe\n\nvtime_account_system() currently has only one caller with\nvtime_account() which is irq safe.\n\nNow we are going to call it from other places like kvm where\nirqs are not always disabled by the time we account the cputime.\n\nSo let\u0027s make it irqsafe. The arch implementation part is now\nprefixed with \"__\".\n\nvtime_account_idle() arch implementation is prefixed accordingly\nto stay consistent.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "e9c84cb8d5f1b1ea6fcbe6190d51dc84b6975938",
      "tree": "80433b41204b5f730b3e7d4d3990eac226c9b65a",
      "parents": [
        "f4e26b120b9de84cb627bc7361ba43cfdc51341f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jul 03 13:53:26 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:33 2012 +0200"
      },
      "message": "sched: Describe CFS load-balancer\n\nAdd some scribbles on how and why the load-balancer works..\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1341316406.23484.64.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f4e26b120b9de84cb627bc7361ba43cfdc51341f",
      "tree": "19786e34c5de3c9b7c9c871a27b0f8d85cc8690d",
      "parents": [
        "5b51f2f80b3b906ce59bd4dce6eca3c7f34cb1b9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:32 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:31 2012 +0200"
      },
      "message": "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n\nWhile per-entity load-tracking is generally useful, beyond computing shares\ndistribution, e.g. runnable based load-balance (in progress), governors,\npower-management, etc.\n\nThese facilities are not yet consumers of this data.  This may be trivially\nreverted when the information is required; but avoid paying the overhead for\ncalculations we will not use until then.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.422162369@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5b51f2f80b3b906ce59bd4dce6eca3c7f34cb1b9",
      "tree": "72e7c6003b377646d4ba4defa2ddf43756e81474",
      "parents": [
        "f269ae0469fc882332bdfb5db15d3c1315fe2a10"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:32 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:30 2012 +0200"
      },
      "message": "sched: Make __update_entity_runnable_avg() fast\n\n__update_entity_runnable_avg forms the core of maintaining an entity\u0027s runnable\nload average.  In this function we charge the accumulated run-time since last\nupdate and handle appropriate decay.  In some cases, e.g. a waking task, this\ntime interval may be much larger than our period unit.\n\nFortunately we can exploit some properties of our series to perform decay for a\nblocked update in constant time and account the contribution for a running\nupdate in essentially-constant* time.\n\n[*]: For any running entity they should be performing updates at the tick which\ngives us a soft limit of 1 jiffy between updates, and we can compute up to a\n32 jiffy update in a single pass.\n\nC program to generate the magic constants in the arrays:\n\n  #include \u003cmath.h\u003e\n  #include \u003cstdio.h\u003e\n\n  #define N 32\n  #define WMULT_SHIFT 32\n\n  const long WMULT_CONST \u003d ((1UL \u003c\u003c N) - 1);\n  double y;\n\n  long runnable_avg_yN_inv[N];\n  void calc_mult_inv() {\n  \tint i;\n  \tdouble yn \u003d 0;\n\n  \tprintf(\"inverses\\n\");\n  \tfor (i \u003d 0; i \u003c N; i++) {\n  \t\tyn \u003d (double)WMULT_CONST * pow(y, i);\n  \t\trunnable_avg_yN_inv[i] \u003d yn;\n  \t\tprintf(\"%2d: 0x%8lx\\n\", i, runnable_avg_yN_inv[i]);\n  \t}\n  \tprintf(\"\\n\");\n  }\n\n  long mult_inv(long c, int n) {\n  \treturn (c * runnable_avg_yN_inv[n]) \u003e\u003e  WMULT_SHIFT;\n  }\n\n  void calc_yn_sum(int n)\n  {\n  \tint i;\n  \tdouble sum \u003d 0, sum_fl \u003d 0, diff \u003d 0;\n\n  \t/*\n  \t * We take the floored sum to ensure the sum of partial sums is never\n  \t * larger than the actual sum.\n  \t */\n  \tprintf(\"sum y^n\\n\");\n  \tprintf(\"   %8s  %8s %8s\\n\", \"exact\", \"floor\", \"error\");\n  \tfor (i \u003d 1; i \u003c\u003d n; i++) {\n  \t\tsum \u003d (y * sum + y * 1024);\n  \t\tsum_fl \u003d floor(y * sum_fl+ y * 1024);\n  \t\tprintf(\"%2d: %8.0f  %8.0f %8.0f\\n\", i, sum, sum_fl,\n  \t\t\tsum_fl - sum);\n  \t}\n  \tprintf(\"\\n\");\n  }\n\n  void calc_conv(long n) {\n  \tlong old_n;\n  \tint i \u003d -1;\n\n  \tprintf(\"convergence (LOAD_AVG_MAX, LOAD_AVG_MAX_N)\\n\");\n  \tdo {\n  \t\told_n \u003d n;\n  \t\tn \u003d mult_inv(n, 1) + 1024;\n  \t\ti++;\n  \t} while (n !\u003d old_n);\n  \tprintf(\"%d\u003e %ld\\n\", i - 1, n);\n  \tprintf(\"\\n\");\n  }\n\n  void main() {\n  \ty \u003d pow(0.5, 1/(double)N);\n  \tcalc_mult_inv();\n  \tcalc_conv(1024);\n  \tcalc_yn_sum(N);\n  }\n\n[ Compile with -lm ]\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.277808946@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f269ae0469fc882332bdfb5db15d3c1315fe2a10",
      "tree": "af5e130745392fa9fdd32f59b10272e269192b95",
      "parents": [
        "48a1675323fa1b7844e479ad2a4469f4558c0f79"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:29 2012 +0200"
      },
      "message": "sched: Update_cfs_shares at period edge\n\nNow that our measurement intervals are small (~1ms) we can amortize the posting\nof update_shares() to be about each period overflow.  This is a large cost\nsaving for frequently switching tasks.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.200772172@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "48a1675323fa1b7844e479ad2a4469f4558c0f79",
      "tree": "1f3127f19be8fca16574d6adfadd22693b8766f2",
      "parents": [
        "82958366cfea1a50e7e90907b2d55ae29ed69974"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:28 2012 +0200"
      },
      "message": "sched: Refactor update_shares_cpu() -\u003e update_blocked_avgs()\n\nNow that running entities maintain their own load-averages the work we must do\nin update_shares() is largely restricted to the periodic decay of blocked\nentities.  This allows us to be a little less pessimistic regarding our\noccupancy on rq-\u003elock and the associated rq-\u003eclock updates required.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.133999170@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "82958366cfea1a50e7e90907b2d55ae29ed69974",
      "tree": "ffd8ed3800e17ccc3f051e1ce6c8b25dde7bf906",
      "parents": [
        "f1b17280efbd21873d1db8631117bdbccbcb39a2"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:28 2012 +0200"
      },
      "message": "sched: Replace update_shares weight distribution with per-entity computation\n\nNow that the machinery in place is in place to compute contributed load in a\nbottom up fashion; replace the shares distribution code within update_shares()\naccordingly.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.061208672@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f1b17280efbd21873d1db8631117bdbccbcb39a2",
      "tree": "6c052571b44109b94490eef89765751816ab9c88",
      "parents": [
        "bb17f65571e97a7ec0297571fb1154fbd107ad00"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:27 2012 +0200"
      },
      "message": "sched: Maintain runnable averages across throttled periods\n\nWith bandwidth control tracked entities may cease execution according to user\nspecified bandwidth limits.  Charging this time as either throttled or blocked\nhowever, is incorrect and would falsely skew in either direction.\n\nWhat we actually want is for any throttled periods to be \"invisible\" to\nload-tracking as they are removed from the system for that interval and\ncontribute normally otherwise.\n\nDo this by moderating the progression of time to omit any periods in which the\nentity belonged to a throttled hierarchy.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.998912151@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bb17f65571e97a7ec0297571fb1154fbd107ad00",
      "tree": "d7574f5a57abe38112cbac832a29354ee1e4fa64",
      "parents": [
        "8165e145ceb62fc338e099c9b12b3239c83d2f8e"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:26 2012 +0200"
      },
      "message": "sched: Normalize tg load contributions against runnable time\n\nEntities of equal weight should receive equitable distribution of cpu time.\nThis is challenging in the case of a task_group\u0027s shares as execution may be\noccurring on multiple cpus simultaneously.\n\nTo handle this we divide up the shares into weights proportionate with the load\non each cfs_rq.  This does not however, account for the fact that the sum of\nthe parts may be less than one cpu and so we need to normalize:\n  load(tg) \u003d min(runnable_avg(tg), 1) * tg-\u003eshares\nWhere runnable_avg is the aggregate time in which the task_group had runnable\nchildren.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e.\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.930124292@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "8165e145ceb62fc338e099c9b12b3239c83d2f8e",
      "tree": "be494c8d97adec0615f776515875e4961a40d920",
      "parents": [
        "c566e8e9e44b72b53091da20e2dedefc730f2ee2"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:25 2012 +0200"
      },
      "message": "sched: Compute load contribution by a group entity\n\nUnlike task entities who have a fixed weight, group entities instead own a\nfraction of their parenting task_group\u0027s shares as their contributed weight.\n\nCompute this fraction so that we can correctly account hierarchies and shared\nentity nodes.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.855074415@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c566e8e9e44b72b53091da20e2dedefc730f2ee2",
      "tree": "3e86db8843021c36b41362063183d1135fda63db",
      "parents": [
        "aff3e498844441fa71c5ee1bbc470e1dff9548d9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:24 2012 +0200"
      },
      "message": "sched: Aggregate total task_group load\n\nMaintain a global running sum of the average load seen on each cfs_rq belonging\nto each task group so that it may be used in calculating an appropriate\nshares:weight distribution.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.792901086@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aff3e498844441fa71c5ee1bbc470e1dff9548d9",
      "tree": "78085232ff0200ad8247d1948bbe6131b6f504ab",
      "parents": [
        "0a74bef8bed18dc6889e9bc37ea1050a50c86c89"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:23 2012 +0200"
      },
      "message": "sched: Account for blocked load waking back up\n\nWhen a running entity blocks we migrate its tracked load to\ncfs_rq-\u003eblocked_runnable_avg.  In the sleep case this occurs while holding\nrq-\u003elock and so is a natural transition.  Wake-ups however, are potentially\nasynchronous in the presence of migration and so special care must be taken.\n\nWe use an atomic counter to track such migrated load, taking care to match this\nwith the previously introduced decay counters so that we don\u0027t migrate too much\nload.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.726077467@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0a74bef8bed18dc6889e9bc37ea1050a50c86c89",
      "tree": "9d7b66a1b7ac0b05cd9b9b093cb6d89904db8f83",
      "parents": [
        "9ee474f55664ff63111c843099d365e7ecffb56f"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:23 2012 +0200"
      },
      "message": "sched: Add an rq migration call-back to sched_class\n\nSince we are now doing bottom up load accumulation we need explicit\nnotification when a task has been re-parented so that the old hierarchy can be\nupdated.\n\nAdds: migrate_task_rq(struct task_struct *p, int next_cpu)\n\n(The alternative is to do this out of __set_task_cpu, but it was suggested that\nthis would be a cleaner encapsulation.)\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.660023400@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9ee474f55664ff63111c843099d365e7ecffb56f",
      "tree": "745a678b0d3cd72ba42b67d0b6ac6c3872b14229",
      "parents": [
        "2dac754e10a5d41d94d2d2365c0345d4f215a266"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:22 2012 +0200"
      },
      "message": "sched: Maintain the load contribution of blocked entities\n\nWe are currently maintaining:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t)\n\nFor all running children t of cfs_rq.  While this can be naturally updated for\ntasks in a runnable state (as they are scheduled); this does not account for\nthe load contributed by blocked task entities.\n\nThis can be solved by introducing a separate accounting for blocked load:\n\n  blocked_load(cfs_rq) \u003d \\Sum runnable(b) * weight(b)\n\nObviously we do not want to iterate over all blocked entities to account for\ntheir decay, we instead observe that:\n\n  runnable_load(t) \u003d \\Sum p_i*y^i\n\nand that to account for an additional idle period we only need to compute:\n\n  y*runnable_load(t).\n\nThis means that we can compute all blocked entities at once by evaluating:\n\n  blocked_load(cfs_rq)` \u003d y * blocked_load(cfs_rq)\n\nFinally we maintain a decay counter so that when a sleeping entity re-awakens\nwe can determine how much of its load should be removed from the blocked sum.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.585389902@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "2dac754e10a5d41d94d2d2365c0345d4f215a266",
      "tree": "4016ab214b5b51b2be5c40ab2fdc9832c8aca870",
      "parents": [
        "18bf2805d9b30cb823d4919b42cd230f59c7ce1f"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:21 2012 +0200"
      },
      "message": "sched: Aggregate load contributed by task entities on parenting cfs_rq\n\nFor a given task t, we can compute its contribution to load as:\n\n  task_load(t) \u003d runnable_avg(t) * weight(t)\n\nOn a parenting cfs_rq we can then aggregate:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t), for all runnable children t\n\nMaintain this bottom up, with task entities adding their contributed load to\nthe parenting cfs_rq sum.  When a task entity\u0027s load changes we add the same\ndelta to the maintained sum.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.514678907@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "18bf2805d9b30cb823d4919b42cd230f59c7ce1f",
      "tree": "a3a820f6dc5f79ff7569f8fe0d60904e9657fb5a",
      "parents": [
        "9d85f21c94f7f7a84d0ba686c58aa6d9da58fdbb"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Thu Oct 04 12:51:20 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:20 2012 +0200"
      },
      "message": "sched: Maintain per-rq runnable averages\n\nSince runqueues do not have a corresponding sched_entity we instead embed a\nsched_avg structure directly.\n\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.442637130@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9d85f21c94f7f7a84d0ba686c58aa6d9da58fdbb",
      "tree": "bec53516fbe39007b12250423b7a09e7b62184c3",
      "parents": [
        "0e9e3e306c7e472bdcffa34c4c4584301eda03b3"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:29 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 24 10:27:18 2012 +0200"
      },
      "message": "sched: Track the runnable average on a per-task entity basis\n\nInstead of tracking averaging the load parented by a cfs_rq, we can track\nentity load directly. With the load for a given cfs_rq then being the sum\nof its children.\n\nTo do this we represent the historical contribution to runnable average\nwithin each trailing 1024us of execution as the coefficients of a\ngeometric series.\n\nWe can express this for a given task t as:\n\n  runnable_sum(t) \u003d \\Sum u_i * y^i, runnable_avg_period(t) \u003d \\Sum 1024 * y^i\n  load(t) \u003d weight_t * runnable_sum(t) / runnable_avg_period(t)\n\nWhere: u_i is the usage in the last i`th 1024us period (approximately 1ms)\n~ms and y is chosen such that y^k \u003d 1/2.  We currently choose k to be 32 which\nroughly translates to about a sched period.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.372695337@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b637a328bd4f43a0e146d1eef0142b650ba0d644",
      "tree": "f1bcf34f229b9ab62612971903ccd61d05db7aea",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Sep 19 16:58:38 2012 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 23 14:55:25 2012 -0700"
      },
      "message": "rcu: Print remote CPU\u0027s stacks in stall warnings\n\nThe RCU CPU stall warnings rely on trigger_all_cpu_backtrace() to\ndo NMI-based dump of the stack traces of all CPUs.  Unfortunately, a\nnumber of architectures do not implement trigger_all_cpu_backtrace(), in\nwhich case RCU falls back to just dumping the stack of the running CPU.\nThis is unhelpful in the case where the running CPU has detected that\nsome other CPU has stalled.\n\nThis commit therefore makes the running CPU dump the stacks of the\ntasks running on the stalled CPUs.\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": "4d9a5d4319e22670ec6d6227e12b54f361c46d0f",
      "tree": "d82eb23f01225bf31027e19ce983cd05e9b900bd",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 11 01:47:16 2012 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 23 14:54:06 2012 -0700"
      },
      "message": "rcu: Remove rcu_switch()\n\nIt\u0027s only there to call rcu_user_hooks_switch(). Let\u0027s\njust call rcu_user_hooks_switch() directly, we don\u0027t need this\nfunction in the middle.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    }
  ],
  "next": "8ed92e51f99c2199c64cb33b4ba95ab12940a94c"
}
