)]}'
{
  "log": [
    {
      "commit": "c3a2ae3d93c0f10d29c071f599764d00b8de00cb",
      "tree": "e831ec79696bad3039fc9700bbb412ad38945985",
      "parents": [
        "da19ab510343c6496fe8b8f890091296032025c9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 29 00:21:23 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:09 2009 +0200"
      },
      "message": "sched: Add new prio to cpupri before removing old prio\n\nWe need to add the new prio to the cpupri accounting before\nremoving the old prio. This is because removing the old prio\nfirst will open a race window where the cpu will be removed\nfrom pri_active. In this case the cpu will not be visible for\nRT push and pulls. This could cause a RT task to not migrate\nappropriately, and create a very large latency.\n\nThis bug was found with the use of ftrace sched events and\ntrace_printk.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090729042526.438281019@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "07903af152b0597d94e9b0030746b63c4664e787",
      "tree": "245f1e9d7a7021f479b0d67e922c6783e59c5d50",
      "parents": [
        "e414314cce7539788dd5d2c35decad11782dd858"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Thu Jul 30 10:57:28 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:23:29 2009 +0200"
      },
      "message": "sched: Fix race in cpupri introduced by cpumask_var changes\n\nBackground:\n\nSeveral race conditions in the scheduler have cropped up\nrecently, which Steven and I have tracked down using ftrace.\nThe most recent one turns out to be a race in how the scheduler\ndetermines a suitable migration target for RT tasks, introduced\nrecently with commit:\n\n    commit 68e74568fbe5854952355e942acca51f138096d9\n    Date:   Tue Nov 25 02:35:13 2008 +1030\n\n        sched: convert struct cpupri_vec cpumask_var_t.\n\nThe original design of cpupri allowed lockless readers to\nquickly determine a best-estimate target.  Races between the\npri_active bitmap and the vec-\u003emask were handled in the\noriginal code because we would detect and return \"0\" when this\noccured.  The design was predicated on the *effective*\natomicity (*) of caching the result of cpus_and() between the\ncpus_allowed and the vec-\u003emask.\n\nCommit 68e74568 changed the behavior such that vec-\u003emask is\naccessed multiple times.  This introduces a subtle race, the\nresult of which means we can have a result that returns \"1\",\nbut with an empty bitmap.\n\n*) yes, we know cpus_and() is not a locked operator across the\n   entire composite array, but it is implicitly atomic on a\n   per-word basis which is all the design required to work.\n\nImplementation:\n\nRather than forgoing the lockless design, or reverting to a\nstack-based cpumask_t, we simply check for when the race has\nbeen encountered and continue processing in the event that the\nrace is hit.  This renders the removal race as if the priority\nbit had been atomically cleared as well, and allows the\nalgorithm to execute correctly.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090730145728.25226.92769.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd5e1b5dbaa8b4aacc0e251d74182eda37062194",
      "tree": "cba4e780784649fe9c9535b8d5ac1617f52e1a15",
      "parents": [
        "84599f8a59e77699f18f06948cea171a349a3f0f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 13:34:19 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 16:08:04 2009 +0200"
      },
      "message": "sched: Remove unneeded __ref tag\n\nThose two functions no longer call alloc_bootmmem_cpumask_var(),\nso no need to tag them with __init_refok.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003c4A35DD5B.9050106@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0fb530291621c8b8a1b16abeeab05d9262489f71",
      "tree": "4b5fbb1781b279caf9cd20fb1ef5d04028548f43",
      "parents": [
        "4bdddf8ff9bbb8aa7b4d7847586202bd25842c90"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 08:41:22 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:27:12 2009 +0300"
      },
      "message": "sched: use slab in cpupri_init()\n\nLets not use the bootmem allocator in cpupri_init() as slab is already up when\nit is run.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "eaa958402ea40851097d051f52ba1bb7a885efe9",
      "tree": "9187f59ff0ee6ac138b5c81a2212bc10f46d04a5",
      "parents": [
        "0281b5dc0350cbf6dd21ed558a33cccce77abc02"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sat Jun 06 14:51:36 2009 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jun 09 22:30:27 2009 +0930"
      },
      "message": "cpumask: alloc zeroed cpumask for static cpumask_var_ts\n\nThese are defined as static cpumask_var_t so if MAXSMP is not used,\nthey are cleared already.  Avoid surprises when MAXSMP is enabled.\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@kernel.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "13b8bd0a5713bdf05659019badd7c0407984ece1",
      "tree": "378950741dd647b672a2b3e61988725b52557f2d",
      "parents": [
        "a18b83b7ef3c98cd8b4bb885e4a649a8f30fb7b0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Mar 25 15:01:22 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 13:24:51 2009 +0200"
      },
      "message": "sched_rt: don\u0027t allocate cpumask in fastpath\n\nImpact: cleanup\n\nAs pointed out by Steven Rostedt.  Since the arg in question is\nunused, we simply change cpupri_find() to accept NULL.\n\nReported-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c200903251501.22664.rusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "db2f59c8c9b315f2b88b1dac159b988c6009034d",
      "tree": "93e9d5584356e3f34a297ca45f1d6c17ebac2500",
      "parents": [
        "0c910d289567163dbe40ccc174b36afd1c7723bd"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jan 06 17:40:36 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 11:07:15 2009 +0100"
      },
      "message": "sched: fix section mismatch\n\ninit_rootdomain() calls alloc_bootmem_cpumask_var() at system boot,\nso does cpupri_init().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68e74568fbe5854952355e942acca51f138096d9",
      "tree": "6263627b3b3c7e249f685ba0fe4d76002e882cd0",
      "parents": [
        "4212823fb459eacc8098dd420bb68ebb9917989d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:13 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:52:22 2008 +0100"
      },
      "message": "sched: convert struct cpupri_vec cpumask_var_t.\n\nImpact: stack usage reduction, (future) size reduction for large NR_CPUS.\n\nDynamically allocating cpumasks (when CONFIG_CPUMASK_OFFSTACK) saves\nspace for small nr_cpu_ids but big CONFIG_NR_CPUS.\n\nThe fact cpupro_init is called both before and after the slab is\navailable makes for an ugly parameter unfortunately.\n\nWe also use cpumask_any_and to get rid of a temporary in cpupri_find.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e0534f278199f1e3dd1049b9bc19a7a5b87ada1",
      "tree": "25f4da14ec32927742db9f599ac779b4e83d1763",
      "parents": [
        "f333fdc9098b71e2687e4e9b6349fcb352960d66"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon May 12 21:21:01 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 06 15:19:28 2008 +0200"
      },
      "message": "sched: use a 2-d bitmap for searching lowest-pri CPU\n\nThe current code use a linear algorithm which causes scaling issues\non larger SMP machines.  This patch replaces that algorithm with a\n2-dimensional bitmap to reduce latencies in the wake-up path.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ]
}
