)]}'
{
  "log": [
    {
      "commit": "cdd31cd2d7a0dcbec2cce3974f7129dd4fc8c879",
      "tree": "5da4691e9f2ed0850a505975216694928a6545c4",
      "parents": [
        "53c37c17aafcf50f7c6fddaf01dda8f9d7e31ddf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:55 2008 +0200"
      },
      "message": "ftrace: remove-idx-sync\n\nremove idx syncing - it\u0027s expensive on SMP.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "53c37c17aafcf50f7c6fddaf01dda8f9d7e31ddf",
      "tree": "69d04219218c263d43da88068342a4c91a757877",
      "parents": [
        "750ed1a40783432d0dcb0e6c2e813a12615d7664"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:41 2008 +0200"
      },
      "message": "ftrace: fast, scalable, synchronized timestamps\n\nimplement globally synchronized, fast and scalable time source for tracing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "750ed1a40783432d0dcb0e6c2e813a12615d7664",
      "tree": "dc2d0eae703ec2ad3fe9a5bc657da5dbe0af2385",
      "parents": [
        "4bf39a9411a4ce8712954e03a9bd1592ee345919"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:31 2008 +0200"
      },
      "message": "ftrace: timestamp syncing, prepare\n\nrename and uninline now() to ftrace_now().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4bf39a9411a4ce8712954e03a9bd1592ee345919",
      "tree": "044694f1c69ec2588e4b60e6b60701bae2a53e81",
      "parents": [
        "d4c5a2f5870939d837293de87b41dda0012a4572"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:20 2008 +0200"
      },
      "message": "ftrace: cleanups\n\nno code changed.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d4c5a2f5870939d837293de87b41dda0012a4572",
      "tree": "46512c24ff245052e60b6d2156cd9992d272ff11",
      "parents": [
        "b3806b4316306dc9c542eff6c23d7d42918f3504"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:12 2008 +0200"
      },
      "message": "ftrace: fix locking\n\nwe can hold all cpu trace buffer locks at once - put each into a\nseparate lock class.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3806b4316306dc9c542eff6c23d7d42918f3504",
      "tree": "804786b94728c42930956f1fd8bbcabbba0c7412",
      "parents": [
        "214023c3d13a71525e463b5e54e360b926b4dc90"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:42:01 2008 +0200"
      },
      "message": "ftrace: user run time file reading\n\nThis patch creates a file called trace_pipe in the tracing\ndebug directory. This file is a consumer of the trace buffers.\nThis means that reads of this file consumes the entries from\nthe trace buffers so that they will not be read a second time,\nas contrast to the static buffers latency_trace and trace.\n\nReading from the trace_pipe will remove the entries from trace\nand latency_trace too.\n\nThe advantage that trace_pipe has is that it can record live\ntraces. It will block when there is nothing in the buffer,\nand read the entries as they are entered.  An EOF happens when\ntracing is disabled (tracing_enabled \u003d 0).\n\nSigned-off-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"
    },
    {
      "commit": "214023c3d13a71525e463b5e54e360b926b4dc90",
      "tree": "6fe6f3e513d976b32eb07f60810ccf336daf1f6b",
      "parents": [
        "93a588f459da134be6ab17c4104e28441beb0d22"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:46 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:46 2008 +0200"
      },
      "message": "ftrace: add a buffer for output\n\nLater patches will need to print the same things as the seq output\ndoes. But those outputs will not use the seq utility. This patch\nadds a buffer to the iterator, that can be used by either the\nseq utility or other output.\n\nSigned-off-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"
    },
    {
      "commit": "93a588f459da134be6ab17c4104e28441beb0d22",
      "tree": "30eb991743d7ce5698f070204d666eca98519213",
      "parents": [
        "1d4db00a5e30c7b8f8dc2a1b19e886fd942be143"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:35 2008 +0200"
      },
      "message": "ftrace: change buffers to producer consumer\n\nThis patch changes the way the CPU trace buffers are handled.\nInstead of always starting from the trace page head, the logic\nis changed to a producer consumer logic. This allows for the\nbuffers to be drained while they are alive.\n\nSigned-off-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"
    },
    {
      "commit": "1d4db00a5e30c7b8f8dc2a1b19e886fd942be143",
      "tree": "3a1619ad932674ccaccbf489949c4a14c0e6a494",
      "parents": [
        "08bafa0efcf29fe18ec39c2147077b597368b018"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:29 2008 +0200"
      },
      "message": "ftrace: reset selftests\n\nThe tests may leave stuff in the buffers. This resets the buffers\nafter each test is run. If a test fails, it does not reset the\nbuffer to avoid touching a buffer that is corrupted.\n\nSigned-off-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"
    },
    {
      "commit": "08bafa0efcf29fe18ec39c2147077b597368b018",
      "tree": "5b06957e9efd8357eca7d6d8dc57c573cf134d52",
      "parents": [
        "4e3c3333f3bd7eedfd21b1155b3c7cd24fc7f754"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:22 2008 +0200"
      },
      "message": "ftrace: disable all tracers on corrupted buffer\n\nIf the trace buffer is detected to be corrupted, then we\ndisable all tracers.\n\nSigned-off-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"
    },
    {
      "commit": "4e3c3333f3bd7eedfd21b1155b3c7cd24fc7f754",
      "tree": "1b53d424c618e646cba8e3a8d6b27b5cec9cb8c2",
      "parents": [
        "77a2b37d227483fe52aead242652aee406c25bf0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:13 2008 +0200"
      },
      "message": "ftrace: fix time offset\n\nfix time offset calculations and ordering, plus make code more consistent.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "77a2b37d227483fe52aead242652aee406c25bf0",
      "tree": "cecb6a3a02a567530e2ce3502de18f371c9db7c1",
      "parents": [
        "7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:41:06 2008 +0200"
      },
      "message": "ftrace: startup tester on dynamic tracing.\n\nThis patch adds a startup self test on dynamic code modification\nand filters. The test filters on a specific function, makes sure that\nno other function is traced, exectutes the function, then makes sure that\nthe function is traced.\n\nThis patch also fixes a slight bug with the ftrace selftest, where\ntracer_enabled was not being set.\n\nSigned-off-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"
    },
    {
      "commit": "7bd2f24c2f769e3f8f1d4fc8b9fddf689825f6a7",
      "tree": "9c97047804ee0409cf4a6642b3bb92b20703c80e",
      "parents": [
        "c7aafc549766b87819285d3480648fc652a47bc4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:56 2008 +0200"
      },
      "message": "ftrace: add README\n\nmake it easier for newbies to find their way around.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7aafc549766b87819285d3480648fc652a47bc4",
      "tree": "4c36170a644633f930feca57b27f8c5d23644e70",
      "parents": [
        "60a11774b38fef1ab90b18c5353bd1c7c4d311c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:45 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:46 2008 +0200"
      },
      "message": "ftrace: cleanups\n\nfactor out code and clean it up.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "60a11774b38fef1ab90b18c5353bd1c7c4d311c8",
      "tree": "e2a6fd066b0dba6dcd776d07383e2932055cf66a",
      "parents": [
        "e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:36 2008 +0200"
      },
      "message": "ftrace: add self-tests\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e1c08bdd9fa73e44096e5a82c0d5928b04ab02c8",
      "tree": "eb2c642f9b7b5e222f1635e138c6072b0799f37b",
      "parents": [
        "57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:29 2008 +0200"
      },
      "message": "ftrace: force recording\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "57f50be14d57b0dbf88dd019e7bb0ff3a3dc7b81",
      "tree": "57db7ed24d430736c6e106d6119ff80e8169286f",
      "parents": [
        "89b2f97819dd074297bbe3e19eaa4afcc98845ad"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:22 2008 +0200"
      },
      "message": "ftrace: fix max latency\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "89b2f97819dd074297bbe3e19eaa4afcc98845ad",
      "tree": "250196b493d42ac312b089f8f75866518cc772e6",
      "parents": [
        "18cef379d30f5ded20cc31d7f2d342639d39919d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:15 2008 +0200"
      },
      "message": "ftrace: fix updates to max trace\n\nThis patch fixes some bugs to the updating of the max trace that\nwas caused by implementing the new buffering.\n\nSigned-off-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"
    },
    {
      "commit": "18cef379d30f5ded20cc31d7f2d342639d39919d",
      "tree": "cd193ad51e39cf0987ef815a6ef0cd1017e075ee",
      "parents": [
        "0764d23cf066c52de42b653144605b481d3fbdbc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:40:05 2008 +0200"
      },
      "message": "ftrace: don\u0027t use raw_local_irq_save/restore\n\nUsing raw_local_irq_save/restore confuses lockdep.\nIt\u0027s fine to use the normal ones.\n\nSigned-off-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"
    },
    {
      "commit": "0764d23cf066c52de42b653144605b481d3fbdbc",
      "tree": "940c6fb3f1fd674bdabbebc21a15b48a48e2ec24",
      "parents": [
        "361943ad0ba3f16e66859e30a408915e008ba91e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:39:40 2008 +0200"
      },
      "message": "ftrace: lockdep notrace annotations\n\nAdd notrace annotations to lockdep to keep ftrace from causing\nrecursive problems with lock tracing and debugging.\n\nSigned-off-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"
    },
    {
      "commit": "361943ad0ba3f16e66859e30a408915e008ba91e",
      "tree": "a0d55b7f252e8b69d9c7809a7d2c9521461ab860",
      "parents": [
        "5568b139f4d196273958ae2947a736fdf1ffeece"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:39:30 2008 +0200"
      },
      "message": "ftrace: irqs off smp_processor_id() fix\n\nThe irqsoff function tracer did a __get_cpu_var to determine\nif it should trace the function or not. The problem is that\n__get_cpu_var can preempt between getting the CPU and reading\nthe cpu variable. This means that the cpu variable that is\nbeing read is not from the cpu being run on.\n\nAt worst, this can give a false positive, where we trace the\nfunction when we should not.  It will never give a false negative\nsince we only want to trace when interrupts are disabled\nand we never preempt when they are.\n\nThis fix adds a check after reading the irq flags to only\ntrace if the interrupts are actually disabled. It also changes\nthe reading of the cpu variable to use a raw_smp_processor_id\nsince we now don\u0027t care if we preempt. We still catch that fact.\n\nSigned-off-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"
    },
    {
      "commit": "4c11d7aed389375253b59e2b1865eec96663c65d",
      "tree": "b43b5e38c33d69d39b5fb87860e5723d1be10416",
      "parents": [
        "5072c59fd45e9976d02ee6f18c7336ef97623cbc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:38:51 2008 +0200"
      },
      "message": "ftrace: convert single large buffer into single pages.\n\nAllocating large buffers for the tracer may fail easily.\nThis patch converts the buffer from a large ordered allocation\nto single pages. It uses the struct page LRU field to link the\npages together.\n\nLater patches may also implement dynamic increasing and decreasing\nof the trace buffers.\n\nSigned-off-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"
    },
    {
      "commit": "5072c59fd45e9976d02ee6f18c7336ef97623cbc",
      "tree": "d7c9d48ed518246b958ee7759f285bc22445feb8",
      "parents": [
        "d61f82d06672f57fca410da6f7fffd15867db622"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:38:41 2008 +0200"
      },
      "message": "ftrace: add filter select functions to trace\n\nThis patch adds two files to the debugfs system:\n\n /debugfs/tracing/available_filter_functions\n\nand\n\n /debugfs/tracing/set_ftrace_filter\n\nThe available_filter_functions lists all functions that has been\nrecorded by the ftraced that has called the ftrace_record_ip function.\nThis is to allow users to see what functions have been converted\nto nops and can be enabled for tracing.\n\nTo enable functions, simply echo the names (whitespace delimited)\ninto set_ftrace_filter. Simple wildcards are also allowed.\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the scheduler be activated when tracing is enabled.\n\necho \u0027sched_*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only the functions starting with \u0027sched_\u0027 be activated.\n\necho \u0027*lock\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions ending with \u0027lock\u0027 be activated.\n\necho \u0027*lock*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nWill have only functions with \u0027lock\u0027 in its name be activated.\n\nNote: \u0027sched*lock\u0027 will not work. The only wildcards that are\nallowed is an asterisk and the beginning and or end of the string\npassed in.\n\nMultiple names can be passed in with whitespace delimited:\n\necho \u0027scheduler *lock *acpi*\u0027 \u003e /debugfs/tracing/set_ftrace_filter\n\nis also the same as:\n\necho \u0027scheduler\u0027 \u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*lock\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\necho \u0027*acpi*\u0027 \u003e\u003e /debugfs/tracing/set_ftrace_filter\n\nAppending does just that. It appends to the list.\n\nTo disable all filters simply echo an empty line in:\n\necho \u003e /debugfs/tracing/set_ftrace_filter\n\nSigned-off-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"
    },
    {
      "commit": "d61f82d06672f57fca410da6f7fffd15867db622",
      "tree": "62ef5573934eaa638c0d39a45d789691aecbd7d3",
      "parents": [
        "3c1720f00bb619302ba19d55986ab565e74d06db"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:47 2008 +0200"
      },
      "message": "ftrace: use dynamic patching for updating mcount calls\n\nThis patch replaces the indirect call to the mcount function\npointer with a direct call that will be patched by the\ndynamic ftrace routines.\n\nOn boot up, the mcount function calls the ftace_stub function.\nWhen the dynamic ftrace code is initialized, the ftrace_stub\nis replaced with a call to the ftrace_record_ip, which records\nthe instruction pointers of the locations that call it.\n\nLater, the ftraced daemon will call kstop_machine and patch all\nthe locations to nops.\n\nWhen a ftrace is enabled, the original calls to mcount will now\nbe set top call ftrace_caller, which will do a direct call\nto the registered ftrace function. This direct call is also patched\nwhen the function that should be called is updated.\n\nAll patching is performed by a kstop_machine routine to prevent any\ntype of race conditions that is associated with modifying code\non the fly.\n\nSigned-off-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"
    },
    {
      "commit": "3c1720f00bb619302ba19d55986ab565e74d06db",
      "tree": "d58aaa54bc8e7a465597f385de36204c3b0b9cf8",
      "parents": [
        "dfa60aba04dae7833d75b2e2be124bb7cfb8239f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:35 2008 +0200"
      },
      "message": "ftrace: move memory management out of arch code\n\nThis patch moves the memory management of the ftrace\nrecords out of the arch code and into the generic code\nmaking the arch code simpler.\n\nSigned-off-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"
    },
    {
      "commit": "b0fc494fae96a7089f3651cb451f461c7291244c",
      "tree": "586412b9ecbd8e3f04e8cd90a31644f94ff3a7d8",
      "parents": [
        "3d0833953e1b98b79ddf491dd49229eef9baeac1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:43 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:19 2008 +0200"
      },
      "message": "ftrace: add ftrace_enabled sysctl to disable mcount function\n\nThis patch adds back the sysctl ftrace_enabled. This time it is\ndefaulted to on, if DYNAMIC_FTRACE is configured. When ftrace_enabled\nis disabled, the ftrace function is set to the stub return.\n\nIf DYNAMIC_FTRACE is also configured, on ftrace_enabled \u003d 0,\nthe registered ftrace functions will all be set to jmps, but no more\nnew calls to ftrace recording (used to find the ftrace calling sites)\nwill be called.\n\nSigned-off-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"
    },
    {
      "commit": "3d0833953e1b98b79ddf491dd49229eef9baeac1",
      "tree": "3520cda824bdb58e47ce3e9f43d68249d5cc1a12",
      "parents": [
        "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:33:09 2008 +0200"
      },
      "message": "ftrace: dynamic enabling/disabling of function calls\n\nThis patch adds a feature to dynamically replace the ftrace code\nwith the jmps to allow a kernel with ftrace configured to run\nas fast as it can without it configured.\n\nThe way this works, is on bootup (if ftrace is enabled), a ftrace\nfunction is registered to record the instruction pointer of all\nplaces that call the function.\n\nLater, if there\u0027s still any code to patch, a kthread is awoken\n(rate limited to at most once a second) that performs a stop_machine,\nand replaces all the code that was called with a jmp over the call\nto ftrace. It only replaces what was found the previous time. Typically\nthe system reaches equilibrium quickly after bootup and there\u0027s no code\npatching needed at all.\n\ne.g.\n\n  call ftrace  /* 5 bytes */\n\nis replaced with\n\n  jmp 3f  /* jmp is 2 bytes and we jump 3 forward */\n3:\n\nWhen we want to enable ftrace for function tracing, the IP recording\nis removed, and stop_machine is called again to replace all the locations\nof that were recorded back to the call of ftrace.  When it is disabled,\nwe replace the code back to the jmp.\n\nAllocation is done by the kthread. If the ftrace recording function is\ncalled, and we don\u0027t have any record slots available, then we simply\nskip that call. Once a second a new page (if needed) is allocated for\nrecording new ftrace function calls.  A large batch is allocated at\nboot up to get most of the calls there.\n\nBecause we do this via stop_machine, we don\u0027t have to worry about another\nCPU executing a ftrace call as we modify it. But we do need to worry\nabout NMI\u0027s so all functions that might be called via nmi must be\nannotated with notrace_nmi. When this code is configured in, the NMI code\nwill not call notrace.\n\nSigned-off-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"
    },
    {
      "commit": "6cd8a4bb2f97527a9ceb30bc77ea4e959c6a95e3",
      "tree": "845af8f3c7f8956b4f3591759a0d67248af243a2",
      "parents": [
        "81d68a96a39844853b37f20cc8282d9b65b78ef3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:54 2008 +0200"
      },
      "message": "ftrace: trace preempt off critical timings\n\nAdd preempt off timings. A lot of kernel core code is taken from the RT patch\nlatency trace that was written by Ingo Molnar.\n\nThis adds \"preemptoff\" and \"preemptirqsoff\" to /debugfs/tracing/available_tracers\n\nNow instead of just tracing irqs off, preemption off can be selected\nto be recorded.\n\nWhen this is selected, it shares the same files as irqs off timings.\nOne can either trace preemption off, irqs off, or one or the other off.\n\nBy echoing \"preemptoff\" into /debugfs/tracing/current_tracer, recording\nof preempt off only is performed. \"irqsoff\" will only record the time\nirqs are disabled, but \"preemptirqsoff\" will take the total time irqs\nor preemption are disabled. Runtime switching of these options is now\nsupported by simpling echoing in the appropriate trace name into\n/debugfs/tracing/current_tracer.\n\nSigned-off-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"
    },
    {
      "commit": "81d68a96a39844853b37f20cc8282d9b65b78ef3",
      "tree": "bbc05f415930c15fb5a1004620bd77585fcec43a",
      "parents": [
        "352ad25aa4a189c667cb2af333948d34692a2d27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:46 2008 +0200"
      },
      "message": "ftrace: trace irq disabled critical timings\n\nThis patch adds latency tracing for critical timings\n(how long interrupts are disabled for).\n\n \"irqsoff\" is added to /debugfs/tracing/available_tracers\n\nNote:\n  tracing_max_latency\n    also holds the max latency for irqsoff (in usecs).\n   (default to large number so one must start latency tracing)\n\n  tracing_thresh\n    threshold (in usecs) to always print out if irqs off\n    is detected to be longer than stated here.\n    If irq_thresh is non-zero, then max_irq_latency\n    is ignored.\n\nHere\u0027s an example of a trace with ftrace_enabled \u003d 0\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 100 us, #3/3, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1d.s3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1d.s3  100us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1d.s3  100us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnd this is a trace with ftrace_enabled \u003d\u003d 1\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc7\n--------------------------------------------------------------------\n latency: 102 us, #12/12, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: swapper-0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n \u003d\u003e started at: _spin_lock_irqsave+0x2a/0xb7\n \u003d\u003e ended at:   _spin_unlock_irqrestore+0x32/0x5f\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     1dNs3    0us+: _spin_lock_irqsave+0x2a/0xb7 (e1000_update_stats+0x47/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_read_phy_reg+0x16/0x225 [e1000] (e1000_update_stats+0x5e2/0x64c [e1000])\n swapper-0     1dNs3   46us : e1000_swfw_sync_acquire+0x10/0x99 [e1000] (e1000_read_phy_reg+0x49/0x225 [e1000])\n swapper-0     1dNs3   46us : e1000_get_hw_eeprom_semaphore+0x12/0xa6 [e1000] (e1000_swfw_sync_acquire+0x36/0x99 [e1000])\n swapper-0     1dNs3   47us : __const_udelay+0x9/0x47 (e1000_read_phy_reg+0x116/0x225 [e1000])\n swapper-0     1dNs3   47us+: __delay+0x9/0x50 (__const_udelay+0x45/0x47)\n swapper-0     1dNs3   97us : preempt_schedule+0xc/0x84 (__delay+0x4e/0x50)\n swapper-0     1dNs3   98us : e1000_swfw_sync_release+0xc/0x55 [e1000] (e1000_read_phy_reg+0x211/0x225 [e1000])\n swapper-0     1dNs3   99us+: e1000_put_hw_eeprom_semaphore+0x9/0x35 [e1000] (e1000_swfw_sync_release+0x50/0x55 [e1000])\n swapper-0     1dNs3  101us : _spin_unlock_irqrestore+0xe/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : _spin_unlock_irqrestore+0x32/0x5f (e1000_update_stats+0x641/0x64c [e1000])\n swapper-0     1dNs3  102us : trace_hardirqs_on_caller+0x75/0x89 (_spin_unlock_irqrestore+0x32/0x5f)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-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"
    },
    {
      "commit": "352ad25aa4a189c667cb2af333948d34692a2d27",
      "tree": "83a11c626b3818711d3b88061964c9ea603f7b68",
      "parents": [
        "35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:36 2008 +0200"
      },
      "message": "ftrace: tracer for scheduler wakeup latency\n\nThis patch adds the tracer that tracks the wakeup latency of the\nhighest priority waking task.\n\n  \"wakeup\" is added to /debugfs/tracing/available_tracers\n\nAlso added to /debugfs/tracing\n\n  tracing_max_latency\n     holds the current max latency for the wakeup\n\n  wakeup_thresh\n     if set to other than zero, a log will be recorded\n     for every wakeup that takes longer than the number\n     entered in here (usecs for all counters)\n     (deletes previous trace)\n\nExamples:\n\n  (with ftrace_enabled \u003d 0)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 26 us, #2/2, CPU#1 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/0-3 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n   quilt-8551  0d..3    0us+: wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n   quilt-8551  0d..4   26us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n  (with ftrace_enabled \u003d 1)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npreemption latency trace v1.1.5 on 2.6.24-rc8\n--------------------------------------------------------------------\n latency: 36 us, #45/45, CPU#0 | (M:rt VP:0, KP:0, SP:0 HP:0 #P:2)\n    -----------------\n    | task: migration/1-5 (uid:0 nice:-5 policy:1 rt_prio:99)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n    bash-10653 1d..3    0us : wake_up_process+0x15/0x17 \u003cffffffff80233e80\u003e (sched_exec+0xc9/0x100 \u003cffffffff80235343\u003e)\n    bash-10653 1d..3    1us : try_to_wake_up+0x271/0x2e7 \u003cffffffff80233dcf\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..2    2us : try_to_wake_up+0x296/0x2e7 \u003cffffffff80233df4\u003e (update_rq_clock+0x9/0x20 \u003cffffffff802303f3\u003e)\n    bash-10653 1d..2    2us : update_rq_clock+0x1e/0x20 \u003cffffffff80230408\u003e (__update_rq_clock+0xc/0x90 \u003cffffffff80230366\u003e)\n    bash-10653 1d..2    3us : __update_rq_clock+0x1b/0x90 \u003cffffffff80230375\u003e (sched_clock+0x9/0x29 \u003cffffffff80214529\u003e)\n    bash-10653 1d..2    4us : try_to_wake_up+0x2a6/0x2e7 \u003cffffffff80233e04\u003e (activate_task+0xc/0x3f \u003cffffffff8022ffca\u003e)\n    bash-10653 1d..2    4us : activate_task+0x2d/0x3f \u003cffffffff8022ffeb\u003e (enqueue_task+0xe/0x66 \u003cffffffff8022ff66\u003e)\n    bash-10653 1d..2    5us : enqueue_task+0x5b/0x66 \u003cffffffff8022ffb3\u003e (enqueue_task_rt+0x9/0x3c \u003cffffffff80233351\u003e)\n    bash-10653 1d..2    6us : try_to_wake_up+0x2ba/0x2e7 \u003cffffffff80233e18\u003e (check_preempt_wakeup+0x12/0x99 \u003cffffffff80234f84\u003e)\n[...]\n    bash-10653 1d..5   33us : tracing_record_cmdline+0xcf/0xd4 \u003cffffffff80338aad\u003e (_spin_unlock+0x9/0x33 \u003cffffffff8048d3ec\u003e)\n    bash-10653 1d..5   34us : _spin_unlock+0x19/0x33 \u003cffffffff8048d3fc\u003e (sub_preempt_count+0xc/0x7a \u003cffffffff8023309e\u003e)\n    bash-10653 1d..4   35us : wakeup_sched_switch+0x65/0x2ff \u003cffffffff80339f66\u003e (_spin_lock_irqsave+0xc/0xa9 \u003cffffffff8048d08b\u003e)\n    bash-10653 1d..4   35us : _spin_lock_irqsave+0x19/0xa9 \u003cffffffff8048d098\u003e (add_preempt_count+0xe/0x77 \u003cffffffff8023311a\u003e)\n    bash-10653 1d..4   36us : sched_switch_callback+0x73/0x81 \u003cffffffff80338d2f\u003e (schedule+0x483/0x6d5 \u003cffffffff8048b3ee\u003e)\n\nvim:ft\u003dhelp\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe [...] was added here to not waste your email box space.\n\nSigned-off-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"
    },
    {
      "commit": "35e8e302e5d6e32675df2fc1dd3a53dfa6630dc1",
      "tree": "5b5b503666d882bbb4d805b7b20b4f3b11d2c40e",
      "parents": [
        "1b29b01887e6032dcaf818c14999c7a39593b4e7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:27 2008 +0200"
      },
      "message": "ftrace: add tracing of context switches\n\nThis patch adds context switch tracing, of the format of:\n\n                  _------\u003d\u003e CPU#\n                 / _-----\u003d\u003e irqs-off\n                | / _----\u003d\u003e need-resched\n                || / _---\u003d\u003e hardirq/softirq\n                ||| / _--\u003d\u003e preempt-depth\n                |||| /\n                |||||     delay\n    cmd     pid ||||| time  |      pid:prio:state\n       \\   /    |||||   \\   |      /\n  swapper-0     1d..3    137us+:  0:140:R --\u003e 2912:120\n     sshd-2912  1d..3    216us+:  2912:120:S --\u003e 0:140\n  swapper-0     1d..3    261us+:  0:140:R --\u003e 2912:120\n     bash-2920  0d..3    267us+:  2920:120:S --\u003e 0:140\n     sshd-2912  1d..3    330us!:  2912:120:S --\u003e 0:140\n  swapper-0     1d..3   2389us+:  0:140:R --\u003e 2847:120\n yum-upda-2847  1d..3   2411us!:  2847:120:S --\u003e 0:140\n  swapper-0     0d..3  11089us+:  0:140:R --\u003e 3139:120\n gdm-bina-3139  0d..3  11113us!:  3139:120:S --\u003e 0:140\n  swapper-0     1d..3 102328us+:  0:140:R --\u003e 2847:120\n yum-upda-2847  1d..3 102348us!:  2847:120:S --\u003e 0:140\n\n \"sched_switch\" is added to /debugfs/tracing/available_tracers\n\n[ Eugene Teo \u003ceugeneteo@kernel.sg: remove unused tracing_sched_switch_enabled ]\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1b29b01887e6032dcaf818c14999c7a39593b4e7",
      "tree": "6bcef64d5a7822b0f259a52b852af8cade6b3468",
      "parents": [
        "bc0c38d139ec7fcd5c030aea16b008f3732e42ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:13 2008 +0200"
      },
      "message": "ftrace: function tracer\n\nThis is a simple trace that uses the ftrace infrastructure. It is\ndesigned to be fast and small, and easy to use. It is useful to\nrecord things that happen over a very short period of time, and\nnot to analyze the system in general.\n\n Updates:\n\n  available_tracers\n     \"function\" is added to this file.\n\n  current_tracer\n    To enable the function tracer:\n\n      echo function \u003e /debugfs/tracing/current_tracer\n\n     To disable the tracer:\n\n       echo disable \u003e /debugfs/tracing/current_tracer\n\nThe output of the function_trace file is as follows\n\n  \"echo noverbose \u003e /debugfs/tracing/iter_ctrl\"\n\npreemption latency trace v1.1.5 on 2.6.24-rc7-tst\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------\n latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)\n    -----------------\n    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n\n                 _------\u003d\u003e CPU#\n                / _-----\u003d\u003e irqs-off\n               | / _----\u003d\u003e need-resched\n               || / _---\u003d\u003e hardirq/softirq\n               ||| / _--\u003d\u003e preempt-depth\n               |||| /\n               |||||     delay\n   cmd     pid ||||| time  |   caller\n      \\   /    |||||   \\   |   /\n swapper-0     0d.h. 1595128us+: set_normalized_timespec+0x8/0x2d \u003cc043841d\u003e (ktime_get_ts+0x4a/0x4e \u003cc04499d4\u003e)\n swapper-0     0d.h. 1595131us+: _spin_lock+0x8/0x18 \u003cc0630690\u003e (hrtimer_interrupt+0x6e/0x1b0 \u003cc0449c56\u003e)\n\nOr with verbose turned on:\n\n  \"echo verbose \u003e /debugfs/tracing/iter_ctrl\"\n\npreemption latency trace v1.1.5 on 2.6.24-rc7-tst\n--------------------------------------------------------------------\n latency: 0 us, #419428/4361791, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:4)\n    -----------------\n    | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)\n    -----------------\n\n         swapper     0 0 9 00000000 00000000 [f3675f41] 1595.128ms (+0.003ms): set_normalized_timespec+0x8/0x2d \u003cc043841d\u003e (ktime_get_ts+0x4a/0x4e \u003cc04499d4\u003e)\n         swapper     0 0 9 00000000 00000001 [f3675f45] 1595.131ms (+0.003ms): _spin_lock+0x8/0x18 \u003cc0630690\u003e (hrtimer_interrupt+0x6e/0x1b0 \u003cc0449c56\u003e)\n         swapper     0 0 9 00000000 00000002 [f3675f48] 1595.135ms (+0.003ms): _spin_lock+0x8/0x18 \u003cc0630690\u003e (hrtimer_interrupt+0x6e/0x1b0 \u003cc0449c56\u003e)\n\nThe \"trace\" file is not affected by the verbose mode, but is by the symonly.\n\n echo \"nosymonly\" \u003e /debugfs/tracing/iter_ctrl\n\ntracer:\n[   81.479967] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 \u003cffffffff80337a4d\u003e \u003c-- _spin_unlock_irqrestore+0xe/0x5a \u003cffffffff8048cc8f\u003e\n[   81.479967] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a \u003cffffffff8048ccbf\u003e \u003c-- sub_preempt_count+0xc/0x7a \u003cffffffff80233d7b\u003e\n[   81.479968] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a \u003cffffffff80233d9f\u003e \u003c-- in_lock_functions+0x9/0x24 \u003cffffffff8025a75d\u003e\n[   81.479968] CPU 0: bash:3154 vfs_write+0x11d/0x155 \u003cffffffff8029a043\u003e \u003c-- dnotify_parent+0x12/0x78 \u003cffffffff802d54fb\u003e\n[   81.479968] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 \u003cffffffff802d5516\u003e \u003c-- _spin_lock+0xe/0x70 \u003cffffffff8048c910\u003e\n[   81.479969] CPU 0: bash:3154 _spin_lock+0x1b/0x70 \u003cffffffff8048c91d\u003e \u003c-- add_preempt_count+0xe/0x77 \u003cffffffff80233df7\u003e\n[   81.479969] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 \u003cffffffff80233e27\u003e \u003c-- in_lock_functions+0x9/0x24 \u003cffffffff8025a75d\u003e\n\n echo \"symonly\" \u003e /debugfs/tracing/iter_ctrl\n\ntracer:\n[   81.479913] CPU 0: bash:3154 register_ftrace_function+0x5f/0x66 \u003c-- _spin_unlock_irqrestore+0xe/0x5a\n[   81.479913] CPU 0: bash:3154 _spin_unlock_irqrestore+0x3e/0x5a \u003c-- sub_preempt_count+0xc/0x7a\n[   81.479913] CPU 0: bash:3154 sub_preempt_count+0x30/0x7a \u003c-- in_lock_functions+0x9/0x24\n[   81.479914] CPU 0: bash:3154 vfs_write+0x11d/0x155 \u003c-- dnotify_parent+0x12/0x78\n[   81.479914] CPU 0: bash:3154 dnotify_parent+0x2d/0x78 \u003c-- _spin_lock+0xe/0x70\n[   81.479914] CPU 0: bash:3154 _spin_lock+0x1b/0x70 \u003c-- add_preempt_count+0xe/0x77\n[   81.479914] CPU 0: bash:3154 add_preempt_count+0x3e/0x77 \u003c-- in_lock_functions+0x9/0x24\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bc0c38d139ec7fcd5c030aea16b008f3732e42ac",
      "tree": "adaaf5e2ca49bbd7025bc357f87df9cb47641022",
      "parents": [
        "16444a8a40d4c7b4f6de34af0cae1f76a4f6c901"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:32:06 2008 +0200"
      },
      "message": "ftrace: latency tracer infrastructure\n\nThis patch adds the latency tracer infrastructure. This patch\ndoes not add anything that will select and turn it on, but will\nbe used by later patches.\n\nIf it were to be compiled, it would add the following files\nto the debugfs:\n\n The root tracing directory:\n\n  /debugfs/tracing/\n\nThis patch also adds the following files:\n\n  available_tracers\n     list of available tracers. Currently no tracers are\n     available. Looking into this file only shows\n     \"none\" which is used to unregister all tracers.\n\n  current_tracer\n     The trace that is currently active. Empty on start up.\n     To switch to a tracer simply echo one of the tracers that\n     are listed in available_tracers:\n\n   example: (used with later patches)\n\n      echo function \u003e /debugfs/tracing/current_tracer\n\n     To disable the tracer:\n\n       echo disable \u003e /debugfs/tracing/current_tracer\n\n  tracing_enabled\n     echoing \"1\" into this file starts the ftrace function tracing\n      (if sysctl kernel.ftrace_enabled\u003d1)\n     echoing \"0\" turns it off.\n\n  latency_trace\n      This file is readonly and holds the result of the trace.\n\n  trace\n      This file outputs a easier to read version of the trace.\n\n  iter_ctrl\n      Controls the way the output of traces look.\n      So far there\u0027s two controls:\n        echoing in \"symonly\" will only show the kallsyms variables\n            without the addresses (if kallsyms was configured)\n        echoing in \"verbose\" will change the output to show\n            a lot more data, but not very easy to understand by\n            humans.\n        echoing in \"nosymonly\" turns off symonly.\n        echoing in \"noverbose\" turns off verbose.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "16444a8a40d4c7b4f6de34af0cae1f76a4f6c901",
      "tree": "9c290bcdbdc1ecf8f578c30b3b36914e14fdaacc",
      "parents": [
        "6e766410c4babd37bc7cd5e25009c179781742c8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Mon May 12 21:20:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:31:58 2008 +0200"
      },
      "message": "ftrace: add basic support for gcc profiler instrumentation\n\nIf CONFIG_FTRACE is selected and /proc/sys/kernel/ftrace_enabled is\nset to a non-zero value the ftrace routine will be called everytime\nwe enter a kernel function that is not marked with the \"notrace\"\nattribute.\n\nThe ftrace routine will then call a registered function if a function\nhappens to be registered.\n\n[ This code has been highly hacked by Steven Rostedt and Ingo Molnar,\n  so don\u0027t blame Arnaldo for all of this ;-) ]\n\nUpdate:\n  It is now possible to register more than one ftrace function.\n  If only one ftrace function is registered, that will be the\n  function that ftrace calls directly. If more than one function\n  is registered, then ftrace will call a function that will loop\n  through the functions to call.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-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"
    },
    {
      "commit": "7c731e0a495e25e79dc1e9e68772a67a55721a65",
      "tree": "6d61a9a01708a8174d2b0badaee8df1153449be8",
      "parents": [
        "bd3bff9e20f454b242d979ec2f9a4dca0d5fa06f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:41 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:31:05 2008 +0200"
      },
      "message": "ftrace: make the task state char-string visible to all\n\nThe tracer wants to be able to convert the state number\ninto a user visible character. This patch pulls that conversion\nstring out the scheduler into the header. This way if it were to\never change, other parts of the kernel will know.\n\nSigned-off-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"
    },
    {
      "commit": "bd3bff9e20f454b242d979ec2f9a4dca0d5fa06f",
      "tree": "f9aa5959cb63a0c9d51185109264dd0b0f547765",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 12 21:20:41 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:30:55 2008 +0200"
      },
      "message": "sched: add latency tracer callbacks to the scheduler\n\nadd 3 lightweight callbacks to the tracer backend.\n\nzero impact if tracing is turned off.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "16ae527bfa03c6c82328098eafae972807ed32d4",
      "tree": "cad921d7eeff11c9063a36204118ac8a66029c8f",
      "parents": [
        "e23a5f66877d32f21a2ac15a200ad4a2b4c8b0ee",
        "6793a051fb9311f0f1ab7eafc5a9e69b8a1bd8d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 19 16:38:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 19 16:38:10 2008 -0700"
      },
      "message": "Merge branch \u0027audit.b51\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b51\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  [PATCH] list_for_each_rcu must die: audit\n  [patch 1/1] audit_send_reply(): fix error-path memory leak\n  [PATCH] open sessionid permissions\n"
    },
    {
      "commit": "6793a051fb9311f0f1ab7eafc5a9e69b8a1bd8d4",
      "tree": "e0732f3bf37440015e86ccfd6a0cb5ca79703c5e",
      "parents": [
        "fcaf1eb8685a00a99259e138e403841e984385b0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed May 14 17:10:12 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 17 03:30:23 2008 -0400"
      },
      "message": "[PATCH] list_for_each_rcu must die: audit\n\nAll uses of list_for_each_rcu() can be profitably replaced by the\neasier-to-use list_for_each_entry_rcu().  This patch makes this change\nfor the Audit system, in preparation for removing the list_for_each_rcu()\nAPI entirely.  This time with well-formed SOB.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fcaf1eb8685a00a99259e138e403841e984385b0",
      "tree": "01663c2345f200014f028b7cee2d3270e3100601",
      "parents": [
        "6ee650467d5bf972d10441e99688e9b48171f99c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed May 14 16:11:48 2008 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 17 03:30:22 2008 -0400"
      },
      "message": "[patch 1/1] audit_send_reply(): fix error-path memory leak\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d10663\n\nReporter: Daniel Marjamki \u003cdanielm77@spray.se\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eceea0b3df05ed262ae32e0c6340cc7a3626632d",
      "tree": "73e5e33acace9187d5729a9a8c8ff53c3d720d52",
      "parents": [
        "adbecb128cd2cc5d14b0ebef6d020ced0efd0ec6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 10:08:32 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:52 2008 -0400"
      },
      "message": "[PATCH] avoid multiplication overflows and signedness issues for max_fds\n\nLimit sysctl_nr_open - we don\u0027t want -\u003emax_fds to exceed MAX_INT and\nwe don\u0027t want size calculation for -\u003efd[] to overflow.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02afc6267f6d55d47aba9fcafdbd1b7230d2294a",
      "tree": "f8cd675baf512fa6f6d561a5bccc0447bec2ff8b",
      "parents": [
        "f52111b1546943545e67573c4dde1c7613ca33d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 19:42:56 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:26 2008 -0400"
      },
      "message": "[PATCH] dup_fd() fixes, part 1\n\nMove the sucker to fs/file.c in preparation to the rest\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3fc957721d18c93662f7d4dab455b80f53dd2641",
      "tree": "9bdbabf3cb3678edcd0e0e4beb5deaa5c1b17bcd",
      "parents": [
        "122a881c776b7c155bf3f379928cc27aab435288"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed May 14 16:05:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:14 2008 -0700"
      },
      "message": "lib: create common ascii hex array\n\nAdd a common hex array in hexdump.c so everyone can use it.\n\nAdd a common hi/lo helper to avoid the shifting masking that is\ndone to get the upper and lower nibbles of a byte value.\n\nPull the pack_hex_byte helper from kgdb as it is opencoded many\nplaces in the tree that will be consolidated.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.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": "0c70814c311581a6c86198db4f982aa683c68fb8",
      "tree": "3df20cc52e4cf0515b7d7f6658d9f6991baa560c",
      "parents": [
        "b7cffc1f29c1bc729bc50c863c87f93f9b70994b"
      ],
      "author": {
        "name": "Mirco Tischler",
        "email": "mt-ml@gmx.de",
        "time": "Wed May 14 16:05:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 14 19:11:14 2008 -0700"
      },
      "message": "cgroups: fix compile warning\n\nReturn type of cpu_rt_runtime_write() should be int instead of ssize_t.\n\nSigned-off-by: Mirco Tischler \u003cmt-ml@gmx.de\u003e\nAcked-by: Paul Menage \u003cmenage@google.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": "c3921ab71507b108d51a0f1ee960f80cd668a93d",
      "tree": "b1408b898a8b50f15ad4a0cf1f29e17cc0138485",
      "parents": [
        "9662369786b9d07fd46d65b0f9e3938a3e01a5d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "message": "Add new \u0027cond_resched_bkl()\u0027 helper function\n\nIt acts exactly like a regular \u0027cond_resched()\u0027, but will not get\noptimized away when CONFIG_PREEMPT is set.\n\nNormal kernel code is already preemptable in the presense of\nCONFIG_PREEMPT, so cond_resched() is optimized away (see commit\n02b67cc3ba36bdba351d6c3a00593f4ec550d9d3 \"sched: do not do\ncond_resched() when CONFIG_PREEMPT\").\n\nBut when wanting to conditionally reschedule while holding a lock, you\nneed to use \"cond_sched_lock(lock)\", and the new function is the BKL\nequivalent of that.\n\nAlso make fs/locks.c use it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e3e076c5a78519a9f64cd384e8f18bc21882ce0",
      "tree": "f032258fde3aa4771e86bf4552fe4530c221dec3",
      "parents": [
        "00b41ec2611dc98f87f30753ee00a53db648d662"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 10 20:58:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 10 20:58:02 2008 -0700"
      },
      "message": "BKL: revert back to the old spinlock implementation\n\nThe generic semaphore rewrite had a huge performance regression on AIM7\n(and potentially other BKL-heavy benchmarks) because the generic\nsemaphores had been rewritten to be simple to understand and fair.  The\nlatter, in particular, turns a semaphore-based BKL implementation into a\nmess of scheduling.\n\nThe attempt to fix the performance regression failed miserably (see the\nprevious commit 00b41ec2611dc98f87f30753ee00a53db648d662 \u0027Revert\n\"semaphore: fix\"\u0027), and so for now the simple and sane approach is to\ninstead just go back to the old spinlock-based BKL implementation that\nnever had any issues like this.\n\nThis patch also has the advantage of being reported to fix the\nregression completely according to Yanmin Zhang, unlike the semaphore\nhack which still left a couple percentage point regression.\n\nAs a spinlock, the BKL obviously has the potential to be a latency\nissue, but it\u0027s not really any different from any other spinlock in that\nrespect.  We do want to get rid of the BKL asap, but that has been the\nplan for several years.\n\nThese days, the biggest users are in the tty layer (open/release in\nparticular) and Alan holds out some hope:\n\n  \"tty release is probably a few months away from getting cured - I\u0027m\n   afraid it will almost certainly be the very last user of the BKL in\n   tty to get fixed as it depends on everything else being sanely locked.\"\n\nso while we\u0027re not there yet, we do have a plan of action.\n\nTested-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Alexander Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b41ec2611dc98f87f30753ee00a53db648d662",
      "tree": "431f5019ce8dfd0f9c2b0e3816128dc4a34a49ff",
      "parents": [
        "39f004ba27fcd2431030a3bb3c949fa3f93fa4ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 10 20:43:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 10 20:43:22 2008 -0700"
      },
      "message": "Revert \"semaphore: fix\"\n\nThis reverts commit bf726eab3711cf192405d21688a4b21e07b6188a, as it has\nbeen reported to cause a regression with processes stuck in __down(),\napparently because some missing wakeup.\n\nQuoth Sven Wegener:\n \"I\u0027m currently investigating a regression that has showed up with my\n  last git pull yesterday.  Bisecting the commits showed bf726e\n  \"semaphore: fix\" to be the culprit, reverting it fixed the issue.\n\n  Symptoms: During heavy filesystem usage (e.g.  a kernel compile) I get\n  several compiler processes in uninterruptible sleep, blocking all i/o\n  on the filesystem.  System is an Intel Core 2 Quad running a 64bit\n  kernel and userspace.  Filesystem is xfs on top of lvm.  See below for\n  the output of sysrq-w.\"\n\nSee\n\n\thttp://lkml.org/lkml/2008/5/10/45\n\nfor full report.\n\nIn the meantime, we can just fix the BKL performance regression by\nreverting back to the good old BKL spinlock implementation instead,\nsince any sleeping lock will generally perform badly, especially if it\ntries to be fair.\n\nReported-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91e37a793b5a9436a2d12b2f0a8f52db3a133e1d",
      "tree": "6ddf17ad786fa2a42ef79aa4f7873c79c1e17a89",
      "parents": [
        "a5dd69707424a35d2d2cc094e870f595ad61e916"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 09 16:25:28 2008 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 09 07:45:18 2008 -0700"
      },
      "message": "module: don\u0027t ignore vermagic string if module doesn\u0027t have modversions\n\nLinus found a logic bug: we ignore the version number in a module\u0027s\nvermagic string if we have CONFIG_MODVERSIONS set, but modversions\nalso lets through a module with no __versions section for modprobe\n--force (with tainting, but still).\n\nWe should only ignore the start of the vermagic string if the module\nactually *has* crcs to check.  Rather than (say) having an\nentertaining hissy fit and creating a config option to work around the\nbuggy code.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5dd69707424a35d2d2cc094e870f595ad61e916",
      "tree": "dd9dffe6748358bac9a8699f7d8ad9e205886a67",
      "parents": [
        "6c2545eefffc452e52302c96c955d9aa26353aa9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 09 16:24:21 2008 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 09 07:45:18 2008 -0700"
      },
      "message": "module: be more picky about allowing missing module versions\n\nWe allow missing __versions sections, because modprobe --force strips\nit.  It makes less sense to allow sections where there\u0027s no version\nfor a specific symbol the module uses, so disallow that.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4f51b4662074c6ee26c972126a317c05f65be06",
      "tree": "ea6b25a3b45d11d649f85626a9879ce7723554da",
      "parents": [
        "f589274533eb94e0217acc1db6240ce6e621bb56",
        "46151122e0a2e80e5a6b2889f595e371fe2b600d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 11:31:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 11:31:07 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-fixes\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-fixes:\n  sched: fix weight calculations\n  semaphore: fix\n"
    },
    {
      "commit": "7a34912d90c17a90d9fad12c4c51833b4e70707b",
      "tree": "a3811697f5eba3c5d12216ac76f681420046b219",
      "parents": [
        "0f1bce41fed02e45f31c2409f29e69e1fedebcdc",
        "75065ff619e42fe35178eda863cbcddd57776794"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:48:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:48:36 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Revert \"relay: fix splice problem\"\n  docbook: fix bio missing parameter\n  block: use unitialized_var() in bio_alloc_bioset()\n  block: avoid duplicate calls to get_part() in disk stat code\n  cfq-iosched: make io priorities inherit CPU scheduling class as well as nice\n  block: optimize generic_unplug_device()\n  block: get rid of likely/unlikely predictions in merge logic\n  vfs: splice remove_suid() cleanup\n  cfq-iosched: fix RCU race in the cfq io_context destructor handling\n  block: adjust tagging function queue bit locking\n  block: sysfs store function needs to grab queue_lock and use queue_flag_*()\n"
    },
    {
      "commit": "5be7a4792a31df6f2cd44bfba8da467ea20a0642",
      "tree": "87ec7f4f59f52a729ab21aa6d6bf3d3e6cad9474",
      "parents": [
        "4ea33e2dc2dab10960877e1649ee527c033f42c0"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue May 06 20:42:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:46:56 2008 -0700"
      },
      "message": "Fix cpuset sched_relax_domain_level control file\n\nDue to a merge conflict, the sched_relax_domain_level control file was marked\nas being handled by cpuset_read/write_u64, but the code to handle it was\nactually in cpuset_common_file_read/write.\n\nSince the value being written/read is in fact a signed integer, it should be\ntreated as such; this patch adds cpuset_read/write_s64 functions, and uses\nthem to handle the sched_relax_domain_level file.\n\nWith this patch, the sched_relax_domain_level can be read and written, and the\ncorrect contents seen/updated.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: 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": "46151122e0a2e80e5a6b2889f595e371fe2b600d",
      "tree": "61ab1993c1a94765327aeba3b36924b88b81e68f",
      "parents": [
        "bf726eab3711cf192405d21688a4b21e07b6188a"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu May 08 17:00:42 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 08 17:00:42 2008 +0200"
      },
      "message": "sched: fix weight calculations\n\nThe conversion between virtual and real time is as follows:\n\n  dvt \u003d rw/w * dt \u003c\u003d\u003e dt \u003d w/rw * dvt\n\nSince we want the fair sleeper granularity to be in real time, we actually\nneed to do:\n\n  dvt \u003d - rw/w * l\n\nThis bug could be related to the regression reported by Yanmin Zhang:\n\n| Comparing with kernel 2.6.25, sysbench+mysql(oltp, readonly) has lots\n| of regressions with 2.6.26-rc1:\n|\n| 1) 8-core stoakley: 28%;\n| 2) 16-core tigerton: 20%;\n| 3) Itanium Montvale: 50%.\n\nReported-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf726eab3711cf192405d21688a4b21e07b6188a",
      "tree": "5450be096ade3a66edee8858fd492ff55e20e4f8",
      "parents": [
        "3de2403e6659d71b36ec820dc9b942762ddfe6eb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 08 11:53:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 08 17:00:42 2008 +0200"
      },
      "message": "semaphore: fix\n\nYanmin Zhang reported:\n\n| Comparing with kernel 2.6.25, ﻿AIM7 (use tmpfs) has ﻿more th\n| regression under 2.6.26-rc1 on my 8-core stoakley, 16-core tigerton,\n| and Itanium Montecito. Bisect located the patch below:\n|\n| 64ac24e738823161693bf791f87adc802cf529ff is first bad commit\n| commit 64ac24e738823161693bf791f87adc802cf529ff\n| Author: Matthew Wilcox \u003cmatthew@wil.cx\u003e\n| Date:   Fri Mar 7 21:55:58 2008 -0500\n|\n|     Generic semaphore implementation\n|\n| After I manually reverted the patch against 2.6.26-rc1 while fixing\n| lots of conflicts/errors, aim7 regression became less than 2%.\n\ni reproduced the AIM7 workload and can confirm Yanmin\u0027s findings that\n-.26-rc1 regresses over .25 - by over 67% here.\n\nLooking at the workload i found and fixed what i believe to be the real\nbug causing the AIM7 regression: it was inefficient wakeup / scheduling\n/ locking behavior of the new generic semaphore code, causing suboptimal\nperformance.\n\nThe problem comes from the following code. The new semaphore code does\nthis on down():\n\n        spin_lock_irqsave(\u0026sem-\u003elock, flags);\n        if (likely(sem-\u003ecount \u003e 0))\n                sem-\u003ecount--;\n        else\n                __down(sem);\n        spin_unlock_irqrestore(\u0026sem-\u003elock, flags);\n\nand this on up():\n\n        spin_lock_irqsave(\u0026sem-\u003elock, flags);\n        if (likely(list_empty(\u0026sem-\u003ewait_list)))\n                sem-\u003ecount++;\n        else\n                __up(sem);\n        spin_unlock_irqrestore(\u0026sem-\u003elock, flags);\n\nwhere __up() does:\n\n        list_del(\u0026waiter-\u003elist);\n        waiter-\u003eup \u003d 1;\n        wake_up_process(waiter-\u003etask);\n\nand where __down() does this in essence:\n\n        list_add_tail(\u0026waiter.list, \u0026sem-\u003ewait_list);\n        waiter.task \u003d task;\n        waiter.up \u003d 0;\n        for (;;) {\n                [...]\n                spin_unlock_irq(\u0026sem-\u003elock);\n                timeout \u003d schedule_timeout(timeout);\n                spin_lock_irq(\u0026sem-\u003elock);\n                if (waiter.up)\n                        return 0;\n        }\n\nthe fastpath looks good and obvious, but note the following property of\nthe contended path: if there\u0027s a task on the -\u003ewait_list, the up() of\nthe current owner will \"pass over\" ownership to that waiting task, in a\nwake-one manner, via the waiter-\u003eup flag and by removing the waiter from\nthe wait list.\n\nThat is all and fine in principle, but as implemented in\nkernel/semaphore.c it also creates a nasty, hidden source of contention!\n\nThe contention comes from the following property of the new semaphore\ncode: the new owner owns the semaphore exclusively, even if it is not\nrunning yet.\n\nSo if the old owner, even if just a few instructions later, does a\ndown() [lock_kernel()] again, it will be blocked and will have to wait\non the new owner to eventually be scheduled (possibly on another CPU)!\nOr if another task gets to lock_kernel() sooner than the \"new owner\"\nscheduled, it will be blocked unnecessarily and for a very long time\nwhen there are 2000 tasks running.\n\nI.e. the implementation of the new semaphores code does wake-one and\nlock ownership in a very restrictive way - it does not allow\nopportunistic re-locking of the lock at all and keeps the scheduler from\npicking task order intelligently.\n\nThis kind of scheduling, with 2000 AIM7 processes running, creates awful\ncross-scheduling between those 2000 tasks, causes reduced parallelism, a\nthrottled runqueue length and a lot of idle time. With increasing number\nof CPUs it causes an exponentially worse behavior in AIM7, as the chance\nfor a newly woken new-owner task to actually run anytime soon is less\nand less likely.\n\nNote that it takes just a tiny bit of contention for the \u0027new-semaphore\ncatastrophy\u0027 to happen: the wakeup latencies get added to whatever small\ncontention there is, and quickly snowball out of control!\n\nI believe Yanmin\u0027s findings and numbers support this analysis too.\n\nThe best fix for this problem is to use the same scheduling logic that\nthe kernel/mutex.c code uses: keep the wake-one behavior (that is OK and\nwanted because we do not want to over-schedule), but also allow\nopportunistic locking of the lock even if a wakee is already \"in\nflight\".\n\nThe patch below implements this new logic. With this patch applied the\nAIM7 regression is largely fixed on my quad testbox:\n\n  # v2.6.25 vanilla:\n  ..................\n  Tasks   Jobs/Min        JTI     Real    CPU     Jobs/sec/task\n  2000    56096.4         91      207.5   789.7   0.4675\n  2000    55894.4         94      208.2   792.7   0.4658\n\n  # v2.6.26-rc1-166-gc0a1811 vanilla:\n  ...................................\n  Tasks   Jobs/Min        JTI     Real    CPU     Jobs/sec/task\n  2000    33230.6         83      350.3   784.5   0.2769\n  2000    31778.1         86      366.3   783.6   0.2648\n\n  # v2.6.26-rc1-166-gc0a1811 + semaphore-speedup:\n  ...............................................\n  Tasks   Jobs/Min        JTI     Real    CPU     Jobs/sec/task\n  2000    55707.1         92      209.0   795.6   0.4642\n  2000    55704.4         96      209.0   796.0   0.4642\n\ni.e. a 67% speedup. We are now back to within 1% of the v2.6.25\nperformance levels and have zero idle time during the test, as expected.\n\nBtw., interactivity also improved dramatically with the fix - for\nexample console-switching became almost instantaneous during this\nworkload (which after all is running 2000 tasks at once!), without the\npatch it was stuck for a minute at times.\n\nThere\u0027s another nice side-effect of this speedup patch, the new generic\nsemaphore code got even smaller:\n\n   text    data     bss     dec     hex filename\n   1241       0       0    1241     4d9 semaphore.o.before\n   1207       0       0    1207     4b7 semaphore.o.after\n\n(because the waiter.up complication got removed.)\n\nLonger-term we should look into using the mutex code for the generic\nsemaphore code as well - but i\u0027s not easy due to legacies and it\u0027s\noutside of the scope of v2.6.26 and outside the scope of this patch as\nwell.\n\nBisected-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75065ff619e42fe35178eda863cbcddd57776794",
      "tree": "e41d6e838cb2d2fcd62e5ea1980f720e98b57de7",
      "parents": [
        "ffee0259c9edcc4c0f06b60df51c461eeecad4c0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 08 14:06:19 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 08 14:06:19 2008 +0200"
      },
      "message": "Revert \"relay: fix splice problem\"\n\nThis reverts commit c3270e577c18b3d0e984c3371493205a4807db9d.\n"
    },
    {
      "commit": "3e51f33fcc7f55e6df25d15b55ed10c8b4da84cd",
      "tree": "3752f9ea8e014ec40e95a1b197b0a3d18e1056a8",
      "parents": [
        "a5574cf65b5f03ce9ade3918764fe22e5e2371e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 03 18:29:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\nthis replaces the rq-\u003eclock stuff (and possibly cpu_clock()).\n\n - architectures that have an \u0027imperfect\u0027 hardware clock can set\n   CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\n - the \u0027jiffie\u0027 window might be superfulous when we update tick_gtod\n   before the __update_sched_clock() call in sched_clock_tick()\n\n - cpu_clock() might be implemented as:\n\n     sched_clock_cpu(smp_processor_id())\n\n   if the accuracy proves good enough - how far can TSC drift in a\n   single jiffie when considering the filtering and idle hooks?\n\n[ mingo@elte.hu: various fixes and cleanups ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfbf4a1bc319f0f9a31e39b2da1fa5c55e85af89",
      "tree": "0b9dd19406c53a93452dd345bb05f76aa712a757",
      "parents": [
        "cb4ad1ffc7c0d8ea7dc8cd8ba303d83551716d46"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 23 09:24:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix cpu clock\n\nDavid Miller pointed it out that nothing in cpu_clock() sets\nprev_cpu_time. This caused __sync_cpu_clock() to be called\nall the time - against the intention of this code.\n\nThe result was that in practice we hit a global spinlock every\ntime cpu_clock() is called - which - even though cpu_clock()\nis used for tracing and debugging, is suboptimal.\n\nWhile at it, also:\n\n- move the irq disabling to the outest layer,\n  this should make cpu_clock() warp-free when called with irqs\n  enabled.\n\n- use long long instead of cycles_t - for platforms where cycles_t\n  is 32-bit.\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb4ad1ffc7c0d8ea7dc8cd8ba303d83551716d46",
      "tree": "79f6b1fe971a270e5e009d695d2bf998936197c8",
      "parents": [
        "712555ee4f873515612f89554ad1a3fda5fa887e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Apr 28 12:54:56 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fair-group: fix a Div0 error of the fair group scheduler\n\nWhen I echoed 0 into the \"cpu.shares\" file, a Div0 error occured.\n\nWe found it is caused by the following calling.\n\n   sched_group_set_shares(tg, shares)\n       set_se_shares(tg-\u003ese[i], shares/nr_cpu_ids)\n           __set_se_shares(se, shares)\n               div64_64((1ULL\u003c\u003c32), shares)\n\nWhen the echoed value was less than the number of processores, the result of the\nsentence \"shares/nr_cpu_ids\" was 0, and then the system called div64() to divide\nthe result, the Div0 error occured.\n\nIt is unnecessary that the shares value is divided by nr_cpu_ids, I think.\nBecause in the function  __update_group_shares_cpu() and init_tg_cfs_entry(),\nthe shares value isn\u0027t divided by nr_cpu_ids when setting shares of the sched\nentity.\n\nThis patch fixes this bug. And echoing ULONG_MAX value into cpu.shares also\ncauses Div0 error, so we set a macro MAX_SHARES to limit the max value of\nshares.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "712555ee4f873515612f89554ad1a3fda5fa887e",
      "tree": "88ff7222727c63959eb58a3aa729029aaf08a64f",
      "parents": [
        "690229a0912ca2fef8b542fe4d8b73acfcdc6e24"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Apr 28 11:33:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix missing locking in sched_domains code\n\nConcurrent calls to detach_destroy_domains and arch_init_sched_domains\nwere prevented by the old scheduler subsystem cpu hotplug mutex. When\nthis got converted to get_online_cpus() the locking got broken.\nUnlike before now several processes can concurrently enter the critical\nsections that were protected by the old lock.\n\nSo use the already present doms_cur_mutex to protect these sections again.\n\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "690229a0912ca2fef8b542fe4d8b73acfcdc6e24",
      "tree": "28be1db230f039589650f2b5d46de9e6f5722ef0",
      "parents": [
        "d7dcdc11cfa6a8860a29b09f985467b89224699d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 23 09:31:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: make clock sync tunable by architecture code\n\nmake time_sync_thresh tunable to architecture code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7dcdc11cfa6a8860a29b09f985467b89224699d",
      "tree": "cd7b8c1ba9b23ec84f93e58417e67644dfd7a124",
      "parents": [
        "673a90a1e05c8127886f7659d1a457169378371f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Apr 29 12:23:09 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix debugging\n\nRevert debugging commit 7ba2e74ab5a0518bc953042952dd165724bc70c9.\nprint_cfs_rq_tasks() can induce live-lock if a task is dequeued\nduring list traversal.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "673a90a1e05c8127886f7659d1a457169378371f",
      "tree": "77469d2b1273d960b90520a088bd82bdf0276ee7",
      "parents": [
        "b328ca182f01c2a04b85e0ee8a410720b104fbcc"
      ],
      "author": {
        "name": "David Simner",
        "email": "djs203@srcf.ucam.org",
        "time": "Tue Apr 29 10:08:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix sched_info_switch not being called according to documentation\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10545\n\nsched_stats.h says that __sched_info_switch is \"called when prev !\u003d\nnext\" in the comment.  sched.c should therefore do that.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b328ca182f01c2a04b85e0ee8a410720b104fbcc",
      "tree": "d04ba3472a8f57788fb7e6e614e8e6b3c5a79b55",
      "parents": [
        "104f64549c961a797ff5f7c59946a7caa335c5b0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Apr 29 10:02:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix hrtick_start_fair and CPU-Hotplug\n\nGautham R Shenoy reported:\n\n \u003e While running the usual CPU-Hotplug stress tests on linux-2.6.25,\n \u003e I noticed the following in the console logs.\n \u003e\n \u003e This is a wee bit difficult to reproduce. In the past 10 runs I hit this\n \u003e only once.\n \u003e\n \u003e ------------[ cut here ]------------\n \u003e\n \u003e WARNING: at kernel/sched.c:962 hrtick+0x2e/0x65()\n \u003e\n \u003e Just wondering if we are doing a good job at handling the cancellation\n \u003e of any per-cpu scheduler timers during CPU-Hotplug.\n\nThis looks like its indeed not cancelled at all and migrates the it to\nanother cpu. Fix it via a proper hotplug notifier mechanism.\n\nReported-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "104f64549c961a797ff5f7c59946a7caa335c5b0",
      "tree": "d63d707ee5b9d1dbc8e5796e142ca584736f01b9",
      "parents": [
        "8ae121ac8666b0421aa20fd80d4597ec66fa54bc"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Apr 28 12:40:01 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix SCHED_FAIR wake-idle logic error\n\nWe currently use an optimization to skip the overhead of wake-idle\nprocessing if more than one task is assigned to a run-queue.  The\nassumption is that the system must already be load-balanced or we\nwouldnt be overloaded to begin with.\n\nThe problem is that we are looking at rq-\u003enr_running, which may include\nRT tasks in addition to CFS tasks.  Since the presence of RT tasks\nreally has no bearing on the balance status of CFS tasks, this throws\nthe calculation off.\n\nThis patch changes the logic to only consider the number of CFS tasks\nwhen making the decision to optimze the wake-idle.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ae121ac8666b0421aa20fd80d4597ec66fa54bc",
      "tree": "1db411965b1b12029d501ea10ab90fbc8aa4ec62",
      "parents": [
        "983ed7a66bcec9dc307d89dc7af47cdf209e56af"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Apr 23 07:13:29 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix RT task-wakeup logic\n\nDmitry Adamushko pointed out a logic error in task_wake_up_rt() where we\nwill always evaluate to \"true\".  You can find the thread here:\n\nhttp://lkml.org/lkml/2008/4/22/296\n\nIn reality, we only want to try to push tasks away when a wake up request is\nnot going to preempt the current task.  So lets fix it.\n\nNote: We introduce test_tsk_need_resched() instead of open-coding the flag\ncheck so that the merge-conflict with -rt should help remind us that we\nmay need to support NEEDS_RESCHED_DELAYED in the future, too.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "983ed7a66bcec9dc307d89dc7af47cdf209e56af",
      "tree": "a5fc14c7fe993b795198bbeee2919ad695735e81",
      "parents": [
        "d478c2cfaa2476f8b6876f9eb4d8fddcfa986479"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 24 18:17:55 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: add statics, don\u0027t return void expressions\n\nNoticed by sparse:\nkernel/sched.c:760:20: warning: symbol \u0027sched_feat_names\u0027 was not declared. Should it be static?\nkernel/sched.c:767:5: warning: symbol \u0027sched_feat_open\u0027 was not declared. Should it be static?\nkernel/sched_fair.c:845:3: warning: returning void-valued expression\nkernel/sched.c:4386:3: warning: returning void-valued expression\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d478c2cfaa2476f8b6876f9eb4d8fddcfa986479",
      "tree": "59cb264c539147cb481e13335ff3c69750e16c67",
      "parents": [
        "733a0771df46af942b8355cd8bb15780106b4353"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sat Apr 26 11:30:34 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: add debug checks to idle functions\n\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: \"Justin Mattock\" \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2abdad0a4cd8f9413f778cc998e0ee7d60b28417",
      "tree": "c7bd3839e765c2991d3dfbfb1f5f83d58f1211e3",
      "parents": [
        "e05510d01ad1565e5e086a939261084d67ba2b10"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Apr 25 10:53:13 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: make rt_sched_class, idle_sched_class static\n\nThe C files are included directly in sched.c, so they are\neffectively static.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e05510d01ad1565e5e086a939261084d67ba2b10",
      "tree": "f6a8d27f2ad546c98079c8868d914de46a77994f",
      "parents": [
        "a992241de614dd2b7c97a9ba64e28c0e563f19bf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: optimize calc_delta_mine()\n\nJoel noticed that the !lw-\u003einv_weight contition isn\u0027t unlikely anymore so\nremove the unlikely annotation. Also, remove the two div64_u64() inv_weight\ncalculations, which makes them rely on the calc_delta_mine() path as well.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Joel Schopp \u003cjschopp@austin.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a992241de614dd2b7c97a9ba64e28c0e563f19bf",
      "tree": "a76f646188c23aad856b43ffc841a0ec08613398",
      "parents": [
        "5717922a1b8cc477f45a0f4f11fe619392ba7133"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: fix normalized sleeper\n\nNormalized sleeper uses calc_delta*() which requires that the rq load is\nalready updated, so move account_entity_enqueue() before place_entity()\n\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5717922a1b8cc477f45a0f4f11fe619392ba7133",
      "tree": "eeec6ca67edf27831071cabb8a13665b8001d55c",
      "parents": [
        "50f7ad2500b27ce5c42be3a6936f143b158f7bc3",
        "e024cbd257efc2788b7d21b9353e966267485c87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 05 10:17:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 05 10:17:30 2008 -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  kgdb: kconfig fix xconfig/menuconfig element\n  kgdb: fix signedness mixmatches, add statics, add declaration to header\n  kgdb: 1000 loops for the single step test in kgdbts\n  kgdb: trivial sparse fixes in kgdb test-suite\n  kgdb: minor documentation fixes\n"
    },
    {
      "commit": "82af7aca56c67061420d618cc5a30f0fd4106b80",
      "tree": "7542ae2436336f6cfafb4b9dc1e8bc66637a1cc9",
      "parents": [
        "f74d505b58d36ceeef10e459094f0eb760681165"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Jan 25 10:40:46 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 05 08:18:45 2008 -0700"
      },
      "message": "Removal of FUTEX_FD\n\nSince FUTEX_FD was scheduled for removal in June 2007 lets remove it.\n\nGoogle Code search found no users for it and NGPT was abandoned in 2003\naccording to IBM.  futex.h is left untouched to make sure the id does\nnot get reassigned.  Since queue_me() has no users left it is commented\nout to avoid a warning, i didnt remove it completely since it is part of\nthe internal api (matching unqueue_me())\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed rest)\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "688b744d8bc84dc5cc646e97509113dc5e8818ed",
      "tree": "7eb6292506e354a3ba76c202fcd1f8b08eccaf70",
      "parents": [
        "7cfcd985d36031459cc64e3843ea36a4d801097d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 24 16:57:23 2008 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon May 05 07:13:21 2008 -0500"
      },
      "message": "kgdb: fix signedness mixmatches, add statics, add declaration to header\n\nNoticed by sparse:\narch/x86/kernel/kgdb.c:556:15: warning: symbol \u0027kgdb_arch_pc\u0027 was not declared. Should it be static?\nkernel/kgdb.c:149:8: warning: symbol \u0027kgdb_do_roundup\u0027 was not declared. Should it be static?\nkernel/kgdb.c:193:22: warning: symbol \u0027kgdb_arch_pc\u0027 was not declared. Should it be static?\nkernel/kgdb.c:712:5: warning: symbol \u0027remove_all_break\u0027 was not declared. Should it be static?\n\nRelated to kgdb_hex2long:\narch/x86/kernel/kgdb.c:371:28: warning: incorrect type in argument 2 (different signedness)\narch/x86/kernel/kgdb.c:371:28:    expected long *long_val\narch/x86/kernel/kgdb.c:371:28:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:469:27: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:469:27:    expected long *long_val\nkernel/kgdb.c:469:27:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:470:27: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:470:27:    expected long *long_val\nkernel/kgdb.c:470:27:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:894:27: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:894:27:    expected long *long_val\nkernel/kgdb.c:894:27:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:895:27: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:895:27:    expected long *long_val\nkernel/kgdb.c:895:27:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:1127:28: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:1127:28:    expected long *long_val\nkernel/kgdb.c:1127:28:    got unsigned long *\u003cnoident\u003e\nkernel/kgdb.c:1132:25: warning: incorrect type in argument 2 (different signedness)\nkernel/kgdb.c:1132:25:    expected long *long_val\nkernel/kgdb.c:1132:25:    got unsigned long *\u003cnoident\u003e\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "826e4506a0acb6487910a5ebafe839f708a00e1c",
      "tree": "20cc66b6b38c0414930d85a8a9705a3a3eff8ddf",
      "parents": [
        "afa26be86b65a7183ceac29bdf1f51d6fc6932f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 04 17:04:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 04 17:04:16 2008 -0700"
      },
      "message": "Make forced module loading optional\n\nThe kernel module loader used to be much too happy to allow loading of\nmodules for the wrong kernel version by default.  For example, if you\nhad MODVERSIONS enabled, but tried to load a module with no version\ninfo, it would happily load it and taint the kernel - whether it was\nlikely to actually work or not!\n\nGenerally, such forced module loading should be considered a really\nreally bad idea, so make it conditional on a new config option\n(MODULE_FORCE_LOAD), and make it default to off.\n\nIf somebody really wants to force module loads, that\u0027s their problem,\nbut we should not encourage it.  Especially as it happened to me by\nmistake (ie regular unversioned Fedora modules getting loaded) causing\nlots of strange behavior.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afa26be86b65a7183ceac29bdf1f51d6fc6932f0",
      "tree": "b7b24e134d34f17e62085ecb8a9583e00f1c7248",
      "parents": [
        "269f21344b23e552c21c9e2d7ca258479dcd7a0a",
        "4f95f81a48623982879f4fa80c641933444afd18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 03 13:51:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 03 13:51:10 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt:\n  clocksource: allow read access to available/current_clocksource\n  clocksource: Fix permissions for available_clocksource\n  hrtimer: remove duplicate helper function\n"
    },
    {
      "commit": "4f95f81a48623982879f4fa80c641933444afd18",
      "tree": "a1e6325a9b3ba3baf60911091ecb69212305204d",
      "parents": [
        "4359a023a8c3b247b348c310bf510b23f3c1ab64"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sat May 03 14:23:14 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 03 18:11:48 2008 +0200"
      },
      "message": "clocksource: allow read access to available/current_clocksource\n\nThere is no harm, when users can read the info and we ask often enough\nduring debugging for this kind of information.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4359a023a8c3b247b348c310bf510b23f3c1ab64",
      "tree": "be6479eada293e91c4a17b1d6b942a4a7846a86d",
      "parents": [
        "4346f65426cbceb64794b468e4af6f5632d58c5e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri May 02 12:49:40 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 03 18:11:48 2008 +0200"
      },
      "message": "clocksource: Fix permissions for available_clocksource\n\nFile permissions for\n/sys/devices/system/clocksource/clocksource0/available_clocksource\nare 600 which allows write access. But this is in fact a read only\nfile. So change permissions to 400.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4346f65426cbceb64794b468e4af6f5632d58c5e",
      "tree": "cd698a910a2526882d542984ccd314d109a5194a",
      "parents": [
        "b66e1f11ebc429569a3784aaf64123633d9e3ed1"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "oliver@hartkopp.net",
        "time": "Wed Apr 30 23:04:37 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat May 03 18:11:48 2008 +0200"
      },
      "message": "hrtimer: remove duplicate helper function\n\nThe helper function hrtimer_callback_running() is used in\nkernel/hrtimer.c as well as in the updated net/can/bcm.c which now\nsupports hrtimers. Moving the helper function to hrtimer.h removes the\nduplicate definition in the C-files.\n\nSigned-off-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "b9095fd8a7f41dc7ac0b0b7864f74766a3056f96",
      "tree": "85653322dfb5b0c2faef3973d9d480d8117e4454",
      "parents": [
        "c25bd29805f4d854c3a0b4176813f3c1bff569d3"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:42 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:42 2008 -0700"
      },
      "message": "Make constants in kernel/timeconst.h fixed 64 bits\n\nForce constants in kernel/timeconst.h (except shift counts) to be 64 bits,\nusing U64_C() constructor macros, and eliminate constants that cannot\nbe represented at all in 64 bits.  This avoids warnings with some gcc\nversions.\n\nDrop generating 64-bit constants, since we have no real hope of\ngetting a full set (operation on 64-bit values requires a 128-bit\nintermediate result, which gcc only supports on 64-bit platforms, and\nonly with libgcc support on some.)  Note that the use of these\nconstants does not depend on if we are on a 32- or 64-bit architecture.\n\nThis resolves Bugzilla 10153.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "b66e1f11ebc429569a3784aaf64123633d9e3ed1",
      "tree": "d49f96acc682aaf29416921428110da5fd78fea4",
      "parents": [
        "1be1d6b7f3f6e3a87f872dd5e7a867d03d8a6851",
        "5c598b3428c372a1209597cee99a70da20625876"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 02 11:23:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 02 11:23:14 2008 -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:\n  [PATCH] fix sysctl_nr_open bugs\n  [PATCH] sanitize anon_inode_getfd()\n  [PATCH] split linux/file.h\n  [PATCH] make osf_select() use core_sys_select()\n  [PATCH] remove horrors with irix tty ioctls handling\n  [PATCH] fix file and descriptor handling in perfmon\n"
    },
    {
      "commit": "1adb0850a1254333d81e64121c80af100c6d6e06",
      "tree": "61835b06e78eb6f556c038ceabc706440f339d3a",
      "parents": [
        "886c35fbcf6fb2eee15687efc2d64d99b6ad9a4a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Apr 28 17:01:56 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 02 13:40:34 2008 +0200"
      },
      "message": "genirq: reenable a nobody cared disabled irq when a new driver arrives\n\nUwe Kleine-Koenig has some strange hardware where one of the shared\ninterrupts can be asserted during boot before the appropriate driver\nloads. Requesting the shared irq line from another driver result in a\nspurious interrupt storm which finally disables the interrupt line.\n\nI have seen similar behaviour on resume before (the hardware does not\nwork anymore so I can not verify).\n\nChange the spurious disable logic to increment the disable depth and\nmark the interrupt with an extra flag which allows us to reenable the\ninterrupt when a new driver arrives which requests the same irq\nline. In the worst case this will disable the irq again via the\nspurious trap, but there is a decent chance that the new driver is the\none which can handle the already asserted interrupt and makes the box\nusable again.\n\nEric Biederman said further: This case also happens on a regular basis\nin kdump kernels where we deliberately don\u0027t shutdown the hardware\nbefore starting the new kernel.  This patch should reduce the need for\nusing irqpoll in that situation by a small amount.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-and-Acked-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\n\n"
    },
    {
      "commit": "bcf35afb528109a31264b45d4851fa6ae72dbe18",
      "tree": "37607aae9efdbd1005d82e0a9a679899eb5a3afe",
      "parents": [
        "9fc3ace937a675bf42cbe6e6ef8950a6731ca16f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu May 01 18:43:12 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 10:21:54 2008 -0700"
      },
      "message": "make generic sys_ptrace unconditional\n\nWith s390 the last arch switched to the generic sys_ptrace yesterday so\nwe can now kill the ifdef around it to enforce every new port it using\nit instead of introducing new weirdo versions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f3acc3140444a900ab280de942291959f0f615d",
      "tree": "0d7f3f9698071ff90fb9a127a4c6e86e1c37c945",
      "parents": [
        "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:44:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:16 2008 -0400"
      },
      "message": "[PATCH] split linux/file.h\n\nInitial splitoff of the low-level stuff; taken to fdtable.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "03fc922f4085a0139f313831fe2dc6fed467cd2d",
      "tree": "1404c800acaf02eab054eb3448803db9d9b89262",
      "parents": [
        "a0be7522b25f17ac2c3964a24b88b5fe7c9404b8",
        "df4b565e1fbc777bb6e274378a41fa8ff7485680"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:26:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:26:56 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: add MODULE_STATE_GOING notifier call\n  module: Enhance verify_export_symbols\n  module: set unused_gpl_crcs instead of overwriting unused_crcs\n  module: neaten __find_symbol, rename to find_symbol\n  module: reduce module image and resident size\n  module: make module_sect_attrs private to kernel/module.c\n"
    },
    {
      "commit": "8a3e77cc212f3bc8eccc95e0d046405cf2a02764",
      "tree": "a5812f9b077d7faf00f82969a9bd766e97ecfd97",
      "parents": [
        "55e462b05b5df4fd113c4a304c4f487d44b0898e"
      ],
      "author": {
        "name": "Andrew Liu",
        "email": "shengping.liu@windriver.com",
        "time": "Thu May 01 04:35:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:02 2008 -0700"
      },
      "message": "workqueue: remove redundant function invocation\n\ntimer_stats_timer_set_start_info is invoked twice, additionally, the\ninvocation of this function can be moved to where it is only called when a\ndelay is really required.\n\nSigned-off-by: Andrew Liu \u003cshengping.liu@windriver.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be089d79c46f5efa77fbdf03c5e576e220bf143f",
      "tree": "4aee7d61812806d797b60fe6b8f4987dcc03c011",
      "parents": [
        "c85d194bfd2e36c5254b8058c1f35cfce0dfa10a"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu May 01 04:34:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:00 2008 -0700"
      },
      "message": "kexec: make extended crashkernel\u003d syntax less confusing\n\nThe extended crashkernel syntax is a little confusing in the way it handles\nranges.  eg:\n\n crashkernel\u003d512M-2G:64M,2G-:128M\n\nMeans if the machine has between 512M and 2G of memory the crash region should\nbe 64M, and if the machine has 2G of memory the region should be 64M.  Only if\nthe machine has more than 2G memory will 128M be allocated.\n\nAlthough that semantic is correct, it is somewhat baffling.  Instead I propose\nthat the end of the range means the first address past the end of the range,\nie: 512M up to but not including 2G.\n\n[bwalle@suse.de: clarify inclusive/exclusive in crashkernel commandline in documentation]\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nAcked-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7dffa3c673fbcf835cd7be80bb4aec8ad3f51168",
      "tree": "63264208ed97f18a74a5a7cd2e100cc2c4e13449",
      "parents": [
        "8383c42399f394a89bd6c2f03632c53689bdde7a"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "ntp: handle leap second via timer\n\nRemove the leap second handling from second_overflow(), which doesn\u0027t have to\ncheck for it every second anymore.  With CONFIG_NO_HZ this also makes sure the\nleap second is handled close to the full second.  Additionally this makes it\npossible to abort a leap second properly by resetting the STA_INS/STA_DEL\nstatus bits.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "8383c42399f394a89bd6c2f03632c53689bdde7a",
      "tree": "c3f3a42a546a4afe3746e5894bcd425dc5a3d0bb",
      "parents": [
        "7fc5c78409479d826341b103bdf734cb4fb02436"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "ntp: remove current_tick_length()\n\ncurrent_tick_length used to do a little more, but now it just returns\ntick_length, which we can also access directly at the few places, where it\u0027s\nneeded.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "7fc5c78409479d826341b103bdf734cb4fb02436",
      "tree": "e68d8edddd633a9ed410b304684343afacf36175",
      "parents": [
        "153b5d054ac2d98ea0d86504884326b6777f683d"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "ntp: rename TICK_LENGTH_SHIFT to NTP_SCALE_SHIFT\n\nAs TICK_LENGTH_SHIFT is used for more than just the tick length, the name\nisn\u0027t quite approriate anymore, so this renames it to NTP_SCALE_SHIFT.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "153b5d054ac2d98ea0d86504884326b6777f683d",
      "tree": "0512b4239959814a6cc6aa6c9e77abc36d3ab2f0",
      "parents": [
        "9f14f669d18477fe3df071e2fa4da36c00acee8e"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "ntp: support for TAI\n\nThis adds support for setting the TAI value (International Atomic Time).  The\nvalue is reported back to userspace via timex (as we don\u0027t have a\nntp_gettime() syscall).\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "9f14f669d18477fe3df071e2fa4da36c00acee8e",
      "tree": "84b5600017902ced77ee0cb9a4bc21a6768d22e5",
      "parents": [
        "074b3b87941c99bc0ce35385b5817924b1ed0c23"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "ntp: increase time_offset resolution\n\ntime_offset is already a 64bit value but its resolution barely used, so this\nmakes better use of it by replacing SHIFT_UPDATE with TICK_LENGTH_SHIFT.\n\nSide note: the SHIFT_HZ in SHIFT_UPDATE was incorrect for CONFIG_NO_HZ and the\nprimary reason for changing time_offset to 64bit to avoid the overflow.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "074b3b87941c99bc0ce35385b5817924b1ed0c23",
      "tree": "aa2d11a2df37d631236a28713873023632f74a91",
      "parents": [
        "eea83d896e318bda54be2d2770d2c5d6668d11db"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "ntp: increase time_freq resolution\n\nThis changes time_freq to a 64bit value and makes it static (the only outside\nuser had no real need to modify it).  Intermediate values were already 64bit,\nso the change isn\u0027t that big, but it saves a little in shifts by replacing\nSHIFT_NSEC with TICK_LENGTH_SHIFT.  PPM_SCALE is then used to convert between\nuser space and kernel space representation.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "eea83d896e318bda54be2d2770d2c5d6668d11db",
      "tree": "581f455e02ed3d03e543642b5d54b83dc75d47c7",
      "parents": [
        "ee9851b218b8bafa22942b5404505ff3d2d34324"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "ntp: NTP4 user space bits update\n\nThis adds a few more things from the ntp nanokernel related to user space.\nIt\u0027s now possible to select the resolution used of some values via STA_NANO\nand the kernel reports in which mode it works (pll/fll).\n\nIf some values for adjtimex() are outside the acceptable range, they are now\nsimply normalized instead of letting the syscall fail.  I removed\nMOD_CLKA/MOD_CLKB as the mapping didn\u0027t really makes any sense, the kernel\ndoesn\u0027t support setting the clock.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "ee9851b218b8bafa22942b5404505ff3d2d34324",
      "tree": "82e5a421d18bd3d469afd9c4c2827a865b9f19b5",
      "parents": [
        "f8bd2258e2d520dff28c855658bd24bdafb5102d"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "ntp: cleanup ntp.c\n\nThis is mostly a style cleanup of ntp.c and extracts part of do_adjtimex as\nntp_update_offset().  Otherwise the functionality is still the same as before.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "f8bd2258e2d520dff28c855658bd24bdafb5102d",
      "tree": "d76db1dc858cb316bc7d5b8473f690a753fd2c93",
      "parents": [
        "6f6d6a1a6a1336431a6cba60ace9e97c3a496a19"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "remove div_long_long_rem\n\nx86 is the only arch right now, which provides an optimized for\ndiv_long_long_rem and it has the downside that one has to be very careful that\nthe divide doesn\u0027t overflow.\n\nThe API is a little akward, as the arguments for the unsigned divide are\nsigned.  The signed version also doesn\u0027t handle a negative divisor and\nproduces worse code on 64bit archs.\n\nThere is little incentive to keep this API alive, so this converts the few\nusers to the new API.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f6d6a1a6a1336431a6cba60ace9e97c3a496a19",
      "tree": "f32e82fc3a50b6877afa3220bdb6f7ea0582e07f",
      "parents": [
        "71abb3af62dfa52930755f3b6497eafbe1d6ec85"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "rename div64_64 to div64_u64\n\nRename div64_64 to div64_u64 to make it consistent with the other divide\nfunctions, so it clearly includes the type of the divide.  Move its definition\nto math64.h as currently no architecture overrides the generic implementation.\n They can still override it of course, but the duplicated declarations are\navoided.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71abb3af62dfa52930755f3b6497eafbe1d6ec85",
      "tree": "8e37f74017b800127538f6620820ea90b53169b5",
      "parents": [
        "2418f4f28f8467b92a6177af32d05737ebf6206c"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "convert a few do_div users\n\nThis converts a few users of do_div to div_[su]64 and this demonstrates nicely\nhow it can reduce some expressions to one-liners.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\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": "e5e417232e7c9ecc58a77902d2e8dd46792cd092",
      "tree": "d42798a6dafa81ff63784b2017ce647bd41a4f57",
      "parents": [
        "6bffd7b57d747d74ec2962d7c822f4b86e9f64d4"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu May 01 04:34:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "Fix cpu hotplug problem in softirq code\n\ncurrently cpu hotplug (unplug) seems broken on s390 and likely others. On cpu\nunplug the system starts to behave very strange and hangs.\n\nI bisected the problem to the following commit:\n\ncommit 48f20a9a9488c432fc86df1ff4b7f4fa895d1183\nAuthor: Olof Johansson \u003colof@lixom.net\u003e\nDate: Tue Mar 4 15:23:25 2008 -0800\n\ttasklets: execute tasklets in the same order they were queued\n\nReverting this patch seems to fix the problem.  I looked into takeover_tasklet\nand it seems that there is a way to corrupt the tail pointer of the current\ncpu.  If the tasklet list of the frozen cpu is empty, the tail pointer of the\ncurrent cpu points to the address of the head pointer of the stopped cpu and\nnot to the next pointer of a tasklet_struct.\n\nThis patch avoids the list splice of the list is empty and cpu hotplug seems\nto work as the tail pointer is not corrupted.  Olof, can you look into that\npatch and ACK/NACK it so Andrew can push this to Linus, if appropriate?\nPlease note that some lines are longer than 80 chars, but line-wrapping looked\nworse that this version.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Olof Johansson \u003colof@lixom.net\u003e\nAcked-by: 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": "df4b565e1fbc777bb6e274378a41fa8ff7485680",
      "tree": "8b64f22bb57419d57fdd4914645bafeaf9171733",
      "parents": [
        "b211104d111c99dbb97c636b57bd9db711455684"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "peter.oberparleiter@de.ibm.com",
        "time": "Mon Apr 21 14:34:31 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:01 2008 +1000"
      },
      "message": "module: add MODULE_STATE_GOING notifier call\n\nProvide module unload callback. Required by the gcov profiling\ninfrastructure to keep track of profiling data structures.\n\nSigned-off-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b211104d111c99dbb97c636b57bd9db711455684",
      "tree": "129d949287a17457f3a8081dd6f04b8a945bcb29",
      "parents": [
        "4e2d92454b2d822fe1d474efabccc2a3806d5f86"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 +1000"
      },
      "message": "module: Enhance verify_export_symbols\n\nMake verify_export_symbols check the modules unused, unused_gpl and\ngpl_future syms.\n\nInspired by Jan Beulich\u0027s fix, but table-driven.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4e2d92454b2d822fe1d474efabccc2a3806d5f86",
      "tree": "88ff1b8d85d367a9f70f538b326e1d13ec0173d9",
      "parents": [
        "ad9546c9917d44eddc7676b639296d624cee455e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu May 01 21:15:00 2008 +1000"
      },
      "message": "module: set unused_gpl_crcs instead of overwriting unused_crcs\n\nObvious typo, but I don\u0027t know of any modules with unused GPL exports,\nand then it would take someone noticing that the version shouldn\u0027t\nhave matched in a dependent module.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    }
  ],
  "next": "ad9546c9917d44eddc7676b639296d624cee455e"
}
