)]}'
{
  "log": [
    {
      "commit": "478735e38887077ac77a9756121b6ce0cb956e2f",
      "tree": "7b42110f71b1711f56cbbc0a01f00894b221337d",
      "parents": [
        "f2c66cd8eeddedb440f33bc0f5cec1ed7ae376cb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Oct 27 15:34:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "/proc/stat: fix scalability of irq sum of all cpu\n\nIn /proc/stat, the number of per-IRQ event is shown by making a sum each\nirq\u0027s events on all cpus.  But we can make use of kstat_irqs().\n\nkstat_irqs() do the same calculation, If !CONFIG_GENERIC_HARDIRQ,\nit\u0027s not a big cost. (Both of the number of cpus and irqs are small.)\n\nIf a system is very big and CONFIG_GENERIC_HARDIRQ, it does\n\n\tfor_each_irq()\n\t\tfor_each_cpu()\n\t\t\t- look up a radix tree\n\t\t\t- read desc-\u003eirq_stat[cpu]\nThis seems not efficient. This patch adds kstat_irqs() for\nCONFIG_GENRIC_HARDIRQ and change the calculation as\n\n\tfor_each_irq()\n\t\tlook up radix tree\n\t\tfor_each_cpu()\n\t\t\t- read desc-\u003eirq_stat[cpu]\n\nThis reduces cost.\n\nA test on (4096cpusp, 256 nodes, 4592 irqs) host (by Jack Steiner)\n\n%time cat /proc/stat \u003e /dev/null\n\nBefore Patch:\t 2.459 sec\nAfter Patch :\t  .561 sec\n\n[akpm@linux-foundation.org: unexport kstat_irqs, coding-style tweaks]\n[akpm@linux-foundation.org: fix unused variable \u0027per_irq_sum\u0027]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d16e15f5b029fc7d03540ba0e5fb23b0abb0ebe0",
      "tree": "382a6779f4eee476d86538372f0f6586d64ddb8b",
      "parents": [
        "895021552d6ffe8a4d076cb5c4b1e700c33e96e1"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:34:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "exit: add lock context annotation on find_new_reaper()\n\nfind_new_reaper() releases and regrabs tasklist_lock but was missing\nproper annotations.  Add it.  This remove following sparse warning:\n\n warning: context imbalance in \u0027find_new_reaper\u0027 - unexpected unlock\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.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": "9b1bf12d5d51bca178dea21b04a0805e29d60cf1",
      "tree": "902a2c0e5882a2152da59a589958d6426dc84643",
      "parents": [
        "b84011508360d6885a9d95a235ec77d56f133377"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Oct 27 15:34:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:12 2010 -0700"
      },
      "message": "signals: move cred_guard_mutex from task_struct to signal_struct\n\nOleg Nesterov pointed out we have to prevent multiple-threads-inside-exec\nitself and we can reuse -\u003ecred_guard_mutex for it.  Yes, concurrent\nexecve() has no worth.\n\nLet\u0027s move -\u003ecred_guard_mutex from task_struct to signal_struct.  It\nnaturally prevent multiple-threads-inside-exec.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "b84011508360d6885a9d95a235ec77d56f133377",
      "tree": "471f4aecda99cb5f82b0fa957887c10d5d176960",
      "parents": [
        "b8ed374e202e23caaf9bd77dcadc9de6447faaa8"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:34:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:12 2010 -0700"
      },
      "message": "signals: annotate lock context change on ptrace_stop()\n\nptrace_stop() releases and regrabs current-\u003esighand-\u003esiglock but was\nmissing proper annotation.  Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.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": "b8ed374e202e23caaf9bd77dcadc9de6447faaa8",
      "tree": "ea97fe186c7e0c0ee8cd61e0fc94dc42f635fd3b",
      "parents": [
        "5ef45079dd9c8f2e9c7aa788dc3121835ae52863"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:34:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:12 2010 -0700"
      },
      "message": "signals: annotate lock_task_sighand()\n\nlock_task_sighand() grabs sighand-\u003esiglock in case of returning non-NULL\nbut unlock_task_sighand() releases it unconditionally.  This leads sparse\nto complain about the lock context imbalance.  Rename and wrap\nlock_task_sighand() using __cond_lock() macro to make sparse happy.\n\nSuggested-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: 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": "9fed81dc40f5a1ac2783bcc78d4029873be72894",
      "tree": "6eee883c2a782380f277e045f6a7258ef949a9a6",
      "parents": [
        "4abf986960ecda6a87fc2f795aacf888a2f0127e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:33:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:10 2010 -0700"
      },
      "message": "ptrace: cleanup ptrace_request()\n\nUse new \u0027datavp\u0027 and \u0027datalp\u0027 variables to remove unnecesary castings.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.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": "4abf986960ecda6a87fc2f795aacf888a2f0127e",
      "tree": "39601ac75c3b92a3894722287bd9068a8b5e68d0",
      "parents": [
        "c4b5ed250eebf854d40f27b43362c80f115cb57a"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:33:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:10 2010 -0700"
      },
      "message": "ptrace: change signature of sys_ptrace() and friends\n\nSince userspace API of ptrace syscall defines @addr and @data as void\npointers, it would be more appropriate to define them as unsigned long in\nkernel.  Therefore related functions are changed also.\n\n\u0027unsigned long\u0027 is typically used in other places in kernel as an opaque\ndata type and that using this helps cleaning up a lot of warnings from\nsparse.\n\nSuggested-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\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": "c4b5ed250eebf854d40f27b43362c80f115cb57a",
      "tree": "870b5385ea51c0afbf3865fe6d7e3de3130dbbbe",
      "parents": [
        "26174efd42100eefac67732c0c12f41a205fa335"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 15:33:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:10 2010 -0700"
      },
      "message": "ptrace: annotate lock context change on exit_ptrace()\n\nexit_ptrace() releases and regrabs tasklist_lock but was missing proper\nannotation.  Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45531757b45cae0ce64c5aff08c2534d5a0fa3e7",
      "tree": "df9651eb91e4515684e055fa9454dce009be9ab4",
      "parents": [
        "f4a2589feaef0a9b737a3e582b37ee96695bb25f"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Wed Oct 27 15:33:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroup: notify ns_cgroup deprecated\n\nThe ns_cgroup will be removed very soon.  Let\u0027s warn, for this version,\nns_cgroup is deprecated.\n\nMake ns_cgroup and clone_children exclusive.  If the clone_children is set\nand the ns_cgroup is mounted, let\u0027s fail with EINVAL when the ns_cgroup\nsubsys is created (a printk will help the user to understand why the\ncreation fails).\n\nUpdate the feature remove schedule file with the deprecated ns_cgroup.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: Paul Menage \u003cmenage@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": "f4a2589feaef0a9b737a3e582b37ee96695bb25f",
      "tree": "ea5eb5c6f2c1f826893271b861d63272efd6546d",
      "parents": [
        "32a8cf235e2f192eb002755076994525cdbaa35a"
      ],
      "author": {
        "name": "Evgeny Kuznetsov",
        "email": "ext-eugeny.kuznetsov@nokia.com",
        "time": "Wed Oct 27 15:33:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroups: add check for strcpy destination string overflow\n\nFunction \"strcpy\" is used without check for maximum allowed source string\nlength and could cause destination string overflow.  Check for string\nlength is added before using \"strcpy\".  Function now is return error if\nsource string length is more than a maximum.\n\nakpm: presently considered NotABug, but add the check for general\nfuture-safeness and robustness.\n\nSigned-off-by: Evgeny Kuznetsov \u003cEXT-Eugeny.Kuznetsov@nokia.com\u003e\nAcked-by: Paul Menage \u003cmenage@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": "32a8cf235e2f192eb002755076994525cdbaa35a",
      "tree": "a4d849c31703d18365e063a4cc7627bfd13ca253",
      "parents": [
        "97978e6d1f2da0073416870410459694fbdbfd9b"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Wed Oct 27 15:33:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroup: make the mount options parsing more accurate\n\nCurrent behavior:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n(1) When we mount a cgroup, we can specify the \u0027all\u0027 option which\n    means to enable all the cgroup subsystems.  This is the default option\n    when no option is specified.\n\n(2) If we want to mount a cgroup with a subset of the supported cgroup\n    subsystems, we have to specify a subsystems name list for the mount\n    option.\n\n(3) If we specify another option like \u0027noprefix\u0027 or \u0027release_agent\u0027,\n    the actual code wants the \u0027all\u0027 or a subsystem name option specified\n    also.  Not critical but a bit not friendly as we should assume (1) in\n    this case.\n\n(4) Logically, the \u0027all\u0027 option is mutually exclusive with a subsystem\n    name, but this is not detected.\n\nIn other words:\n succeed : mount -t cgroup -o all,freezer cgroup /cgroup\n\t\u003d\u003e is it \u0027all\u0027 or \u0027freezer\u0027 ?\n fails : mount -t cgroup -o noprefix cgroup /cgroup\n\t\u003d\u003e succeed if we do \u0027-o noprefix,all\u0027\n\nThe following patches consolidate a bit the mount options check.\n\nNew behavior:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n(1) untouched\n(2) untouched\n(3) the \u0027all\u0027 option will be by default when specifying other than\n    a subsystem name option\n(4) raises an error\n\nIn other words:\n fails   : mount -t cgroup -o all,freezer cgroup /cgroup\n succeed : mount -t cgroup -o noprefix cgroup /cgroup\n\nFor the sake of lisibility, the if ... then ... else ... if ...\nindentation when parsing the options has been changed to:\nif ... then\n\t...\n\tcontinue\nfi\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97978e6d1f2da0073416870410459694fbdbfd9b",
      "tree": "e8ff2fe4119d03fa54a45e8a101adbf9fb91a385",
      "parents": [
        "2d3cbf8bc852ac1bc3d098186143c5973f87b753"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Wed Oct 27 15:33:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroup: add clone_children control file\n\nThe ns_cgroup is a control group interacting with the namespaces.  When a\nnew namespace is created, a corresponding cgroup is automatically created\ntoo.  The cgroup name is the pid of the process who did \u0027unshare\u0027 or the\nchild of \u0027clone\u0027.\n\nThis cgroup is tied with the namespace because it prevents a process to\nescape the control group and use the post_clone callback, so the child\ncgroup inherits the values of the parent cgroup.\n\nUnfortunately, the more we use this cgroup and the more we are facing\nproblems with it:\n\n(1) when a process unshares, the cgroup name may conflict with a\n    previous cgroup with the same pid, so unshare or clone return -EEXIST\n\n(2) the cgroup creation is out of control because there may have an\n    application creating several namespaces where the system will\n    automatically create several cgroups in his back and let them on the\n    cgroupfs (eg.  a vrf based on the network namespace).\n\n(3) the mix of (1) and (2) force an administrator to regularly check\n    and clean these cgroups.\n\nThis patchset removes the ns_cgroup by adding a new flag to the cgroup and\nthe cgroupfs mount option.  It enables the copy of the parent cgroup when\na child cgroup is created.  We can then safely remove the ns_cgroup as\nthis flag brings a compatibility.  We have now to manually create and add\nthe task to a cgroup, which is consistent with the cgroup framework.\n\nThis patch:\n\nSent as an answer to a previous thread around the ns_cgroup.\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-June/018627.html\n\nIt adds a control file \u0027clone_children\u0027 for a cgroup.  This control file\nis a boolean specifying if the child cgroup should be a clone of the\nparent cgroup or not.  The default value is \u0027false\u0027.\n\nThis flag makes the child cgroup to call the post_clone callback of all\nthe subsystem, if it is available.\n\nAt present, the cpuset is the only one which had implemented the\npost_clone callback.\n\nThe option can be set at mount time by specifying the \u0027clone_children\u0027\nmount option.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3cbf8bc852ac1bc3d098186143c5973f87b753",
      "tree": "5507f0efa192ac6df884fb0118bfd0e28d758662",
      "parents": [
        "0bdba580ab052a21e3eda2764ed22d9ee962392b"
      ],
      "author": {
        "name": "Tomasz Buchert",
        "email": "tomasz.buchert@inria.fr",
        "time": "Wed Oct 27 15:33:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:08 2010 -0700"
      },
      "message": "cgroup_freezer: update_freezer_state() does incorrect state transitions\n\nThere are 4 state transitions possible for a freezer.  Only FREEZING -\u003e\nFROZEN transaction is done lazily.  This patch allows update_freezer_state\nonly to perform this transaction and renames the function to\nupdate_if_frozen.\n\nMoreover is_task_frozen_enough function is removed and its every occurence\nis replaced with frozen().  Therefore for a group to become FROZEN every\ntask must be frozen.\n\nThe previous version could trigger a following bug: When cgroup is in the\nprocess of freezing (but none of its tasks are frozen yet),\nupdate_freezer_state() (called from freezer_read or freezer_write) would\nincorrectly report that a group is \u0027THAWED\u0027 (because nfrozen \u003d 0),\nallowing the transaction FREEZING -\u003e THAWED without writing anything to\n\u0027freezer.state\u0027.  This is incorrect according to the documentation.  This\ncould result in a \u0027THAWED\u0027 cgroup with frozen tasks inside.\n\nA code to reproduce this bug is available here:\nhttp://pentium.hopto.org/~thinred/repos/linux-misc/freezer_bug2.c\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Tomasz Buchert \u003ctomasz.buchert@inria.fr\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bdba580ab052a21e3eda2764ed22d9ee962392b",
      "tree": "9d8fb958c8612a9c72b8662d9b51c12c76ccd0bb",
      "parents": [
        "d5de4ddb1bc430289bede76c0d87cabee93f749a"
      ],
      "author": {
        "name": "Tomasz Buchert",
        "email": "tomasz.buchert@inria.fr",
        "time": "Wed Oct 27 15:33:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:08 2010 -0700"
      },
      "message": "cgroup_freezer: fix can_attach() to prohibit moving from/to freezing/frozen cgroups\n\nIt is possible to move a task from its cgroup even if this group is\n\u0027FREEZING\u0027.  This results in a nasty bug - the moved task will become\nfrozen OUTSIDE its original cgroup and will remain in a permanent \u0027D\u0027\nstate.\n\nThis patch allows to migrate the task only between THAWED cgroups.\n\nThis behavior was observed and easily reproduced on a single core laptop.\nNotice that reproducibility depends highly on the machine used.  Program\nand instructions how to reproduce the bug can be fetched from:\nhttp://pentium.hopto.org/~thinred/repos/linux-misc/freezer_bug.c\n\nSigned-off-by: Tomasz Buchert \u003ctomasz.buchert@inria.fr\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5de4ddb1bc430289bede76c0d87cabee93f749a",
      "tree": "142ebbc437d2d6e5c47eda6c37847eb058d2851e",
      "parents": [
        "abffc0207f12563f17bbde96e4cc0d9f3d7e2a53"
      ],
      "author": {
        "name": "Tomasz Buchert",
        "email": "tomasz.buchert@inria.fr",
        "time": "Wed Oct 27 15:33:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:08 2010 -0700"
      },
      "message": "cgroup_freezer: unnecessary test in cgroup_freezing_or_frozen()\n\nThe root freezer_state is always CGROUP_THAWED so we can remove the\nspecial case from the code.  The test itself can be handy and is extracted\nto static function.\n\nSigned-off-by: Tomasz Buchert \u003ctomasz.buchert@inria.fr\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "ee2f154a598e96df2ebb01648a7699373bc085c7",
      "tree": "30de15c8024271552a4fd5bf9fc813c0787ea91c",
      "parents": [
        "003bb8ab7cecbfd1830bbccf9c6a9e2047d27c5c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Oct 26 14:17:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:32:41 2010 -0700"
      },
      "message": "docbook: add more wait/wake/completion to device-drivers docbook\n\nAdd more wait, wake, and completion interfaces to the device-drivers\ndocbook.\n\nFix kernel-doc notation in the added files.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5d87d851d76a390d0fab2f77bd1d563d69ee586",
      "tree": "4056332405b630e3bd2663beb3dcbf16955095cd",
      "parents": [
        "674dff6507d3f9b110219ea125cf5e1213c9acef"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "printk: declare printk_ratelimit_state in ratelimit.h\n\nAdding declaration of printk_ratelimit_state in ratelimit.h removes\npotential build breakage and following sparse warning:\n\n kernel/printk.c:1426:1: warning: symbol \u0027printk_ratelimit_state\u0027 was not declared. Should it be static?\n\n[akpm@linux-foundation.org: remove unneeded ifdef]\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "674dff6507d3f9b110219ea125cf5e1213c9acef",
      "tree": "ce1799340d42aa814e6b4d4311c6bcf6ff2c5f5c",
      "parents": [
        "8155c02a44a95562e1ae0999360eb31288d7195a"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "printk: change type of \u0027boot_delay\u0027 to int *\n\nget_option() takes its 2nd arg as int * so passing boot_delay to it\ncaused following warnings from sparse:\n\n kernel/printk.c:223:27: warning: incorrect type in argument 2 (different signedness)\n kernel/printk.c:223:27:    expected int *pint\n kernel/printk.c:223:27:    got unsigned int static [toplevel] *\u003cnoident\u003e\n\nSince boot_delay can\u0027t grow more than 10,000 changing it to \u0027int *\u0027\nwill not produce any problem.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "8155c02a44a95562e1ae0999360eb31288d7195a",
      "tree": "65a5d03b8ce866b149d50f9a9d6b798fbeae715b",
      "parents": [
        "6c095efd82e8f6a98515426a733110f91cf0a709"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "printk: add lock context annotation\n\nacquire_console_semaphore_for_printk() releases logbuf_lock but\nwas missing proper annotation. Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "6c095efd82e8f6a98515426a733110f91cf0a709",
      "tree": "32352a70fff2b51c6f948df514c80e2dd0cb053d",
      "parents": [
        "5f2365d8c24aec8dbedf49c69b7601c7cfaee2c1"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "printk: fixup declaration of kmsg_reasons\n\nMove redundant \u0027const\u0027 after \u0027*\u0027 to make pointer itself const\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\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": "4ce6494dbd8909718840bb88d5a699ef6ce5c212",
      "tree": "7803fc3f194969a736ae3a12b51e2cada7b98fbd",
      "parents": [
        "ca51c5a76345b28c6f1b742f9f5f0a6fc9afd9ca"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Oct 26 14:22:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "stop_machine: convert cpu notifier to return encapsulate errno value\n\nIn commit e6bde73b07edeb703d4c89c1daabc09c303de11f (\"cpu-hotplug: return\nbetter errno on cpu hotplug failure\"), the cpu notifier can return an\nencapsulated errno value.\n\nThis converts the cpu notifier to return an encapsulated errno value for\nstop_machine().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca51c5a76345b28c6f1b742f9f5f0a6fc9afd9ca",
      "tree": "2165800008473681383c565031b5f3fedb729d09",
      "parents": [
        "518de9b39e854542de59bfb8b9f61c8f7ecf808b"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Oct 26 14:22:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "kernel/stop_machine.c: fix unused variable warning\n\nkernel/stop_machine.c: In function `cpu_stopper_thread\u0027:\nkernel/stop_machine.c:265: warning: unused variable `ksym_buf\u0027\n\nksym_buf[] is unused if WARN_ON() is a no-op.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\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": "518de9b39e854542de59bfb8b9f61c8f7ecf808b",
      "tree": "06cd1dd303a1526501783589ec61696570c0ffa8",
      "parents": [
        "571428be550fbe37160596995e96ad398873fcbd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 26 14:22:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "fs: allow for more than 2^31 files\n\nRobin Holt tried to boot a 16TB system and found af_unix was overflowing\na 32bit value :\n\n\u003cquote\u003e\n\nWe were seeing a failure which prevented boot.  The kernel was incapable\nof creating either a named pipe or unix domain socket.  This comes down\nto a common kernel function called unix_create1() which does:\n\n        atomic_inc(\u0026unix_nr_socks);\n        if (atomic_read(\u0026unix_nr_socks) \u003e 2 * get_max_files())\n                goto out;\n\nThe function get_max_files() is a simple return of files_stat.max_files.\nfiles_stat.max_files is a signed integer and is computed in\nfs/file_table.c\u0027s files_init().\n\n        n \u003d (mempages * (PAGE_SIZE / 1024)) / 10;\n        files_stat.max_files \u003d n;\n\nIn our case, mempages (total_ram_pages) is approx 3,758,096,384\n(0xe0000000).  That leaves max_files at approximately 1,503,238,553.\nThis causes 2 * get_max_files() to integer overflow.\n\n\u003c/quote\u003e\n\nFix is to let /proc/sys/fs/file-nr \u0026 /proc/sys/fs/file-max use long\nintegers, and change af_unix to use an atomic_long_t instead of atomic_t.\n\nget_max_files() is changed to return an unsigned long.  get_nr_files() is\nchanged to return a long.\n\nunix_nr_socks is changed from atomic_t to atomic_long_t, while not\nstrictly needed to address Robin problem.\n\nBefore patch (on a 64bit kernel) :\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n-18446744071562067968\n\nAfter patch:\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n2147483648\n# cat /proc/sys/fs/file-nr\n704     0       2147483648\n\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nTested-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "571428be550fbe37160596995e96ad398873fcbd",
      "tree": "eddfb410db3ae0260f5a0a5d4301869ba02779e9",
      "parents": [
        "562f5e638de4ef451226552fe8dd7847bacea24e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "kernel/user.c: add lock release annotation on free_user()\n\nfree_user() releases uidhash_lock but was missing annotation.  Add it.\nThis removes following sparse warnings:\n\n include/linux/spinlock.h:339:9: warning: context imbalance in \u0027free_user\u0027 - unexpected unlock\n kernel/user.c:120:6: warning: context imbalance in \u0027free_uid\u0027 - wrong count at exit\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca1cab37d91cbe8a8333732540d43cabb54cfa85",
      "tree": "ea936dc8e5eb80b02fdf1d970bcb6f2e836051b9",
      "parents": [
        "99dc829256bb8cfcb1f58b7f118893fdbf608e60"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Oct 26 14:22:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:14 2010 -0700"
      },
      "message": "workqueues: s/ON_STACK/ONSTACK/\n\nSilly though it is, completions and wait_queue_heads use foo_ONSTACK\n(COMPLETION_INITIALIZER_ONSTACK, DECLARE_COMPLETION_ONSTACK,\n__WAIT_QUEUE_HEAD_INIT_ONSTACK and DECLARE_WAIT_QUEUE_HEAD_ONSTACK) so I\nguess workqueues should do the same thing.\n\ns/INIT_WORK_ON_STACK/INIT_WORK_ONSTACK/\ns/INIT_DELAYED_WORK_ON_STACK/INIT_DELAYED_WORK_ONSTACK/\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ecb01df3261d3b1f02ccfcf8384e2a255d2a1d0",
      "tree": "1fe91114d8829a511db48d757c787cfede3b929c",
      "parents": [
        "b6472776816af1ed52848c93d26e3edb3b17adab"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Tue Oct 26 14:22:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:13 2010 -0700"
      },
      "message": "use clear_page()/copy_page() in favor of memset()/memcpy() on whole pages\n\nAfter all that\u0027s what they are intended for.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61ecdb801ef2cd28e32442383106d7837d76deac",
      "tree": "3ec4f04e09cc4a9b76dafaaa0c4dfd07e825e632",
      "parents": [
        "2e30244a7cc1ff09013a1238d415b4076406388e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: strictly nested kmap_atomic()\n\nEnsure kmap_atomic() usage is strictly nested\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d5992d2ac7dc09aed8ab537cba074589f0f0a52",
      "tree": "0fbb51026e8aa13ddd7a6516c04471ceb97bc277",
      "parents": [
        "0f4d208f1975f16f269134cee5f44c1f048581da"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue Oct 26 14:21:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: add per-mm oom disable count\n\nIt\u0027s pointless to kill a task if another thread sharing its mm cannot be\nkilled to allow future memory freeing.  A subsequent patch will prevent\nkills in such cases, but first it\u0027s necessary to have a way to flag a task\nthat shares memory with an OOM_DISABLE task that doesn\u0027t incur an\nadditional tasklist scan, which would make select_bad_process() an O(n^2)\nfunction.\n\nThis patch adds an atomic counter to struct mm_struct that follows how\nmany threads attached to it have an oom_score_adj of OOM_SCORE_ADJ_MIN.\nThey cannot be killed by the kernel, so their memory cannot be freed in\noom conditions.\n\nThis only requires task_lock() on the task that we\u0027re operating on, it\ndoes not require mm-\u003emmap_sem since task_lock() pins the mm and the\noperation is atomic.\n\n[rientjes@google.com: changelog and sys_unshare() code]\n[rientjes@google.com: protect oom_disable_count with task_lock in fork]\n[rientjes@google.com: use old_mm for oom_disable_count in exec]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "312d3ca856d369bb04d0443846b85b4cdde6fa8a",
      "tree": "cf95d01cffaf02bf53c2bb0f7c2c924279ec6eeb",
      "parents": [
        "9c82ab9c9e16cb9edf17bd0d31f3d6904afce04f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 10 05:36:23 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:12 2010 -0400"
      },
      "message": "fs: use percpu counter for nr_dentry and nr_dentry_unused\n\nThe nr_dentry stat is a globally touched cacheline and atomic operation\ntwice over the lifetime of a dentry. It is used for the benfit of userspace\nonly. Turn it into a per-cpu counter and always decrement it in d_free instead\nof doing various batching operations to reduce lock hold times in the callers.\n\nBased on an earlier patch from Nick Piggin \u003cnpiggin@suse.de\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cffbc8aa334f55c9ed42d25202eb3ebf3a97c195",
      "tree": "dab046695754e2cec1a7ab7a64b236e976d94360",
      "parents": [
        "be1a16a0ae29a7c90081a657b64aa51cb1a65a27"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Oct 23 05:03:02 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:09 2010 -0400"
      },
      "message": "fs: Convert nr_inodes and nr_unused to per-cpu counters\n\nThe number of inodes allocated does not need to be tied to the\naddition or removal of an inode to/from a list. If we are not tied\nto a list lock, we could update the counters when inodes are\ninitialised or destroyed, but to do that we need to convert the\ncounters to be per-cpu (i.e. independent of a lock). This means that\nwe have the freedom to change the list/locking implementation\nwithout needing to care about the counters.\n\nBased on a patch originally from Eric Dumazet.\n\n[AV: cleaned up a bit, fixed build breakage on weird configs\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e360c38abe2c70eae3ba5a8a17f17671d8b77c5",
      "tree": "319034360c667ac704bce87b1a0856657bf67e4b",
      "parents": [
        "fde214d414218fb6cace35708730986bcc94fb53"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 05 09:32:55 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:18:20 2010 -0400"
      },
      "message": "fs: allow for more than 2^31 files\n\nAndrew,\n\nCould you please review this patch, you probably are the right guy to\ntake it, because it crosses fs and net trees.\n\nNote : /proc/sys/fs/file-nr is a read-only file, so this patch doesnt\ndepend on previous patch (sysctl: fix min/max handling in\n__do_proc_doulongvec_minmax())\n\nThanks !\n\n[PATCH V4] fs: allow for more than 2^31 files\n\nRobin Holt tried to boot a 16TB system and found af_unix was overflowing\na 32bit value :\n\n\u003cquote\u003e\n\nWe were seeing a failure which prevented boot.  The kernel was incapable\nof creating either a named pipe or unix domain socket.  This comes down\nto a common kernel function called unix_create1() which does:\n\n        atomic_inc(\u0026unix_nr_socks);\n        if (atomic_read(\u0026unix_nr_socks) \u003e 2 * get_max_files())\n                goto out;\n\nThe function get_max_files() is a simple return of files_stat.max_files.\nfiles_stat.max_files is a signed integer and is computed in\nfs/file_table.c\u0027s files_init().\n\n        n \u003d (mempages * (PAGE_SIZE / 1024)) / 10;\n        files_stat.max_files \u003d n;\n\nIn our case, mempages (total_ram_pages) is approx 3,758,096,384\n(0xe0000000).  That leaves max_files at approximately 1,503,238,553.\nThis causes 2 * get_max_files() to integer overflow.\n\n\u003c/quote\u003e\n\nFix is to let /proc/sys/fs/file-nr \u0026 /proc/sys/fs/file-max use long\nintegers, and change af_unix to use an atomic_long_t instead of\natomic_t.\n\nget_max_files() is changed to return an unsigned long.\nget_nr_files() is changed to return a long.\n\nunix_nr_socks is changed from atomic_t to atomic_long_t, while not\nstrictly needed to address Robin problem.\n\nBefore patch (on a 64bit kernel) :\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n-18446744071562067968\n\nAfter patch:\n# echo 2147483648 \u003e/proc/sys/fs/file-max\n# cat /proc/sys/fs/file-max\n2147483648\n# cat /proc/sys/fs/file-nr\n704     0       2147483648\n\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nTested-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5260562754c0aa4b95eebb1f851eaccce7286365",
      "tree": "5702b9da6869d2769e4e88472b2c39b643187174",
      "parents": [
        "74eb94b218d087798a52c0b4f1379b635287a4b8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 25 23:41:11 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:24:06 2010 -0700"
      },
      "message": "MN10300: Fix the PERCPU() alignment to allow for workqueues\n\nIn the MN10300 arch, we occasionally see an assertion being tripped in\nalloc_cwqs() at the following line:\n\n        /* just in case, make sure it\u0027s actually aligned */\n  ---\u003e  BUG_ON(!IS_ALIGNED(wq-\u003ecpu_wq.v, align));\n        return wq-\u003ecpu_wq.v ? 0 : -ENOMEM;\n\nThe values are:\n\n        wa-\u003ecpu_wq.v \u003d\u003e 0x902776e0\n        align \u003d\u003e 0x100\n\nand align is calculated by the following:\n\n        const size_t align \u003d max_t(size_t, 1 \u003c\u003c WORK_STRUCT_FLAG_BITS,\n                                   __alignof__(unsigned long long));\n\nThis is because the pointer in question (wq-\u003ecpu_wq.v) loses some of its\nlower bits to control flags, and so the object it points to must be\nsufficiently aligned to avoid the need to use those bits for pointing to\nthings.\n\nCurrently, 4 control bits and 4 colour bits are used in normal\ncircumstances, plus a debugging bit if debugging is set.  This requires\nthe cpu_workqueue_struct struct to be at least 256 bytes aligned (or 512\nbytes aligned with debugging).\n\nPERCPU() alignment on MN13000, however, is only 32 bytes as set in\nvmlinux.lds.S.  So we set this to PAGE_SIZE (4096) to match most other\narches and stick a comment in alloc_cwqs() for anyone else who triggers\nthe assertion.\n\nReported-by: Akira Takeuchi \u003ctakeuchi.akr@jp.panasonic.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "02f36038c568111ad4fc433f6fa760ff5e38fab4",
      "tree": "78e6ef15798c6e9d1052eab7f7d3a0db0ec908e5",
      "parents": [
        "6c2754c28f2388a276fe21edde826f2113c8f60e",
        "676cb02dc32adef13d9efb5ea52079e4ede1e3ec",
        "07bd8516a2f967aa67904c68ab97bb896a448b09",
        "50f2d7f682f9c0ed58191d0982fe77888d59d162",
        "892df7f81c31ce7f85778aa78094e8d1f19b8413",
        "68f4d5a00adaab33b136fce2c72d5c377b39b0b0",
        "b365a85c68161ea5db5476eb8845a91ceb1777ea",
        "6554287b1de0448f1e02e200d02b43914e997d15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:25:36 2010 -0700"
      },
      "message": "Merge branches \u0027softirq-for-linus\u0027, \u0027x86-debug-for-linus\u0027, \u0027x86-numa-for-linus\u0027, \u0027x86-quirks-for-linus\u0027, \u0027x86-setup-for-linus\u0027, \u0027x86-uv-for-linus\u0027 and \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027softirq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softirqs: Make wakeup_softirqd static\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, asm: Restore parentheses around one pushl_cfi argument\n  x86, asm: Fix ancient-GAS workaround\n  x86, asm: Fix CFI macro invocations to deal with shortcomings in gas\n\n* \u0027x86-numa-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, numa: Assign CPUs to nodes in round-robin manner on fake NUMA\n\n* \u0027x86-quirks-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: HPET force enable for CX700 / VIA Epia LT\n\n* \u0027x86-setup-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, setup: Use string copy operation to optimze copy in kernel compression\n\n* \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, UV: Use allocated buffer in tlb_uv.c:tunables_read()\n\n* \u0027x86-vm86-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers.\n"
    },
    {
      "commit": "8814011679d1a47d8b0158fc991727a5859471a0",
      "tree": "f5d84ea8dba4fb7e18312deb04ff51ba35f9b901",
      "parents": [
        "5cc103506289de7ee0a0b526ae0381541990cad4",
        "495363d380b4f4745bd8677912688654afc44020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 20:35:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 20:35:12 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kdb,debug_core: adjust master cpu switch logic against new debug_core locking\n  debug_core: refactor locking for master/slave cpus\n  x86,kgdb: remove unnecessary call to kgdb_correct_hw_break()\n  debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter()\n  kdb,kgdb: fix sparse fixups\n  kdb: Fix oops in kdb_unregister\n  kdb,ftdump: Remove reference to internal kdb include\n  kdb: Allow kernel loadable modules to add kdb shell functions\n  debug_core: stop rcu warnings on kernel resume\n  debug_core: move all watch dog syncs to a single function\n  x86,kgdb: fix debugger hw breakpoint test regression in 2.6.35\n"
    },
    {
      "commit": "91b745016c12d440386c40fb76ab69c8e08cbc06",
      "tree": "881a26a43b3ee924c0979a54b38c7a87d79d7f1a",
      "parents": [
        "04cc69768e7d1f40d98b79d23d203674553b4da2",
        "daaae6b010ac0f60c9c35e481589966f9f1fcc22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:13:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:13:10 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: remove in_workqueue_context()\n  workqueue: Clarify that schedule_on_each_cpu is synchronous\n  memory_hotplug: drop spurious calls to flush_scheduled_work()\n  shpchp: update workqueue usage\n  pciehp: update workqueue usage\n  isdn/eicon: don\u0027t call flush_scheduled_work() from diva_os_remove_soft_isr()\n  workqueue: add and use WQ_MEM_RECLAIM flag\n  workqueue: fix HIGHPRI handling in keep_working()\n  workqueue: add queue_work and activate_work trace points\n  workqueue: prepare for more tracepoints\n  workqueue: implement flush[_delayed]_work_sync()\n  workqueue: factor out start_flush_work()\n  workqueue: cleanup flush/cancel functions\n  workqueue: implement alloc_ordered_workqueue()\n\nFix up trivial conflict in fs/gfs2/main.c as per Tejun\n"
    },
    {
      "commit": "495363d380b4f4745bd8677912688654afc44020",
      "tree": "647032c22f9e77f91578dcae864776849dbcbfa8",
      "parents": [
        "dfee3a7b92208b30f77876068aece9ea571270c2"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri May 21 08:46:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:13 2010 -0500"
      },
      "message": "kdb,debug_core: adjust master cpu switch logic against new debug_core locking\n\nThe kdb shell needs to enforce switching back to the original CPU that\ntook the exception before restoring normal kernel execution.  Resuming\nfrom a different CPU than what took the original exception will cause\nproblems with spin locks that are freed from the a different processor\nthan had taken the lock.\n\nThe special logic in dbg_cpu_switch() can go away entirely with\nbecause the state of what cpus want to be masters or slaves will\nremain unchanged between entry and exit of the debug_core exception\ncontext.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "dfee3a7b92208b30f77876068aece9ea571270c2",
      "tree": "de243b8c2e1a3b5dea007b1fb79f1e7b4a8263ba",
      "parents": [
        "39a0715f5ace92268190c89e246fd1cf741dbaea"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri May 21 08:46:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:13 2010 -0500"
      },
      "message": "debug_core: refactor locking for master/slave cpus\n\nFor quite some time there have been problems with memory barriers and\nvarious races with NMI on multi processor systems using the kernel\ndebugger.  The algorithm for entering the kernel debug core and\nresuming kernel execution was racy and had several known edge case\nproblems with attempting to debug something on a heavily loaded system\nusing breakpoints that are hit repeatedly and quickly.\n\nThe prior \"locking\" design entry worked as follows:\n\n  * The atomic counter kgdb_active was used with atomic exchange in\n    order to elect a master cpu out of all the cpus that may have\n    taken a debug exception.\n  * The master cpu increments all elements of passive_cpu_wait[].\n  * The master cpu issues the round up cpus message.\n  * Each \"slave cpu\" that enters the debug core increments its own\n    element in cpu_in_kgdb[].\n  * Each \"slave cpu\" spins on passive_cpu_wait[] until it becomes 0.\n  * The master cpu debugs the system.\n\nThe new scheme removes the two arrays of atomic counters and replaces\nthem with 2 single counters.  One counter is used to count the number\nof cpus waiting to become a master cpu (because one or more hit an\nexception). The second counter is use to indicate how many cpus have\nentered as slave cpus.\n\nThe new entry logic works as follows:\n\n  * One or more cpus enters via kgdb_handle_exception() and increments\n    the masters_in_kgdb. Each cpu attempts to get the spin lock called\n    dbg_master_lock.\n  * The master cpu sets kgdb_active to the current cpu.\n  * The master cpu takes the spinlock dbg_slave_lock.\n  * The master cpu asks to round up all the other cpus.\n  * Each slave cpu that is not already in kgdb_handle_exception()\n    will enter and increment slaves_in_kgdb.  Each slave will now spin\n    try_locking on dbg_slave_lock.\n  * The master cpu waits for the sum of masters_in_kgdb and slaves_in_kgdb\n    to be equal to the sum of the online cpus.\n  * The master cpu debugs the system.\n\nIn the new design the kgdb_active can only be changed while holding\ndbg_master_lock.  Stress testing has not turned up any further\nentry/exit races that existed in the prior locking design.  The prior\nlocking design suffered from atomic variables not being truly atomic\n(in the capacity as used by kgdb) along with memory barrier races.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "c1bb9a9c1911036549c5cdfb23f32d7d20ffdc5a",
      "tree": "8d86976df36697e54ae3582d6c30b7355a942647",
      "parents": [
        "91b152aa85bbcf076e269565394c31964f940371"
      ],
      "author": {
        "name": "Dongdong Deng",
        "email": "dongdong.deng@windriver.com",
        "time": "Mon Sep 13 06:58:00 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter()\n\nThe slave cpus do not have the hw breakpoints disabled upon entry to\nthe debug_core and as a result could cause unrecoverable recursive\nfaults on badly placed breakpoints, or get out of sync with the arch\nspecific hw breakpoint operations.\n\nThis patch addresses the problem by invoking kgdb_disable_hw_debug()\nearlier in kgdb_enter_cpu for each cpu that enters the debug core.\n\nThe hw breakpoint dis/enable flow should be:\n\nmaster_debug_cpu   slave_debug_cpu\n         \\              /\n          kgdb_cpu_enter\n                |\n        kgdb_disable_hw_debug --\u003e uninstall pre-enabled hw_breakpoint\n                |\n do add/rm dis/enable operates to hw_breakpoints on master_debug_cpu..\n                |\n        correct_hw_break --\u003e correct/install the enabled hw_breakpoint\n                |\n           leave_kgdb\n\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "91b152aa85bbcf076e269565394c31964f940371",
      "tree": "32b2a8684877a15b050ef21c8ddcd583b695538d",
      "parents": [
        "75d14edee5689716b55afe467acfc13206a31f95"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 23 09:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "kdb,kgdb: fix sparse fixups\n\nFix the following sparse warnings:\n\nkdb_main.c:328:5: warning: symbol \u0027kdbgetu64arg\u0027 was not declared. Should it be static?\nkgdboc.c:246:12: warning: symbol \u0027kgdboc_early_init\u0027 was not declared. Should it be static?\nkgdb.c:652:26: warning: incorrect type in argument 1 (different address spaces)\nkgdb.c:652:26:    expected void const *ptr\nkgdb.c:652:26:    got struct perf_event *[noderef] \u003casn:3\u003e*pev\n\nThe one in kgdb.c required the (void * __force) because of the return\ncode from register_wide_hw_breakpoint looking like:\n\n        return (void __percpu __force *)ERR_PTR(err);\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "75d14edee5689716b55afe467acfc13206a31f95",
      "tree": "2646d65a43916e2eac7e24e8b23f1f82918b6702",
      "parents": [
        "e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:12 2010 -0500"
      },
      "message": "kdb: Fix oops in kdb_unregister\n\nNothing should try to use kdb_commands directly as sometimes it is\nnull.  Instead, use the for_each_kdbcmd() iterator.\n\nThis particular problem dates back to the initial kdb merge (2.6.35),\nbut at that point nothing was dynamically unregistering commands from\nthe kdb shell.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26",
      "tree": "e8ce99ce6b807b5929b8dd0920fcbefa8a59bc1c",
      "parents": [
        "f7030bbc446430ecd12c9ad02cf0ea94934e5f91"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:11 2010 -0500"
      },
      "message": "kdb,ftdump: Remove reference to internal kdb include\n\nNow that include/linux/kdb.h properly exports all the functions\nrequired to dynamically add a kdb shell command, the reference to the\nprivate kdb header can be removed.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "f7030bbc446430ecd12c9ad02cf0ea94934e5f91",
      "tree": "1a281ffa0c2686fa898081781a0c7b9bbc2d5b00",
      "parents": [
        "fb70b5888b70b0b50f738fbfc019445493112eb1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:11 2010 -0500"
      },
      "message": "kdb: Allow kernel loadable modules to add kdb shell functions\n\nIn order to allow kernel modules to dynamically add a command to the\nkdb shell the kdb_register, kdb_register_repeat, kdb_unregister, and\nkdb_printf need to be exported as GPL symbols.\n\nAny kernel module that adds a dynamic kdb shell function should only\nneed to include linux/kdb.h.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "fb70b5888b70b0b50f738fbfc019445493112eb1",
      "tree": "ee35bfc0e78af0702756d15e05ed09f0f56e18ac",
      "parents": [
        "16cdc628c3aed47d02205135b7e2f01e0064f566"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 13 12:44:04 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:10 2010 -0500"
      },
      "message": "debug_core: stop rcu warnings on kernel resume\n\nWhen returning from the kernel debugger reset the rcu jiffies_stall\nvalue to prevent the rcu stall detector from sending NMI events which\ninvoke a stack dump for each cpu in the system.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "16cdc628c3aed47d02205135b7e2f01e0064f566",
      "tree": "8f8709ee2b9e2c5f38e1261dcc773887d092f73d",
      "parents": [
        "fad99fac2627e2cc0ebfe07fcb5046c0b4e103f9"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 06 11:47:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:10 2010 -0500"
      },
      "message": "debug_core: move all watch dog syncs to a single function\n\nMove the various clock and watch dog syncs to a single function in\nadvance of adding another sync for the rcu stall detector.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "d4429f608abde89e8bc1e24b43cd503feb95c496",
      "tree": "4c11afa193593a5e3949391bf35022b4f87ba375",
      "parents": [
        "e10117d36ef758da0690c95ecffc09d5dd7da479",
        "6a1c9dfe4186f18fed38421b35b40fb9260cbfe1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 21:19:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 21:19:54 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits)\n  powerpc/44x: Update ppc44x_defconfig\n  powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option\n  fsl_rio: Add comments for sRIO registers.\n  powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig\n  powerpc/fsl-booke: Add p5020 DS board support\n  powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips\n  powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes\n  powerpc/fsl-booke: Add support for FSL 64-bit e5500 core\n  powerpc/85xx: add cache-sram support\n  powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board\n  powerpc: Fix compile error with paca code on ppc64e\n  powerpc/fsl-booke: Add p3041 DS board support\n  oprofile/fsl emb: Don\u0027t set MSR[PMM] until after clearing the interrupt.\n  powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips\n  powerpc/mpc8xxx_gpio: Add support for \u0027qoriq-gpio\u0027 controllers\n  powerpc/fsl_booke: Add support to boot from core other than 0\n  powerpc/p1022: Add probing for individual DMA channels\n  powerpc/fsl_soc: Search all global-utilities nodes for rstccr\n  powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT\n  powerpc/mpc83xx: Support for MPC8308 P1M board\n  ...\n\nFix up conflict with the generic irq_work changes in arch/powerpc/kernel/time.c\n"
    },
    {
      "commit": "3044100e58c84e133791c8b60a2f5bef69d732e4",
      "tree": "f9ed0d1f3df89c31dd81ccaf0cf3478f57b08440",
      "parents": [
        "b5153163ed580e00c67bdfecb02b2e3843817b3e",
        "67e87f0a1c5cbc750f81ebf6a128e8ff6f4376cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 18:52:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 18:52:11 2010 -0700"
      },
      "message": "Merge branch \u0027core-memblock-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-memblock-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits)\n  x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S\n  xen: Cope with unmapped pages when initializing kernel pagetable\n  memblock, bootmem: Round pfn properly for memory and reserved regions\n  memblock: Annotate memblock functions with __init_memblock\n  memblock: Allow memblock_init to be called early\n  memblock/arm: Fix memblock_region_is_memory() typo\n  x86, memblock: Remove __memblock_x86_find_in_range_size()\n  memblock: Fix wraparound in find_region()\n  x86-32, memblock: Make add_highpages honor early reserved ranges\n  x86, memblock: Fix crashkernel allocation\n  arm, memblock: Fix the sparsemem build\n  memblock: Fix section mismatch warnings\n  powerpc, memblock: Fix memblock API change fallout\n  memblock, microblaze: Fix memblock API change fallout\n  x86: Remove old bootmem code\n  x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve\n  x86: Remove not used early_res code\n  x86, memblock: Replace e820_/_early string with memblock_\n  x86: Use memblock to replace early_res\n  x86, memblock: Use memblock_debug to control debug message print out\n  ...\n\nFix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile\n"
    },
    {
      "commit": "b5153163ed580e00c67bdfecb02b2e3843817b3e",
      "tree": "b8c878601f07f5df8f694435857a5f3dcfd75482",
      "parents": [
        "a8cbf22559ceefdcdfac00701e8e6da7518b7e8e",
        "6451d7783ba5ff24eb1a544eaa6665b890f30466"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)\n  arm: remove machine_desc.io_pg_offst and .phys_io\n  arm: use addruart macro to establish debug mappings\n  arm: return both physical and virtual addresses from addruart\n  arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC\n  ARM: make struct machine_desc definition coherent with its comment\n  eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free\n  cpuimx27: fix compile when ULPI is selected\n  mach-pcm037_eet: fix compile errors\n  Fixing ethernet driver compilation error for i.MX31 ADS board\n  cpuimx51: update board support\n  mx5: add cpuimx51sd module and its baseboard\n  iomux-mx51: fix GPIO_1_xx \u0027s IOMUX configuration\n  imx-esdhc: update devices registration\n  mx51: add resources for SD/MMC on i.MX51\n  iomux-mx51: fix SD1 and SD2\u0027s iomux configuration\n  clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability\n  clock-mx51: factorize clk_set_parent and clk_get_rate\n  eukrea_mbimxsd: add support for DVI displays\n  cpuimx25 \u0026 cpuimx35: fix OTG port registration in host mode\n  i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472\n  ...\n"
    },
    {
      "commit": "a8cbf22559ceefdcdfac00701e8e6da7518b7e8e",
      "tree": "63ebd5779a37f809f7daed77dbf27aa3f1e1110c",
      "parents": [
        "e36f561a2c88394ef2708f1ab300fe8a79e9f651",
        "9c034392533f3e9f00656d5c58478cff2560ef81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:53:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:53:17 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (26 commits)\n  PM / Wakeup: Show wakeup sources statistics in debugfs\n  PM: Introduce library for device-specific OPPs (v7)\n  PM: Add sysfs attr for rechecking dev hash from PM trace\n  PM: Lock PM device list mutex in show_dev_hash()\n  PM / Runtime: Remove idle notification after failing suspend\n  PM / Hibernate: Modify signature used to mark swap\n  PM / Runtime: Reduce code duplication in core helper functions\n  PM: Allow wakeup events to abort freezing of tasks\n  PM: runtime: add missed pm_request_autosuspend\n  PM / Hibernate: Make some boot messages look less scary\n  PM / Runtime: Implement autosuspend support\n  PM / Runtime: Add no_callbacks flag\n  PM / Runtime: Combine runtime PM entry points\n  PM / Runtime: Merge synchronous and async runtime routines\n  PM / Runtime: Replace boolean arguments with bitflags\n  PM / Runtime: Move code in drivers/base/power/runtime.c\n  sysfs: Add sysfs_merge_group() and sysfs_unmerge_group()\n  PM: Fix potential issue with failing asynchronous suspend\n  PM / Wakeup: Introduce wakeup source objects and event statistics (v3)\n  PM: Fix signed/unsigned warning in dpm_show_time()\n  ...\n"
    },
    {
      "commit": "4a60cfa9457749f7987fd4f3c956dbba5a281129",
      "tree": "85f3633276282cde0a3ac558d988704eaa3e68af",
      "parents": [
        "62bea97f54d806218a992b18d1f425cfb5060175",
        "27afdf2008da0b8878a73e32e4eb12381b84e224"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:11:46 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (96 commits)\n  apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets\n  apic, x86: Check if EILVT APIC registers are available (AMD only)\n  x86: ioapic: Call free_irte only if interrupt remapping enabled\n  arm: Use ARCH_IRQ_INIT_FLAGS\n  genirq, ARM: Fix boot on ARM platforms\n  genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED\u003dy build\n  x86: Switch sparse_irq allocations to GFP_KERNEL\n  genirq: Switch sparse_irq allocator to GFP_KERNEL\n  genirq: Make sparse_lock a mutex\n  x86: lguest: Use new irq allocator\n  genirq: Remove the now unused sparse irq leftovers\n  genirq: Sanitize dynamic irq handling\n  genirq: Remove arch_init_chip_data()\n  x86: xen: Sanitise sparse_irq handling\n  x86: Use sane enumeration\n  x86: uv: Clean up the direct access to irq_desc\n  x86: Make io_apic.c local functions static\n  genirq: Remove irq_2_iommu\n  x86: Speed up the irq_remapped check in hot pathes\n  intr_remap: Simplify the code further\n  ...\n\nFix up trivial conflicts in arch/x86/Kconfig\n"
    },
    {
      "commit": "62bea97f54d806218a992b18d1f425cfb5060175",
      "tree": "56269aab888af586f4f63ed6a05286d11e46168c",
      "parents": [
        "b61f6a57f1919ef8dbd33f864df9b8b361c65b11",
        "8af3c153baf95374eff20a37f00c59a295b52756"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:08:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:08:08 2010 -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  ntp: Clamp PLL update interval\n"
    },
    {
      "commit": "b61f6a57f1919ef8dbd33f864df9b8b361c65b11",
      "tree": "9341bc1a3f6a8fdcd19f97d5bcf1a658ab7fc92c",
      "parents": [
        "0575db881d18a4791013fc93ba756ad08b18fb48",
        "fb62db2ba943b1683f1d7181bb2988fce4c60870"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "message": "Merge branch \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  futex: Fix kernel-doc notation \u0026 typos\n  futex: Add lock context annotations\n  futex: Mark restart_block.futex.uaddr[2] __user\n  futex: Change 3rd arg of fetch_robust_entry() to unsigned int*\n"
    },
    {
      "commit": "0575db881d18a4791013fc93ba756ad08b18fb48",
      "tree": "fa0d9a789c1e74d4c94a2cda283b61bcc68ec7f9",
      "parents": [
        "c029e405bd3d4e92d09fbbc97c03952585986ebe",
        "7ada876a8703f23befbb20a7465a702ee39b1704"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:05:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:05:55 2010 -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  futex: Fix errors in nested key ref-counting\n"
    },
    {
      "commit": "bc4016f48161454a9a8e5eb209b0693c6cde9f62",
      "tree": "f470f5d711e975b152eec90282f5dd30a1d5dba5",
      "parents": [
        "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -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: (29 commits)\n  sched: Export account_system_vtime()\n  sched: Call tick_check_idle before __irq_enter\n  sched: Remove irq time from available CPU power\n  sched: Do not account irq time to current task\n  x86: Add IRQ_TIME_ACCOUNTING\n  sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n  sched: Add a PF flag for ksoftirqd identification\n  sched: Consolidate account_system_vtime extern declaration\n  sched: Fix softirq time accounting\n  sched: Drop group_capacity to 1 only if local group has extra capacity\n  sched: Force balancing on newidle balance if local group has capacity\n  sched: Set group_imb only a task can be pulled from the busiest cpu\n  sched: Do not consider SCHED_IDLE tasks to be cache hot\n  sched: Drop all load weight manipulation for RT tasks\n  sched: Create special class for stop/migrate work\n  sched: Unindent labels\n  sched: Comment updates: fix default latency and granularity numbers\n  tracing/sched: Add sched_pi_setprio tracepoint\n  sched: Give CPU bound RT tasks preference\n  sched: Try not to migrate higher priority RT tasks\n  ...\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "888a6f77e0418b049f83d37547c209b904d30af4",
      "tree": "42cdb9f781d2177e6b380e69a66a27ec7705f51f",
      "parents": [
        "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
        "6506cf6ce68d78a5470a8360c965dafe8e4b78e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -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: (52 commits)\n  sched: fix RCU lockdep splat from task_group()\n  rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n  sched: suppress RCU lockdep splat in task_fork_fair\n  net: suppress RCU lockdep false positive in sock_update_classid\n  rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held\n  rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n  rcu: Add tracing data to support queueing models\n  rcu: fix sparse errors in rcutorture.c\n  rcu: only one evaluation of arg in rcu_dereference_check() unless sparse\n  kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n  rcu: fix _oddness handling of verbose stall warnings\n  rcu: performance fixes to TINY_PREEMPT_RCU callback checking\n  rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes\n  vhost: add __rcu annotations\n  rcu: add comment stating that list_empty() applies to RCU-protected lists\n  rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU\n  rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n  rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods\n  rcu: document ways of stalling updates in low-memory situations\n  rcu: repair code-duplication FIXMEs\n  ...\n"
    },
    {
      "commit": "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
      "tree": "47415377d5f9bcf8c06e501f1636088548202edf",
      "parents": [
        "1053e6bba091d9d18797f7789df6a7ef8735f20c",
        "4ba053c04aece1f4734056f21b751eee47ea3fb1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:49:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:49:31 2010 -0700"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: Check the depth of subclass\n  lockdep: Add improved subclass caching\n  affs: Use sema_init instead of init_MUTEX\n  hfs: Convert tree_lock to mutex\n  arm: Bcmring: semaphore cleanup\n  printk: Make console_sem a semaphore not a pseudo mutex\n  drivers/macintosh/adb: Do not claim that the semaphore is a mutex\n  parport: Semaphore cleanup\n  irda: Semaphore cleanup\n  net: Wan/cosa.c: Convert \"mutex\" to semaphore\n  net: Ppp_async: semaphore cleanup\n  hamradio: Mkiss: semaphore cleanup\n  hamradio: 6pack: semaphore cleanup\n  net: 3c527: semaphore cleanup\n  input: Serio/hp_sdc: semaphore cleanup\n  input: Serio/hil_mlc: semaphore cleanup\n  input: Misc/hp_sdc_rtc: semaphore cleanup\n  lockup_detector: Make callback function static\n  lockup detector: Fix grammar by adding a missing \"to\" in the comments\n  lockdep: Remove __debug_show_held_locks\n"
    },
    {
      "commit": "b0ae19811375031ae3b3fecc65b702a9c6e5cc28",
      "tree": "a765b71155fbed1ed3a3cff35c1044ad49a002ae",
      "parents": [
        "9b3056cca09529d34af2d81305b2a9c6b622ca1b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Oct 15 04:21:18 2010 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Oct 21 10:12:44 2010 +1100"
      },
      "message": "security: remove unused parameter from security_task_setscheduler()\n\nAll security modules shouldn\u0027t change sched_param parameter of\nsecurity_task_setscheduler().  This is not only meaningless, but also\nmake a harmful result if caller pass a static variable.\n\nThis patch remove policy and sched_param parameter from\nsecurity_task_setscheduler() becuase none of security module is\nusing it.\n\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "14d4962dc863ab42e898d66d4837aa6c3afedc3b",
      "tree": "780cb53645b781dfd33b6d0ad21e0596f2ad1a1a",
      "parents": [
        "9717967c4b704ce344c954afb5bb160aa9c01c34",
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 20 04:38:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 20 04:38:59 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nMerge reason: update to almost-final-.36\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "809b4e00baf006a990a73329ba381d536c6fa277",
      "tree": "e949e0efd019d6f932537aba762792b07a84351c",
      "parents": [
        "a0a55682b83fd5f012afadcf415b030d7424ae68",
        "79a94c3538bda6869d7bb150b5e02dd3a72314dd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "message": "Merge branch \u0027devel-stable\u0027 into devel\n"
    },
    {
      "commit": "750ed158bf6c782d2813da1bca2c824365a0b777",
      "tree": "49bc9fb43e5211c97c8e572cb5b6b9352ea1aa14",
      "parents": [
        "3f7edb1656e5beba2b5e617d31e4064e1eed0bc0",
        "7e40798f406fe73f9bac496a390daabd8768a8f7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 19 20:41:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 19 20:41:38 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "7e40798f406fe73f9bac496a390daabd8768a8f7",
      "tree": "c75eee47b3d324218c53bf4f6af5b2fa9780d1db",
      "parents": [
        "78c89ba121221d9224a5747803d7fffe51cd6e44"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "message": "tracing: Fix compile issue for trace_sched_wakeup.c\n\nThe function start_func_tracer() was incorrectly added in the\n #ifdef CONFIG_FUNCTION_TRACER condition, but is still used even\nwhen function tracing is not enabled.\n\nThe calls to register_ftrace_function() and register_ftrace_graph()\nbecome nops (and their arguments are even ignored), thus there is\nno reason to hide start_func_tracer() when function tracing is\nnot enabled.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7ada876a8703f23befbb20a7465a702ee39b1704",
      "tree": "adee9cf8676fed56a0a6ad1d270ae5fb84d32553",
      "parents": [
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhart@linux.intel.com",
        "time": "Sun Oct 17 08:35:04 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Oct 19 11:41:54 2010 +0200"
      },
      "message": "futex: Fix errors in nested key ref-counting\n\nfutex_wait() is leaking key references due to futex_wait_setup()\nacquiring an additional reference via the queue_lock() routine. The\nnested key ref-counting has been masking bugs and complicating code\nanalysis. queue_lock() is only called with a previously ref-counted\nkey, so remove the additional ref-counting from the queue_(un)lock()\nfunctions.\n\nAlso futex_wait_requeue_pi() drops one key reference too many in\nunqueue_me_pi(). Remove the key reference handling from\nunqueue_me_pi(). This was paired with a queue_lock() in\nfutex_lock_pi(), so the count remains unchanged.\n\nDocument remaining nested key ref-counting sites.\n\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nReported-and-tested-by: Matthieu Fertré\u003cmatthieu.fertre@kerlabs.com\u003e\nReported-by: Louis Rilling\u003clouis.rilling@kerlabs.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c4CBB17A8.70401@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "01b284f9b6d51cc3f3bcf3b49f16d2601d3ca22d",
      "tree": "686f6c3cb92f172c96eeb853c58cb343bbb5dd94",
      "parents": [
        "0fc86c7bd924debd0bddee790ecc884604fdcc63"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Sep 17 20:39:22 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:57 2010 +0200"
      },
      "message": "blktrace: remove the big kernel lock\n\nAccording to Jens, this code does not need the BKL at all,\nit is sufficiently serialized by bd_mutex.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0fc86c7bd924debd0bddee790ecc884604fdcc63",
      "tree": "227016cf171dfb313b3d609f958e09062dc9059e",
      "parents": [
        "72024f1ec5164a70d84dd8cf4458fe4064a6b692"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 20:11:08 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:56 2010 +0200"
      },
      "message": "rtmutex-tester: make it build without BKL\n\nThe big kernel lock is going away, so make sure\nthat if it is disabled by Kconfig, we do not\ntry to validate it, which would result in\ncompile errors.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daaae6b010ac0f60c9c35e481589966f9f1fcc22",
      "tree": "94f4f463d898af0ad1926b8d21c15db94a0a411a",
      "parents": [
        "31ddd871fc3db73e2024cb3eb3ee5051edf5a80f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:28:15 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:28:15 2010 +0200"
      },
      "message": "workqueue: remove in_workqueue_context()\n\nCommit a25909a4 (lockdep: Add an in_workqueue_context() lockdep-based\ntest function) added in_workqueue_context() but there hasn\u0027t been any\nin-kernel user and the lockdep annotation in workqueue is scheduled to\nchange.  Remove the unused function.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "31ddd871fc3db73e2024cb3eb3ee5051edf5a80f",
      "tree": "3a2d578ec9ebefecca5e4cad196023bbe1a7d0f2",
      "parents": [
        "10ccd84695c2a03075bad2f4fc728575fe9051f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:14:49 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 19 11:14:49 2010 +0200"
      },
      "message": "workqueue: Clarify that schedule_on_each_cpu is synchronous\n\nThe documentation for schedule_on_each_cpu() states that it calls a\nfunction on each online CPU from keventd.  This can easily be\ninterpreted as an asyncronous call because the description does not\nmention that flush_work is called.  Clarify that it is synchronous.\n\ntj: rephrased a bit\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "23beab76b490172a9ff3d52843e4d27a35b2a4c6",
      "tree": "4fcde568ad32a1be08301172cb61a22717217f0e",
      "parents": [
        "8ed9059533eb89b4372d7fc31b6565c053e5253b",
        "5fb31a96e1e0078f1e82736ccd72a61ecabe6a4f",
        "80be7a7f642719bf99fc49692fc77d6333f51a73",
        "19852e59002fbba1c2c6ba0f154095a37ad2ac03",
        "29e29f27486ed7074df259b3eda8656bb014e9b5",
        "725343fa748fc9b7c883d198e9cec391425aa478",
        "9e978f096241e303c10cf6e6dc80dce41ef41b92",
        "f3af03de0b1c42225d492d874d9afeed0c02568c",
        "5333a3de3cdd739ec4f6d501f5f6d09bab7ff919"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "message": "Merge branches \u0027at91\u0027, \u0027dcache\u0027, \u0027ftrace\u0027, \u0027hwbpt\u0027, \u0027misc\u0027, \u0027mmci\u0027, \u0027s3c\u0027, \u0027st-ux\u0027 and \u0027unwind\u0027 into devel\n"
    },
    {
      "commit": "b7dadc38797584f6203386da1947ed5edf516646",
      "tree": "7598dbfaa7b2515da697c740c87d0a98e950b8c7",
      "parents": [
        "d267f87fb8179c6dba03d08b91952e81bc3723c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:00:37 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:30 2010 +0200"
      },
      "message": "sched: Export account_system_vtime()\n\nKVM uses it for example:\n\n ERROR: \"account_system_vtime\" [arch/x86/kvm/kvm.ko] undefined!\n\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-3-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d267f87fb8179c6dba03d08b91952e81bc3723c7",
      "tree": "ddcd2f7429964367fcb4ab1dd230a970452d72da",
      "parents": [
        "aa483808516ca5cacfa0e5849691f64fec25828e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:29 2010 +0200"
      },
      "message": "sched: Call tick_check_idle before __irq_enter\n\nWhen CPU is idle and on first interrupt, irq_enter calls tick_check_idle()\nto notify interruption from idle. But, there is a problem if this call\nis done after __irq_enter, as all routines in __irq_enter may find\nstale time due to yet to be done tick_check_idle.\n\nSpecifically, trace calls in __irq_enter when they use global clock and also\naccount_system_vtime change in this patch as it wants to use sched_clock_cpu()\nto do proper irq timing.\n\nBut, tick_check_idle was moved after __irq_enter intentionally to\nprevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a:\n\n    irq: call __irq_enter() before calling the tick_idle_check\n    Impact: avoid spurious ksoftirqd wakeups\n\nMoving tick_check_idle() before __irq_enter and wrapping it with\nlocal_bh_enable/disable would solve both the problems.\n\nFixed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-9-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa483808516ca5cacfa0e5849691f64fec25828e",
      "tree": "38a1d9f1cb1157bd68dc2475447bacbb4b63c64a",
      "parents": [
        "305e6835e05513406fa12820e40e4a8ecb63743c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:22 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:27 2010 +0200"
      },
      "message": "sched: Remove irq time from available CPU power\n\nThe idea was suggested by Peter Zijlstra here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d127476934517534\u0026w\u003d2\n\nirq time is technically not available to the tasks running on the CPU.\nThis patch removes irq time from CPU power piggybacking on\nsched_rt_avg_update().\n\nTested this by keeping CPU X busy with a network intensive task having 75%\noa a single CPU irq processing (hard+soft) on a 4-way system. And start seven\ncycle soakers on the system. Without this change, there will be two tasks on\neach CPU. With this change, there is a single task on irq busy CPU X and\nremaining 7 tasks are spread around among other 3 CPUs.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-8-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "305e6835e05513406fa12820e40e4a8ecb63743c",
      "tree": "8b43703e27d26f4a7e743a99459e0b465cd1e5e1",
      "parents": [
        "e82b8e4ea4f3dffe6e7939f90e78da675fcc450e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:26 2010 +0200"
      },
      "message": "sched: Do not account irq time to current task\n\nScheduler accounts both softirq and interrupt processing times to the\ncurrently running task. This means, if the interrupt processing was\nfor some other task in the system, then the current task ends up being\npenalized as it gets shorter runtime than otherwise.\n\nChange sched task accounting to acoount only actual task time from\ncurrently running task. Now update_curr(), modifies the delta_exec to\ndepend on rq-\u003eclock_task.\n\nNote that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can\nextend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats\nfor later.\n\nThis change will impact scheduling behavior in interrupt heavy conditions.\n\nTested on a 4-way system with eth0 handled by CPU 2 and a network heavy\ntask (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2\nspending 75%+ of its time in irq processing. CPU 3 spending around 35%\ntime running nc task.\n\nNow, if I run another CPU intensive task on CPU 2, without this change\n/proc/\u003cpid\u003e/schedstat shows 100% of time accounted to this task. With this\nchange, it rightly shows less than 25% accounted to this task as remaining\ntime is actually spent on irq processing.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-7-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b52bfee445d315549d41eacf2fa7c156e7d153d5",
      "tree": "740f3aa24e2afad42772a662ceb460c555003c0f",
      "parents": [
        "6cdd5199daf0cb7b0fcc8dca941af08492612887"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:19 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:24 2010 +0200"
      },
      "message": "sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n\ns390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does\nthe fine granularity accounting of user, system, hardirq, softirq times.\nAdding that option on archs like x86 will be challenging however, given the\nstate of TSC reliability on various platforms and also the overhead it will\nadd in syscall entry exit.\n\nInstead, add a lighter variant that only does finer accounting of\nhardirq and softirq times, providing precise irq times (instead of timer tick\nbased samples). This accounting is added with a new config option\nCONFIG_IRQ_TIME_ACCOUNTING so that there won\u0027t be any overhead for users not\ninterested in paying the perf penalty.\n\nThis accounting is based on sched_clock, with the code being generic.\nSo, other archs may find it useful as well.\n\nThis patch just adds the core logic and does not enable this logic yet.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-5-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6cdd5199daf0cb7b0fcc8dca941af08492612887",
      "tree": "ad9d632d5731a64d0b1ab6410557415480ffcbfd",
      "parents": [
        "e1e10a265d28273ab8c70be19d43dcbdeead6c5a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:18 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:22 2010 +0200"
      },
      "message": "sched: Add a PF flag for ksoftirqd identification\n\nTo account softirq time cleanly in scheduler, we need to identify whether\nsoftirq is invoked in ksoftirqd context or softirq at hardirq tail context.\nAdd PF_KSOFTIRQD for that purpose.\n\nAs all PF flag bits are currently taken, create space by moving one of the\ninfrequently used bits (PF_THREAD_BOUND) down in task_struct to be along\nwith some other state fields.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-4-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75e1056f5c57050415b64cb761a3acc35d91f013",
      "tree": "e7cd483e38f9bf9131a3b212301a009890b8de49",
      "parents": [
        "75dd321d79d495a0ee579e6249ebc38ddbb2667f"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:16 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:20 2010 +0200"
      },
      "message": "sched: Fix softirq time accounting\n\nPeter Zijlstra found a bug in the way softirq time is accounted in\nVIRT_CPU_ACCOUNTING on this thread:\n\n   http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html\n\nThe problem is, softirq processing uses local_bh_disable internally. There\nis no way, later in the flow, to differentiate between whether softirq is\nbeing processed or is it just that bh has been disabled. So, a hardirq when bh\nis disabled results in time being wrongly accounted as softirq.\n\nLooking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING\nas well. As account_system_time() in normal tick based accouting also uses\nsoftirq_count, which will be set even when not in softirq with bh disabled.\n\nPeter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count\nfor local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq\nprocessing. The patch below does that and adds API in_serving_softirq() which\nreturns whether we are currently processing softirq or not.\n\nAlso changes one of the usages of softirq_count in net/sched/cls_cgroup.c\nto in_serving_softirq.\n\nLooks like many usages of in_softirq really want in_serving_softirq. Those\nchanges can be made individually on a case by case basis.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75dd321d79d495a0ee579e6249ebc38ddbb2667f",
      "tree": "182f2ca3c9124da514c647547d4f4e549ba7afc1",
      "parents": [
        "fab476228ba37907ad75216d0fd9732ada9c119e"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:30 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:19 2010 +0200"
      },
      "message": "sched: Drop group_capacity to 1 only if local group has extra capacity\n\nWhen SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1\nonly if the local group has extra capacity. The extra check prevents the case\nwhere you always pull from the heaviest group when it is already under-utilized\n(possible with a large weight task outweighs the tasks on the system).\n\nFor example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA\nscheduling domains. Let\u0027s say we spawn 15 nice0 tasks and one nice-15 task,\nand each task is running on one core. In this case, we observe the following\nevents when balancing at the NUMA domain:\n\n- find_busiest_group() will always pick the sched group containing the niced\n  task to be the busiest group.\n- find_busiest_queue() will then always pick one of the cpus running the\n  nice0 task (never picks the cpu with the nice -15 task since\n  weighted_cpuload \u003e imbalance).\n- The load balancer fails to migrate the task since it is the running task\n  and increments sd-\u003enr_balance_failed.\n- It repeats the above steps a few more times until sd-\u003enr_balance_failed \u003e 5,\n  at which point it kicks off the active load balancer, wakes up the migration\n  thread and kicks the nice 0 task off the cpu.\n\nThe load balancer doesn\u0027t stop until we kick out all nice 0 tasks from\nthe sched group, leaving you with 3 idle cpus and one cpu running the\nnice -15 task.\n\nWhen balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child\ndomain (in this case MC) has SD_PREFER_SIBLING set.  Subsequent load checks are\nnot relevant because the niced task has a very large weight.\n\nIn this patch, we add an extra condition to the \"if(prefer_sibling)\" check in\nupdate_sd_lb_stats(). We drop the capacity of a group only if the local group\nhas extra capacity, ie. nr_running \u003c group_capacity. This patch preserves the\noriginal intent of the prefer_siblings check (to spread tasks across the system\nin low utilization scenarios) and fixes the case above.\n\nIt helps in the following ways:\n- In low utilization cases (where nr_tasks \u003c\u003c nr_cpus), we still drop\n  group_capacity down to 1 if we prefer siblings.\n- On very busy systems (where nr_tasks \u003e\u003e nr_cpus), sgs.nr_running will most\n  likely be \u003e sgs.group_capacity.\n- When balancing large weight tasks, if the local group does not have extra\n  capacity, we do not pick the group with the niced task as the busiest group.\n  This prevents failed balances, active migration and the under-utilization\n  described above.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-5-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fab476228ba37907ad75216d0fd9732ada9c119e",
      "tree": "51246ee236cbaae94e18213e5419f9e9f244d69d",
      "parents": [
        "2582f0eba54066b5e98ff2b27ef0cfa833b59f54"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:29 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:18 2010 +0200"
      },
      "message": "sched: Force balancing on newidle balance if local group has capacity\n\nThis patch forces a load balance on a newly idle cpu when the local group has\nextra capacity and the busiest group does not have any. It improves system\nutilization when balancing tasks with a large weight differential.\n\nUnder certain situations, such as a niced down task (i.e. nice \u003d -15) in the\npresence of nr_cpus NICE0 tasks, the niced task lands on a sched group and\nkicks away other tasks because of its large weight. This leads to sub-optimal\nutilization of the machine. Even though the sched group has capacity, it does\nnot pull tasks because sds.this_load \u003e\u003e sds.max_load, and f_b_g() returns NULL.\n\nWith this patch, if the local group has extra capacity, we shortcut the checks\nin f_b_g() and try to pull a task over. A sched group has extra capacity if the\ngroup capacity is greater than the number of running tasks in that group.\n\nThanks to Mike Galbraith for discussions leading to this patch and for the\ninsight to reuse SD_NEWIDLE_BALANCE.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-4-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2582f0eba54066b5e98ff2b27ef0cfa833b59f54",
      "tree": "c5a41c2b1458a813b40f20f529a3b86a93c24932",
      "parents": [
        "ef8002f6848236de5adc613063ebeabddea8a6fb"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:36 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:17 2010 +0200"
      },
      "message": "sched: Set group_imb only a task can be pulled from the busiest cpu\n\nWhen cycling through sched groups to determine the busiest group, set\ngroup_imb only if the busiest cpu has more than 1 runnable task. This patch\nfixes the case where two cpus in a group have one runnable task each, but there\nis a large weight differential between these two tasks. The load balancer is\nunable to migrate any task from this group, and hence do not consider this\ngroup to be imbalanced.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286996978-7007-3-git-send-email-ncrao@google.com\u003e\n[ small code readability edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef8002f6848236de5adc613063ebeabddea8a6fb",
      "tree": "3fd3411b2727e2ed784f6ab3fd3485c4527714c1",
      "parents": [
        "17bdcf949d03306b308c5fb694849cd35f119807"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:35 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:15 2010 +0200"
      },
      "message": "sched: Do not consider SCHED_IDLE tasks to be cache hot\n\nThis patch adds a check in task_hot to return if the task has SCHED_IDLE\npolicy. SCHED_IDLE tasks have very low weight, and when run with regular\nworkloads, are typically scheduled many milliseconds apart. There is no\nneed to consider these tasks hot for load balancing.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-2-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e54a5a0b655734326dc78c2b5efc1eb35497bb6",
      "tree": "71346dfdb01ef387ad1aaaccbf72b3127814ce92",
      "parents": [
        "82cd6def9806dcb6a325fb6abbc1d61388a15f6a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 22:32:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:59 2010 +0200"
      },
      "message": "perf: Optimize sw events\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82cd6def9806dcb6a325fb6abbc1d61388a15f6a",
      "tree": "569ce440f8a0619adb8c3791d6b68eecdb2fd29c",
      "parents": [
        "8b92538d84e50062560ba33adbaed7887b6e4a42"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:57:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:58 2010 +0200"
      },
      "message": "perf: Use jump_labels to optimize the scheduler hooks\n\nTrades a call + conditional + ret for an unconditional jmp.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.501657727@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b6e901f839f42afb40f614418df82c08b01320a",
      "tree": "04056f3347b926e9623c225acd496e39b9d1b85a",
      "parents": [
        "d580ff8699e8811a9af37e9de4dea375401bdeec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 21:10:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:56 2010 +0200"
      },
      "message": "jump_label: Use more consistent naming\n\nNow that there\u0027s still only a few users around, rename things to make\nthem more consistent.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.448565169@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d580ff8699e8811a9af37e9de4dea375401bdeec",
      "tree": "f2789d8a8628b856ad902c0bfbb1899e6cc67697",
      "parents": [
        "c6be5a5cb62592d9d661899a2aa78236eb00ffa5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:43:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:55 2010 +0200"
      },
      "message": "perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n\nhw_breakpoint creation needs to account stuff per-task to ensure there\nis always sufficient hardware resources to back these things due to\nptrace.\n\nWith the perf per pmu context changes the event initialization no\nlonger has access to the event context, for the simple reason that we\nneed to first find the pmu (result of initialization) before we can\nfind the context.\n\nThis makes hw_breakpoints unhappy, because it can no longer do per\ntask accounting, cure this by frobbing a task pointer in the event::hw\nbits for now...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20101014203625.391543667@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6be5a5cb62592d9d661899a2aa78236eb00ffa5",
      "tree": "510a7b92a65a2faf7395f6ab37be44328f0186cf",
      "parents": [
        "e7d0bc047548d76feee6b23f7d3d9da927189a50"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:59:46 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:54 2010 +0200"
      },
      "message": "perf: Find task before event alloc\n\nSo that we can pass the task pointer to the event allocation, so that\nwe can use task associated data during event initialization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.340789919@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d0bc047548d76feee6b23f7d3d9da927189a50",
      "tree": "be1cd1fc48f6458a2efa4d0bfac53808938208dc",
      "parents": [
        "74c3337c2fc6389d3a57a622a936036b6db6b2e8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:54:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:52 2010 +0200"
      },
      "message": "perf: Fix task refcount bugs\n\nCurrently it looks like find_lively_task_by_vpid() takes a task ref\nand relies on find_get_context() to drop it.\n\nThe problem is that perf_event_create_kernel_counter() shouldn\u0027t be\ndropping task refs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nLKML-Reference: \u003c20101014203625.278436085@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74c3337c2fc6389d3a57a622a936036b6db6b2e8",
      "tree": "d87232b7cc19eef0f1fe0a0bb167868513819b31",
      "parents": [
        "e360adbe29241a0194e10e20595360dd7b98a2b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 15 11:40:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:51 2010 +0200"
      },
      "message": "perf: Fix group moving\n\nMatt found we trigger the WARN_ON_ONCE() in perf_group_attach() when we take\nthe move_group path in perf_event_open().\n\nSince we cannot de-construct the group (we rely on it to move the events), we\nhave to simply ignore the double attach. The group state is context invariant\nand doesn\u0027t need changing.\n\nReported-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287135757.29097.1368.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e360adbe29241a0194e10e20595360dd7b98a2b3",
      "tree": "ef5fa5f50a895096bfb25bc11b25949603158238",
      "parents": [
        "8e5fc1a7320baf6076391607515dceb61319b36a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 14:01:34 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:50 2010 +0200"
      },
      "message": "irq_work: Add generic hardirq context callbacks\n\nProvide a mechanism that allows running code in IRQ context. It is\nmost useful for NMI code that needs to interact with the rest of the\nsystem -- like wakeup a task to drain buffers.\n\nPerf currently has such a mechanism, so extract that and provide it as\na generic feature, independent of perf so that others may also\nbenefit.\n\nThe IRQ context callback is generated through self-IPIs where\npossible, or on architectures like powerpc the decrementer (the\nbuilt-in timer facility) is set to generate an interrupt immediately.\n\nArchitectures that don\u0027t have anything like this get to do with a\ncallback from the timer tick. These architectures can call\nirq_work_run() at the tail of any IRQ handlers that might enqueue such\nwork (like the perf IRQ handler) to avoid undue latencies in\nprocessing the work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n[ various fixes ]\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nLKML-Reference: \u003c1287036094.7768.291.camel@yhuang-dev\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e5fc1a7320baf6076391607515dceb61319b36a",
      "tree": "24a5e7ac4bbd8a960fa90ce2a668b9475a3f0b16",
      "parents": [
        "ba0cef3d149ce4db293c572bf36ed352b11ce7b9"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 16:54:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:49 2010 +0200"
      },
      "message": "perf_events: Fix transaction recovery in group_sched_in()\n\nThe group_sched_in() function uses a transactional approach to schedule\na group of events. In a group, either all events can be scheduled or\nnone are. To schedule each event in, the function calls event_sched_in().\nIn case of error, event_sched_out() is called on each event in the group.\n\nThe problem is that event_sched_out() does not completely cancel the\neffects of event_sched_in(). Furthermore event_sched_out() changes the\nstate of the event as if it had run which is not true is this particular\ncase.\n\nThose inconsistencies impact time tracking fields and may lead to events\nin a group not all reporting the same time_enabled and time_running values.\nThis is demonstrated with the example below:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n1946101 unhalted_core_cycles (32.85% scaling, ena\u003d829181, run\u003d556827)\n  11423 baclears (32.85% scaling, ena\u003d829181, run\u003d556827)\n   7671 baclears (0.00% scaling, ena\u003d556827, run\u003d556827)\n\n2250443 unhalted_core_cycles (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n\nNotice that in the first group, the last baclears event does not\nreport the same timings as its siblings.\n\nThis issue comes from the fact that tstamp_stopped is updated\nby event_sched_out() as if the event had actually run.\n\nTo solve the issue, we must ensure that, in case of error, there is\nno change in the event state whatsoever. That means timings must\nremain as they were when entering group_sched_in().\n\nTo do this we defer updating tstamp_running until we know the\ntransaction succeeded. Therefore, we have split event_sched_in()\nin two parts separating the update to tstamp_running.\n\nSimilarly, in case of error, we do not want to update tstamp_stopped.\nTherefore, we have split event_sched_out() in two parts separating\nthe update to tstamp_stopped.\n\nWith this patch, we now get the following output:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n2492050 unhalted_core_cycles (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n\n1852746 unhalted_core_cycles (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n\nNote that the uneven timing between groups is a side effect of\nthe process spending most of its time sleeping, i.e., not enough\nevent rotations (but that\u0027s a separate issue).\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4cb86b4c.41e9d80a.44e9.3e19@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c530ccd9a1864a44a7ff35826681229ce9f2357a",
      "tree": "51cb7ae96aa2b6e144686e850255344b2d94b888",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 15:26:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:46 2010 +0200"
      },
      "message": "perf_events: Fix bogus context time tracking\n\nYou can only call update_context_time() when the context\nis active, i.e., the thread it is attached to is still running.\n\nHowever, perf_event_read() can be called even when the context\nis inactive, e.g., user read() the counters. The call to\nupdate_context_time() must be conditioned on the status of\nthe context, otherwise, bogus time_enabled, time_running may\nbe returned. Here is an example on AMD64. The task program\nis an example from libpfm4. The -p prints deltas every 1s.\n\n$ task -p -e cpu_clk_unhalted sleep 5\n    2,266,610 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n5,242,358,071 cpu_clk_unhalted (99.95% scaling, ena\u003d5,000,359,984, run\u003d2,319,270)\n\nWhereas if you don\u0027t read deltas, e.g., no call to perf_event_read() until\nthe process terminates:\n\n$ task -e cpu_clk_unhalted sleep 5\n    2,497,783 cpu_clk_unhalted (0.00% scaling, ena\u003d2,376,899, run\u003d2,376,899)\n\nNotice that time_enable, time_running are bogus in the first example\ncausing bogus scaling.\n\nThis patch fixes the problem, by conditionally calling update_context_time()\nin perf_event_read().\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4cb856dc.51edd80a.5ae0.38fb@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ba053c04aece1f4734056f21b751eee47ea3fb1",
      "tree": "2386ea00022684cd8a9ff811bee2cd8cc7229001",
      "parents": [
        "620162505e5d46bc4494b1761743e4b0b3bf8e16"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Wed Oct 13 17:30:26 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:44:26 2010 +0200"
      },
      "message": "lockdep: Check the depth of subclass\n\nCurrent look_up_lock_class() doesn\u0027t check the parameter \"subclass\".\nThis rarely rises problems because the main caller of this function,\nregister_lock_class(), checks it.\n\nBut register_lock_class() is not the only function which calls\nlook_up_lock_class(). lock_set_class() and its callees also call it.\nAnd lock_set_class() doesn\u0027t check this parameter.\n\nThis will rise problems when the the value of subclass is larger than\nMAX_LOCKDEP_SUBCLASSES. Because the address (used as the key of class)\ncaliculated with too large subclass has a probability to point\nanother key in different lock_class_key.\n\nOf course this problem depends on the memory layout and\noccurs with really low probability.\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Vojtech Pavlik \u003cvojtech@ucw.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286958626-986-1-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "620162505e5d46bc4494b1761743e4b0b3bf8e16",
      "tree": "462e6d2ecdcfdaa117c5b926325a0ce1d565571e",
      "parents": [
        "f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Tue Oct 05 18:01:51 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:44:25 2010 +0200"
      },
      "message": "lockdep: Add improved subclass caching\n\nCurrent lockdep_map only caches one class with subclass \u003d\u003d 0,\nand looks up hash table of classes when subclass !\u003d 0.\n\nIt seems that this has no problem because the case of\nsubclass !\u003d 0 is rare. But locks of struct rq are\nacquired with subclass \u003d\u003d 1 when task migration is executed.\nTask migration is high frequent event, so I modified lockdep\nto cache subclasses.\n\nI measured the score of perf bench sched messaging.\nThis patch has slightly but certain (order of milli seconds\nor 10 milli seconds) effect when lots of tasks are running.\nI\u0027ll show the result in the tail of this description.\n\nNR_LOCKDEP_CACHING_CLASSES specifies how many classes can be\ncached in the instances of lockdep_map.\nI discussed with Peter Zijlstra in LinuxCon Japan about\nthis approach and he taught me that caching every subclasses(8)\nis cleary waste of memory. So number of cached classes\nshould be configurable.\n\n\u003d\u003d\u003d Score comparison of benchmarks \u003d\u003d\u003d\n# \"min\" means best score, and \"max\" means worst score\n\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging; done\n\nbefore: min: 0.565000, max: 0.583000, avg: 0.572500\nafter:  min: 0.559000, max: 0.568000, avg: 0.563300\n\n# with more processes\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done\n\nbefore: min: 2.274000, max: 2.298000, avg: 2.286300\nafter:  min: 2.242000, max: 2.270000, avg: 2.259700\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286269311-28336-2-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62",
      "tree": "4b75771ec02543372808c7df31a1a65e37fdb361",
      "parents": [
        "756b0322e50aebc4b9afb4488a2d3f6c802b4e64",
        "2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:43:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:43:46 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/locking\n\nMerge reason: Update to almost-final-.36\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17bdcf949d03306b308c5fb694849cd35f119807",
      "tree": "5a84fcb6e691fb17b4c723fd8429e3ff2ce767e2",
      "parents": [
        "34f971f6f7988be4d014eec3e3526bee6d007ffa"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Mon Oct 11 16:36:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:59 2010 +0200"
      },
      "message": "sched: Drop all load weight manipulation for RT tasks\n\nLoad weights are for the CFS, they do not belong in the RT task. This makes all\nRT scheduling classes leave the CFS weights alone.\n\nThis fixes a real bug as well: I noticed the following phonomena: a process\nelevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is\nindeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight\ninserted by set_load_weight() remains at 0, giving the task insignificat\npriority.\n\nWith this fix, the weight is reset to what the task had before being elevated\nto SCHED_RR/SCHED_FIFO.\n\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286807811-10568-1-git-send-email-linus.walleij@stericsson.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34f971f6f7988be4d014eec3e3526bee6d007ffa",
      "tree": "a662e0701f81f019418b55aa1354f833277b9c40",
      "parents": [
        "4924627423d5e286136ad2520f5be536345ae590"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 22 13:53:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:58 2010 +0200"
      },
      "message": "sched: Create special class for stop/migrate work\n\nIn order to separate the stop/migrate work thread from the SCHED_FIFO\nimplementation, create a special class for it that is of higher priority than\nSCHED_FIFO itself.\n\nThis currently solves a problem where cpu-hotplug consumes so much cpu-time\nthat the SCHED_FIFO class gets throttled, but has the bandwidth replenishment\ntimer pending on the now dead cpu.\n\nIt is also required for when we add the planned deadline scheduling class above\nSCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks.\n\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1285165776.2275.1022.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "4924627423d5e286136ad2520f5be536345ae590"
}
