)]}'
{
  "log": [
    {
      "commit": "897e81bea1fcfcd2c5cdb720c9efdb25da9ff374",
      "tree": "92cf33ed2c35c1ece633f09365702f1c8e24d415",
      "parents": [
        "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
        "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  sched, cputime: Introduce thread_group_times()\n  sched, cputime: Cleanups related to task_times()\n  Revert \"sched, x86: Optimize branch hint in __switch_to()\"\n  sched: Fix isolcpus boot option\n  sched: Revert 498657a478c60be092208422fefa9c7b248729c2\n  sched, time: Define nsecs_to_jiffies()\n  sched: Remove task_{u,s,g}time()\n  sched: Introduce task_times() to replace task_{u,s}time() pair\n  sched: Limit the number of scheduler debug messages\n  sched.c: Call debug_show_all_locks() when dumping all tasks\n  sched, x86: Optimize branch hint in __switch_to()\n  sched: Optimize branch hint in context_switch()\n  sched: Optimize branch hint in pick_next_task_fair()\n  sched_feat_write(): Update ppos instead of file-\u003ef_pos\n  sched: Sched_rt_periodic_timer vs cpu hotplug\n  sched, kvm: Fix race condition involving sched_in_preempt_notifers\n  sched: More generic WAKE_AFFINE vs select_idle_sibling()\n  sched: Cleanup select_task_rq_fair()\n  sched: Fix granularity of task_u/stime()\n  sched: Fix/add missing update_rq_clock() calls\n  ...\n"
    },
    {
      "commit": "69f061e0c2ed47304b3eeac7fb7bd5268652dc50",
      "tree": "69bca9d5c7e7eb5e79dae030cbce713686e4d209",
      "parents": [
        "607781762e7aae9c976f0a9a8829d4ba3e2da4ab",
        "f84d49b218b7d4c6cba2e0b41f24bd4045403962"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "message": "Merge branch \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: Print warning message when dropping signals\n  signal: Fix alternate signal stack check\n"
    },
    {
      "commit": "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239",
      "tree": "6102662a9594d51155bee11666fe8517fcbe6039",
      "parents": [
        "d99ca3b977fc5a93141304f571475c2af9e6c1c5"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:28:07 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:40 2009 +0100"
      },
      "message": "sched, cputime: Introduce thread_group_times()\n\nThis is a real fix for problem of utime/stime values decreasing\ndescribed in the thread:\n\n   http://lkml.org/lkml/2009/11/3/522\n\nNow cputime is accounted in the following way:\n\n - {u,s}time in task_struct are increased every time when the thread\n   is interrupted by a tick (timer interrupt).\n\n - When a thread exits, its {u,s}time are added to signal-\u003e{u,s}time,\n   after adjusted by task_times().\n\n - When all threads in a thread_group exits, accumulated {u,s}time\n   (and also c{u,s}time) in signal struct are added to c{u,s}time\n   in signal struct of the group\u0027s parent.\n\nSo {u,s}time in task struct are \"raw\" tick count, while\n{u,s}time and c{u,s}time in signal struct are \"adjusted\" values.\n\nAnd accounted values are used by:\n\n - task_times(), to get cputime of a thread:\n   This function returns adjusted values that originates from raw\n   {u,s}time and scaled by sum_exec_runtime that accounted by CFS.\n\n - thread_group_cputime(), to get cputime of a thread group:\n   This function returns sum of all {u,s}time of living threads in\n   the group, plus {u,s}time in the signal struct that is sum of\n   adjusted cputimes of all exited threads belonged to the group.\n\nThe problem is the return value of thread_group_cputime(),\nbecause it is mixed sum of \"raw\" value and \"adjusted\" value:\n\n  group\u0027s {u,s}time \u003d foreach(thread){{u,s}time} + exited({u,s}time)\n\nThis misbehavior can break {u,s}time monotonicity.\nAssume that if there is a thread that have raw values greater\nthan adjusted values (e.g. interrupted by 1000Hz ticks 50 times\nbut only runs 45ms) and if it exits, cputime will decrease (e.g.\n-5ms).\n\nTo fix this, we could do:\n\n  group\u0027s {u,s}time \u003d foreach(t){task_times(t)} + exited({u,s}time)\n\nBut task_times() contains hard divisions, so applying it for\nevery thread should be avoided.\n\nThis patch fixes the above problem in the following way:\n\n - Modify thread\u0027s exit (\u003d __exit_signal()) not to use task_times().\n   It means {u,s}time in signal struct accumulates raw values instead\n   of adjusted values.  As the result it makes thread_group_cputime()\n   to return pure sum of \"raw\" values.\n\n - Introduce a new function thread_group_times(*task, *utime, *stime)\n   that converts \"raw\" values of thread_group_cputime() to \"adjusted\"\n   values, in same calculation procedure as task_times().\n\n - Modify group\u0027s exit (\u003d wait_task_zombie()) to use this introduced\n   thread_group_times().  It make c{u,s}time in signal struct to\n   have adjusted values like before this patch.\n\n - Replace some thread_group_cputime() by thread_group_times().\n   This replacements are only applied where conveys the \"adjusted\"\n   cputime to users, and where already uses task_times() near by it.\n   (i.e. sys_times(), getrusage(), and /proc/\u003cPID\u003e/stat.)\n\nThis patch have a positive side effect:\n\n - Before this patch, if a group contains many short-life threads\n   (e.g. runs 0.9ms and not interrupted by ticks), the group\u0027s\n   cputime could be invisible since thread\u0027s cputime was accumulated\n   after adjusted: imagine adjustment function as adj(ticks, runtime),\n     {adj(0, 0.9) + adj(0, 0.9) + ....} \u003d {0 + 0 + ....} \u003d 0.\n   After this patch it will not happen because the adjustment is\n   applied after accumulated.\n\nv2:\n - remove if()s, put new variables into signal_struct.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B162517.8040909@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d99ca3b977fc5a93141304f571475c2af9e6c1c5",
      "tree": "7665ebdafcef46c310055021562e6629f59eafd5",
      "parents": [
        "be8147e68625a1adb111acfd6b98a492be4b74d0"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:26:47 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:39 2009 +0100"
      },
      "message": "sched, cputime: Cleanups related to task_times()\n\n- Remove if({u,s}t)s because no one call it with NULL now.\n- Use cputime_{add,sub}().\n- Add ifndef-endif for prev_{u,s}time since they are used\n  only when !VIRT_CPU_ACCOUNTING.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B1624C7.7040302@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa1452e808732ae10e8b1267fd75fc2d028d634b",
      "tree": "c6c3031fa072b168fceef530f38e5166f21ed17d",
      "parents": [
        "a49ed0bf427a8328a3296eebedc7697fe5098dbf"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Nov 30 14:59:44 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 10:24:37 2009 +0100"
      },
      "message": "locking, task_struct: Reduce size on TRACE_IRQFLAGS and 64bit\n\nReorder task_struct field for TRACE_IRQFLAGS to remove padding\non 64-bit.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4B135F50.8070302@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5b7c78e975302a1bab28263266c39ecb71acad4",
      "tree": "47d9a18b2e81b3f93faf89b548b50beff29dd4fe",
      "parents": [
        "d180c5bccec02612256fd8076ff3c1fac3429553"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:49:05 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:20 2009 +0100"
      },
      "message": "sched: Remove task_{u,s,g}time()\n\nNow all task_{u,s}time() pairs are replaced by task_times().\nAnd task_gtime() is too simple to be an inline function.\n\nCleanup them all.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16D1.70902@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d180c5bccec02612256fd8076ff3c1fac3429553",
      "tree": "1ef4a45c81531645640380965916c68bbe7f6abb",
      "parents": [
        "16bc67edeb49b531940b2ba6c183780a1b5c472d"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:48:30 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:19 2009 +0100"
      },
      "message": "sched: Introduce task_times() to replace task_{u,s}time() pair\n\nFunctions task_{u,s}time() are called in pair in almost all\ncases.  However task_stime() is implemented to call task_utime()\nfrom its inside, so such paired calls run task_utime() twice.\n\nIt means we do heavy divisions (div_u64 + do_div) twice to get\nutime and stime which can be obtained at same time by one set\nof divisions.\n\nThis patch introduces a function task_times(*tsk, *utime,\n*stime) to retrieve utime and stime at once in better, optimized\nway.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16AE.906@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a855dd01bc1539111adb7233f587c5c468732ac",
      "tree": "4ceb2f997ab5ef2830eb91ee8414110bf70cb20b",
      "parents": [
        "51bb296b09a83ee1aae025778db38f9d2cc7bb1a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sun Oct 25 15:37:58 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 04 18:19:12 2009 +0100"
      },
      "message": "signal: Fix alternate signal stack check\n\nAll architectures in the kernel increment/decrement the stack pointer\nbefore storing values on the stack.\n\nOn architectures which have the stack grow down sas_ss_sp \u003d\u003d sp is not\non the alternate signal stack while sas_ss_sp + sas_ss_size \u003d\u003d sp is\non the alternate signal stack.\n\nOn architectures which have the stack grow up sas_ss_sp \u003d\u003d sp is on\nthe alternate signal stack while sas_ss_sp + sas_ss_size \u003d\u003d sp is not\non the alternate signal stack.\n\nThe current implementation fails for architectures which have the\nstack grow down on the corner case where sas_ss_sp \u003d\u003d sp.This was\nreported as Debian bug #544905 on AMD64.\nSimplified test case: http://download.breakpoint.cc/tc-sig-stack.c\n\nThe test case creates the following stack scenario:\n   0xn0300\tstack top\n   0xn0200\talt stack pointer top (when switching to alt stack)\n   0xn01ff\talt stack end\n   0xn0100\talt stack start \u003d\u003d stack pointer\n\nIf the signal is sent the stack pointer is pointing to the base\naddress of the alt stack and the kernel erroneously decides that it\nhas already switched to the alternate stack because of the current\ncheck for \"sp - sas_ss_sp \u003c sas_ss_size\"\n\nOn parisc (stack grows up) the scenario would be:\n   0xn0200\tstack pointer\n   0xn01ff\talt stack end\n   0xn0100\talt stack start \u003d alt stack pointer base\n   \t\t    \t  \t  (when switching to alt stack)\n   0xn0000\tstack base\n\nThis is handled correctly by the current implementation.\n\n[ tglx: Modified for archs which have the stack grow up (parisc) which\n  \twould fail with the correct implementation for stack grows\n  \tdown. Added a check for sp \u003e\u003d current-\u003esas_ss_sp which is\n  \tstrictly not necessary but makes the code symetric for both\n  \tvariants ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c20091025143758.GA6653@Chamillionaire.breakpoint.cc\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "acc3f5d7cabbfd6cec71f0c1f9900621fa2d6ae7",
      "tree": "672ed45f6df2f52e8f3cced2ee11ad29a1533890",
      "parents": [
        "e2c880630438f80b474378d5487b511b07665051"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 03 14:53:40 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 13:16:40 2009 +0100"
      },
      "message": "cpumask: Partition_sched_domains takes array of cpumask_var_t\n\nCurrently partition_sched_domains() takes a \u0027struct cpumask\n*doms_new\u0027 which is a kmalloc\u0027ed array of cpumask_t.  You can\u0027t\nhave such an array if \u0027struct cpumask\u0027 is undefined, as we plan\nfor CONFIG_CPUMASK_OFFSTACK\u003dy.\n\nSo, we make this an array of cpumask_var_t instead: this is the\nsame for the CONFIG_CPUMASK_OFFSTACK\u003dn case, but requires\nmultiple allocations for the CONFIG_CPUMASK_OFFSTACK\u003dy case.\nHence we add alloc_sched_domains() and free_sched_domains()\nfunctions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c200911031453.40668.rusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9824a2b728b63e7ff586b9fd9293c819be79f0f3",
      "tree": "cb73b6d37e5854206bf669bc63c72342191039c8",
      "parents": [
        "2a2bb3142d326bb28b03875cabfc49baaac9a14a"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:16:54 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:43 2009 +0100"
      },
      "message": "sched: Remove unused cpu_nr_migrations()\n\ncpu_nr_migrations() is not used, remove it.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF12A66.6020609@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a2bb3142d326bb28b03875cabfc49baaac9a14a",
      "tree": "28dcff456d5065015443f97b6fc7d1099832083a",
      "parents": [
        "1477b6a7edd9ffa7bba4f9779ce9a76ce92761ed"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:16:10 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:42 2009 +0100"
      },
      "message": "sched: Remove unused time_sync_thresh declaration\n\ntime_sync_thresh had been removed.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF12A3A.5050200@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1477b6a7edd9ffa7bba4f9779ce9a76ce92761ed",
      "tree": "550163b002a661377ffbd21b8c16fc691a906752",
      "parents": [
        "ce0e7b28fb75cb003cfc8d0238613aaf1c55e797"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Nov 04 16:14:16 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 11:43:42 2009 +0100"
      },
      "message": "sched: Remove unused __schedule() declaration\n\n__schedule() had been removed.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4AF129C8.3030008@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "801460d0cf5c5288153b722565773059b0f44348",
      "tree": "ff2542903572a546ac59e92f295e9a18e718afa0",
      "parents": [
        "2fa4341074cd02fb39aa23410740764948755635"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Sep 23 15:57:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "task_struct cleanup: move binfmt field to mm_struct\n\nBecause the binfmt is not different between threads in the same process,\nit can be moved from task_struct to mm_struct.  And binfmt moudle is\nhandled per mm_struct instead of task_struct.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Roland McGrath \u003croland@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": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9588725e52650e82989707f8fd2feb67ad2dc8e",
      "tree": "39a9f9f5e8ba6a6e008b9ada310347e24ede400e",
      "parents": [
        "ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Sep 23 15:57:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: inline __fatal_signal_pending\n\n__fatal_signal_pending inlines to one instruction on x86, probably two\ninstructions on other machines.  It takes two longer x86 instructions just\nto call it and test its return value, not to mention the function itself.\n\nOn my random x86_64 config, this saved 70 bytes of text (59 of those being\n__fatal_signal_pending itself).\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "a7f0765edfd53aed09cb7b0e15863688b39447de",
      "tree": "c89adfe418f9988ad4044e0f22827458bdf6b155",
      "parents": [
        "1dd3a27326d307952f8ad2499478c84dc7311517"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:56:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:59 2009 -0700"
      },
      "message": "ptrace: __ptrace_detach: do __wake_up_parent() if we reap the tracee\n\nThe bug is old, it wasn\u0027t cause by recent changes.\n\nTest case:\n\n\tstatic void *tfunc(void *arg)\n\t{\n\t\tint pid \u003d (long)arg;\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, NULL, NULL) \u003d\u003d 0);\n\t\tkill(pid, SIGKILL);\n\n\t\tsleep(1);\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t th;\n\t\tlong pid \u003d fork();\n\n\t\tif (!pid)\n\t\t\tpause();\n\n\t\tsignal(SIGCHLD, SIG_IGN);\n\t\tassert(pthread_create(\u0026th, NULL, tfunc, (void*)pid) \u003d\u003d 0);\n\n\t\tint r \u003d waitpid(-1, NULL, __WNOTHREAD);\n\t\tprintf(\"waitpid: %d %m\\n\", r);\n\n\t\treturn 0;\n\t}\n\nBefore the patch this program hangs, after this patch waitpid() correctly\nfails with errno \u003d\u003d -ECHILD.\n\nThe problem is, __ptrace_detach() reaps the EXIT_ZOMBIE tracee if its\n-\u003ereal_parent is our sub-thread and we ignore SIGCHLD.  But in this case\nwe should wake up other threads which can sleep in do_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@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": "e0ad955680878998ff7dc51ce06ddad12260423a",
      "tree": "dc475d81413dacd8ecbe3e6d0e4949be7ec97b44",
      "parents": [
        "e68110fb54c3c784fb66be67d8d18a86286eefdd"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:38 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Sep 24 09:34:39 2009 +0930"
      },
      "message": "cpumask: don\u0027t define set_cpus_allowed() if CONFIG_CPUMASK_OFFSTACK\u003dy\n\nYou\u0027re not supposed to pass cpumasks on the stack in that case.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "31bbb9b58d1e8ebcf2b28c95c2250a9f8e31e397",
      "tree": "6bb0c0490d66d32eca43e73abb28d8b3ab0e7b91",
      "parents": [
        "ff830b8e5f999d1ccbd0282a666520f0b557daa4",
        "3f0a525ebf4b8ef041a332bbe4a73aee94bb064b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  itimers: Add tracepoints for itimer\n  hrtimer: Add tracepoint for hrtimers\n  timers: Add tracepoints for timer_list timers\n  cputime: Optimize jiffies_to_cputime(1)\n  itimers: Simplify arm_timer() code a bit\n  itimers: Fix periodic tics precision\n  itimers: Merge ITIMER_VIRT and ITIMER_PROF\n\nTrivial header file include conflicts in kernel/fork.c\n"
    },
    {
      "commit": "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db",
      "tree": "32a5ee7816b2f0cb3261dcca8102b9cafe9251bd",
      "parents": [
        "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Sep 22 16:45:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "procfs: provide stack information for threads\n\nA patch to give a better overview of the userland application stack usage,\nespecially for embedded linux.\n\nCurrently you are only able to dump the main process/thread stack usage\nwhich is showed in /proc/pid/status by the \"VmStk\" Value.  But you get no\ninformation about the consumed stack memory of the the threads.\n\nThere is an enhancement in the /proc/\u003cpid\u003e/{task/*,}/*maps and which marks\nthe vm mapping where the thread stack pointer reside with \"[thread stack\nxxxxxxxx]\".  xxxxxxxx is the maximum size of stack.  This is a value\ninformation, because libpthread doesn\u0027t set the start of the stack to the\ntop of the mapped area, depending of the pthread usage.\n\nA sample output of /proc/\u003cpid\u003e/task/\u003ctid\u003e/maps looks like:\n\n08048000-08049000 r-xp 00000000 03:00 8312       /opt/z\n08049000-0804a000 rw-p 00001000 03:00 8312       /opt/z\n0804a000-0806b000 rw-p 00000000 00:00 0          [heap]\na7d12000-a7d13000 ---p 00000000 00:00 0\na7d13000-a7f13000 rw-p 00000000 00:00 0          [thread stack: 001ff4b4]\na7f13000-a7f14000 ---p 00000000 00:00 0\na7f14000-a7f36000 rw-p 00000000 00:00 0\na7f36000-a8069000 r-xp 00000000 03:00 4222       /lib/libc.so.6\na8069000-a806b000 r--p 00133000 03:00 4222       /lib/libc.so.6\na806b000-a806c000 rw-p 00135000 03:00 4222       /lib/libc.so.6\na806c000-a806f000 rw-p 00000000 00:00 0\na806f000-a8083000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0\na8083000-a8084000 r--p 00013000 03:00 14462      /lib/libpthread.so.0\na8084000-a8085000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0\na8085000-a8088000 rw-p 00000000 00:00 0\na8088000-a80a4000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2\na80a4000-a80a5000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2\na80a5000-a80a6000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2\nafaf5000-afb0a000 rw-p 00000000 00:00 0          [stack]\nffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]\n\nAlso there is a new entry \"stack usage\" in /proc/\u003cpid\u003e/{task/*,}/status\nwhich will you give the current stack usage in kb.\n\nA sample output of /proc/self/status looks like:\n\nName:\tcat\nState:\tR (running)\nTgid:\t507\nPid:\t507\n.\n.\n.\nCapBnd:\tfffffffffffffeff\nvoluntary_ctxt_switches:\t0\nnonvoluntary_ctxt_switches:\t0\nStack usage:\t12 kB\n\nI also fixed stack base address in /proc/\u003cpid\u003e/{task/*,}/stat to the base\naddress of the associated thread stack and not the one of the main\nprocess.  This makes more sense.\n\n[akpm@linux-foundation.org: fs/proc/array.c now needs walk_page_range()]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f10206cf8e945220f7220a809d8bfc15c21f9a5",
      "tree": "4f2c48ccf9cc52dad9610df54e301e631a351288",
      "parents": [
        "b28cfd2c0616e1b42acc6ee3c77ef6cc3873c510"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Sep 22 16:44:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:30 2009 -0700"
      },
      "message": "getrusage: fill ru_maxrss value\n\nMake -\u003eru_maxrss value in struct rusage filled accordingly to rss hiwater\nmark.  This struct is filled as a parameter to getrusage syscall.\n-\u003eru_maxrss value is set to KBs which is the way it is done in BSD\nsystems.  /usr/bin/time (gnu time) application converts -\u003eru_maxrss to KBs\nwhich seems to be incorrect behavior.  Maintainer of this util was\nnotified by me with the patch which corrects it and cc\u0027ed.\n\nTo make this happen we extend struct signal_struct by two fields.  The\nfirst one is -\u003emaxrss which we use to store rss hiwater of the task.  The\nsecond one is -\u003ecmaxrss which we use to store highest rss hiwater of all\ntask childs.  These values are used in k_getrusage() to actually fill\n-\u003eru_maxrss.  k_getrusage() uses current rss hiwater value directly if mm\nstruct exists.\n\nNote:\nexec() clear mm-\u003ehiwater_rss, but doesn\u0027t clear sig-\u003emaxrss.\nit is intetionally behavior. *BSD getrusage have exec() inheriting.\n\ntest programs\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ngetrusage.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n\n #define err(str) perror(str), exit(1)\n\nint main(int argc, char** argv)\n{\n\tint status;\n\n\tprintf(\"allocate 100MB\\n\");\n\tconsume(100);\n\n\tprintf(\"testcase1: fork inherit? \\n\");\n\tprintf(\"  expect: initial.self ~\u003d child.self\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase2: fork inherit? (cont.) \\n\");\n\tprintf(\"  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase3: fork + malloc \\n\");\n\tprintf(\"  expect: child.self ~\u003d initial.self + 50MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tprintf(\"allocate +50MB\\n\");\n\t\tconsume(50);\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase4: grandchild maxrss\\n\");\n\tprintf(\"  expect: post_wait.children ~\u003d 300MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 0 -g 300\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase5: zombie\\n\");\n\tprintf(\"  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\\n\");\n\tprintf(\"          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss. \\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"pre_wait\");\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 400\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase6: SIG_IGN\\n\");\n\tprintf(\"  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\\n\");\n\tshow_rusage(\"initial\");\n\tsignal(SIGCHLD, SIG_IGN);\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"after_zombie\");\n\t} else {\n\t\tsystem(\"./child -n 500\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\tsignal(SIGCHLD, SIG_DFL);\n\n\tprintf(\"testcase7: exec (without fork) \\n\");\n\tprintf(\"  expect: initial ~\u003d exec \\n\");\n\tshow_rusage(\"initial\");\n\texecl(\"./child\", \"child\", \"-v\", NULL);\n\n\treturn 0;\n}\n\nchild.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003csys/types.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n\n #include \"common.h\"\n\nint main(int argc, char** argv)\n{\n\tint status;\n\tint c;\n\tlong consume_size \u003d 0;\n\tlong grandchild_consume_size \u003d 0;\n\tint show \u003d 0;\n\n\twhile ((c \u003d getopt(argc, argv, \"n:g:v\")) !\u003d -1) {\n\t\tswitch (c) {\n\t\tcase \u0027n\u0027:\n\t\t\tconsume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tcase \u0027v\u0027:\n\t\t\tshow \u003d 1;\n\t\t\tbreak;\n\t\tcase \u0027g\u0027:\n\n\t\t\tgrandchild_consume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (show)\n\t\tshow_rusage(\"exec\");\n\n\tif (consume_size) {\n\t\tprintf(\"child alloc %ldMB\\n\", consume_size);\n\t\tconsume(consume_size);\n\t}\n\n\tif (grandchild_consume_size) {\n\t\tif (fork()) {\n\t\t\twait(\u0026status);\n\t\t} else {\n\t\t\tprintf(\"grandchild alloc %ldMB\\n\", grandchild_consume_size);\n\t\t\tconsume(grandchild_consume_size);\n\n\t\t\texit(0);\n\t\t}\n\t}\n\n\treturn 0;\n}\n\ncommon.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n #define err(str) perror(str), exit(1)\n\nvoid show_rusage(char *prefix)\n{\n    \tint err, err2;\n    \tstruct rusage rusage_self;\n    \tstruct rusage rusage_children;\n\n    \tprintf(\"%s: \", prefix);\n    \terr \u003d getrusage(RUSAGE_SELF, \u0026rusage_self);\n    \tif (!err)\n    \t\tprintf(\"self %ld \", rusage_self.ru_maxrss);\n    \terr2 \u003d getrusage(RUSAGE_CHILDREN, \u0026rusage_children);\n    \tif (!err2)\n    \t\tprintf(\"children %ld \", rusage_children.ru_maxrss);\n\n    \tprintf(\"\\n\");\n}\n\n/* Some buggy OS need this worthless CPU waste. */\nvoid make_pagefault(void)\n{\n\tvoid *addr;\n\tint size \u003d getpagesize();\n\tint i;\n\n\tfor (i\u003d0; i\u003c1000; i++) {\n\t\taddr \u003d mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);\n\t\tif (addr \u003d\u003d MAP_FAILED)\n\t\t\terr(\"make_pagefault\");\n\t\tmemset(addr, 0, size);\n\t\tmunmap(addr, size);\n\t}\n}\n\nvoid consume(int mega)\n{\n    \tsize_t sz \u003d mega * 1024 * 1024;\n    \tvoid *ptr;\n\n    \tptr \u003d malloc(sz);\n    \tmemset(ptr, 0, sz);\n\tmake_pagefault();\n}\n\npid_t __fork(void)\n{\n\tpid_t pid;\n\n\tpid \u003d fork();\n\tmake_pagefault();\n\n\treturn pid;\n}\n\ncommon.h\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nvoid show_rusage(char *prefix);\nvoid make_pagefault(void);\nvoid consume(int mega);\npid_t __fork(void);\n\nFreeBSD result (expected result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 103492 children 0\nfork child: self 103540 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 103540 children 103540\nchild: self 103564 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 103564 children 103564\nallocate +50MB\nfork child: self 154860 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 103564 children 154860\ngrandchild alloc 300MB\npost_wait: self 103564 children 308720\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 103564 children 308720\nchild alloc 400MB\npre_wait: self 103564 children 308720\npost_wait: self 103564 children 411312\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 103564 children 411312\nchild alloc 500MB\nafter_zombie: self 103624 children 411312\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 103624 children 411312\nexec: self 103624 children 411312\n\nLinux result (actual test result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 102848 children 0\nfork child: self 102572 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 102876 children 102644\nchild: self 102572 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 102876 children 102644\nallocate +50MB\nfork child: self 153804 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 102876 children 153864\ngrandchild alloc 300MB\npost_wait: self 102876 children 307536\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 102876 children 307536\nchild alloc 400MB\npre_wait: self 102876 children 307536\npost_wait: self 102876 children 410076\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 102876 children 410076\nchild alloc 500MB\nafter_zombie: self 102880 children 410076\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 102880 children 410076\nexec: self 102880 children 410076\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69d25870f20c4b2563304f2b79c5300dd60a067e",
      "tree": "cda2b2d65c1be95420c6ba92ae2d40fade4232c4",
      "parents": [
        "45d80eea87c9f8292d2d33173d6866c0ec57238a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Sep 21 17:04:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:45 2009 -0700"
      },
      "message": "cpuidle: fix the menu governor to boost IO performance\n\nFix the menu idle governor which balances power savings, energy efficiency\nand performance impact.\n\nThe reason for a reworked governor is that there have been serious\nperformance issues reported with the existing code on Nehalem server\nsystems.\n\nTo show this I\u0027m sure Andrew wants to see benchmark results:\n(benchmark is \"fio\", \"no cstates\" is using \"idle\u003dpoll\")\n\n\t\tno cstates\tcurrent linux\tnew algorithm\n1 disk\t\t107 Mb/s\t85 Mb/s\t\t105 Mb/s\n2 disks\t\t215 Mb/s\t123 Mb/s\t209 Mb/s\n12 disks\t590 Mb/s\t320 Mb/s\t585 Mb/s\n\nIn various power benchmark measurements, no degredation was found by our\nmeasurement\u0026diagnostics team.  Obviously a small percentage more power was\nused in the \"fio\" benchmark, due to the much higher performance.\n\nWhile it would be a novel idea to describe the new algorithm in this\ncommit message, I cheaped out and described it in comments in the code\ninstead.\n\n[changes since first post: spelling fixes from akpm, review feedback,\nfolded menu-tng into menu.c]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b83c5193e7ab951e402252278f2cc79dc4d298",
      "tree": "10080e8d3957c2a03f8419ab44c9ecb0ffcdaee0",
      "parents": [
        "f168e1b6390e2d79cf57e48e6ae6d9b0a9e2851a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to signal_struct\n\nCurrently, OOM logic callflow is here.\n\n    __out_of_memory()\n        select_bad_process()            for each task\n            badness()                   calculate badness of one task\n                oom_kill_process()      search child\n                    oom_kill_task()     kill target task and mm shared tasks with it\n\nexample, process-A have two thread, thread-A and thread-B and it have very\nfat memory and each thread have following oom_adj and oom_score.\n\n     thread-A: oom_adj \u003d OOM_DISABLE, oom_score \u003d 0\n     thread-B: oom_adj \u003d 0,           oom_score \u003d very-high\n\nThen, select_bad_process() select thread-B, but oom_kill_task() refuse\nkill the task because thread-A have OOM_DISABLE.  Thus __out_of_memory()\ncall select_bad_process() again.  but select_bad_process() select the same\ntask.  It mean kernel fall in livelock.\n\nThe fact is, select_bad_process() must select killable task.  otherwise\nOOM logic go into livelock.\n\nAnd root cause is, oom_adj shouldn\u0027t be per-thread value.  it should be\nper-process value because OOM-killer kill a process, not thread.  Thus\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct signal_struct.  it naturally prevent\nselect_bad_process() choose wrong task.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "35451beecbd7c86ce3249d543594517a5fe9a0cd",
      "tree": "e72759e6e6fcd142ab85c607a9b3dd3e1c016eed",
      "parents": [
        "a913e182ab9484308e870af37a14d372742d53b0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "ksm: unmerge is an origin of OOMs\n\nJust as the swapoff system call allocates many pages of RAM to various\nprocesses, perhaps triggering OOM, so \"echo 2 \u003e/sys/kernel/mm/ksm/run\"\n(unmerge) is liable to allocate many pages of RAM to various processes,\nperhaps triggering OOM; and each is normally run from a modest admin\nprocess (swapoff or shell), easily repeated until it succeeds.\n\nSo treat unmerge_and_remove_all_rmap_items() in the same way that we treat\ntry_to_unuse(): generalize PF_SWAPOFF to PF_OOM_ORIGIN, and bracket both\nwith that, to ask the OOM killer to kill them first, to prevent them from\nspawning more and more OOM kills.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "f8af4da3b4c14e7267c4ffb952079af3912c51c5",
      "tree": "17b0cfbd2d3d9abf9008f69e7fee5369cec7afa5",
      "parents": [
        "d19f352484467a5e518639ddff0554669c10ffab"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:01:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:31 2009 -0700"
      },
      "message": "ksm: the mm interface to ksm\n\nThis patch presents the mm interface to a dummy version of ksm.c, for\nbetter scrutiny of that interface: the real ksm.c follows later.\n\nWhen CONFIG_KSM is not set, madvise(2) reject MADV_MERGEABLE and\nMADV_UNMERGEABLE with EINVAL, since that seems more helpful than\npretending that they can be serviced.  But when CONFIG_KSM\u003dy, accept them\neven if KSM is not currently running, and even on areas which KSM will not\ntouch (e.g.  hugetlb or shared file or special driver mappings).\n\nLike other madvices, report ENOMEM despite success if any area in the\nrange is unmapped, and use EAGAIN to report out of memory.\n\nDefine vma flag VM_MERGEABLE to identify an area on which KSM may try\nmerging pages: leave it to ksm_madvise() to decide whether to set it.\nDefine mm flag MMF_VM_MERGEABLE to identify an mm which might contain\nVM_MERGEABLE areas, to minimize callouts when forking or exiting.\n\nBased upon earlier patches by Chris Wright and Izik Eidus.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@redhat.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43c1266ce4dc06bfd236cec31e11e9ecd69c0bef",
      "tree": "40a86739ca4c36200f447f655b01c57cfe646e26",
      "parents": [
        "b8c7f1dc5ca4e0d10709182233cdab932cef593d",
        "57c0c15b5244320065374ad2c54f4fbec77a6428"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:15:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-rename-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Tidy up after the big rename\n  perf: Do the big rename: Performance Counters -\u003e Performance Events\n  perf_counter: Rename \u0027event\u0027 to event_id/hw_event\n  perf_counter: Rename list_entry -\u003e group_entry, counter_list -\u003e group_list\n\nManually resolved some fairly trivial conflicts with the tracing tree in\ninclude/trace/ftrace.h and kernel/trace/trace_syscalls.c.\n"
    },
    {
      "commit": "b8c7f1dc5ca4e0d10709182233cdab932cef593d",
      "tree": "28c5f79d61ce7167511f18eaed5c9fca87c68ab4",
      "parents": [
        "f4eccb6d979e0cc5a719a50af5f9a56e79092a2d",
        "a71fca58b7f4abca551ae2256ac08dd9123a03f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:52 2009 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Fix whitespace inconsistencies\n  rcu: Fix thinko, actually initialize full tree\n  rcu: Apply results of code inspection of kernel/rcutree_plugin.h\n  rcu: Add WARN_ON_ONCE() consistency checks covering state transitions\n  rcu: Fix synchronize_rcu() for TREE_PREEMPT_RCU\n  rcu: Simplify rcu_read_unlock_special() quiescent-state accounting\n  rcu: Add debug checks to TREE_PREEMPT_RCU for premature grace periods\n  rcu: Kconfig help needs to say that TREE_PREEMPT_RCU scales down\n  rcutorture: Occasionally delay readers enough to make RCU force_quiescent_state\n  rcu: Initialize multi-level RCU grace periods holding locks\n  rcu: Need to update rnp-\u003egpnum if preemptable RCU is to be reliable\n"
    },
    {
      "commit": "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6",
      "tree": "81f98a3ab46c589792057fe2392c1e10f8ad7893",
      "parents": [
        "dfc65094d0313cc48969fa60bcf33d693aeb05a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:02:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:28:04 2009 +0200"
      },
      "message": "perf: Do the big rename: Performance Counters -\u003e Performance Events\n\nBye-bye Performance Counters, welcome Performance Events!\n\nIn the past few months the perfcounters subsystem has grown out its\ninitial role of counting hardware events, and has become (and is\nbecoming) a much broader generic event enumeration, reporting, logging,\nmonitoring, analysis facility.\n\nNaming its core object \u0027perf_counter\u0027 and naming the subsystem\n\u0027perfcounters\u0027 has become more and more of a misnomer. With pending\ncode like hw-breakpoints support the \u0027counter\u0027 name is less and\nless appropriate.\n\nAll in one, we\u0027ve decided to rename the subsystem to \u0027performance\nevents\u0027 and to propagate this rename through all fields, variables\nand API names. (in an ABI compatible fashion)\n\nThe word \u0027event\u0027 is also a bit shorter than \u0027counter\u0027 - which makes\nit slightly more convenient to write/handle as well.\n\nThanks goes to Stephane Eranian who first observed this misnomer and\nsuggested a rename.\n\nUser-space tooling and ABI compatibility is not affected - this patch\nshould be function-invariant. (Also, defconfigs were not touched to\nkeep the size down.)\n\nThis patch has been generated via the following script:\n\n  FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n  sed -i \\\n    -e \u0027s/PERF_EVENT_/PERF_RECORD_/g\u0027 \\\n    -e \u0027s/PERF_COUNTER/PERF_EVENT/g\u0027 \\\n    -e \u0027s/perf_counter/perf_event/g\u0027 \\\n    -e \u0027s/nb_counters/nb_events/g\u0027 \\\n    -e \u0027s/swcounter/swevent/g\u0027 \\\n    -e \u0027s/tpcounter_event/tp_event/g\u0027 \\\n    $FILES\n\n  for N in $(find . -name perf_counter.[ch]); do\n    M\u003d$(echo $N | sed \u0027s/perf_counter/perf_event/g\u0027)\n    mv $N $M\n  done\n\n  FILES\u003d$(find . -name perf_event.*)\n\n  sed -i \\\n    -e \u0027s/COUNTER_MASK/REG_MASK/g\u0027 \\\n    -e \u0027s/COUNTER/EVENT/g\u0027 \\\n    -e \u0027s/\\\u003cevent\\\u003e/event_id/g\u0027 \\\n    -e \u0027s/counter/event/g\u0027 \\\n    -e \u0027s/Counter/Event/g\u0027 \\\n    $FILES\n\n... to keep it as correct as possible. This script can also be\nused by anyone who has pending perfcounters patches - it converts\na Linux kernel tree over to the new naming. We tried to time this\nchange to the point in time where the amount of pending patches\nis the smallest: the end of the merge window.\n\nNamespace clashes were fixed up in a preparatory patch - and some\nstylistic fallout will be fixed up in a subsequent patch.\n\n( NOTE: \u0027counters\u0027 are still the proper terminology when we deal\n  with hardware registers - and these sed scripts are a bit\n  over-eager in renaming them. I\u0027ve undone some of that, but\n  in case there\u0027s something left where \u0027counter\u0027 would be\n  better than \u0027event\u0027 we can undo that on an individual basis\n  instead of touching an otherwise nicely automated patch. )\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1",
      "tree": "54c0c8dc201122483bdd7e8975103b07f6afd34b",
      "parents": [
        "cb5fd13f1178dee4302646b2890d884c380160e1"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Sep 21 01:31:53 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 09:53:55 2009 +0200"
      },
      "message": "sched: Simplify sys_sched_rr_get_interval() system call\n\nBy removing the need for it to know details of scheduling classes.\n\nThis allows PlugSched to define orthogonal scheduling classes.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89f19f04dc72363d912fd007a399cb10310eff6e",
      "tree": "daa64e5de98a668eed4a2ceeb6ca95c478be4053",
      "parents": [
        "3f04e8cd5b24727a2500f8ab8f3de730ba47b02c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sat Sep 19 11:55:44 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 20 20:00:32 2009 +0200"
      },
      "message": "sched: Fix raciness in runqueue_is_locked()\n\nrunqueue_is_locked() is unavoidably racy due to a poor interface design.\nIt does\n\n\tcpu \u003d get_cpu()\n\tret \u003d some_perpcu_thing(cpu);\n\tput_cpu(cpu);\n\treturn ret;\n\nIts return value is unreliable.\n\nFix.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c200909191855.n8JItiko022148@imap1.linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c3422bea5f09b0e85704f51f2b01271630b8940b",
      "tree": "fc4a18241b0f7f5d71211f6787428197769cb9f5",
      "parents": [
        "b0e165c035b13e1074fa0b555318bd9cb7102558"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 13 09:15:10 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:06:33 2009 +0200"
      },
      "message": "rcu: Simplify rcu_read_unlock_special() quiescent-state accounting\n\nThe earlier approach required two scheduling-clock ticks to note an\npreemptable-RCU quiescent state in the situation in which the\nscheduling-clock interrupt is unlucky enough to always interrupt an\nRCU read-side critical section.\n\nWith this change, the quiescent state is instead noted by the\noutermost rcu_read_unlock() immediately following the first\nscheduling-clock tick, or, alternatively, by the first subsequent\ncontext switch.  Therefore, this change also speeds up grace\nperiods.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nLKML-Reference: \u003c12528585111945-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad4b78bbcbab66998b05d422ac6106b645796e54",
      "tree": "45f3561f4bd6b886948a3b0eea64edab9bab9eda",
      "parents": [
        "eb24073bc1fe3e569a855cf38d529fb650c35524"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Sep 16 12:31:31 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:17:25 2009 +0200"
      },
      "message": "sched: Add new wakeup preemption mode: WAKEUP_RUNNING\n\nCreate a new wakeup preemption mode, preempt towards tasks that run\nshorter on avg. It sets next buddy to be sure we actually run the task\nwe preempted for.\n\nTest results:\n\n root@twins:~# while :; do :; done \u0026\n [1] 6537\n root@twins:~# while :; do :; done \u0026\n [2] 6538\n root@twins:~# while :; do :; done \u0026\n [3] 6539\n root@twins:~# while :; do :; done \u0026\n [4] 6540\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max          4750 usec\n        Avg           497 usec\n        Stdev         737 usec\n\n root@twins:/home/peter# echo WAKEUP_RUNNING \u003e /debug/sched_features\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max            14 usec\n        Avg             5 usec\n        Stdev           3 usec\n\nDisabled by default - needs more testing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "4db96cf077aa938b11fe7ac79ecc9b29ec00fbab",
      "tree": "ec196e85769159f29952e34305795b47513639a0",
      "parents": [
        "6746aff74da293b5fd24e5c68b870b721e86cd5f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:14 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:14 2009 +0200"
      },
      "message": "HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n\nThis allows processes to override their early/late kill\nbehaviour on hardware memory errors.\n\nTypically applications which are memory error aware is\nbetter of with early kill (see the error as soon\nas possible), all others with late kill (only\nsee the error when the error is really impacting execution)\n\nThere\u0027s a global sysctl, but this way an application\ncan set its specific policy.\n\nWe\u0027re using two bits, one to signify that the process\nstated its intention and that\n\nI also made the prctl future proof by enforcing\nthe unused arguments are 0.\n\nThe state is inherited to children.\n\nNote this makes us officially run out of process flags\non 32bit, but the next patch can easily add another field.\n\nManpage patch will be supplied separately.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "59abf02644c45f1591e1374ee7bb45dc757fcb88",
      "tree": "ce9cb0a4a57873b9d7d75cce4d28308019367192",
      "parents": [
        "e69b0f1b41c0e57bb1e29100b5810a5914efcb45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 08:28:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:42:40 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_LOCAL\n\nAnd turn it on for NUMA and MC domains. This improves\nlocality in balancing decisions by keeping up to\ncapacity amount of tasks local before looking for idle\nCPUs. (and twice the capacity if SD_POWERSAVINGS_BALANCE\nis set.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7558e01056f5191ff2ecff53b075dcb9e484188",
      "tree": "1364bbf9273ce353f4f3146aebe567f79b7c8cad",
      "parents": [
        "7d47872146398dbede13223299fe1cb368ebc781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 20:02:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:31 2009 +0200"
      },
      "message": "sched: Add WF_FORK\n\nAvoid the cache buddies from biasing the time distribution away\nfrom fork()ers. Normally the next buddy will be the preferred\nscheduling target, but this makes fork()s prefer to run the new\nchild, whereas we prefer to run the parent, since that will\ngenerate more work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d47872146398dbede13223299fe1cb368ebc781",
      "tree": "c472424ecbabdb8136e2b93f49f75af9414f03f3",
      "parents": [
        "0763a660a84220cc3900fd32abdd7ad109e2278d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:55:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:30 2009 +0200"
      },
      "message": "sched: Rename sync arguments\n\nIn order to extend the functions to have more than 1 flag (sync),\nrename the argument to flags, and explicitly define a WF_ space for\nindividual flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0763a660a84220cc3900fd32abdd7ad109e2278d",
      "tree": "1b745884fb79627e05c026ee5bfb115b1f722db8",
      "parents": [
        "8e6598af3f35629c37249a610cf13e73f70db279"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:37:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:29 2009 +0200"
      },
      "message": "sched: Rename select_task_rq() argument\n\nIn order to be able to rename the sync argument, we need to rename\nthe current flag argument.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47fe38fcff0517e67d395c039d2e26d2de688a60",
      "tree": "ada38f4e1aa644354b9de4c2cb128719e9e64a9e",
      "parents": [
        "5cbc19a983141729d716be17197028434127b376"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 02 13:49:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:27 2009 +0200"
      },
      "message": "x86: sched: Provide arch implementations using aperf/mperf\n\nAPERF/MPERF support for cpu_power.\n\nAPERF/MPERF is arch defined to be a relative scale of work capacity\nper logical cpu, this is assumed to include SMT and Turbo mode.\n\nAPERF/MPERF are specified to both reset to 0 when either counter\nwraps, which is highly inconvenient, since that\u0027ll give a blimp\nwhen that happens. The manual specifies writing 0 to the counters\nafter each read, but that\u0027s 1) too expensive, and 2) destroys the\npossibility of sharing these counters with other users, so we live\nwith the blimp - the other existing user does too.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c88d5910890ad35af283344417891344604f0438",
      "tree": "4e2025d569c3e03a7ec5163f0a9bc159114ee14e",
      "parents": [
        "e9c8431185d6c406887190519f6dbdd112641686"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:50:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Merge select_task_rq_fair() and sched_balance_self()\n\nThe problem with wake_idle() is that is doesn\u0027t respect things like\ncpu_power, which means it doesn\u0027t deal well with SMT nor the recent\nRT interaction.\n\nTo cure this, it needs to do what sched_balance_self() does, which\nleads to the possibility of merging select_task_rq_fair() and\nsched_balance_self().\n\nModify sched_balance_self() to:\n\n  - update_shares() when walking up the domain tree,\n    (it only called it for the top domain, but it should\n     have done this anyway), which allows us to remove\n    this ugly bit from try_to_wake_up().\n\n  - do wake_affine() on the smallest domain that contains\n    both this (the waking) and the prev (the wakee) cpu for\n    WAKE invocations.\n\nThen use the top-down balance steps it had to replace wake_idle().\n\nThis leads to the dissapearance of SD_WAKE_BALANCE and\nSD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.\n\nSD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.\n\nTouch all topology bits to replace the old with new SD flags --\nplatforms might need re-tuning, enabling SD_BALANCE_WAKE\nconditionally on a NUMA distance seems like a good additional\nfeature, magny-core and small nehalem systems would want this\nenabled, systems with slow interconnects would not.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9c8431185d6c406887190519f6dbdd112641686",
      "tree": "3c502201451df7bbfcd653fee940fcb40bdaaeb6",
      "parents": [
        "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 15 14:43:03 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Add TASK_WAKING\n\nWe\u0027re going to want to drop rq-\u003elock in try_to_wake_up() for a\nlonger period of time, however we also want to deal with concurrent\nwaking of the same task, which is currently handled by holding\nrq-\u003elock.\n\nSo introduce a new TASK state, namely TASK_WAKING, which indicates\nsomeone is already waking the task (other wakers will fail p-\u003estate\n\u0026 state).\n\nWe also keep preemption disabled over the whole ttwu().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f",
      "tree": "46f987010ca017be945831b76d8ea846f1ba8fc9",
      "parents": [
        "aaee1203ca52b9db799433c33c9bffc33cdf8909"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:42:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Hook sched_balance_self() into sched_class::select_task_rq()\n\nRather ugly patch to fully place the sched_balance_self() code\ninside the fair class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "774a694f8cd08115d130a290d73c6d8563f26b1b",
      "tree": "2b5f834ac7a149278d2a7e44d7afe69f40ef1431",
      "parents": [
        "4f0ac854167846bd55cd81dbc9a36e03708aa01c",
        "e1f8450854d69f0291882804406ea1bab3ca44b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:23:18 2009 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (64 commits)\n  sched: Fix sched::sched_stat_wait tracepoint field\n  sched: Disable NEW_FAIR_SLEEPERS for now\n  sched: Keep kthreads at default priority\n  sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n  sched: Turn off child_runs_first\n  sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n  sched: enable SD_WAKE_IDLE\n  sched: Deal with low-load in wake_affine()\n  sched: Remove short cut from select_task_rq_fair()\n  sched: Turn on SD_BALANCE_NEWIDLE\n  sched: Clean up topology.h\n  sched: Fix dynamic power-balancing crash\n  sched: Remove reciprocal for cpu_power\n  sched: Try to deal with low capacity, fix update_sd_power_savings_stats()\n  sched: Try to deal with low capacity\n  sched: Scale down cpu_power due to RT tasks\n  sched: Implement dynamic cpu_power\n  sched: Add smt_gain\n  sched: Update the cpu_power sum during load-balance\n  sched: Add SD_PREFER_SIBLING\n  ...\n"
    },
    {
      "commit": "eee2775d9924b22643bd89b2e568cc5eed7e8a04",
      "tree": "095ad7851895c5d39596f3ff7ee1e078235a2501",
      "parents": [
        "53e16fbd30005905168d9b75555fdc7e0a2eac58",
        "7db905e636f08ea5bc9825c1f73d77802e8ccad5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (28 commits)\n  rcu: Move end of special early-boot RCU operation earlier\n  rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n  rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n  rcu: Remove lockdep annotations from RCU\u0027s _notrace() API members\n  rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds\n  rcu: Add CPU-offline processing for single-node configurations\n  rcu: Add \"notrace\" to RCU function headers used by ftrace\n  rcu: Remove CONFIG_PREEMPT_RCU\n  rcu: Merge preemptable-RCU functionality into hierarchical RCU\n  rcu: Simplify rcu_pending()/rcu_check_callbacks() API\n  rcu: Use debugfs_remove_recursive() simplify code.\n  rcu: Merge per-RCU-flavor initialization into pre-existing macro\n  rcu: Fix online/offline indication for rcudata.csv trace file\n  rcu: Consolidate sparse and lockdep declarations in include/linux/rcupdate.h\n  rcu: Renamings to increase RCU clarity\n  rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h\n  rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP\n  rcu: Delay rcu_barrier() wait until beginning of next CPU-hotunplug operation.\n  rcu: Fix typo in rcu_irq_exit() comment header\n  rcu: Make rcupreempt_trace.c look at offline CPUs\n  ...\n"
    },
    {
      "commit": "2bba22c50b06abe9fd0d23933b1e64d35b419262",
      "tree": "5ac0373fa1d18f043cb27183f9f185ceda598915",
      "parents": [
        "b5d9d734a53e0204aab0089079cbde2a1285a38f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:05 2009 +0200"
      },
      "message": "sched: Turn off child_runs_first\n\nSet child_runs_first default to off.\n\nIt hurts \u0027optimal\u0027 make -j\u003cNR_CPUS\u003e workloads as make jobs\nget preempted by child tasks, reducing parallelism.\n\nNote, this patch might make existing races in user\napplications more prominent than before - so breakages\nmight be bisected to this commit.\n\nChild-runs-first is broken on SMP to begin with, and we\nalready had it off briefly in v2.6.23 so most of the\noffenders ought to be fixed. Would be nice not to revert\nthis commit but fix those apps finally ...\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\n[ made the sysctl independent of CONFIG_SCHED_DEBUG, in case\n  people want to work around broken apps. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "18a3885fc1ffa92c2212ff0afdf033403d5b0fa0",
      "tree": "e83c640c68d957b793b56e90274aa2f3d0e97655",
      "parents": [
        "d899a789c28ded9c72b57ddb61868d6b8fc23e80"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:56 2009 +0200"
      },
      "message": "sched: Remove reciprocal for cpu_power\n\nIts a source of fail, also, now that cpu_power is dynamical,\nits a waste of time.\n\nbefore:\n\u003cidle\u003e-0   [000]   132.877936: find_busiest_group: avg_load: 0 group_load: 8241 power: 1\n\nafter:\nbash-1689  [001]   137.862151: find_busiest_group: avg_load: 10636288 group_load: 10387 power: 1\n\n[ v2: build fix from From: Andreas Herrmann ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.425896304@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9e9250bc78e7f6342517214c0178a529807964b",
      "tree": "9466a437ccfa93b200f4ee434fe807dd6b5fc050",
      "parents": [
        "ab29230e673c646292c90c8b9d378b9562145af0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:55 2009 +0200"
      },
      "message": "sched: Scale down cpu_power due to RT tasks\n\nKeep an average on the amount of time spend on RT tasks and use\nthat fraction to scale down the cpu_power for regular tasks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.287778431@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a52bfd73589eaf88d9c95ad2c1de0b38a6b27972",
      "tree": "33cee609a46624525abf1643d71d0fbc79e25f87",
      "parents": [
        "cc9fba7d7672fa3ed58d9d9ecb6c45b1351c29a6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:54 2009 +0200"
      },
      "message": "sched: Add smt_gain\n\nThe idea is that multi-threading a core yields more work\ncapacity than a single thread, provide a way to express a\nstatic gain for threads.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.073345955@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5d978e0c7e79a7ff842e895c85a86b38c71f1cd",
      "tree": "83502797f31953c66a76ab9cd43d6df999084210",
      "parents": [
        "f93e65c186ab3c05ce2068733ca10e34fd00125e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:53 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_SIBLING\n\nDo the placement thing using SD flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083825.897028974@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29e2035bddecce3eb584a8304528b50da8370a24",
      "tree": "13155df7d90a8e287b83a1cd6c0d02c3018212ab",
      "parents": [
        "868489660dabc0c28087cca3dbc1adbbc398c6fe",
        "37d0892c5a94e208cf863e3b7bac014edee4346d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 09:28:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 09:29:05 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/rcu\n\nMerge reason: Avoid fuzz in init/main.c and update from rc6 to rc8.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee18d64c1f632043a02e6f5ba5e045bb26a5465f",
      "tree": "80b5a4d530ec7d5fd69799920f0db7b78aba6b9d",
      "parents": [
        "d0420c83f39f79afb82010c2d2cafd150eef651b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 02 09:14:21 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Sep 02 21:29:22 2009 +1000"
      },
      "message": "KEYS: Add a keyctl to install a process\u0027s session keyring on its parent [try #6]\n\nAdd a keyctl to install a process\u0027s session keyring onto its parent.  This\nreplaces the parent\u0027s session keyring.  Because the COW credential code does\nnot permit one process to change another process\u0027s credentials directly, the\nchange is deferred until userspace next starts executing again.  Normally this\nwill be after a wait*() syscall.\n\nTo support this, three new security hooks have been provided:\ncred_alloc_blank() to allocate unset security creds, cred_transfer() to fill in\nthe blank security creds and key_session_to_parent() - which asks the LSM if\nthe process may replace its parent\u0027s session keyring.\n\nThe replacement may only happen if the process has the same ownership details\nas its parent, and the process has LINK permission on the session keyring, and\nthe session keyring is owned by the process, and the LSM permits it.\n\nNote that this requires alteration to each architecture\u0027s notify_resume path.\nThis has been done for all arches barring blackfin, m68k* and xtensa, all of\nwhich need assembly alteration to support TIF_NOTIFY_RESUME.  This allows the\nreplacement to be performed at the point the parent process resumes userspace\nexecution.\n\nThis allows the userspace AFS pioctl emulation to fully emulate newpag() and\nthe VIOCSETTOK and VIOCSETTOK2 pioctls, all of which require the ability to\nalter the parent process\u0027s PAG membership.  However, since kAFS doesn\u0027t use\nPAGs per se, but rather dumps the keys into the session keyring, the session\nkeyring of the parent must be replaced if, for example, VIOCSETTOK is passed\nthe newpag flag.\n\nThis can be tested with the following program:\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cstdlib.h\u003e\n\t#include \u003ckeyutils.h\u003e\n\n\t#define KEYCTL_SESSION_TO_PARENT\t18\n\n\t#define OSERROR(X, S) do { if ((long)(X) \u003d\u003d -1) { perror(S); exit(1); } } while(0)\n\n\tint main(int argc, char **argv)\n\t{\n\t\tkey_serial_t keyring, key;\n\t\tlong ret;\n\n\t\tkeyring \u003d keyctl_join_session_keyring(argv[1]);\n\t\tOSERROR(keyring, \"keyctl_join_session_keyring\");\n\n\t\tkey \u003d add_key(\"user\", \"a\", \"b\", 1, keyring);\n\t\tOSERROR(key, \"add_key\");\n\n\t\tret \u003d keyctl(KEYCTL_SESSION_TO_PARENT);\n\t\tOSERROR(ret, \"KEYCTL_SESSION_TO_PARENT\");\n\n\t\treturn 0;\n\t}\n\nCompiled and linked with -lkeyutils, you should see something like:\n\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t355907932 --alswrv   4043    -1   \\_ keyring: _uid.4043\n\t[dhowells@andromeda ~]$ /tmp/newpag\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: _ses\n\t1055658746 --alswrv   4043  4043   \\_ user: a\n\t[dhowells@andromeda ~]$ /tmp/newpag hello\n\t[dhowells@andromeda ~]$ keyctl show\n\tSession Keyring\n\t       -3 --alswrv   4043  4043  keyring: hello\n\t340417692 --alswrv   4043  4043   \\_ user: a\n\nWhere the test program creates a new session keyring, sticks a user key named\n\u0027a\u0027 into it and then installs it on its parent.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8f0dfc34e9b323a028c2ec41abb7e9de477b7a94",
      "tree": "fa7e44d9ad3eb22517f0724e71f9812f71a16ae2",
      "parents": [
        "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 20 11:26:58 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:44:08 2009 +0200"
      },
      "message": "sched: Provide iowait counters\n\nFor counting how long an application has been waiting for\n(disk) IO, there currently is only the HZ sample driven\ninformation available, while for all other counters in this\nclass, a high resolution version is available via\nCONFIG_SCHEDSTATS.\n\nIn order to make an improved bootchart tool possible, we also\nneed a higher resolution version of the iowait time.\n\nThis patch below adds this scheduler statistic to the kernel.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4A64B813.1080506@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871",
      "tree": "fd8d5f7ed2b2e94eff4007e8da0e9ed205d8d5c9",
      "parents": [
        "84e9dabf6e6a78928c6a1a8ba235c9fb0908d0f8",
        "326ba5010a5429a5a528b268b36a5900d4ab0eba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:20:35 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.31-rc8\u0027 into sched/core\n\nMerge reason: bump from rc5 to rc8, but also pick up TP_perf_assign()\n              API, a patch will be queued that depends on it.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "868489660dabc0c28087cca3dbc1adbbc398c6fe",
      "tree": "cf991ec94ce29bccfef27213107748810c51a1ca",
      "parents": [
        "dd5d19bafd90d33043a4a14b2e2d98612caa293c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 15:00:12 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:40 2009 +0200"
      },
      "message": "rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n\nChanges suggested by review comments from Josh Triplett and\nMathieu Desnoyers.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827220012.GA30525@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd5d19bafd90d33043a4a14b2e2d98612caa293c",
      "tree": "c21d547124d277f00332bdb01c75f2f4f321de8c",
      "parents": [
        "06e799764eb7c2e4640888d438c3524d756613e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 14:58:16 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:39 2009 +0200"
      },
      "message": "rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n\nWhen offlining CPUs from a multi-level tree, there is the\npossibility of offlining the last CPU from a given node when\nthere are preempted RCU read-side critical sections that\nstarted life on one of the CPUs on that node.\n\nIn this case, the corresponding tasks will be enqueued via the\ntask_struct\u0027s rcu_node_entry list_head onto one of the\nrcu_node\u0027s blocked_tasks[] lists.  These tasks need to be moved\nsomewhere else so that they will prevent the current grace\nperiod from ending. That somewhere is the root rcu_node.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827215816.GA30472@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b3ef48adf847f7adf11c870e3ffacac150f1564",
      "tree": "e1403ce515bf00ade99ec806f6ab6b6db999aa0b",
      "parents": [
        "f41d911f8c49a5d65c86504c19e8204bb605c4fd"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:53 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:40 2009 +0200"
      },
      "message": "rcu: Remove CONFIG_PREEMPT_RCU\n\nNow that CONFIG_TREE_PREEMPT_RCU is in place, there is no\nfurther need for CONFIG_PREEMPT_RCU.  Remove it, along with\nwhatever subtle bugs it may (or may not) contain.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c125097461396-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f41d911f8c49a5d65c86504c19e8204bb605c4fd",
      "tree": "59bcd3048652ef290b3e19d2904409afd5c90eb3",
      "parents": [
        "a157229cabd6dd8cfa82525fc9bf730c94cc9ac2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:52 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:40 2009 +0200"
      },
      "message": "rcu: Merge preemptable-RCU functionality into hierarchical RCU\n\nCreate a kernel/rcutree_plugin.h file that contains definitions\nfor preemptable RCU (or, under the #else branch of the #ifdef,\nempty definitions for the classic non-preemptable semantics).\nThese definitions fit into plugins defined in kernel/rcutree.c\nfor this purpose.\n\nThis variant of preemptable RCU uses a new algorithm whose\nread-side expense is roughly that of classic hierarchical RCU\nunder CONFIG_PREEMPT. This new algorithm\u0027s update-side expense\nis similar to that of classic hierarchical RCU, and, in absence\nof read-side preemption or blocking, is exactly that of classic\nhierarchical RCU.  Perhaps more important, this new algorithm\nhas a much simpler implementation, saving well over 1,000 lines\nof code compared to mainline\u0027s implementation of preemptable\nRCU, which will hopefully be retired in favor of this new\nalgorithm.\n\nThe simplifications are obtained by maintaining per-task\nnesting state for running tasks, and using a simple\nlock-protected algorithm to handle accounting when tasks block\nwithin RCU read-side critical sections, making use of lessons\nlearned while creating numerous user-level RCU implementations\nover the past 18 months.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12509746134003-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ece13879e74313e62109e0755dd3d4f172df89e2",
      "tree": "1fe96ab392c1ff203a6fb3f67ed0ed577056572e",
      "parents": [
        "b08dc3eba0c34027010caeda258f495074ae3a54",
        "6c30c53fd5ae6a99a23ad78e90c428d2c8ffb07f"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 20 09:18:42 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 20 09:18:42 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/Kconfig\n\nManual fix.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "0753ba01e126020bf0f8150934903b48935b697d",
      "tree": "fbfd7e2d0abbe724a8c5e0e17fb9af522ed2e097",
      "parents": [
        "89a4eb4b66e8f4d395e14a14d262dac4d6ca52f0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 18 14:11:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 18 16:31:13 2009 -0700"
      },
      "message": "mm: revert \"oom: move oom_adj value\"\n\nThe commit 2ff05b2b (oom: move oom_adj value) moveed the oom_adj value to\nthe mm_struct.  It was a very good first step for sanitize OOM.\n\nHowever Paul Menage reported the commit makes regression to his job\nscheduler.  Current OOM logic can kill OOM_DISABLED process.\n\nWhy? His program has the code of similar to the following.\n\n\t...\n\tset_oom_adj(OOM_DISABLE); /* The job scheduler never killed by oom */\n\t...\n\tif (vfork() \u003d\u003d 0) {\n\t\tset_oom_adj(0); /* Invoked child can be killed */\n\t\texecve(\"foo-bar-cmd\");\n\t}\n\t....\n\nvfork() parent and child are shared the same mm_struct.  then above\nset_oom_adj(0) doesn\u0027t only change oom_adj for vfork() child, it\u0027s also\nchange oom_adj for vfork() parent.  Then, vfork() parent (job scheduler)\nlost OOM immune and it was killed.\n\nActually, fork-setting-exec idiom is very frequently used in userland program.\nWe must not break this assumption.\n\nThen, this patch revert commit 2ff05b2b and related commit.\n\nReverted commit list\n---------------------\n- commit 2ff05b2b4e (oom: move oom_adj value from task_struct to mm_struct)\n- commit 4d8b9135c3 (oom: avoid unnecessary mm locking and scanning for OOM_DISABLE)\n- commit 8123681022 (oom: only oom kill exiting tasks with attached memory)\n- commit 933b787b57 (mm: copy over oom_adj value at fork time)\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1314562a9ae5f39f6f595656023c1baf970831ef",
      "tree": "218abb315cecfe0f3a50e1064580ee6d8b73ae6f",
      "parents": [
        "8e5b59a2d728e6963b35dba8bb36e0b70267462e"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Tue Aug 18 15:06:02 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 18 15:45:11 2009 +0200"
      },
      "message": "sched, task_struct: stack_canary is not needed without CC_STACKPROTECTOR\n\nThe field stack_canary is only used with CC_STACKPROTECTOR.\nThis patch reduces task_struct size without CC_STACKPROTECTOR.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nLKML-Reference: \u003c4A8A44CA.2020701@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "012a5299a29672039f42944a37984558393ef769",
      "tree": "de0815c67cf4156c32c8b552cd7448387cc391b0",
      "parents": [
        "da34d4248bd2013ee64ce51e63ec0ebd1f32b46c",
        "90bc1a658a53f8832ee799685703977a450e5af9"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 06 08:55:03 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Aug 06 08:55:03 2009 +1000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "8356b5f9c424e5831715abbce747197c30d1fd71",
      "tree": "87de74cc86f6eebf88eba9a4c335614787d984c5",
      "parents": [
        "42c4ab41a176ee784c0f28c0b29025a8fc34f05a"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Wed Jul 29 12:15:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 03 14:48:35 2009 +0200"
      },
      "message": "itimers: Fix periodic tics precision\n\nMeasure ITIMER_PROF and ITIMER_VIRT timers interval error\nbetween real ticks and requested by user. Take it into account\nwhen scheduling next tick.\n\nThis patch introduce possibility where time between two\nconsecutive tics is smaller then requested interval, it\npreserve however dependency that n tick is generated not\nearlier than n*interval time - counting from the beginning of\nperiodic signal generation.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nLKML-Reference: \u003c1248862529-6063-3-git-send-email-sgruszka@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42c4ab41a176ee784c0f28c0b29025a8fc34f05a",
      "tree": "370393a0e02faa7a6a7d211205b31ceb74880359",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Wed Jul 29 12:15:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 03 14:48:35 2009 +0200"
      },
      "message": "itimers: Merge ITIMER_VIRT and ITIMER_PROF\n\nBoth cpu itimers have same data flow in the few places, this\npatch make unification of code related with VIRT and PROF\nitimers.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nLKML-Reference: \u003c1248862529-6063-2-git-send-email-sgruszka@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f029d3c6d62068d59301d90c18dbde8ee402107",
      "tree": "c9c4e49bc0c8b919a81bf428180b9cffedbef389",
      "parents": [
        "c3a2ae3d93c0f10d29c071f599764d00b8de00cb"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jul 29 11:08:47 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:10 2009 +0200"
      },
      "message": "sched: Enhance the pre/post scheduling logic\n\nWe currently have an explicit \"needs_post\" vtable method which\nreturns a stack variable for whether we should later run\npost-schedule.  This leads to an awkward exchange of the\nvariable as it bubbles back up out of the context switch. Peter\nZijlstra observed that this information could be stored in the\nrun-queue itself instead of handled on the stack.\n\nTherefore, we revert to the method of having context_switch\nreturn void, and update an internal rq-\u003epost_schedule variable\nwhen we require further processing.\n\nIn addition, we fix a race condition where we try to access\ncurrent-\u003esched_class without holding the rq-\u003elock.  This is\ntechnically racy, as the sched-class could change out from\nunder us.  Instead, we reference the per-rq post_schedule\nvariable with the runqueue unlocked, but with preemption\ndisabled to see if we need to reacquire the rq-\u003elock.\n\nFinally, we clean the code up slightly by removing the #ifdef\nCONFIG_SMP conditionals from the schedule() call, and implement\nsome inline helper functions instead.\n\nThis patch passes checkpatch, and rt-migrate.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090729150422.17691.55590.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e9ed8b02490fea577b1eb1704c05bf43c891ed7",
      "tree": "3c0cc5dd498abcf0cc894e85509c131a0dde9a43",
      "parents": [
        "716a42348cdaf04534b15fbdc9c83e25baebfed5",
        "07903af152b0597d94e9b0030746b63c4664e787"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:11:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:23:57 2009 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: avoid upcoming patch conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "716a42348cdaf04534b15fbdc9c83e25baebfed5",
      "tree": "5a49fe4c0ff258ee03478994ffc7fbe8032a340f",
      "parents": [
        "a004cd42181409eda70804ded240a791f4564d61"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jul 24 20:05:23 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:03:57 2009 +0200"
      },
      "message": "sched: Fix cond_resched_lock() in !CONFIG_PREEMPT\n\nThe might_sleep() test inside cond_resched_lock() assumes the\nspinlock is held and then preemption is disabled. This is true\nwith CONFIG_PREEMPT but the preempt_count() doesn\u0027t change\notherwise.\n\nCheck by starting from the appropriate preempt offset depending\non the config.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1248458723-12146-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "def01bc53d03881acfc393bd10a5c7575187e008",
      "tree": "7b6a82ca80e95e3a3b5ea4f10adb6a1cdda277b5",
      "parents": [
        "613afbf83298efaead05ebcac23d2285609d7160"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:51:45 2009 +0200"
      },
      "message": "sched: Convert the only user of cond_resched_bkl to use cond_resched()\n\nfs/locks.c:flock_lock_file() is the only user of\ncond_resched_bkl()\n\nThis helper doesn\u0027t do anything more than cond_resched(). The\nlatter naming is enough to explain that we are rescheduling if\nneeded.\n\nThe bkl suffix suggests another semantics but it\u0027s actually a\nsynonym of cond_resched().\n\nReported-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1247725694-6082-7-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "613afbf83298efaead05ebcac23d2285609d7160",
      "tree": "15fa2025d74cee5f6805ab974c532c6b6a603333",
      "parents": [
        "6f80bd985fe242c2e6a8b6209ed20b0495d3d63b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:51:44 2009 +0200"
      },
      "message": "sched: Pull up the might_sleep() check into cond_resched()\n\nmight_sleep() is called late-ish in cond_resched(), after the\nneed_resched()/preempt enabled/system running tests are\nchecked.\n\nIt\u0027s better to check the sleeps while atomic earlier and not\ndepend on some environment datas that reduce the chances to\ndetect a problem.\n\nAlso define cond_resched_*() helpers as macros, so that the\nFILE/LINE reported in the sleeping while atomic warning\ndisplays the real origin and not sched.h\n\nChanges in v2:\n\n - Call __might_sleep() directly instead of might_sleep() which\n   may call cond_resched()\n\n - Turn cond_resched() into a macro so that the file:line\n   couple reported refers to the caller of cond_resched() and\n   not __cond_resched() itself.\n\nChanges in v3:\n\n - Also propagate this __might_sleep() pull up to\n   cond_resched_lock() and cond_resched_softirq()\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1247725694-6082-6-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f80bd985fe242c2e6a8b6209ed20b0495d3d63b",
      "tree": "cd21eeb013fe87a59c3406126e8357e30a22635a",
      "parents": [
        "e4aafea2d4bde8b44d6500c4ee7195bbfc51269e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:51:43 2009 +0200"
      },
      "message": "sched: Remove the CONFIG_PREEMPT_BKL case definition of cond_resched()\n\nCONFIG_PREEMPT_BKL doesn\u0027t exist anymore. So remove this\nconfig-on case definition of cond_resched().\n\nReported-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1247725694-6082-5-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5304d5fc74a269cc6c3e70f9713684ca729abdf0",
      "tree": "6a5db62915abd260241a2b9aee34086c93293ca6",
      "parents": [
        "54d35f29f49224d86b994acb6e5969b9ba09022d",
        "78af08d90b8f745044b1274430bc4bc6b2b27aca"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:50:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 15:50:40 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: branch had an old upstream base (-rc1-ish), but also\n              merge to avoid a conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6301cb95c119ebf324bb96ee226fa9ddffad80a7",
      "tree": "7201f406d135212bae3775dc7d71cbdd6990e5de",
      "parents": [
        "a468d389349a7560249b355cdb6d2097ea1616c9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 17 14:15:47 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 18 14:19:53 2009 +0200"
      },
      "message": "sched: fix nr_uninterruptible accounting of frozen tasks really\n\ncommit e3c8ca8336 (sched: do not count frozen tasks toward load) broke\nthe nr_uninterruptible accounting on freeze/thaw. On freeze the task\nis excluded from accounting with a check for (task-\u003eflags \u0026\nPF_FROZEN), but that flag is cleared before the task is thawed. So\nwhile we prevent that the task with state TASK_UNINTERRUPTIBLE\nis accounted to nr_uninterruptible on freeze we decrement\nnr_uninterruptible on thaw.\n\nUse a separate flag which is handled by the freezing task itself. Set\nit before calling the scheduler with TASK_UNINTERRUPTIBLE state and\nclear it after we return from frozen state.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "5bb459bb45d1ad3c177485dcf0af01580aa31125",
      "tree": "fd6d11d424d222b97f56d8b870bdecbacaab8a17",
      "parents": [
        "d2e3ee9b29f5de5b01e611b04e6fb29760589b01"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 10 03:48:23 2009 +0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Jul 17 09:10:42 2009 +1000"
      },
      "message": "kernel: rename is_single_threaded(task) to current_is_single_threaded(void)\n\n- is_single_threaded(task) is not safe unless task \u003d\u003d current,\n  we can\u0027t use task-\u003esignal or task-\u003emm.\n\n- it doesn\u0027t make sense unless task \u003d\u003d current, the task can\n  fork right after the check.\n\nRename it to current_is_single_threaded() and kill the argument.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d86ee4809d0329d4aa0d0f2c76c2295a16862799",
      "tree": "32b3eaf766c1127ef2298c2e48b5441b7cf9b843",
      "parents": [
        "c99e6efe1ba04561e7d93a81f0be07e37427e835"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 10 14:57:57 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 10 14:24:05 2009 -0700"
      },
      "message": "sched: optimize cond_resched()\n\nOptimize cond_resched() by removing one conditional.\n\nCurrently cond_resched() checks system_state \u003d\u003d\nSYSTEM_RUNNING in order to avoid scheduling before the\nscheduler is running.\n\nWe can however, as per suggestion of Matt, use\nPREEMPT_ACTIVE to accomplish that very same.\n\nSuggested-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c99e6efe1ba04561e7d93a81f0be07e37427e835",
      "tree": "8a1743463ef9676e68b9c3971f0bbeea04111bdd",
      "parents": [
        "2a6f86bc5ed4af2ff04bc927eb77789c70e53a1e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 10 14:57:56 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 10 14:24:05 2009 -0700"
      },
      "message": "sched: INIT_PREEMPT_COUNT\n\nPull the initial preempt_count value into a single\ndefinition site.\n\nMaintainers for: alpha, ia64 and m68k, please have a look,\nyour arch code is funny.\n\nThe header magic is a bit odd, but similar to the KERNEL_DS\none, CPP waits with expanding these macros until the\nINIT_THREAD_INFO macro itself is expanded, which is in\narch/*/kernel/init_task.c where we\u0027ve already included\nsched.h so we\u0027re good.\n\nCc: tony.luck@intel.com\nCc: rth@twiddle.net\nCc: geert@linux-m68k.org\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "341c87bf346f57748230628c5ad6ee69219250e8",
      "tree": "93937b91c3680127e38a310d5679b9ca84067b04",
      "parents": [
        "b1cfebc9231a69d46d66982a2c856ba41ef6d6b9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 30 11:41:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:55:59 2009 -0700"
      },
      "message": "elf: limit max map count to safe value\n\nWith ELF, at generating coredump, some more headers other than used\nvmas are added.\n\nWhen max_map_count \u003d\u003d 65536, a core generated by following kinds of\ncode can be unreadable because the number of ELF\u0027s program header is\nwritten in 16bit in Ehdr (please see elf.h) and the number overflows.\n\n\u003d\u003d\n\t... \u003d mmap(); (munmap, mprotect, etc...)\n\tif (failed)\n\t\tabort();\n\u003d\u003d\n\nThis can happen in mmap/munmap/mprotect/etc...which calls split_vma().\n\nI think 65536 is not safe as _default_ and reduce it to 65530 is good\nfor avoiding unexpected corrupted core.\n\nAnyway, max_map_count can be enlarged by sysctl if a user is brave..\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@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": "348b346b238d9c0e5694c8d0b835a099cb383835",
      "tree": "967d9c72a1d6d33a408a1ff0d732296dbe8d3674",
      "parents": [
        "6c697bdf08a09ce461e305a22362973036e95db3",
        "52989765629e7d182b4f146050ebba0abf2cb0b7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 29 09:16:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 29 09:16:25 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: we will merge a dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17f98dcf6010a1cfd25d179fd0ce77d3dc2685c3",
      "tree": "520d88ba2282b4811f492be6cc4565a2a3eea128",
      "parents": [
        "7338f29984114066b00da343a22876bb08259a84"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 17 16:27:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "pids: clean up find_task_by_pid variants\n\nfind_task_by_pid_type_ns is only used to implement find_task_by_vpid and\nfind_task_by_pid_ns, but both of them pass PIDTYPE_PID as first argument.\nSo just fold find_task_by_pid_type_ns into find_task_by_pid_ns and use\nfind_task_by_pid_ns to implement find_task_by_vpid.\n\nWhile we\u0027re at it also remove the exports for find_task_by_pid_ns and\nfind_task_by_vpid - we don\u0027t have any modular callers left as the only\nmodular caller of he old pre pid namespace find_task_by_pid (gfs2) was\nswitched to pid_task which operates on a struct pid pointer instead of a\npid_t.  Given the confusion about pid_t values vs namespace that\u0027s\ngenerally the better option anyway and I think we\u0027re better of restricting\nmodules to do it that way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@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": "20ebcdda78a282d1d5266887ddf8a2d670182576",
      "tree": "99186bc3125ea5df5853ba58314b5944926ab8a0",
      "parents": [
        "338c843108bf5030d6765f4405126e70f8b77845"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 17 16:27:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:47 2009 -0700"
      },
      "message": "memcg: remove unneeded forward declaration from sched.h\n\nThis forward declaration seems pointless.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "517d08699b250021303f9a7cf0d758b6dc0748ed",
      "tree": "5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc",
      "parents": [
        "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
        "a34601c5d84134055782ee031d58d82f5440e918"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027\n\n* akpm: (182 commits)\n  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n  fbdev: *bfin*: fix __dev{init,exit} markings\n  fbdev: *bfin*: drop unnecessary calls to memset\n  fbdev: bfin-t350mcqb-fb: drop unused local variables\n  fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n  fbdev: s1d13xxxfb: add accelerated bitblt functions\n  tcx: use standard fields for framebuffer physical address and length\n  fbdev: add support for handoff from firmware to hw framebuffers\n  intelfb: fix a bug when changing video timing\n  fbdev: use framebuffer_release() for freeing fb_info structures\n  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n  s3c-fb: CPUFREQ frequency scaling support\n  s3c-fb: fix resource releasing on error during probing\n  carminefb: fix possible access beyond end of carmine_modedb[]\n  acornfb: remove fb_mmap function\n  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n  mb862xxfb: restrict compliation of platform driver to PPC\n  Samsung SoC Framebuffer driver: add Alpha Channel support\n  atmel-lcdc: fix pixclock upper bound detection\n  offb: use framebuffer_alloc() to allocate fb_info struct\n  ...\n\nManually fix up conflicts due to kmemcheck in mm/slab.c\n"
    },
    {
      "commit": "2ff05b2b4eac2e63d345fc731ea151a060247f53",
      "tree": "1840bc2d3b381eca5d39869499339b0fcc6eabbf",
      "parents": [
        "c9e444103b5e7a5a3519f9913f59767f92e33baf"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jun 16 15:32:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:43 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to mm_struct\n\nThe per-task oom_adj value is a characteristic of its mm more than the\ntask itself since it\u0027s not possible to oom kill any thread that shares the\nmm.  If a task were to be killed while attached to an mm that could not be\nfreed because another thread were set to OOM_DISABLE, it would have\nneedlessly been terminated since there is no potential for future memory\nfreeing.\n\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct mm_struct.  This requires task_lock() on a\ntask to check its oom_adj value to protect against exec, but it\u0027s already\nnecessary to take the lock when dereferencing the mm to find the total VM\nsize for the badness heuristic.\n\nThis fixes a livelock if the oom killer chooses a task and another thread\nsharing the same memory has an oom_adj value of OOM_DISABLE.  This occurs\nbecause oom_kill_task() repeatedly returns 1 and refuses to kill the\nchosen task while select_bad_process() will repeatedly choose the same\ntask during the next retry.\n\nTaking task_lock() in select_bad_process() to check for OOM_DISABLE and in\noom_kill_task() to check for threads sharing the same memory will be\nremoved in the next patch in this series where it will no longer be\nnecessary.\n\nWriting to /proc/pid/oom_adj for a kthread will now return -EINVAL since\nthese threads are immune from oom killing already.  They simply report an\noom_adj value of OOM_DISABLE.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58568d2a8215cb6f55caf2332017d7bdff954e1c",
      "tree": "ffcdee457494ac78d6550b0aeac86536ca152e7b",
      "parents": [
        "950592f7b991f267d707d372b90f508bbe72acbc"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpuset,mm: update tasks\u0027 mems_allowed in time\n\nFix allocating page cache/slab object on the unallowed node when memory\nspread is set by updating tasks\u0027 mems_allowed after its cpuset\u0027s mems is\nchanged.\n\nIn order to update tasks\u0027 mems_allowed in time, we must modify the code of\nmemory policy.  Because the memory policy is applied in the process\u0027s\ncontext originally.  After applying this patch, one task directly\nmanipulates anothers mems_allowed, and we use alloc_lock in the\ntask_struct to protect mems_allowed and memory policy of the task.\n\nBut in the fast path, we didn\u0027t use lock to protect them, because adding a\nlock may lead to performance regression.  But if we don\u0027t add a lock,the\ntask might see no nodes when changing cpuset\u0027s mems_allowed to some\nnon-overlapping set.  In order to avoid it, we set all new allowed nodes,\nthen clear newly disallowed ones.\n\n[lee.schermerhorn@hp.com:\n  The rework of mpol_new() to extract the adjusting of the node mask to\n  apply cpuset and mpol flags \"context\" breaks set_mempolicy() and mbind()\n  with MPOL_PREFERRED and a NULL nodemask--i.e., explicit local\n  allocation.  Fix this by adding the check for MPOL_PREFERRED and empty\n  node mask to mpol_new_mpolicy().\n\n  Remove the now unneeded \u0027nodes \u003d NULL\u0027 from mpol_new().\n\n  Note that mpol_new_mempolicy() is always called with a non-NULL\n  \u0027nodes\u0027 parameter now that it has been removed from mpol_new().\n  Therefore, we don\u0027t need to test nodes for NULL before testing it for\n  \u0027empty\u0027.  However, just to be extra paranoid, add a VM_BUG_ON() to\n  verify this assumption.]\n[lee.schermerhorn@hp.com:\n\n  I don\u0027t think the function name \u0027mpol_new_mempolicy\u0027 is descriptive\n  enough to differentiate it from mpol_new().\n\n  This function applies cpuset set context, usually constraining nodes\n  to those allowed by the cpuset.  However, when the \u0027RELATIVE_NODES flag\n  is set, it also translates the nodes.  So I settled on\n  \u0027mpol_set_nodemask()\u0027, because the comment block for mpol_new() mentions\n  that we need to call this function to \"set nodes\".\n\n  Some additional minor line length, whitespace and typo cleanup.]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3959214f971417f4162926ac52ad4cd042958caa",
      "tree": "1e73536b383a2a8337c09c5630871b2f94a8bcfa",
      "parents": [
        "f6ee649f4b191d316a463ce7e514f9d12fa31c01"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Mar 24 15:43:30 2009 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:23 2009 -0700"
      },
      "message": "sched: delayed cleanup of user_struct\n\nDuring bootup performance tracing we see repeated occurrences of\n/sys/kernel/uid/* events for the same uid, leading to a,\nin this case, rather pointless userspace processing for the\nsame uid over and over.\n\nThis is usually caused by tools which change their uid to \"nobody\",\nto run without privileges to read data supplied by untrusted users.\n\nThis change delays the execution of the (already existing) scheduled\nwork, to cleanup the uid after one second, so the allocated and announced\nuid can possibly be re-used by another process.\n\nThis is the current behavior, where almost every invocation of a\nbinary, which changes the uid, creates two events:\n  $ read START \u003c /sys/kernel/uevent_seqnum; \\\n  for i in `seq 100`; do su --shell\u003d/bin/true bin; done; \\\n  read END \u003c /sys/kernel/uevent_seqnum; \\\n  echo $(($END - $START))\n  178\n\nWith the delayed cleanup, we get only two events, and userspace finishes\na bit faster too:\n  $ read START \u003c /sys/kernel/uevent_seqnum; \\\n  for i in `seq 100`; do su --shell\u003d/bin/true bin; done; \\\n  read END \u003c /sys/kernel/uevent_seqnum; \\\n  echo $(($END - $START))\n  1\n\nAcked-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "19035e5b5d1e3127b4925d86f6a77964f91f2c3c",
      "tree": "c9e7e9073970176a5b0970da715cb6430c3c9069",
      "parents": [
        "f9db6e095115f9411b9647bdb9d81fe11f3d8b54",
        "eea08f32adb3f97553d49a4f79a119833036000a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: Logic to move non pinned timers\n  timers: /proc/sys sysctl hook to enable timer migration\n  timers: Identifying the existing pinned timers\n  timers: Framework for identifying pinned timers\n  timers: allow deferrable timers for intervals tv2-tv5 to be deferred\n\nFix up conflicts in kernel/sched.c and kernel/timer.c manually\n"
    },
    {
      "commit": "ca94c442535a44d508c99a77e54f21a59f4fc462",
      "tree": "5dda78242ed00f035e033ebd1f29200303b92b10",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Lennart Poettering",
        "email": "lennart@poettering.net",
        "time": "Mon Jun 15 17:17:47 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 15 17:31:59 2009 +0200"
      },
      "message": "sched: Introduce SCHED_RESET_ON_FORK scheduling policy flag\n\nThis patch introduces a new flag SCHED_RESET_ON_FORK which can be passed\nto the kernel via sched_setscheduler(), ORed in the policy parameter. If\nset this will make sure that when the process forks a) the scheduling\npriority is reset to DEFAULT_PRIO if it was higher and b) the scheduling\npolicy is reset to SCHED_NORMAL if it was either SCHED_FIFO or SCHED_RR.\n\nWhy have this?\n\nCurrently, if a process is real-time scheduled this will \u0027leak\u0027 to all\nits child processes. For security reasons it is often (always?) a good\nidea to make sure that if a process acquires RT scheduling this is\nconfined to this process and only this process. More specifically this\nmakes the per-process resource limit RLIMIT_RTTIME useful for security\npurposes, because it makes it impossible to use a fork bomb to\ncircumvent the per-process RLIMIT_RTTIME accounting.\n\nThis feature is also useful for tools like \u0027renice\u0027 which can then\nchange the nice level of a process without having this spill to all its\nchild processes.\n\nWhy expose this via sched_setscheduler() and not other syscalls such as\nprctl() or sched_setparam()?\n\nprctl() does not take a pid parameter. Due to that it would be\nimpossible to modify this flag for other processes than the current one.\n\nThe struct passed to sched_setparam() can unfortunately not be extended\nwithout breaking compatibility, since sched_setparam() lacks a size\nparameter.\n\nHow to use this from userspace? In your RT program simply replace this:\n\n  sched_setscheduler(pid, SCHED_FIFO, \u0026param);\n\nby this:\n\n  sched_setscheduler(pid, SCHED_FIFO|SCHED_RESET_ON_FORK, \u0026param);\n\nSigned-off-by: Lennart Poettering \u003clennart@poettering.net\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090615152714.GA29092@tango.0pointer.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb",
      "tree": "8d104ec2a459346b99413b0b77421ca7b9936c1a",
      "parents": [
        "ca44d6e60f9de26281fda203f58b570e1748c015",
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 03:02:23 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 03:02:23 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/scsi/fcoe/fcoe.c\n\tnet/core/drop_monitor.c\n\tnet/core/net-traces.c\n"
    },
    {
      "commit": "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
      "tree": "636c715524f1718599209cc289908ea44b6cb859",
      "parents": [
        "b640f042faa2a2fad6464f259a8afec06e2f6386",
        "940010c5a314a7bd9b498593bc6ba1718ac5aec5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (574 commits)\n  perf_counter: Turn off by default\n  perf_counter: Add counter-\u003eid to the throttle event\n  perf_counter: Better align code\n  perf_counter: Rename L2 to LL cache\n  perf_counter: Standardize event names\n  perf_counter: Rename enums\n  perf_counter tools: Clean up u64 usage\n  perf_counter: Rename perf_counter_limit sysctl\n  perf_counter: More paranoia settings\n  perf_counter: powerpc: Implement generalized cache events for POWER processors\n  perf_counters: powerpc: Add support for POWER7 processors\n  perf_counter: Accurate period data\n  perf_counter: Introduce struct for sample data\n  perf_counter tools: Normalize data using per sample period data\n  perf_counter: Annotate exit ctx recursion\n  perf_counter tools: Propagate signals properly\n  perf_counter tools: Small frequency related fixes\n  perf_counter: More aggressive frequency adjustment\n  perf_counter/x86: Fix the model number of Intel Core2 processors\n  perf_counter, x86: Correct some event and umask values for Intel processors\n  ...\n"
    },
    {
      "commit": "3296ca27f50ecbd71db1d808c7a72d311027f919",
      "tree": "833eaa58b2013bda86d4bd95faf6efad7a2d5ca4",
      "parents": [
        "e893123c7378192c094747dadec326b7c000c190",
        "73fbad283cfbbcf02939bdbda31fc4a30e729cca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)\n  nommu: Provide mmap_min_addr definition.\n  TOMOYO: Add description of lists and structures.\n  TOMOYO: Remove unused field.\n  integrity: ima audit dentry_open failure\n  TOMOYO: Remove unused parameter.\n  security: use mmap_min_addr indepedently of security models\n  TOMOYO: Simplify policy reader.\n  TOMOYO: Remove redundant markers.\n  SELinux: define audit permissions for audit tree netlink messages\n  TOMOYO: Remove unused mutex.\n  tomoyo: avoid get+put of task_struct\n  smack: Remove redundant initialization.\n  integrity: nfsd imbalance bug fix\n  rootplug: Remove redundant initialization.\n  smack: do not beyond ARRAY_SIZE of data\n  integrity: move ima_counts_get\n  integrity: path_check update\n  IMA: Add __init notation to ima functions\n  IMA: Minimal IMA policy and boot param for TCB IMA policy\n  selinux: remove obsolete read buffer limit from sel_read_bool\n  ...\n"
    },
    {
      "commit": "940010c5a314a7bd9b498593bc6ba1718ac5aec5",
      "tree": "d141e08ced08c40c6a8e3ab2cdecde5ff14e560f",
      "parents": [
        "8dc8e5e8bc0ce00b0f656bf972f67cd8a72759e5",
        "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:55:42 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:55:42 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nConflicts:\n\tarch/x86/kernel/irqinit.c\n\tarch/x86/kernel/irqinit_64.c\n\tarch/x86/kernel/traps.c\n\tarch/x86/mm/fault.c\n\tinclude/linux/sched.h\n\tkernel/exit.c\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "20f3f3ca499d2c211771ba552685398b65d83859",
      "tree": "41b460196a0860e11d12e33e3172463973cb0078",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "41c51c98f588edcdf6141cff1895df738e03ddd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "message": "Merge branch \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: rcu_sched_grace_period(): kill the bogus flush_signals()\n  rculist: use list_entry_rcu in places where it\u0027s appropriate\n  rculist.h: introduce list_entry_rcu() and list_first_entry_rcu()\n  rcu: Update RCU tracing documentation for __rcu_pending\n  rcu: Add __rcu_pending tracing to hierarchical RCU\n  RCU: make treercu be default\n"
    },
    {
      "commit": "73fbad283cfbbcf02939bdbda31fc4a30e729cca",
      "tree": "7c89fe13e1b4a2c7f2d60f4ea6eaf69c14bccab7",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "082ff5a2767a0679ee543f14883adbafb631ffbe",
      "tree": "5ddf792ed3f80b17bc427edea1dc1d4b4303b4f6",
      "parents": [
        "aa9c67f53d1969cf1db4c9c2db3a78c4ceb96469"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:29:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 24 08:24:08 2009 +0200"
      },
      "message": "perf_counter: Change pctrl() behaviour\n\nInstead of en/dis-abling all counters acting on a particular\ntask, en/dis- able all counters we created.\n\n[ v2: fix crash on first counter enable ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.916937244@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a63eaf34ae60bdb067a354cc8def2e8f4a01f5f4",
      "tree": "9e81e5e0299bd524b3d07c17a05760e33c7d58a0",
      "parents": [
        "34adc8062227f41b04ade0ff3fbd1dbe3002669e"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri May 22 14:17:31 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 22 12:18:19 2009 +0200"
      },
      "message": "perf_counter: Dynamically allocate tasks\u0027 perf_counter_context struct\n\nThis replaces the struct perf_counter_context in the task_struct with\na pointer to a dynamically allocated perf_counter_context struct.  The\nmain reason for doing is this is to allow us to transfer a\nperf_counter_context from one task to another when we do lazy PMU\nswitching in a later patch.\n\nThis has a few side-benefits: the task_struct becomes a little smaller,\nwe save some memory because only tasks that have perf_counters attached\nget a perf_counter_context allocated for them, and we can remove the\ninclusion of \u003clinux/perf_counter.h\u003e in sched.h, meaning that we don\u0027t\nend up recompiling nearly everything whenever perf_counter.h changes.\n\nThe perf_counter_context structures are reference-counted and freed\nwhen the last reference is dropped.  A context can have references\nfrom its task and the counters on its task.  Counters can outlive the\ntask so it is possible that a context will be freed well after its\ntask has exited.\n\nContexts are allocated on fork if the parent had a context, or\notherwise the first time that a per-task counter is created on a task.\nIn the latter case, we set the context pointer in the task struct\nlocklessly using an atomic compare-and-exchange operation in case we\nraced with some other task in creating a context for the subject task.\n\nThis also removes the task pointer from the perf_counter struct.  The\ntask pointer was not used anywhere and would make it harder to move a\ncontext from one task to another.  Anything that needed to know which\ntask a counter was attached to was already using counter-\u003ectx-\u003etask.\n\nThe __perf_counter_init_context function moves up in perf_counter.c\nso that it can be called from find_get_context, and now initializes\nthe refcount, but is otherwise unchanged.\n\nWe were potentially calling list_del_counter twice: once from\n__perf_counter_exit_task when the task exits and once from\n__perf_counter_remove_from_context when the counter\u0027s fd gets closed.\nThis adds a check in list_del_counter so it doesn\u0027t do anything if\nthe counter has already been removed from the lists.\n\nSince perf_counter_task_sched_in doesn\u0027t do anything if the task doesn\u0027t\nhave a context, and leaves cpuctx-\u003etask_ctx \u003d NULL, this adds code to\n__perf_install_in_context to set cpuctx-\u003etask_ctx if necessary, i.e. in\nthe case where the current task adds the first counter to itself and\nthus creates a context for itself.\n\nThis also adds similar code to __perf_counter_enable to handle a\nsimilar situation which can arise when the counters have been disabled\nusing prctl; that also leaves cpuctx-\u003etask_ctx \u003d NULL.\n\n[ Impact: refactor counter context management to prepare for new feature ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c18966.10075.781053.231153@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4200efd9acda4accf24640f1e77d24fdcdb524df",
      "tree": "ffeda24ae6a9c1b8ca94615e261434d925d2ed2c",
      "parents": [
        "2d02494f5a90f2e4b3c4c6acc85ec94674cdc431"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 19 09:22:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 19 09:22:19 2009 +0200"
      },
      "message": "sched: properly define the sched_group::cpumask and sched_domain::span fields\n\nProperly document the variable-size structure tricks we are doing\nwrt. struct sched_group and sched_domain, and use the field[0] GCC\nextension instead of defining a vla array.\n\nDont use unions for this, as pointed out by Linus.\n\n[ Impact: cleanup, un-confuse Sparse and LLVM ]\n\nReported-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.01.0905180850110.3301@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "690cc3ffe33ac4a2857583c22d4c6244ae11684d",
      "tree": "47da7801ef7539260a1a64b41f43ab8131e4f551",
      "parents": [
        "69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 13 16:55:10 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 18 22:15:56 2009 -0700"
      },
      "message": "syscall: Implement a convinience function restart_syscall\n\nCurrently when we have a signal pending we have the functionality\nto restart that the current system call.  There are other cases\nsuch as nasty lock ordering issues where it makes sense to have\na simple fix that uses try lock and restarts the system call.\nBuying time to figure out how to rework the locking strategy.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d02494f5a90f2e4b3c4c6acc85ec94674cdc431",
      "tree": "8032438de5b55282976583b111d02d9379ff3966",
      "parents": [
        "dce48a84adf1806676319f6f480e30a6daa012f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 02 20:08:52 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 15 15:32:45 2009 +0200"
      },
      "message": "sched, timers: cleanup avenrun users\n\navenrun is an rough estimate so we don\u0027t have to worry about\nconsistency of the three avenrun values. Remove the xtime lock\ndependency and provide a function to scale the values. Cleanup the\nusers.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "dce48a84adf1806676319f6f480e30a6daa012f9",
      "tree": "79151f5d31d9c3dcdc723ab8877cb943b944890e",
      "parents": [
        "2ff799d3cff1ecb274049378b28120ee5c1c5e5f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 11 10:43:41 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 15 15:32:45 2009 +0200"
      },
      "message": "sched, timers: move calc_load() to scheduler\n\nDimitri Sivanich noticed that xtime_lock is held write locked across\ncalc_load() which iterates over all online CPUs. That can cause long\nlatencies for xtime_lock readers on large SMP systems. \n\nThe load average calculation is an rough estimate anyway so there is\nno real need to protect the readers vs. the update. It\u0027s not a problem\nwhen the avenrun array is updated while a reader copies the values.\n\nInstead of iterating over all online CPUs let the scheduler_tick code\nupdate the number of active tasks shortly before the avenrun update\nhappens. The avenrun update itself is handled by the CPU which calls\ndo_timer().\n\n[ Impact: reduce xtime_lock write locked section ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "789f90fcf6b0b54e655740e9396c954378542c79",
      "tree": "dccfe1ffac1202729238385923e74a8b5ebab979",
      "parents": [
        "548e1ddf255b4ebfb4ef20c08936fd8d4deb3bd9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 15:19:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 15:26:56 2009 +0200"
      },
      "message": "perf_counter: per user mlock gift\n\nInstead of a per-process mlock gift for perf-counters, use a\nper-user gift so that there is less of a DoS potential.\n\n[ Impact: allow less worst-case unprivileged memory consumption ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c20090515132018.496182835@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eea08f32adb3f97553d49a4f79a119833036000a",
      "tree": "4e6af5185309d7abe49a8fa19634ea38582381e4",
      "parents": [
        "cd1bb94b4a0531e8211a3774f17de831f8285f76"
      ],
      "author": {
        "name": "Arun R Bharadwaj",
        "email": "arun@linux.vnet.ibm.com",
        "time": "Thu Apr 16 12:16:41 2009 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 13 16:52:42 2009 +0200"
      },
      "message": "timers: Logic to move non pinned timers\n\n* Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e [2009-04-16 12:11:36]:\n\nThis patch migrates all non pinned timers and hrtimers to the current\nidle load balancer, from all the idle CPUs. Timers firing on busy CPUs\nare not migrated.\n\nWhile migrating hrtimers, care should be taken to check if migrating\na hrtimer would result in a latency or not. So we compare the expiry of the\nhrtimer with the next timer interrupt on the target cpu and migrate the\nhrtimer only if it expires *after* the next interrupt on the target cpu.\nSo, added a clockevents_get_next_event() helper function to return the\nnext_event on the target cpu\u0027s clock_event_device.\n\n[ tglx: cleanups and simplifications ]\n\nSigned-off-by: Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cd1bb94b4a0531e8211a3774f17de831f8285f76",
      "tree": "0a031dd2bd984cbfec88a3ced6b2c6e3326efb88",
      "parents": [
        "5c333864a6ba811052d52ef14fbed056b9ac3512"
      ],
      "author": {
        "name": "Arun R Bharadwaj",
        "email": "arun@linux.vnet.ibm.com",
        "time": "Thu Apr 16 12:15:34 2009 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 13 16:52:42 2009 +0200"
      },
      "message": "timers: /proc/sys sysctl hook to enable timer migration\n\n* Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e [2009-04-16 12:11:36]:\n\nThis patch creates the /proc/sys sysctl interface at\n/proc/sys/kernel/timer_migration\n\nTimer migration is enabled by default.\n\nTo disable timer migration, when CONFIG_SCHED_DEBUG \u003d y,\n\necho 0 \u003e /proc/sys/kernel/timer_migration\n\nSigned-off-by: Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5e751e992f3fb08ba35e1ca8095ec8fbf9eda523",
      "tree": "711b1b47622dc9661f1d3d9c67d55c0b21456e8c",
      "parents": [
        "d254117099d711f215e62427f55dfb8ebd5ad011"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 08 13:55:22 2009 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon May 11 08:15:36 2009 +1000"
      },
      "message": "CRED: Rename cred_exec_mutex to reflect that it\u0027s a guard against ptrace\n\nRename cred_exec_mutex to reflect that it\u0027s a guard against foreign\nintervention on a process\u0027s credential state, such as is made by ptrace().  The\nattachment of a debugger to a process affects execve()\u0027s calculation of the new\ncredential state - _and_ also setprocattr()\u0027s calculation of that state.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    }
  ],
  "next": "d254117099d711f215e62427f55dfb8ebd5ad011"
}
