)]}'
{
  "log": [
    {
      "commit": "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
      "tree": "cdee5802117c2e78cf18df7fa524c7390d1bdb67",
      "parents": [
        "e58918ab9d4cd375f6d842e6d88cf4d7a55cbfcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:59:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:45:34 2008 +0100"
      },
      "message": "ftrace: add ftrace_off_permanent\n\nImpact: add new API to disable all of ftrace on anomalies\n\nIt case of a serious anomaly being detected (like something caught by\nlockdep) it is a good idea to disable all tracing immediately, without\ngrabing any locks.\n\nThis patch adds ftrace_off_permanent that disables the tracers, function\ntracing and ring buffers without a way to enable them again. This should\nonly be used when something serious has been detected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0a70c735ef714fe1b6777b571630c3d50c7b008",
      "tree": "3f4f3bb23441a284107bede9890c4e45827634e0",
      "parents": [
        "9676e73a9e0cbdc521e1ebf4e13e6e5aada34247",
        "60a515132086b2c28a8141d873297fdf7a180ca7",
        "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
        "522a110b42b306d696cf84e34c677ed0e7080194"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/profiling\u0027, \u0027tracing/options\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "522a110b42b306d696cf84e34c677ed0e7080194",
      "tree": "a77d238aed14185cb5662daae5f01f0da405a834",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Fri Nov 21 11:00:18 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 21 08:49:52 2008 +0100"
      },
      "message": "function tracing: fix wrong position computing of stack_trace\n\nImpact: make output of stack_trace complete if buffer overruns\n\nWhen read buffer overruns, the output of stack_trace isn\u0027t complete.\n\nWhen printing records with seq_printf in t_show, if the read buffer\nhas overruned by the current record, then this record won\u0027t be\nprinted to user space through read buffer, it will just be dropped in\nthis printing.\n\nWhen next printing, t_start should return the \"*pos\"th record, which\nis the one dropped by previous printing, but it just returns\n(m-\u003eprivate + *pos)th record.\n\nHere we use a more sane method to implement seq_operations which can\nbe found in kernel code. Thus we needn\u0027t initialize m-\u003eprivate.\n\nAbout testing, it\u0027s not easy to overrun read buffer, but we can use\nseq_printf to print more padding bytes in t_show, then it\u0027s easy to\ncheck whether or not records are lost.\n\nThis commit has been tested on both condition of overrun and non\noverrun.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "95763dd52b4b9b3578d3428001ece1e11b016ffc",
      "tree": "fae1b9baa31810dcf45aa2fe2ab38a8fdbbd1a43",
      "parents": [
        "0260da162fa12c899b4377e71c243a631438c148",
        "6d5b43a67accf6793ed259f6534b4bd53b1e5696"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:11:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:11:21 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: fix dyn ftrace filter selection\n  ftrace: make filtered functions effective on setting\n  ftrace: fix set_ftrace_filter\n  trace: introduce missing mutex_unlock()\n  tracing: kernel/trace/trace.c: introduce missing kfree()\n"
    },
    {
      "commit": "33d283bef23132c48195eafc21449f8ba88fce6b",
      "tree": "e4a04851127f2f46122cb96fc13e8da71a7bcf10",
      "parents": [
        "ea7e743e49b94749fc739baaf160809ed279aeda"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:50:00 2008 -0800"
      },
      "message": "cgroups: fix a serious bug in cgroupstats\n\nTry this, and you\u0027ll get oops immediately:\n # cd Documentation/accounting/\n # gcc -o getdelays getdelays.c\n # mount -t cgroup -o debug xxx /mnt\n # ./getdelays -C /mnt/tasks\n\nBecause a normal file\u0027s dentry-\u003ed_fsdata is a pointer to struct cftype,\nnot struct cgroup.\n\nAfter the patch, it returns EINVAL if we try to get cgroupstats\nfrom a normal file.\n\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966c8c12dc9e77f931e2281ba25d2f0244b06949",
      "tree": "8914c842252f6872cca006b482d32ee7a12da808",
      "parents": [
        "3fa59dfbc3b223f02c26593be69ce6fc9a940405"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Nov 19 15:36:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "sprint_symbol(): use less stack\n\nsprint_symbol(), itself used when dumping stacks, has been wasting 128\nbytes of stack: lookup the symbol directly into the buffer supplied by the\ncaller, instead of using a locally declared namebuf.\n\nI believe the name !\u003d buffer strcpy() is obsolete: the design here dates\nfrom when module symbol lookup pointed into a supposedly const but sadly\nvolatile table; nowadays it copies, but an uncalled strcpy() looks better\nhere than the risk of a recursive BUG_ON().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa59dfbc3b223f02c26593be69ce6fc9a940405",
      "tree": "d3d9df521342b49abc636e1ee465b704858b3e0d",
      "parents": [
        "0ae15132a4f5c758a6ffcde74495641dc3f62ba1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Nov 19 15:36:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cgroup: fix potential deadlock in pre_destroy\n\nAs Balbir pointed out, memcg\u0027s pre_destroy handler has potential deadlock.\n\nIt has following lock sequence.\n\n\tcgroup_mutex (cgroup_rmdir)\n\t    -\u003e pre_destroy -\u003e mem_cgroup_pre_destroy-\u003e force_empty\n\t\t-\u003e cpu_hotplug.lock. (lru_add_drain_all-\u003e\n\t\t\t\t      schedule_work-\u003e\n                                      get_online_cpus)\n\nBut, cpuset has following.\n\tcpu_hotplug.lock (call notifier)\n\t\t-\u003e cgroup_mutex. (within notifier)\n\nThen, this lock sequence should be fixed.\n\nConsidering how pre_destroy works, it\u0027s not necessary to holding\ncgroup_mutex() while calling it.\n\nAs a side effect, we don\u0027t have to wait at this mutex while memcg\u0027s\nforce_empty works.(it can be long when there are tons of pages.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f481891fdc49d3d1b8a9674a1825d183069a805f",
      "tree": "4f027a1321dcd06165394d0a23e49df51c8befc1",
      "parents": [
        "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cpuset: update top cpuset\u0027s mems after adding a node\n\nAfter adding a node into the machine, top cpuset\u0027s mems isn\u0027t updated.\n\nBy reviewing the code, we found that the update function\n\n  cpuset_track_online_nodes()\n\nwas invoked after node_states[N_ONLINE] changes.  It is wrong because\nN_ONLINE just means node has pgdat, and if node has/added memory, we use\nN_HIGH_MEMORY.  So, We should invoke the update function after\nnode_states[N_HIGH_MEMORY] changes, just like its commit says.\n\nThis patch fixes it.  And we use notifier of memory hotplug instead of\ndirect calling of cpuset_track_online_nodes().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de11defebf00007677fb7ee91d9b089b78786fbb",
      "tree": "8219faf1b7992be77a612e778c2573c55f56cf19",
      "parents": [
        "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Nov 19 15:36:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "reintroduce accept4\n\nIntroduce a new accept4() system call.  The addition of this system call\nmatches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),\ninotify_init1(), epoll_create1(), pipe2()) which added new system calls\nthat differed from analogous traditional system calls in adding a flags\nargument that can be used to access additional functionality.\n\nThe accept4() system call is exactly the same as accept(), except that\nit adds a flags bit-mask argument.  Two flags are initially implemented.\n(Most of the new system calls in 2.6.27 also had both of these flags.)\n\nSOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled\nfor the new file descriptor returned by accept4().  This is a useful\nsecurity feature to avoid leaking information in a multithreaded\nprogram where one thread is doing an accept() at the same time as\nanother thread is doing a fork() plus exec().  More details here:\nhttp://udrepper.livejournal.com/20407.html \"Secure File Descriptor Handling\",\nUlrich Drepper).\n\nThe other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag\nto be enabled on the new open file description created by accept4().\n(This flag is merely a convenience, saving the use of additional calls\nfcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.\n\nHere\u0027s a test program.  Works on x86-32.  Should work on x86-64, but\nI (mtk) don\u0027t have a system to hand to test with.\n\nIt tests accept4() with each of the four possible combinations of\nSOCK_CLOEXEC and SOCK_NONBLOCK set/clear in \u0027flags\u0027, and verifies\nthat the appropriate flags are set on the file descriptor/open file\ndescription returned by accept4().\n\nI tested Ulrich\u0027s patch in this thread by applying against 2.6.28-rc2,\nand it passes according to my test program.\n\n/* test_accept4.c\n\n  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk\n       \u003cmtk.manpages@gmail.com\u003e\n\n  Licensed under the GNU GPLv2 or later.\n*/\n#define _GNU_SOURCE\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n\n#define PORT_NUM 33333\n\n#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n\n/**********************************************************************/\n\n/* The following is what we need until glibc gets a wrapper for\n  accept4() */\n\n/* Flags for socket(), socketpair(), accept4() */\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC    O_CLOEXEC\n#endif\n#ifndef SOCK_NONBLOCK\n#define SOCK_NONBLOCK   O_NONBLOCK\n#endif\n\n#ifdef __x86_64__\n#define SYS_accept4 288\n#elif __i386__\n#define USE_SOCKETCALL 1\n#define SYS_ACCEPT4 18\n#else\n#error \"Sorry -- don\u0027t know the syscall # on this architecture\"\n#endif\n\nstatic int\naccept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)\n{\n   printf(\"Calling accept4(): flags \u003d %x\", flags);\n   if (flags !\u003d 0) {\n       printf(\" (\");\n       if (flags \u0026 SOCK_CLOEXEC)\n           printf(\"SOCK_CLOEXEC\");\n       if ((flags \u0026 SOCK_CLOEXEC) \u0026\u0026 (flags \u0026 SOCK_NONBLOCK))\n           printf(\" \");\n       if (flags \u0026 SOCK_NONBLOCK)\n           printf(\"SOCK_NONBLOCK\");\n       printf(\")\");\n   }\n   printf(\"\\n\");\n\n#if USE_SOCKETCALL\n   long args[6];\n\n   args[0] \u003d fd;\n   args[1] \u003d (long) sockaddr;\n   args[2] \u003d (long) addrlen;\n   args[3] \u003d flags;\n\n   return syscall(SYS_socketcall, SYS_ACCEPT4, args);\n#else\n   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);\n#endif\n}\n\n/**********************************************************************/\n\nstatic int\ndo_test(int lfd, struct sockaddr_in *conn_addr,\n       int closeonexec_flag, int nonblock_flag)\n{\n   int connfd, acceptfd;\n   int fdf, flf, fdf_pass, flf_pass;\n   struct sockaddr_in claddr;\n   socklen_t addrlen;\n\n   printf(\"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\n\");\n\n   connfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (connfd \u003d\u003d -1)\n       die(\"socket\");\n   if (connect(connfd, (struct sockaddr *) conn_addr,\n               sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"connect\");\n\n   addrlen \u003d sizeof(struct sockaddr_in);\n   acceptfd \u003d accept4(lfd, (struct sockaddr *) \u0026claddr, \u0026addrlen,\n                      closeonexec_flag | nonblock_flag);\n   if (acceptfd \u003d\u003d -1) {\n       perror(\"accept4()\");\n       close(connfd);\n       return 0;\n   }\n\n   fdf \u003d fcntl(acceptfd, F_GETFD);\n   if (fdf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   fdf_pass \u003d ((fdf \u0026 FD_CLOEXEC) !\u003d 0) \u003d\u003d\n              ((closeonexec_flag \u0026 SOCK_CLOEXEC) !\u003d 0);\n   printf(\"Close-on-exec flag is %sset (%s); \",\n           (fdf \u0026 FD_CLOEXEC) ? \"\" : \"not \",\n           fdf_pass ? \"OK\" : \"failed\");\n\n   flf \u003d fcntl(acceptfd, F_GETFL);\n   if (flf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   flf_pass \u003d ((flf \u0026 O_NONBLOCK) !\u003d 0) \u003d\u003d\n              ((nonblock_flag \u0026 SOCK_NONBLOCK) !\u003d0);\n   printf(\"nonblock flag is %sset (%s)\\n\",\n           (flf \u0026 O_NONBLOCK) ? \"\" : \"not \",\n           flf_pass ? \"OK\" : \"failed\");\n\n   close(acceptfd);\n   close(connfd);\n\n   printf(\"Test result: %s\\n\", (fdf_pass \u0026\u0026 flf_pass) ? \"PASS\" : \"FAIL\");\n   return fdf_pass \u0026\u0026 flf_pass;\n}\n\nstatic int\ncreate_listening_socket(int port_num)\n{\n   struct sockaddr_in svaddr;\n   int lfd;\n   int optval;\n\n   memset(\u0026svaddr, 0, sizeof(struct sockaddr_in));\n   svaddr.sin_family \u003d AF_INET;\n   svaddr.sin_addr.s_addr \u003d htonl(INADDR_ANY);\n   svaddr.sin_port \u003d htons(port_num);\n\n   lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (lfd \u003d\u003d -1)\n       die(\"socket\");\n\n   optval \u003d 1;\n   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026optval,\n                  sizeof(optval)) \u003d\u003d -1)\n       die(\"setsockopt\");\n\n   if (bind(lfd, (struct sockaddr *) \u0026svaddr,\n            sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"bind\");\n\n   if (listen(lfd, 5) \u003d\u003d -1)\n       die(\"listen\");\n\n   return lfd;\n}\n\nint\nmain(int argc, char *argv[])\n{\n   struct sockaddr_in conn_addr;\n   int lfd;\n   int port_num;\n   int passed;\n\n   passed \u003d 1;\n\n   port_num \u003d (argc \u003e 1) ? atoi(argv[1]) : PORT_NUM;\n\n   memset(\u0026conn_addr, 0, sizeof(struct sockaddr_in));\n   conn_addr.sin_family \u003d AF_INET;\n   conn_addr.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n   conn_addr.sin_port \u003d htons(port_num);\n\n   lfd \u003d create_listening_socket(port_num);\n\n   if (!do_test(lfd, \u0026conn_addr, 0, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, 0, SOCK_NONBLOCK))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))\n       passed \u003d 0;\n\n   close(lfd);\n\n   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);\n}\n\n[mtk.manpages@gmail.com: rewrote changelog, updated test program]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60a515132086b2c28a8141d873297fdf7a180ca7",
      "tree": "5ed80d68d8f711caed6121c56b3c2dc99a545de8",
      "parents": [
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Nov 18 22:20:10 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:19:16 2008 +0100"
      },
      "message": "profiling: clean up profile_nop()\n\nImpact: cleanup\n\nNo point in inlining this.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9676e73a9e0cbdc521e1ebf4e13e6e5aada34247",
      "tree": "b5ea1cace6c4f2f57fcebfc42418b7f53fee84e5",
      "parents": [
        "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371",
        "86fa2f60674540df0b34f5c547ed0c1cf3a8f212",
        "6d5b43a67accf6793ed259f6534b4bd53b1e5696"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:04:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:04:25 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/ftrace.c\n\n[ We conflicted here because we backported a few fixes to\n  tracing/urgent - which has different internal APIs. ]\n"
    },
    {
      "commit": "86fa2f60674540df0b34f5c547ed0c1cf3a8f212",
      "tree": "a367d69ad41f46362dfdb8eaf19ec8a6f8a8c812",
      "parents": [
        "a22506347d038a66506c6f57e9b97104128e280d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:00:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:00:15 2008 +0100"
      },
      "message": "ftrace: fix selftest locking\n\nImpact: fix self-test boot crash\n\nSelf-test failure forgot to re-lock the BKL - crashing the next\ninitcall:\n\nTesting tracer irqsoff: .. no entries found ..FAILED!\ninitcall init_irqsoff_tracer+0x0/0x11 returned 0 after 3906 usecs\ncalling  init_mmio_trace+0x0/0xf @ 1\n------------[ cut here ]------------\nKernel BUG at c0c0a915 [verbose debug info unavailable]\ninvalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC\nlast sysfs file:\n\nPid: 1, comm: swapper Not tainted (2.6.28-rc5-tip #53704)\nEIP: 0060:[\u003cc0c0a915\u003e] EFLAGS: 00010286 CPU: 1\nEIP is at unlock_kernel+0x10/0x2b\nEAX: ffffffff EBX: 00000000 ECX: 00000000 EDX: f7030000\nESI: c12da19c EDI: 00000000 EBP: f7039f54 ESP: f7039f54\n DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\nProcess swapper (pid: 1, ti\u003df7038000 task\u003df7030000 task.ti\u003df7038000)\nStack:\n f7039f6c c0164d30 c013fed8 a7d8d7b4 00000000 00000000 f7039f74 c12fb78a\n f7039fd0 c0101132 c12fb77d 00000000 6f727200 6f632072 2d206564 c1002031\n 0000000f f7039fa2 f7039fb0 3531b171 00000000 00000000 0000002f c12ca480\nCall Trace:\n [\u003cc0164d30\u003e] ? register_tracer+0x66/0x13f\n [\u003cc013fed8\u003e] ? ktime_get+0x19/0x1b\n [\u003cc12fb78a\u003e] ? init_mmio_trace+0xd/0xf\n [\u003cc0101132\u003e] ? do_one_initcall+0x4a/0x111\n [\u003cc12fb77d\u003e] ? init_mmio_trace+0x0/0xf\n [\u003cc015c7e6\u003e] ? init_irq_proc+0x46/0x59\n [\u003cc12e851d\u003e] ? kernel_init+0x104/0x152\n [\u003cc12e8419\u003e] ? kernel_init+0x0/0x152\n [\u003cc01038b7\u003e] ? kernel_thread_helper+0x7/0x10\nCode: 58 14 43 75 0a b8 00 9b 2d c1 e8 51 43 7a ff 64 a1 00 a0 37 c1 89 58 14 5b 5d c3 55 64 8b 15 00 a0 37 c1 83 7a 14 00 89 e5 79 04 \u003c0f\u003e 0b eb fe 8b 42 14 48 85 c0 89 42 14 79 0a b8 00 9b 2d c1 e8\nEIP: [\u003cc0c0a915\u003e] unlock_kernel+0x10/0x2b SS:ESP 0068:f7039f54\n---[ end trace a7919e7f17c0a725 ]---\nKernel panic - not syncing: Attempted to kill init!\n\nSo clean up the flow a bit.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d5b43a67accf6793ed259f6534b4bd53b1e5696",
      "tree": "b22f2b7dc929b523faf63d2734d8b22b5fd4a843",
      "parents": [
        "641d2f63cfe24539e154efa2f932937934c27dde",
        "32464779a1b8c15e9aa9aa0306b2f735080df9d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 09:00:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 09:00:50 2008 +0100"
      },
      "message": "Merge branch \u0027tip/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "32464779a1b8c15e9aa9aa0306b2f735080df9d8",
      "tree": "c26673645d5695f29b15a743476b76ce44048218",
      "parents": [
        "820432783190b4096499e38a4a4d7095c511913d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 18 20:33:02 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:19:47 2008 -0500"
      },
      "message": "ftrace: fix dyn ftrace filter selection\n\nImpact: clean up and fix for dyn ftrace filter selection\n\nThe previous logic of the dynamic ftrace selection of enabling\nor disabling functions was complex and incorrect. This patch simplifies\nthe code and corrects the usage. This simplification also makes the\ncode more robust.\n\nHere is the correct logic:\n\n  Given a function that can be traced by dynamic ftrace:\n\n  If the function is not to be traced, disable it if it was enabled.\n  (this is if the function is in the set_ftrace_notrace file)\n\n  (filter is on if there exists any functions in set_ftrace_filter file)\n\n  If the filter is on, and we are enabling functions:\n    If the function is in set_ftrace_filter, enable it if it is not\n      already enabled.\n    If the function is not in set_ftrace_filter, disable it if it is not\n      already disabled.\n\n  Otherwise, if the filter is off and we are enabling function tracing:\n    Enable the function if it is not already enabled.\n\n  Otherwise, if we are disabling function tracing:\n    Disable the function if it is not already disabled.\n\nThis code now sets or clears the ENABLED flag in the record, and at the\nend it will enable the function if the flag is set, or disable the function\nif the flag is cleared.\n\nThe parameters for the function that does the above logic is also\nsimplified. Instead of passing in confusing \"new\" and \"old\" where\nthey might be swapped if the \"enabled\" flag is not set. The old logic\neven had one of the above always NULL and had to be filled in. The new\nlogic simply passes in one parameter called \"nop\". A \"call\" is calculated\nin the code, and at the end of the logic, when we know we need to either\ndisable or enable the function, we can then use the \"nop\" and \"call\"\nproperly.\n\nThis code is more robust than the previous version.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "820432783190b4096499e38a4a4d7095c511913d",
      "tree": "d8300e0853c44fbc157625a1b57f55c7162d01c9",
      "parents": [
        "f10ed36ec1118c6f9523cd7e53cb0aadb53efe9f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 18 23:57:14 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:18:54 2008 -0500"
      },
      "message": "ftrace: make filtered functions effective on setting\n\nImpact: fix filter selection to apply when set\n\nIt can be confusing when the set_filter_functions is set (or cleared)\nand the functions being recorded by the dynamic tracer does not\nmatch.\n\nThis patch causes the code to be updated if the function tracer is\nenabled and the filter is changed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f10ed36ec1118c6f9523cd7e53cb0aadb53efe9f",
      "tree": "d3f801ab1c8ab58642b04a0f5a51b25741261667",
      "parents": [
        "1e74f3000b86969de421ca0da08f42e7d21cbd99"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 07 22:36:02 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:17:45 2008 -0500"
      },
      "message": "ftrace: fix set_ftrace_filter\n\nImpact: fix of output of set_ftrace_filter\n\nThe commit \"ftrace: do not show freed records in\n             available_filter_functions\"\n\nRemoved a bit too much from the set_ftrace_filter code, where we now see\nall functions in the set_ftrace_filter file even when we set a filter.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a22506347d038a66506c6f57e9b97104128e280d",
      "tree": "88a21ea77883d13f92c4eda322b44bbddcd48aee",
      "parents": [
        "1c80025a49855b12fa09bb6db71820e3367b1369"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Nov 18 18:06:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:54:50 2008 +0100"
      },
      "message": "ftrace: preemptoff selftest not working\n\nImpact: fix preemptoff and preemptirqsoff tracer self-tests\n\nI was wondering why the preemptoff and preemptirqsoff tracer selftests\ndon\u0027t work on s390. After all its just that they get called from\nnon-preemptible context:\n\nkernel_init() will execute all initcalls, however the first line in\nkernel_init() is lock_kernel(), which causes the preempt_count to be\nincreased. Any later calls to add_preempt_count() (especially those\nfrom the selftests) will therefore not result in a call to\ntrace_preempt_off() since the check below in add_preempt_count()\nwill be false:\n\n        if (preempt_count() \u003d\u003d val)\n                trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));\n\nHence the trace buffer will be empty.\n\nFix this by releasing the BKL during the self-tests.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "641d2f63cfe24539e154efa2f932937934c27dde",
      "tree": "fdd8dce64b14efecffb062480ad02bf2e57ac041",
      "parents": [
        "5177dc3f2b3220b2dcfcf35eb9e6ec53ee818231"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Tue Nov 18 19:22:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:15 2008 +0100"
      },
      "message": "trace: introduce missing mutex_unlock()\n\nImpact: fix tracing buffer mutex leak in case of allocation failure\n\nThis error was spotted by this semantic patch:\n\n  http://www.emn.fr/x-info/coccinelle/mut.html\n\nIt looks correct as far as I can tell. Please review.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5177dc3f2b3220b2dcfcf35eb9e6ec53ee818231",
      "tree": "29dd80a7b33426d0890aa07b5864224557c62af7",
      "parents": [
        "0bb943c7a2136716757a263f604d26309fd98042",
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:07 2008 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/urgent\n"
    },
    {
      "commit": "7f0f598a0069d1ab072375965a4b69137233169c",
      "tree": "00cb9320e0caef179d6075b54fa611de6551e3e2",
      "parents": [
        "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
        "c26156b2534c75bb3cdedf76f6ad1340971cf5bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "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  block: hold extra reference to bio in blk_rq_map_user_iov()\n  relay: fix cpu offline problem\n  Release old elevator on change elevator\n  block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT\u003dy and nash\n  block/md: fix md autodetection\n  block: make add_partition() return pointer to hd_struct\n  block: fix add_partition() error path\n"
    },
    {
      "commit": "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
      "tree": "afc4bd95482576e7dfd0685d1cb2bed6cac65db9",
      "parents": [
        "72b51a6b4d803381f16d819df392dd1efd1c7181"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Nov 18 06:56:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:36 2008 -0800"
      },
      "message": "suspend: use WARN not WARN_ON to print the message\n\nBy using WARN(), kerneloops.org can collect which component is causing\nthe delay and make statistics about that. suspend_test_finish() is\ncurrently the number 2 item but unless we can collect who\u0027s causing\nit we\u0027re not going to be able to fix the hot topic ones..\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72b51a6b4d803381f16d819df392dd1efd1c7181",
      "tree": "7e27a03c10cb2f5e6593dd599b3c8b0bcd0f9ee9",
      "parents": [
        "8c60bfb0666952728b3be73ef9bc133d686aebba",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kernel/profile.c: fix section mismatch warning\n  function tracing: fix wrong pos computing when read buffer has been fulfilled\n  tracing: fix mmiotrace resizing crash\n  ring-buffer: no preempt for sched_clock()\n  ring-buffer: buffer record on/off switch\n"
    },
    {
      "commit": "8c60bfb0666952728b3be73ef9bc133d686aebba",
      "tree": "d532c12f7e414ee3ce6ed3bda912fa145e96de29",
      "parents": [
        "b6584065ee833dcec20683be7fc25da3f2268cee",
        "700018e0a77b4113172257fcdaa1c58e27a5074f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:21 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: fix regression when failed to generate sched domains\n  sched, signals: fix the racy usage of -\u003esignal in account_group_xxx/run_posix_cpu_timers\n  sched: fix kernel warning on /proc/sched_debug access\n  sched: correct sched-rt-group.txt pathname in init/Kconfig\n"
    },
    {
      "commit": "0bb943c7a2136716757a263f604d26309fd98042",
      "tree": "80af655ff3272a820a9090e6fa08c9e6472f0bed",
      "parents": [
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Nov 14 19:05:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 16:59:58 2008 +0100"
      },
      "message": "tracing: kernel/trace/trace.c: introduce missing kfree()\n\nImpact: fix memory leak\n\nError handling code following a kzalloc should free the allocated data.\n\nThe semantic match that finds the problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\n(\nif ((x@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...)) \u003d\u003d NULL) S\n|\nx@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...);\n...\nif (x \u003d\u003d NULL) S\n)\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\nx-\u003ef \u003d E\n...\u003e\n(\n return \\(0\\|\u003c+...x...+\u003e\\|ptr\\);\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmalloc %s return %s\" % (p1[0].file,p1[0].line,p2[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98ba4031ab2adc8b394295e68aa4c8fe9d5060db",
      "tree": "893ac2f6e4efddf79c192e4bae512e3a3f864baa",
      "parents": [
        "68aee07f9bad2c830a898cf6d6bfc11ea24efc40"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Nov 14 10:44:59 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "relay: fix cpu offline problem\n\nrelay_open() will close allocated buffers when failed.\nbut if cpu offlined, some buffer will not be closed.\nthis patch fixed it.\n\nand did cleanup for relay_reset() too.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
      "tree": "b45429e95fc7d52bae32e62ef514f3d7ccf62ce6",
      "parents": [
        "0619faf657806b943e6acf51f60f1cd023a96c78"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 03:22:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:11:00 2008 +0100"
      },
      "message": "tracing/function-return-tracer: add the overrun field\n\nImpact: help to find the better depth of trace\n\nWe decided to arbitrary define the depth of function return trace as\n\"20\". Perhaps this is not enough. To help finding an optimal depth, we\nmeasure now the overrun: the number of functions that have been missed\nfor the current thread. By default this is not displayed, we have to\ndo set a particular flag on the return tracer: echo overrun \u003e\n/debug/tracing/trace_options And the overrun will be printed on the\nright.\n\nAs the trace shows below, the current 20 depth is not enough.\n\nupdate_wall_time+0x37f/0x8c0 -\u003e update_xtime_cache (345 ns) (Overruns: 2838)\nupdate_wall_time+0x384/0x8c0 -\u003e clocksource_get_next (1141 ns) (Overruns: 2838)\ndo_timer+0x23/0x100 -\u003e update_wall_time (3882 ns) (Overruns: 2838)\ntick_do_update_jiffies64+0xbf/0x160 -\u003e do_timer (5339 ns) (Overruns: 2838)\ntick_sched_timer+0x6a/0xf0 -\u003e tick_do_update_jiffies64 (7209 ns) (Overruns: 2838)\nvgacon_set_cursor_size+0x98/0x120 -\u003e native_io_delay (2613 ns) (Overruns: 274)\nvgacon_cursor+0x16e/0x1d0 -\u003e vgacon_set_cursor_size (33151 ns) (Overruns: 274)\nset_cursor+0x5f/0x80 -\u003e vgacon_cursor (36432 ns) (Overruns: 274)\ncon_flush_chars+0x34/0x40 -\u003e set_cursor (38790 ns) (Overruns: 274)\nrelease_console_sem+0x1ec/0x230 -\u003e up (721 ns) (Overruns: 274)\nrelease_console_sem+0x225/0x230 -\u003e wake_up_klogd (316 ns) (Overruns: 274)\ncon_flush_chars+0x39/0x40 -\u003e release_console_sem (2996 ns) (Overruns: 274)\ncon_write+0x22/0x30 -\u003e con_flush_chars (46067 ns) (Overruns: 274)\nn_tty_write+0x1cc/0x360 -\u003e con_write (292670 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2a/0x90 -\u003e native_apic_mem_write (330 ns) (Overruns: 274)\nirq_enter+0x17/0x70 -\u003e idle_cpu (413 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2f/0x90 -\u003e irq_enter (1525 ns) (Overruns: 274)\nktime_get_ts+0x40/0x70 -\u003e getnstimeofday (465 ns) (Overruns: 274)\nktime_get_ts+0x60/0x70 -\u003e set_normalized_timespec (436 ns) (Overruns: 274)\nktime_get+0x16/0x30 -\u003e ktime_get_ts (2501 ns) (Overruns: 274)\nhrtimer_interrupt+0x77/0x1a0 -\u003e ktime_get (3439 ns) (Overruns: 274)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0619faf657806b943e6acf51f60f1cd023a96c78",
      "tree": "4b7a6e13ff4851a8719189d27c3ce8d3e91ac62d",
      "parents": [
        "adf9f19574334c9a29a2bc956009fcac7edf1a6b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 19:26:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:10:59 2008 +0100"
      },
      "message": "tracing/ftrace: make nop tracer using tracer flags\n\nImpact: give an example on how to use specific tracer flags\n\nThis patch propose to use the nop tracer to provide an\nexample for using the tracer\u0027s custom flags implementation.\n\nV2: replace structures and defines just after the headers includes for\n    cleanliness.\nV3: replace defines by enum values.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "adf9f19574334c9a29a2bc956009fcac7edf1a6b",
      "tree": "644415fb8e460290a6747c5933a1c62be9a9d50f",
      "parents": [
        "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 19:23:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:10:58 2008 +0100"
      },
      "message": "tracing/ftrace: implement a set_flag callback for tracers\n\nImpact: give a way to send specific messages to tracers\n\nThe current implementation of tracing uses some flags to control the\noutput of general tracers. But we have no way to implement custom\nflags handling for a specific tracer. This patch proposes a new\ncallback for the struct tracer which called set_flag and a structure\nthat represents a 32 bits variable flag.\n\nA tracer can implement a struct tracer_flags on which it puts the\ninitial value of the flag integer. Than it can place a range of flags\nwith their name and their flag mask on the flag integer. The structure\nthat implement a single flag is called struct tracer_opt.\n\nThese custom flags will be available through the trace_options file\nlike the general tracing flags. Changing their value is done like the\nother general flags. For example if you have a flag that calls \"foo\",\nyou can activate it by writing \"foo\" or \"nofoo\" on trace_options.\n\nNote that the set_flag callback is optional and is only needed if you\nwant the flags changing to be signaled to your tracer and let it to\naccept or refuse their assignment.\n\nV2: Some arrangements in coding style....\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371",
      "tree": "02e63e90cc26792eaea21dced12bd7c10f996d30",
      "parents": [
        "3f8e402f34ecc7d1d00b54703d3baa401b8bdd78",
        "0c726da983de0704254250ef6495ca152e7abcca",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:52:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:52:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "e270219f4372b58bd3eeac12bd9f7edc592b8f6b",
      "tree": "0b7a2eafcc19d20e0fdd05b4525ea8b8684e73f5",
      "parents": [
        "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Nov 18 10:15:24 2008 +0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:49:24 2008 +0100"
      },
      "message": "kernel/profile.c: fix section mismatch warning\n\nImpact: fix section mismatch warning in kernel/profile.c\n\nHere, profile_nop function has been called from a non-init function\ncreate_hash_tables(void). Which generetes a section mismatch warning.\nPreviously, create_hash_tables(void) was a init function. So, removing\n__init from create_hash_tables(void) requires profile_nop to be\nnon-init.\n\nThis patch makes profile_nop function inline and fixes the\nfollowing warning:\n\n WARNING: vmlinux.o(.text+0x6ebb6): Section mismatch in reference from\n the function create_hash_tables() to the function\n .init.text:profile_nop()\n The function create_hash_tables() references\n the function __init profile_nop().\n This is often because create_hash_tables lacks a __init\n annotation or the annotation of profile_nop is wrong.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "700018e0a77b4113172257fcdaa1c58e27a5074f",
      "tree": "60ea1cc7682b19203e1caab15ebb2285153eeee7",
      "parents": [
        "ad133ba3dc283300e5b62b5b7211d2f39fbf6ee7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 18 14:02:03 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:44:51 2008 +0100"
      },
      "message": "cpuset: fix regression when failed to generate sched domains\n\nImpact: properly rebuild sched-domains on kmalloc() failure\n\nWhen cpuset failed to generate sched domains due to kmalloc()\nfailure, the scheduler should fallback to the single partition\n\u0027fallback_doms\u0027 and rebuild sched domains, but now it only\ndestroys but not rebuilds sched domains.\n\nThe regression was introduced by:\n\n| commit dfb512ec4834116124da61d6c1ee10fd0aa32bd6\n| Author: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\n| Date:   Fri Aug 29 13:11:41 2008 -0700\n|\n|    sched: arch_reinit_sched_domains() must destroy domains to force rebuild\n\nAfter the above commit, partition_sched_domains(0, NULL, NULL) will\nonly destroy sched domains and partition_sched_domains(1, NULL, NULL)\nwill create the default sched domain.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "65ecc14a30ad21bed9aabdfd6a2ae1a1aaaa6a00",
      "tree": "0245f08c672b54a914df9bbb54dff98ed685a3c7",
      "parents": [
        "e77a20e8ef6784586cfd66f4346af88ddb11173f"
      ],
      "author": {
        "name": "Kumar Gala",
        "email": "galak@kernel.crashing.org",
        "time": "Sat Nov 15 12:02:34 2008 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 13:24:35 2008 -0800"
      },
      "message": "Remove -mno-spe flags as they dont belong\n\nFor some unknown reason at Steven Rostedt added in disabling of the SPE\ninstruction generation for e500 based PPC cores in commit\n6ec562328fda585be2d7f472cfac99d3b44d362a.\n\nWe are removing it because:\n\n1. It generates e500 kernels that don\u0027t work\n2. its not the correct set of flags to do this\n3. we handle this in the arch/powerpc/Makefile already\n4. its unknown in talking to Steven why he did this\n\nSigned-off-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nTested-and-Acked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad133ba3dc283300e5b62b5b7211d2f39fbf6ee7",
      "tree": "4762492d6c564e0ac1ec47122a0d0d49b0d41e90",
      "parents": [
        "29d7b90c15035741d15421b36000509212b3e135"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Nov 17 15:39:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 16:49:35 2008 +0100"
      },
      "message": "sched, signals: fix the racy usage of -\u003esignal in account_group_xxx/run_posix_cpu_timers\n\nImpact: fix potential NULL dereference\n\nContrary to ad474caca3e2a0550b7ce0706527ad5ab389a4d4 changelog, other\nacct_group_xxx() helpers can be called after exit_notify() by timer tick.\nThanks to Roland for pointing out this. Somehow I missed this simple fact\nwhen I read the original patch, and I am afraid I confused Frank during\nthe discussion. Sorry.\n\nFortunately, these helpers work with current, we can check -\u003eexit_state\nto ensure that -\u003esignal can\u0027t go away under us.\n\nAlso, add the comment and compiler barrier to account_group_exec_runtime(),\nto make sure we load -\u003esignal only once.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0c726da983de0704254250ef6495ca152e7abcca",
      "tree": "fe57e18784cef716c65a1f4daa39da20acd15b4f",
      "parents": [
        "072b40a15616fe6bea68466e6bffcfcbf5c8f26f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sun Nov 16 16:07:58 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 12:07:27 2008 +0100"
      },
      "message": "tracing: branch tracer, fix writing to trace/trace_options\n\nImpact: fix trace_options behavior\n\nwriting to trace/trace_options use the index of the array\nto find the value of the flag. With branch tracer flag\ndefined conditionally, this breaks writing to trace_options\nwith branch tracer disabled.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f8e402f34ecc7d1d00b54703d3baa401b8bdd78",
      "tree": "b1f515a1c5426809c076dd854f9385efb750683b",
      "parents": [
        "072b40a15616fe6bea68466e6bffcfcbf5c8f26f",
        "e7d3737ea1b102030f44e96c97754101e41515f0",
        "227a837567e339c74d9d4243d03a29bd943a018c",
        "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/tracepoints\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "e14c8bf86350f6c39186a139c5c584a6111b2f01",
      "tree": "c1e0b08fc5b8efff001aecf5e6fb803423bd1c71",
      "parents": [
        "5c06fe772da43db63b053addcd2c267f76d0be91"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 17 08:22:18 2008 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 16 15:09:52 2008 -0800"
      },
      "message": "stop_machine: fix race with return value (fixes Bug #11989)\n\nBug #11989: Suspend failure on NForce4-based boards due to chanes in\nstop_machine\n\nWe should not access active.fnret outside the lock; in theory the next\nstop_machine could overwrite it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "227a837567e339c74d9d4243d03a29bd943a018c",
      "tree": "21fd0955eb46f838c2a8a1a9bc6671270ffdaf3d",
      "parents": [
        "0a7ad64531713e33e39af95bdbfb172f4f328b1e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:50:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:52:03 2008 +0100"
      },
      "message": "markers/tracpoints: fix non-modular build\n\nfix:\n\n kernel/marker.c: In function \u0027marker_module_notify\u0027:\n kernel/marker.c:905: error: \u0027MODULE_STATE_COMING\u0027 undeclared (first use in this function)\n [...]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e066fb870fcd1025ec3ba7bbde5d541094f4ce1",
      "tree": "52acda06de25c029b9834110d7bf6b4abc50353b",
      "parents": [
        "32f85742778dfc2c74975cf0b9f5bdb13470cb32"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:47 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:36 2008 +0100"
      },
      "message": "tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()\n\nImpact: API *CHANGE*. Must update all tracepoint users.\n\nAdd DEFINE_TRACE() to tracepoints to let them declare the tracepoint\nstructure in a single spot for all the kernel. It helps reducing memory\nconsumption, especially when declaring a lot of tracepoints, e.g. for\nkmalloc tracing.\n\n*API CHANGE WARNING*: now, DECLARE_TRACE() must be used in headers for\ntracepoint declarations rather than DEFINE_TRACE(). This is the sane way\nto do it. The name previously used was misleading.\n\nUpdates scheduler instrumentation to follow this API change.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "32f85742778dfc2c74975cf0b9f5bdb13470cb32",
      "tree": "bec188e2772c3ebbf70b149d78bd36eb24d927c0",
      "parents": [
        "5f382671def7cb9c0f4b75d586dc5f60dca5e1c3"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:46 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:35 2008 +0100"
      },
      "message": "tracepoints: use modules notifiers\n\nImpact: cleanup\n\nUse module notifiers for tracepoint updates rather than adding a hook in\nmodule.c.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de0baf9ad661ac630a45a50ea1717cc4f4b33ace",
      "tree": "71c95e555b053f1e03f0befaa457d312e23dc919",
      "parents": [
        "2504ea5edfebb14133b8571c20785cdc077e07d2"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:42 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:31 2008 +0100"
      },
      "message": "tracepoints: fix disable\n\nImpact: fix race\n\nSet the probe array pointer to NULL when the tracepoint is disabled.\nThe probe array point not being NULL could generate a race condition\nwhere the reader would dereference a freed pointer.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1df1bd2c4d4b20c83755a0f41956b57aec4842a",
      "tree": "08761333b0850c6acfb31d72d7777dccc135ebde",
      "parents": [
        "a419246ac7c2d9282dfd843103702895bb3f3fd7"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:39 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:29 2008 +0100"
      },
      "message": "markers: auto enable tracepoints (new API : trace_mark_tp())\n\nImpact: new API\n\nAdd a new API trace_mark_tp(), which declares a marker within a\ntracepoint probe. When the marker is activated, the tracepoint is\nautomatically enabled.\n\nNo branch test is used at the marker site, because it would be a\nduplicate of the branch already present in the tracepoint.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a419246ac7c2d9282dfd843103702895bb3f3fd7",
      "tree": "279750cd8eff8ec307d6c67b0ca4474b9b755b15",
      "parents": [
        "021aeb057fc48af03fe5f37d3dda366c0d97aaf3"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:28 2008 +0100"
      },
      "message": "markers: use module notifier\n\nImpact: cleanup\n\nUse module notifiers instead of adding a hook in module.c.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "021aeb057fc48af03fe5f37d3dda366c0d97aaf3",
      "tree": "76497e8511a937dbdc734d2ff16dd429746de722",
      "parents": [
        "e3f8c4b9117d70127a8cab480af83bbfd048a28b"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:37 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:27 2008 +0100"
      },
      "message": "markers: use rcu_*_sched_notrace and notrace\n\nMake marker critical code use notrace to make sure they can be used as an\nftrace callback.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bdba316c989da028a59becf7516c6350ce3c173",
      "tree": "18ee77474c243ebea424b0bdb3e38c444f6f0e0b",
      "parents": [
        "954e100d2275cb2f150f2b18d5cddcdf67b956ac"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:35 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:26 2008 +0100"
      },
      "message": "markers: fix unregister\n\nImpact: fix marker registers/unregister race\n\nget_marker() can return a NULL entry because the mutex is released in\nthe middle of those functions. Make sure we check to see if it has been\nconcurrently removed.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e",
      "tree": "e7bade7c500b2d4cd4d8c811a26c844c6f529366",
      "parents": [
        "ee51a1de7e3837577412be269e0100038068e691"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Sat Nov 15 15:19:06 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:32:05 2008 +0100"
      },
      "message": "function tracing: fix wrong pos computing when read buffer has been fulfilled\n\nImpact: make output of available_filter_functions complete\n\nphenomenon:\n\nThe first value of dyn_ftrace_total_info is not equal with\n`cat available_filter_functions | wc -l`, but they should be equal.\n\nroot cause:\n\nWhen printing functions with seq_printf in t_show, if the read buffer\nis just overflowed by current function record, then this function\nwon\u0027t be printed to user space through read buffer, it will\njust be dropped. So we can\u0027t see this function printing.\n\nSo, every time the last function to fill the read buffer, if overflowed,\nwill be dropped.\n\nThis also applies to set_ftrace_filter if set_ftrace_filter has\nmore bytes than read buffer.\n\nfix:\n\nThrough checking return value of seq_printf, if less than 0, we know\nthis function doesn\u0027t be printed. Then we decrease position to force\nthis function to be printed next time, in next read buffer.\n\nAnother little fix is to show correct allocating pages count.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29d7b90c15035741d15421b36000509212b3e135",
      "tree": "a9978411950af9c4dbebcc82a944fef35a58f209",
      "parents": [
        "2fe401e38602e853e01376cdb670b0bc4d526a6d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:07:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:07:15 2008 +0100"
      },
      "message": "sched: fix kernel warning on /proc/sched_debug access\n\nLuis Henriques reported that with CONFIG_PREEMPT\u003dy + CONFIG_PREEMPT_DEBUG\u003dy +\nCONFIG_SCHED_DEBUG\u003dy + CONFIG_LATENCYTOP\u003dy enabled, the following warning\ntriggers when using latencytop:\n\n\u003e [  775.663239] BUG: using smp_processor_id() in preemptible [00000000] code: latencytop/6585\n\u003e [  775.663303] caller is native_sched_clock+0x3a/0x80\n\u003e [  775.663314] Pid: 6585, comm: latencytop Tainted: G        W 2.6.28-rc4-00355-g9c7c354 #1\n\u003e [  775.663322] Call Trace:\n\u003e [  775.663343]  [\u003cffffffff803a94e4\u003e] debug_smp_processor_id+0xe4/0xf0\n\u003e [  775.663356]  [\u003cffffffff80213f7a\u003e] native_sched_clock+0x3a/0x80\n\u003e [  775.663368]  [\u003cffffffff80213e19\u003e] sched_clock+0x9/0x10\n\u003e [  775.663381]  [\u003cffffffff8024550d\u003e] proc_sched_show_task+0x8bd/0x10e0\n\u003e [  775.663395]  [\u003cffffffff8034466e\u003e] sched_show+0x3e/0x80\n\u003e [  775.663408]  [\u003cffffffff8031039b\u003e] seq_read+0xdb/0x350\n\u003e [  775.663421]  [\u003cffffffff80368776\u003e] ? security_file_permission+0x16/0x20\n\u003e [  775.663435]  [\u003cffffffff802f4198\u003e] vfs_read+0xc8/0x170\n\u003e [  775.663447]  [\u003cffffffff802f4335\u003e] sys_read+0x55/0x90\n\u003e [  775.663460]  [\u003cffffffff8020c67a\u003e] system_call_fastpath+0x16/0x1b\n\u003e ...\n\nThis breakage was caused by me via:\n\n  7cbaef9: sched: optimize sched_clock() a bit\n\nChange the calls to cpu_clock().\n\nReported-by: Luis Henriques \u003chenrix@sapo.pt\u003e\n"
    },
    {
      "commit": "e7d3737ea1b102030f44e96c97754101e41515f0",
      "tree": "44fdc3dea100d1fa639e6ba3cb1bfca2ab40e70b",
      "parents": [
        "b01c746617da5e260803eb10ed64ca043e9a1241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 06:02:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:57:38 2008 +0100"
      },
      "message": "tracing/function-return-tracer: support for dynamic ftrace on function return tracer\n\nThis patch adds the support for dynamic tracing on the function return tracer.\nThe whole difference with normal dynamic function tracing is that we don\u0027t need\nto hook on a particular callback. The only pro that we want is to nop or set\ndynamically the calls to ftrace_caller (which is ftrace_return_caller here).\n\nSome security checks ensure that we are not trying to launch dynamic tracing for\nreturn tracing while normal function tracing is already running.\n\nAn example of trace with getnstimeofday set as a filter:\n\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (2283 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1396 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1825 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1426 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1524 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1434 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1502 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1404 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1397 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1051 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1314 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1344 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1163 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1390 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1374 ns)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "072b40a15616fe6bea68466e6bffcfcbf5c8f26f",
      "tree": "0efdcf29a712e8f381a56e57f6a89cb7ca7be901",
      "parents": [
        "c91add5fa68ea9b1f2923b3788c5dae0e60e1f6b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 05:59:52 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:55:59 2008 +0100"
      },
      "message": "tracing/branch-tracer: fix a trace recursion on branch tracer\n\nImpact: fix crash when enabling the branch-tracer\n\nWhen the branch tracer inserts an event through\nprobe_likely_condition(), it calls local_irq_save() and then results\nin a trace recursion.\n\nlocal_irq_save() -\u003e trace_hardirqs_off() -\u003e trace_hardirqs_off_caller()\n\t-\u003e unlikely()\n\nThe trace_branch.c file is protected by DISABLE_BRANCH_PROFILING but\nthat doesn\u0027t prevent from external call to functions that use\nunlikely().\n\nMy box crashed each time I tried to set this tracer (sudden and hard\nreboot).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c80025a49855b12fa09bb6db71820e3367b1369",
      "tree": "063fe72ed9bb3410c3293c83a7882cecc46e7410",
      "parents": [
        "e6e7a65aabdb696cf05a56cfd495c49a11fd4cde"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 05:57:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:55:23 2008 +0100"
      },
      "message": "tracing/ftrace: change the type of the init() callback\n\nImpact: extend the -\u003einit() method with the ability to fail\n\nThis bring a way to know if the initialization of a tracer successed.\nA tracer must return 0 on success and a traditional error (ie:\n-ENOMEM) if it fails.\n\nIf a tracer fails to init, it is free to print a detailed warn. The\ntracing api will not and switch to a new tracer will just return the\nerror from the init callback.\n\nNote: this will be used for the return tracer.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6e7a65aabdb696cf05a56cfd495c49a11fd4cde",
      "tree": "e73e423314b49ebc861ef5e7547ad97493a5e179",
      "parents": [
        "ee02a2e5c88ca2e4d6921f08d037b46d5bf82641"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 05:53:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:53:39 2008 +0100"
      },
      "message": "tracing/ftrace: fix unexpected -EINVAL when longest tracer name is set\n\nImpact: fix confusing write() -EINVAL when changing the tracer\n\nThe following commit d9e540762f5cdd89f24e518ad1fd31142d0b9726 remade\nalive the bug which made the set of a new tracer returning -EINVAL if\nthis is the longest name of tracer. This patch corrects it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee02a2e5c88ca2e4d6921f08d037b46d5bf82641",
      "tree": "5ad2064cfb6de999b07a937c19438f3c6f888229",
      "parents": [
        "982c350b9ec4b3564d67f3627a274ae61bbc7e95"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Nov 15 16:31:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:37:46 2008 +0100"
      },
      "message": "ftrace: make filtered functions effective on setting\n\nImpact: set filtered functions at time the filter is set\n\nIt can be confusing when the set_filter_functions is set (or cleared)\nand the functions being recorded by the dynamic tracer does not\nmatch.\n\nThis patch causes the code to be updated if the function tracer is\nenabled and the filter is changed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "982c350b9ec4b3564d67f3627a274ae61bbc7e95",
      "tree": "c7ccd83698552997bcfe58ab7f61b8761d37957e",
      "parents": [
        "20e5227e9f55ae1969934821ccbf581563785bbe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Nov 15 16:31:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:37:17 2008 +0100"
      },
      "message": "ftrace: fix dyn ftrace filter\n\nImpact: correct implementation of dyn ftrace filter\n\nThe old decisions made by the filter algorithm was complex and incorrect.\nThis lead to inconsistent enabling or disabling of functions when\nthe filter was used.\n\nThis patch simplifies that code and in doing so, corrects the usage\nof the filters.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "20e5227e9f55ae1969934821ccbf581563785bbe",
      "tree": "cac23dc66e00c7667f5c0e7adc72a76bd1041816",
      "parents": [
        "31e889098a80ceb3e9e3c555d522b2686a6663c6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:42 2008 +0100"
      },
      "message": "ftrace: allow NULL pointers in mcount_loc\n\nImpact: make ftrace_convert_nops() more permissive\n\nDue to the way different architecture linkers combine the data sections\nof the mcount_loc (the section that lists all the locations that\ncall mcount), there may be zeros added in that section. This is usually\ndue to strange alignments that the linker performs, that pads in zeros.\n\nThis patch makes the conversion code to nops skip any pointer in\nthe mcount_loc section that is NULL.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31e889098a80ceb3e9e3c555d522b2686a6663c6",
      "tree": "2acb73507de4191d4a9aa5ccf08fa24e7044c89e",
      "parents": [
        "d51ad7ac48f991c4a8834485727efa99a691cb87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:02 2008 +0100"
      },
      "message": "ftrace: pass module struct to arch dynamic ftrace functions\n\nImpact: allow archs more flexibility on dynamic ftrace implementations\n\nDynamic ftrace has largly been developed on x86. Since x86 does not\nhave the same limitations as other architectures, the ftrace interaction\nbetween the generic code and the architecture specific code was not\nflexible enough to handle some of the issues that other architectures\nhave.\n\nMost notably, module trampolines. Due to the limited branch distance\nthat archs make in calling kernel core code from modules, the module\nload code must create a trampoline to jump to what will make the\nlarger jump into core kernel code.\n\nThe problem arises when this happens to a call to mcount. Ftrace checks\nall code before modifying it and makes sure the current code is what\nit expects. Right now, there is not enough information to handle modifying\nmodule trampolines.\n\nThis patch changes the API between generic dynamic ftrace code and\nthe arch dependent code. There is now two functions for modifying code:\n\n  ftrace_make_nop(mod, rec, addr) - convert the code at rec-\u003eip into\n       a nop, where the original text is calling addr. (mod is the\n       module struct if called by module init)\n\n  ftrace_make_caller(rec, addr) - convert the code rec-\u003eip that should\n       be a nop into a caller to addr.\n\nThe record \"rec\" now has a new field called \"arch\" where the architecture\ncan add any special attributes to each call site record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d51ad7ac48f991c4a8834485727efa99a691cb87",
      "tree": "7491150df5bda0b3c04e5a7f1fafdb35f3aec5c4",
      "parents": [
        "918c115410c6cc57033835b6a401e57697f9ea4f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Nov 15 15:48:29 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:35:37 2008 +0100"
      },
      "message": "ftrace: replace raw_local_irq_save with local_irq_save\n\nImpact: fix lockdep disabling itself when function tracing is enabled\n\nThe raw_local_irq_saves used in ftrace is causing problems with\nlockdep. (it thinks the irq flags are out of sync and disables\nitself with a warning)\n\nThe raw ops here are not needed, and the normal local_irq_save is fine.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "918c115410c6cc57033835b6a401e57697f9ea4f",
      "tree": "62d4f9d5c76f022f59cdb2a58e95d55c9c233799",
      "parents": [
        "b17e8a37a13d0e87165054714434534bb7e69f2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:30:17 2008 +0100"
      },
      "message": "ftrace: do not process freed records\n\nImpact: keep from converting freed records\n\nWhen the tracer is started or stopped, it converts all code pointed\nto by the saved records into callers to ftrace or nops. When modules\nare unloaded, their records are freed, but they still exist within\nthe record pages.\n\nThis patch changes the code to skip over freed records.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b17e8a37a13d0e87165054714434534bb7e69f2d",
      "tree": "0acfd6ec460bfab35807eb6be058d946c380353e",
      "parents": [
        "f3c7ac40a99f4044b843e6e2c4f46ab2d354c563"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:30:07 2008 +0100"
      },
      "message": "ftrace: disable ftrace on anomalies in trace start and stop\n\nImpact: robust feature to disable ftrace on start or stop tracing on error\n\nCurrently only the initial conversion to nops will disable ftrace\non an anomaly. But if an anomaly happens on start or stopping of the\ntracer, it will silently fail.\n\nThis patch adds a check there too, to disable ftrace and warn if the\nconversion fails.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3c7ac40a99f4044b843e6e2c4f46ab2d354c563",
      "tree": "e4299e4cd9695adb6128eb3968d81a46f325b5c0",
      "parents": [
        "c91add5fa68ea9b1f2923b3788c5dae0e60e1f6b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:29:53 2008 +0100"
      },
      "message": "ftrace: remove condition from ftrace_record_ip\n\nImpact: let module functions be recorded when dyn ftrace not enabled\n\nWhen dynamic ftrace had a daemon and a hash to record the locations\nof mcount callers at run time, the recording needed to stop when\nftrace was disabled. But now that the recording is done at compile time\nand the ftrace_record_ip is only called at boot up and when a module\nis loaded, we no longer need to check if ftrace_enabled is set.\nIn fact, this breaks module load if it is not set because we skip\nover module functions.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c91add5fa68ea9b1f2923b3788c5dae0e60e1f6b",
      "tree": "95e94cf87c9310d33afcf7139fe2a9ac78494f74",
      "parents": [
        "d1aaf8cf8afe70a8c2235a565885291fe290c57c",
        "b3535c6390f27d04273e4eee0bc687f171fbf5f4",
        "ee51a1de7e3837577412be269e0100038068e691"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:28:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:28:46 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "8f7b0ba1c853919b85b54774775f567f30006107",
      "tree": "1acd2b7ed5ed0de3eecfff9da5da4e779731f8a8",
      "parents": [
        "0d3b71009737511ea937ac405205fd8214b898bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Nov 15 01:15:43 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:26:44 2008 -0800"
      },
      "message": "Fix inotify watch removal/umount races\n\nInotify watch removals suck violently.\n\nTo kick the watch out we need (in this order) inode-\u003einotify_mutex and\nih-\u003emutex.  That\u0027s fine if we have a hold on inode; however, for all\nother cases we need to make damn sure we don\u0027t race with umount.  We can\n*NOT* just grab a reference to a watch - inotify_unmount_inodes() will\nhappily sail past it and we\u0027ll end with reference to inode potentially\noutliving its superblock.\n\nIdeally we just want to grab an active reference to superblock if we\ncan; that will make sure we won\u0027t go into inotify_umount_inodes() until\nwe are done.  Cleanup is just deactivate_super().\n\nHowever, that leaves a messy case - what if we *are* racing with\numount() and active references to superblock can\u0027t be acquired anymore?\nWe can bump -\u003es_count, grab -\u003es_umount, which will almost certainly wait\nuntil the superblock is shut down and the watch in question is pining\nfor fjords.  That\u0027s fine, but there is a problem - we might have hit the\nwindow between -\u003es_active getting to 0 / -\u003es_count - below S_BIAS (i.e.\nthe moment when superblock is past the point of no return and is heading\nfor shutdown) and the moment when deactivate_super() acquires\n-\u003es_umount.\n\nWe could just do drop_super() yield() and retry, but that\u0027s rather\nantisocial and this stuff is luser-triggerable.  OTOH, having grabbed\n-\u003es_umount and having found that we\u0027d got there first (i.e.  that\n-\u003es_root is non-NULL) we know that we won\u0027t race with\ninotify_umount_inodes().\n\nSo we could grab a reference to watch and do the rest as above, just\nwith drop_super() instead of deactivate_super(), right? Wrong.  We had\nto drop ih-\u003emutex before we could grab -\u003es_umount.  So the watch\ncould\u0027ve been gone already.\n\nThat still can be dealt with - we need to save watch-\u003ewd, do idr_find()\nand compare its result with our pointer.  If they match, we either have\nthe damn thing still alive or we\u0027d lost not one but two races at once,\nthe watch had been killed and a new one got created with the same -\u003ewd\nat the same address.  That couldn\u0027t have happened in inotify_destroy(),\nbut inotify_rm_wd() could run into that.  Still, \"new one got created\"\nis not a problem - we have every right to kill it or leave it alone,\nwhatever\u0027s more convenient.\n\nSo we can use idr_find(...) \u003d\u003d watch \u0026\u0026 watch-\u003einode-\u003ei_sb \u003d\u003d sb as\n\"grab it and kill it\" check.  If it\u0027s been our original watch, we are\nfine, if it\u0027s a newcomer - nevermind, just pretend that we\u0027d won the\nrace and kill the fscker anyway; we are safe since we know that its\nsuperblock won\u0027t be going away.\n\nAnd yes, this is far beyond mere \"not very pretty\"; so\u0027s the entire\nconcept of inotify to start with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8141c7f3e7aee618312fa1c15109e1219de784a7",
      "tree": "25513fc1c260af053fb9facf92df5b59bfe74c3a",
      "parents": [
        "9c7c354645535555785eb937dd46388b55e690d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 10:20:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 10:20:36 2008 -0800"
      },
      "message": "Move \"exit_robust_list\" into mm_release()\n\nWe don\u0027t want to get rid of the futexes just at exit() time, we want to\ndrop them when doing an execve() too, since that gets rid of the\nprevious VM image too.\n\nDoing it at mm_release() time means that we automatically always do it\nwhen we disassociate a VM map from the task.\n\nReported-by: pageexec@freemail.hu\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nCc: Alex Efros \u003cpowerman@powerman.name\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3535c6390f27d04273e4eee0bc687f171fbf5f4",
      "tree": "a0160e2b70acc1743d6d3c68d149df9673d78fde",
      "parents": [
        "12ef7d448613ead2babd41c3ebfa1fe03c20edef"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Fri Nov 14 00:21:02 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 19:36:30 2008 +0100"
      },
      "message": "ftrace: remove unnecessary if condition of __unregister_ftrace_function\n\nBecause it has goto out before ftrace_list \u003d\u003d \u0026ftrace_list_end,\nthat\u0027s to say, we never meet this condition.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee51a1de7e3837577412be269e0100038068e691",
      "tree": "a93d6dfeec829b61d6a74b5a9c841bcfeaeeb31d",
      "parents": [
        "47e74f2ba8fbf9fb1378e2524e6cfdc2fb37f160"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 14:58:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 14:58:31 2008 +0100"
      },
      "message": "tracing: fix mmiotrace resizing crash\n\nPekka reported a crash when resizing the mmiotrace tracer (if only\nmmiotrace is enabled).\n\nThis happens because in that case we do not allocate the max buffer,\nbut we try to use it.\n\nMake ring_buffer_resize() idempotent against NULL buffers.\n\nReported-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12ef7d448613ead2babd41c3ebfa1fe03c20edef",
      "tree": "252b12211d2bbf96e4a90625f0c6116c9a4bd7de",
      "parents": [
        "ee6bce52276c0717ed3e63296e5d9465d339e923"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 17:52:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:49:24 2008 +0100"
      },
      "message": "ftrace: CPU buffer start annotation clean ups\n\nImpact: better handling of CPU buffer start annotation\n\nBecause of the confusion with the per CPU buffers wrapping where\none CPU might be more active at the end of the trace than the other\nCPUs causing that one CPU to have a shorter history. Kernel\ndevelopers were confused by the \"missing\" data of that one CPU\nat the beginning of the trace output. An annotation was added to\nthe trace output to show that the buffer had started:\n\n # tracer: function\n #\n #           TASK-PID    CPU#    TIMESTAMP  FUNCTION\n #              | |       |          |         |\n ##### CPU 3 buffer started ####\n          \u003cidle\u003e-0     [003]   158.192959: smp_apic_timer_interrupt\n [...]\n           \u003cidle\u003e-0     [003]   161.556520: default_idle\n ##### CPU 1 buffer started ####\n           \u003cidle\u003e-0     [001]   161.592494: hrtimer_force_reprogram\n [etc]\n\nBut this annotation gets a bit messy when tracers do not fill the\nbuffers. This patch does a couple of things:\n\n One) it adds a flag to trace_options to disable these annotations\n\n Two) it does not annotate if the tracer did not overflow its buffer.\n\nThis makes the output much cleaner.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee6bce52276c0717ed3e63296e5d9465d339e923",
      "tree": "c1bb4ca81eda3bc372c121d72bb2ef6c27cdeeda",
      "parents": [
        "1696b2b0f44a8d42f3e6b1ea90c21790871c04d9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 17:52:37 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:49:23 2008 +0100"
      },
      "message": "ftrace: rename iter_ctrl to trace_options\n\nImpact: rename file /debug/tracing/iter_ctrl to /debug/tracing/trace_options\n\nThe original ftrace had a file called \"iter_ctrl\" that would control\nthe way the output was iterated. But this file grew into a catch all\nfor different trace options. This patch renames the file from iter_ctrl\nto trace_options to reflect this change.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1696b2b0f44a8d42f3e6b1ea90c21790871c04d9",
      "tree": "87f217120af535771b6249c50d9758c8765fd5f6",
      "parents": [
        "a94c80e78bc9f4493ffc25a02d5d7bcd93c399d0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Nov 13 00:09:35 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:49:22 2008 +0100"
      },
      "message": "ftrace: show buffer size in kilobytes\n\nImpact: change the units of buffer_size_kb to kilobytes\n\nThis patch changes the units of the buffer_size_kb file to kilobytes.\nReading and writing to the file uses kilobytes as units. To help\nusers to know what units are used, the output of the file now\nlooks like:\n\n  # cat /debug/tracing/buffer_size_kb\n  1408\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a94c80e78bc9f4493ffc25a02d5d7bcd93c399d0",
      "tree": "7bccb9ade6edc033887db7c6f9f7157c5d612e3c",
      "parents": [
        "24de38620dd3504782c90c0892eef888d0c351e9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 17:52:36 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:49:21 2008 +0100"
      },
      "message": "ftrace: rename trace_entries to buffer_size_kb\n\nImpact: rename of debugfs file trace_entries to buffer_size_kb\n\nThe original ftrace had fixed size entries, and the number of entries\nwas shown and modified via the file called trace_entries. By converting\nto the unified trace buffer, we now allow for variable size entries\nwhich makes the meaning of trace_entries pointless.\n\nSince trace_size might be confused to the size of the trace, this patch\nnames it \"buffer_size_kb\" (thanks to Arjan van de Ven for this idea).\n\n[ mingo@elte.hu: changed from buffer_size to buffer_size_kb ]\n\n( Note, the units are still bytes - the next patch changes that,\n  to keep the wide rename patch separate from the unit-change patch. )\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24de38620dd3504782c90c0892eef888d0c351e9",
      "tree": "6de8d1a9785fc4b38287f8f3509015fdcbbaedff",
      "parents": [
        "94b80ffd650b22e1fd493ccf6bad7efda4b8ea85",
        "68f96c0c889b55bf62eee98e859cb686f8850188",
        "1dc1c6adf38bc5799d1594681645ced40ced4b6b",
        "47e74f2ba8fbf9fb1378e2524e6cfdc2fb37f160"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:48:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 09:48:03 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/function-return-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c",
      "tree": "bdd513a1dba0c7fc99645453aef5bc7bb7343a0e",
      "parents": [
        "65131cd52b9e7c5814298e05c3b7843f13e78d24",
        "5cbd54ef470d880fc37fbe4b21eb514806d51e0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: fix init_idle()\u0027s use of sched_clock()\n  sched: fix stale value in average load per task\n"
    },
    {
      "commit": "7e036d040a28bf95255d7eb9faf0ffbba3677e99",
      "tree": "98203974c15ae4fc5aee5723b385b0f45c331ec7",
      "parents": [
        "084c304980f05833bc8a91b856af7dc7a7bb7d60"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 12 13:26:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "kernel/kprobes.c: don\u0027t pad kretprobe_table_locks[] on uniprocessor builds\n\nWe only need the cacheline padding on SMP kernels.  Saves 6k:\n\n   text    data     bss     dec     hex filename\n   5713     388    8840   14941    3a5d kernel/kprobes.o\n   5713     388    2632    8733    221d kernel/kprobes.o\n\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a189d0350f387786b1fb5a5d19e3a5ab0bc0cceb",
      "tree": "d6133d035e0d23a8271f12204e53338f8f343351",
      "parents": [
        "3b1b3f6e57064aa8f91c290fe51cda4c74642902"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Wed Nov 12 13:26:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "kprobes: disable preempt for module_text_address() and kernel_text_address()\n\n__register_kprobe() can be preempted after checking probing address but\nbefore module_text_address() or try_module_get(), and in this interval\nthe module can be unloaded.  In that case, try_module_get(probed_mod)\nwill access to invalid address, or kprobe will probe invalid address.\n\nThis patch uses preempt_disable() to protect it and uses\n__module_text_address() and __kernel_text_address().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b1b3f6e57064aa8f91c290fe51cda4c74642902",
      "tree": "2cf60a7bae5f184acbea4bff859be4e4132f9794",
      "parents": [
        "687446760bd008df96655cb8c5900f8e48a7118c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: disable writing freezer.state of root cgroup\n\nWith this change, control file \u0027freezer.state\u0027 doesn\u0027t exist in root\ncgroup, making root cgroup unfreezable.\n\nI think it\u0027s reasonable to disallow freeze tasks in the root cgroup.  And\nthen we can avoid fork overhead when freezer subsystem is compiled but not\nused.\n\nAlso make writing invalid value to freezer.state returns EINVAL rather\nthan EIO.  This is more consistent with other cgroup subsystem.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "687446760bd008df96655cb8c5900f8e48a7118c",
      "tree": "b4834a1e88d98234cfad90a0880b54ba1cc3cc59",
      "parents": [
        "0bcb6069a6e1af5c114a2a8873ec43ada8933596"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: remove task_lock from freezer_fork()\n\nIn theory the task can be moved to another cgroup and the freezer will be\nfreed right after task_lock is dropped, so the lock results in zero\nprotection.\n\nBut in the case of freezer_fork() no lock is needed, since the task is not\nin tasklist yet so it won\u0027t be moved to another cgroup, so task-\u003ecgroups\nwon\u0027t be changed or invalidated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94b80ffd650b22e1fd493ccf6bad7efda4b8ea85",
      "tree": "9f28b0e460f1b99eabb282b34d7fdaa8d80f12d6",
      "parents": [
        "80e5ea4506791af206266c5921c97f11d3b17866"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 16:18:45 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:28:40 2008 +0100"
      },
      "message": "ftrace: rename trace_unlikely.c file\n\nImpact: File name change of trace_unlikely.c\n\nThe \"unlikely\" name for the tracer is quite ugly. We renamed all the\nparts of it to \"branch\" and now it is time to rename the file too.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80e5ea4506791af206266c5921c97f11d3b17866",
      "tree": "847eb231f1c98377bdd600a801657a338cd1baa1",
      "parents": [
        "9f029e83e968e5661d7be045bbcb620dbb909938"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:28:25 2008 +0100"
      },
      "message": "ftrace: add tracer called branch\n\nImpact: added new branch tracer\n\nCurrently the tracing of branch profiling (unlikelys and likelys hit)\nis only activated by the iter_ctrl. This patch adds a tracer called\n\"branch\" that will just trace the branch profiling. The advantage\nof adding this tracer is that it can be added to the ftrace selftests\non startup.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f029e83e968e5661d7be045bbcb620dbb909938",
      "tree": "13beecf2626162dc8a3912c79d58fc91e2193de5",
      "parents": [
        "2ed84eeb8808cf3c9f039213ca137ffd7d753f0e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:28:09 2008 +0100"
      },
      "message": "ftrace: rename unlikely iter_ctrl to branch\n\nImpact: rename of iter_ctrl unlikely to branch\n\nThe unlikely name is ugly. This patch converts the iter_ctrl command\n\"unlikely\" and \"nounlikely\" to \"branch\" and \"nobranch\" respectively.\n\nIt also renames a lot of internal functions to use \"branch\" instead\nof \"unlikely\".\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed84eeb8808cf3c9f039213ca137ffd7d753f0e",
      "tree": "3aa22269a1fd5ed0b66826120ca9b572400962b5",
      "parents": [
        "68d119f0a66f7e3663304343b072e56a2693446b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 12 15:24:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 22:27:58 2008 +0100"
      },
      "message": "trace: rename unlikely profiler to branch profiler\n\nImpact: name change of unlikely tracer and profiler\n\nIngo Molnar suggested changing the config from UNLIKELY_PROFILE\nto BRANCH_PROFILING. I never did like the \"unlikely\" name so I\nwent one step farther, and renamed all the unlikely configurations\nto a \"BRANCH\" variant.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5cbd54ef470d880fc37fbe4b21eb514806d51e0d",
      "tree": "db9a73e605e0a2e7cfa13bd9697a113b5f6649eb",
      "parents": [
        "a2d477778e82a60a0b7114cefdb70aa43af28782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "message": "sched: fix init_idle()\u0027s use of sched_clock()\n\nMaciej Rutecki reported:\n\n\u003e I have this bug during suspend to disk:\n\u003e\n\u003e [  188.592151] Enabling non-boot CPUs ...\n\u003e [  188.592151] SMP alternatives: switching to SMP code\n\u003e [  188.666058] BUG: using smp_processor_id() in preemptible\n\u003e [00000000]\n\u003e code: suspend_to_disk/2934\n\u003e [  188.666064] caller is native_sched_clock+0x2b/0x80\n\nWhich, as noted by Linus, was caused by me, via:\n\n  7cbaef9c \"sched: optimize sched_clock() a bit\"\n\nMove the rq locking a bit earlier in the initialization sequence,\nthat will make the sched_clock() call in init_idle() non-preemptible.\n\nReported-by: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68d119f0a66f7e3663304343b072e56a2693446b",
      "tree": "1bca906c6955cc9043e0d6e3b0d4404e238cb5fd",
      "parents": [
        "2b7d0390a6d6d595f43ea3806639664afe5b9ebe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 14:09:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 14:13:11 2008 +0100"
      },
      "message": "tracing: finetune branch-tracer output\n\nSteve suggested the to change the output from this:\n\n\u003e  bash-3471  [003]   357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177\n\u003e  bash-3471  [003]   357.014756: [ .... ] update_curr:sched_fair.c:489\n\u003e  bash-3471  [003]   357.014758: [ .... ] calc_delta_fair:sched_fair.c:411\n\nto this:\n\n\u003e  bash-3471  [003]   357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177\n\u003e  bash-3471  [003]   357.014756: [  ok  ] update_curr:sched_fair.c:489\n\u003e  bash-3471  [003]   357.014758: [  ok  ] calc_delta_fair:sched_fair.c:411\n\nas it makes it clearer to the user what it means exactly.\n\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2d477778e82a60a0b7114cefdb70aa43af28782",
      "tree": "52fb05ee2d63765ddddcf4a2e06f310510607735",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Nov 12 16:19:00 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 12:33:50 2008 +0100"
      },
      "message": "sched: fix stale value in average load per task\n\nImpact: fix load balancer load average calculation accuracy\n\ncpu_avg_load_per_task() returns a stale value when nr_running is 0.\nIt returns an older stale (caculated when nr_running was non zero) value.\n\nThis patch returns and sets rq-\u003eavg_load_per_task to zero when nr_running\nis 0.\n\nCompile and boot tested on a x86_64 box.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f88c4ae9f8c3939bee4337c75c7a673b5de7a8a7",
      "tree": "db47bc2b4c9bbeb9aeadfcb609dcce72198887a4",
      "parents": [
        "52f232cb720a7babb752849cbc2cab2d24021209"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:55:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:55:41 2008 +0100"
      },
      "message": "tracing: branch tracer, tweak output\n\nImpact: modify the tracer output, to make it a bit easier to read\n\nChange the output from:\n\n\u003e  bash-3471  [003]   357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177\n\u003e  bash-3471  [003]   357.014756: [correct] update_curr:sched_fair.c:489\n\u003e  bash-3471  [003]   357.014758: [correct] calc_delta_fair:sched_fair.c:411\n\nto:\n\n\u003e  bash-3471  [003]   357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177\n\u003e  bash-3471  [003]   357.014756: [ .... ] update_curr:sched_fair.c:489\n\u003e  bash-3471  [003]   357.014758: [ .... ] calc_delta_fair:sched_fair.c:411\n\nit\u0027s good to have fields aligned vertically, and the only important\ninformation is a prediction miss, so display only that information.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52f232cb720a7babb752849cbc2cab2d24021209",
      "tree": "47c7e800549457bd5ab9b54f47729acac6e10780",
      "parents": [
        "1f0d69a9fc815db82f15722bf05227190b1d714d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:14:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:52:02 2008 +0100"
      },
      "message": "tracing: likely/unlikely branch annotation tracer\n\nImpact: new likely/unlikely branch tracer\n\nThis patch adds a way to record the instances of the likely() and unlikely()\nbranch condition annotations.\n\nWhen \"unlikely\" is set in /debugfs/tracing/iter_ctrl the unlikely conditions\nwill be added to any of the ftrace tracers. The change takes effect when\na new tracer is passed into the current_tracer file.\n\nFor example:\n\n bash-3471  [003]   357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177\n bash-3471  [003]   357.014756: [correct] update_curr:sched_fair.c:489\n bash-3471  [003]   357.014758: [correct] calc_delta_fair:sched_fair.c:411\n bash-3471  [003]   357.014759: [correct] account_group_exec_runtime:sched_stats.h:356\n bash-3471  [003]   357.014761: [correct] update_curr:sched_fair.c:489\n bash-3471  [003]   357.014763: [INCORRECT] calc_delta_fair:sched_fair.c:411\n bash-3471  [003]   357.014765: [correct] calc_delta_mine:sched.c:1279\n\nWhich shows the normal tracer heading, as well as whether the condition was\ncorrect \"[correct]\" or was mistaken \"[INCORRECT]\", followed by the function,\nfile name and line number.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1f0d69a9fc815db82f15722bf05227190b1d714d",
      "tree": "21e0a9664fd47827d9168938a965b39b85b6e287",
      "parents": [
        "cb9382e5a94e54d0356d730954396c746ae66d6e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:14:39 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:52:02 2008 +0100"
      },
      "message": "tracing: profile likely and unlikely annotations\n\nImpact: new unlikely/likely profiler\n\nAndrew Morton recently suggested having an in-kernel way to profile\nlikely and unlikely macros. This patch achieves that goal.\n\nWhen configured, every(*) likely and unlikely macro gets a counter attached\nto it. When the condition is hit, the hit and misses of that condition\nare recorded. These numbers can later be retrieved by:\n\n  /debugfs/tracing/profile_likely    - All likely markers\n  /debugfs/tracing/profile_unlikely  - All unlikely markers.\n\n# cat /debug/tracing/profile_unlikely | head\n correct incorrect  %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n    2167        0   0 do_arch_prctl                  process_64.c         832\n       0        0   0 do_arch_prctl                  process_64.c         804\n    2670        0   0 IS_ERR                         err.h                34\n   71230     5693   7 __switch_to                    process_64.c         673\n   76919        0   0 __switch_to                    process_64.c         639\n   43184    33743  43 __switch_to                    process_64.c         624\n   12740    64181  83 __switch_to                    process_64.c         594\n   12740    64174  83 __switch_to                    process_64.c         590\n\n# cat /debug/tracing/profile_unlikely | \\\n  awk \u0027{ if ($3 \u003e 25) print $0; }\u0027 |head -20\n   44963    35259  43 __switch_to                    process_64.c         624\n   12762    67454  84 __switch_to                    process_64.c         594\n   12762    67447  84 __switch_to                    process_64.c         590\n    1478      595  28 syscall_get_error              syscall.h            51\n       0     2821 100 syscall_trace_leave            ptrace.c             1567\n       0        1 100 native_smp_prepare_cpus        smpboot.c            1237\n   86338   265881  75 calc_delta_fair                sched_fair.c         408\n  210410   108540  34 calc_delta_mine                sched.c              1267\n       0    54550 100 sched_info_queued              sched_stats.h        222\n   51899    66435  56 pick_next_task_fair            sched_fair.c         1422\n       6       10  62 yield_task_fair                sched_fair.c         982\n    7325     2692  26 rt_policy                      sched.c              144\n       0     1270 100 pre_schedule_rt                sched_rt.c           1261\n    1268    48073  97 pick_next_task_rt              sched_rt.c           884\n       0    45181 100 sched_info_dequeued            sched_stats.h        177\n       0       15 100 sched_move_task                sched.c              8700\n       0       15 100 sched_move_task                sched.c              8690\n   53167    33217  38 schedule                       sched.c              4457\n       0    80208 100 sched_info_switch              sched_stats.h        270\n   30585    49631  61 context_switch                 sched.c              2619\n\n# cat /debug/tracing/profile_likely | awk \u0027{ if ($3 \u003e 25) print $0; }\u0027\n   39900    36577  47 pick_next_task                 sched.c              4397\n   20824    15233  42 switch_mm                      mmu_context_64.h     18\n       0        7 100 __cancel_work_timer            workqueue.c          560\n     617    66484  99 clocksource_adjust             timekeeping.c        456\n       0   346340 100 audit_syscall_exit             auditsc.c            1570\n      38   347350  99 audit_get_context              auditsc.c            732\n       0   345244 100 audit_syscall_entry            auditsc.c            1541\n      38     1017  96 audit_free                     auditsc.c            1446\n       0     1090 100 audit_alloc                    auditsc.c            862\n    2618     1090  29 audit_alloc                    auditsc.c            858\n       0        6 100 move_masked_irq                migration.c          9\n       1      198  99 probe_sched_wakeup             trace_sched_switch.c 58\n       2        2  50 probe_wakeup                   trace_sched_wakeup.c 227\n       0        2 100 probe_wakeup_sched_switch      trace_sched_wakeup.c 144\n    4514     2090  31 __grab_cache_page              filemap.c            2149\n   12882   228786  94 mapping_unevictable            pagemap.h            50\n       4       11  73 __flush_cpu_slab               slub.c               1466\n  627757   330451  34 slab_free                      slub.c               1731\n    2959    61245  95 dentry_lru_del_init            dcache.c             153\n     946     1217  56 load_elf_binary                binfmt_elf.c         904\n     102       82  44 disk_put_part                  genhd.h              206\n       1        1  50 dst_gc_task                    dst.c                82\n       0       19 100 tcp_mss_split_point            tcp_output.c         1126\n\nAs you can see by the above, there\u0027s a bit of work to do in rethinking\nthe use of some unlikelys and likelys. Note: the unlikely case had 71 hits\nthat were more than 25%.\n\nNote:  After submitting my first version of this patch, Andrew Morton\n  showed me a version written by Daniel Walker, where I picked up\n  the following ideas from:\n\n  1)  Using __builtin_constant_p to avoid profiling fixed values.\n  2)  Using __FILE__ instead of instruction pointers.\n  3)  Using the preprocessor to stop all profiling of likely\n       annotations from vsyscall_64.c.\n\nThanks to Andrew Morton, Arjan van de Ven, Theodore Tso and Ingo Molnar\nfor their feed back on this patch.\n\n(*) Not ever unlikely is recorded, those that are used by vsyscalls\n (a few of them) had to have profiling disabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb9382e5a94e54d0356d730954396c746ae66d6e",
      "tree": "f69a819d83453d2067958153270a1bfb1997b239",
      "parents": [
        "74239072830ef3f1398edeb1bc1076fc330fd4a2",
        "642edba5f5c545772b89907cf96134c73d6073c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:50:51 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:50:51 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/fastboot\u0027, \u0027tracing/function-return-tracer\u0027 and \u0027tracing/ring-buffer\u0027 into tracing/core\n"
    },
    {
      "commit": "642edba5f5c545772b89907cf96134c73d6073c7",
      "tree": "fe035c062474bb3163a15e3b490e2c6c5f612407",
      "parents": [
        "d06bbd669539215405874d8fe32ab65105e6c4bb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:01:26 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:25:04 2008 +0100"
      },
      "message": "ring-buffer: fix deadlock from reader_lock in read_start\n\nImpact: deadlock fix in ring_buffer_read_start\n\nThe ring_buffer_iter_reset was called from ring_buffer_read_start\nwhere both grabbed the reader_lock.\n\nThis patch separates out the internals of ring_buffer_iter_reset\nto its own function so that both APIs may grab the reader_lock.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47e74f2ba8fbf9fb1378e2524e6cfdc2fb37f160",
      "tree": "7d49bf91e5409c432b259c26fcadff0450dffe43",
      "parents": [
        "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:01:27 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:23:36 2008 +0100"
      },
      "message": "ring-buffer: no preempt for sched_clock()\n\nImpact: disable preemption when calling sched_clock()\n\nThe ring_buffer_time_stamp still uses sched_clock as its counter.\nBut it is a bug to call it with preemption enabled. This requirement\nshould not be pushed to the ring_buffer_time_stamp callers, so\nthe ring_buffer_time_stamp needs to disable preemption when calling\nsched_clock.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74239072830ef3f1398edeb1bc1076fc330fd4a2",
      "tree": "60a244c6c88d9943760ded98a1a29ce018292107",
      "parents": [
        "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:24:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:19 2008 +0100"
      },
      "message": "tracing/fastboot: Use the ring-buffer timestamp for initcall entries\n\nImpact: Split the boot tracer entries in two parts: call and return\n\nNow that we are using the sched tracer from the boot tracer, we want\nto use the same timestamp than the ring-buffer to have consistent time\ncaptures between sched events and initcall events.\n\nSo we get rid of the old time capture by the boot tracer and split the\ninitcall events in two parts: call and return. This way we have the\nring buffer timestamp of both.\n\nAn example trace:\n\n[   27.904149584] calling  net_ns_init+0x0/0x1c0 @ 1\n[   27.904429624] initcall net_ns_init+0x0/0x1c0 returned 0 after 0 msecs\n[   27.904575926] calling  reboot_init+0x0/0x20 @ 1\n[   27.904655399] initcall reboot_init+0x0/0x20 returned 0 after 0 msecs\n[   27.904800228] calling  sysctl_init+0x0/0x30 @ 1\n[   27.905142914] initcall sysctl_init+0x0/0x30 returned 0 after 0 msecs\n[   27.905287211] calling  ksysfs_init+0x0/0xb0 @ 1\n ##### CPU 0 buffer started ####\n            init-1     [000]    27.905395:      1:120:R   + [001]    11:115:S\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.905425:      0:140:R \u003d\u003d\u003e [001]    11:115:R\n            init-1     [000]    27.905426:      1:120:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905431:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905451:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905456:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-11    [001]    27.905458:     11:115:R   + [001]    14:115:R\n          \u003cidle\u003e-0     [000]    27.905459:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905462:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-11    [001]    27.905462:     11:115:R \u003d\u003d\u003e [001]    14:115:R\n     ksoftirqd/0-4     [000]    27.905467:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905470:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905473:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905476:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905479:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905482:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905486:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-14    [001]    27.905499:     14:120:X \u003d\u003d\u003e [001]    11:115:R\n           udevd-11    [001]    27.905506:     11:115:R   + [000]     1:120:D\n          \u003cidle\u003e-0     [000]    27.905515:      0:140:R \u003d\u003d\u003e [000]     1:120:R\n           udevd-11    [001]    27.905517:     11:115:S \u003d\u003d\u003e [001]     0:140:R\n[   27.905557107] initcall ksysfs_init+0x0/0xb0 returned 0 after 3906 msecs\n[   27.905705736] calling  init_jiffies_clocksource+0x0/0x10 @ 1\n[   27.905779239] initcall init_jiffies_clocksource+0x0/0x10 returned 0 after 0 msecs\n[   27.906769814] calling  pm_init+0x0/0x30 @ 1\n[   27.906853627] initcall pm_init+0x0/0x30 returned 0 after 0 msecs\n[   27.906997803] calling  pm_disk_init+0x0/0x20 @ 1\n[   27.907076946] initcall pm_disk_init+0x0/0x20 returned 0 after 0 msecs\n[   27.907222556] calling  swsusp_header_init+0x0/0x30 @ 1\n[   27.907294325] initcall swsusp_header_init+0x0/0x30 returned 0 after 0 msecs\n[   27.907439620] calling  stop_machine_init+0x0/0x50 @ 1\n            init-1     [000]    27.907485:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907490:      1:120:D \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907507:      2:115:R   + [001]    15:115:R\n          \u003cidle\u003e-0     [001]    27.907517:      0:140:R \u003d\u003d\u003e [001]    15:115:R\n        kthreadd-2     [000]    27.907517:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907521:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.907524:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-15    [001]    27.907527:     15:115:D   + [000]     2:115:D\n     ksoftirqd/0-4     [000]    27.907537:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n           udevd-15    [001]    27.907537:     15:115:D \u003d\u003d\u003e [001]     0:140:R\n        kthreadd-2     [000]    27.907546:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907550:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907584:      1:120:R   + [000]    15:  0:D\n            init-1     [000]    27.907589:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907593:      1:120:D \u003d\u003d\u003e [000]    15:  0:R\n           udevd-15    [000]    27.907601:     15:  0:S \u003d\u003d\u003e [000]     2:115:R\n ##### CPU 0 buffer started ####\n        kthreadd-2     [000]    27.907616:      2:115:R   + [001]    16:115:R\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.907620:      0:140:R \u003d\u003d\u003e [001]    16:115:R\n        kthreadd-2     [000]    27.907621:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n           udevd-16    [001]    27.907625:     16:115:D   + [000]     2:115:D\n          \u003cidle\u003e-0     [000]    27.907628:      0:140:R   + [000]     4:115:S\n           udevd-16    [001]    27.907629:     16:115:D \u003d\u003d\u003e [001]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907631:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.907636:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907644:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907647:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907657:      1:120:R   + [001]    16:  0:D\n          \u003cidle\u003e-0     [001]    27.907666:      0:140:R \u003d\u003d\u003e [001]    16:  0:R\n[   27.907703862] initcall stop_machine_init+0x0/0x50 returned 0 after 0 msecs\n[   27.907850704] calling  filelock_init+0x0/0x30 @ 1\n[   27.907926573] initcall filelock_init+0x0/0x30 returned 0 after 0 msecs\n[   27.908071327] calling  init_script_binfmt+0x0/0x10 @ 1\n[   27.908165195] initcall init_script_binfmt+0x0/0x10 returned 0 after 0 msecs\n[   27.908309461] calling  init_elf_binfmt+0x0/0x10 @ 1\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd",
      "tree": "3c705c5991fcf0f4968ff790bb2e2ce65c8cbf18",
      "parents": [
        "60a011c736e7dd09a0b01ca6a051a416f3f52ffb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:21:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:18 2008 +0100"
      },
      "message": "tracing/fastboot: move boot tracer structs and funcs into their own header.\n\nImpact: Cleanups on the boot tracer and ftrace\n\nThis patch bring some cleanups about the boot tracer headers. The\nfunctions and structures of this tracer have nothing related to ftrace\nand should have so their own header file.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60a011c736e7dd09a0b01ca6a051a416f3f52ffb",
      "tree": "20e91db58c3bbfa622d3ed8ec747e4974a807284",
      "parents": [
        "d06bbd669539215405874d8fe32ab65105e6c4bb",
        "19b3e9671c5a219b8c34da2cc66e0ce7c3a501ae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:09 2008 +0100"
      },
      "message": "Merge branch \u0027tracing/function-return-tracer\u0027 into tracing/fastboot\n"
    },
    {
      "commit": "d06bbd669539215405874d8fe32ab65105e6c4bb",
      "tree": "2567b00257b633fa13220fa515d4bad9749405db",
      "parents": [
        "d844222a54c33a960755b44b934cd1b01b05dceb",
        "3e89c7bb92fc92bb964734341487798c8d497bae",
        "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:11:37 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:11:37 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/ring_buffer.c\n"
    },
    {
      "commit": "621a0d5207c18012cb39932f2d9830a11a6cb03d",
      "tree": "0e18c30c91620108b413197f9bc153ceb6e430ec",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 12 09:36:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 09:54:40 2008 +0100"
      },
      "message": "hrtimer: clean up unused callback modes\n\nImpact: cleanup\n\ngit grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually\nunused.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e89c7bb92fc92bb964734341487798c8d497bae",
      "tree": "9b20d0a934152220981e3a25c27ee0d799bc9de3",
      "parents": [
        "f83c9d0fe42a7544b4d4ffcebb2e6716fcfd95c0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:28:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 22:02:35 2008 +0100"
      },
      "message": "ring-buffer: clean up warn ons\n\nImpact: Restructure WARN_ONs in ring_buffer.c\n\nThe current WARN_ON macros in ring_buffer.c are quite ugly.\n\nThis patch cleans them up and uses a single RB_WARN_ON that returns\nthe value of the condition. This allows the caller to abort the\nfunction if the condition is true.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87",
      "tree": "826aa8fff448bc3dcd167d3623fbcc311a768c1f",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10",
        "a358324466b171e145df20bdb74fe81759906de6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "message": "Merge branch \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "a358324466b171e145df20bdb74fe81759906de6",
      "tree": "50b2b0b72ff40da6be232eb85d33a203612f3164",
      "parents": [
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:01:42 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:02:04 2008 -0500"
      },
      "message": "ring-buffer: buffer record on/off switch\n\nImpact: enable/disable ring buffer recording API added\n\nSeveral kernel developers have requested that there be a way to stop\nrecording into the ring buffers with a simple switch that can also\nbe enabled from userspace. This patch addes a new kernel API to the\nring buffers called:\n\n tracing_on()\n tracing_off()\n\nWhen tracing_off() is called, all ring buffers will not be able to record\ninto their buffers.\n\ntracing_on() will enable the ring buffers again.\n\nThese two act like an on/off switch. That is, there is no counting of the\nnumber of times tracing_off or tracing_on has been called.\n\nA new file is added to the debugfs/tracing directory called\n\n  tracing_on\n\nThis allows for userspace applications to also flip the switch.\n\n  echo 0 \u003e debugfs/tracing/tracing_on\n\ndisables the tracing.\n\n  echo 1 \u003e /debugfs/tracing/tracing_on\n\nenables it.\n\nNote, this does not disable or enable any tracers. It only sets or clears\na flag that needs to be set in order for the ring buffers to write to\ntheir buffers. It is a global flag, and affects all ring buffers.\n\nThe buffers start out with tracing_on enabled.\n\nThere are now three flags that control recording into the buffers:\n\n tracing_on: which affects all ring buffer tracers.\n\n buffer-\u003erecord_disabled: which affects an allocated buffer, which may be set\n     if an anomaly is detected, and tracing is disabled.\n\n cpu_buffer-\u003erecord_disabled: which is set by tracing_stop() or if an\n     anomaly is detected. tracing_start can not reenable this if\n     an anomaly occurred.\n\nThe userspace debugfs/tracing/tracing_enabled is implemented with\ntracing_stop() but the user space code can not enable it if the kernel\ncalled tracing_stop().\n\nUserspace can enable the tracing_on even if the kernel disabled it.\nIt is just a switch used to stop tracing if a condition was hit.\ntracing_on is not for protecting critical areas in the kernel nor is\nit for stopping tracing if an anomaly occurred. This is because userspace\ncan reenable it at any time.\n\nSide effect: With this patch, I discovered a dead variable in ftrace.c\n  called tracing_on. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f21f237cf55494c3a4209de323281a3b0528da10",
      "tree": "40ebad408aebbc5bf4e54bd51a7c0077ad04508b",
      "parents": [
        "2f96cb57cde9957bac0991c712068d29364b2ac9",
        "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n  nohz: disable tick_nohz_kick_tick() for now\n  irq: call __irq_enter() before calling the tick_idle_check\n  x86: HPET: enter hpet_interrupt_handler with interrupts disabled\n  x86: HPET: read from HPET_Tn_CMP() not HPET_T0_CMP\n  x86: HPET: convert WARN_ON to WARN_ON_ONCE\n"
    },
    {
      "commit": "2f96cb57cde9957bac0991c712068d29364b2ac9",
      "tree": "60e3f985b9e865f3a1fdda131599fa84159cc73e",
      "parents": [
        "09eb3b5b1bcab7b25e9dd57e90ee9753adf7afe2",
        "2002c69595a092518107f7e3c1294c9710bc92ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: release buddies on yield\n  fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n  sched: clean up debug info\n"
    },
    {
      "commit": "f83c9d0fe42a7544b4d4ffcebb2e6716fcfd95c0",
      "tree": "37532424c8ea5a8dac649cb2baed04223722c09f",
      "parents": [
        "f536aafc5a2e6f0c8f1577a155e6f93db5e469f0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 18:47:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 18:47:44 2008 +0100"
      },
      "message": "ring-buffer: add reader lock\n\nImpact: serialize reader accesses to individual CPU ring buffers\n\nThe code in the ring buffer expects only one reader at a time, but currently\nit puts that requirement on the caller. This is not strong enough, and this\npatch adds a \"reader_lock\" that serializes the access to the reader API\nof the ring buffer.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2002c69595a092518107f7e3c1294c9710bc92ae",
      "tree": "5935add4d4cd426b5b824474b7ec2ffea48d2951",
      "parents": [
        "ad474caca3e2a0550b7ce0706527ad5ab389a4d4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Nov 11 11:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 11:57:22 2008 +0100"
      },
      "message": "sched: release buddies on yield\n\nClear buddies on yield, so that the buddy rules don\u0027t schedule them\ndespite them being placed right-most.\n\nThis fixed a performance regression with yield-happy binary JVMs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\n"
    },
    {
      "commit": "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d",
      "tree": "fea216db5914228fe80139f5e31621de86cc9e5d",
      "parents": [
        "ae99286b4f1be7788f2d6947c66a91dbd6351eec"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Sat Oct 25 10:22:38 2008 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 11 10:46:42 2008 +0100"
      },
      "message": "timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n\nImpact: fix incorrect locking triggered during hotplug-intense stress-tests\n\nWhile migrating the the CB_IRQSAFE_UNLOCKED timers during a cpu-offline,\nwe queue them on the cb_pending list, so that they won\u0027t go\nstale.\n\nThus, when the callbacks of the timers run from the softirq context,\nthey could run into potential deadlocks, since these callbacks\nassume that they\u0027re running with irq\u0027s disabled, thereby annoying\nlockdep!\n\nFix this by emulating hardirq context while running these callbacks from\nthe hrtimer softirq.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: inconsistent lock state ]\n2.6.27 #2\n--------------------------------\ninconsistent {in-hardirq-W} -\u003e {hardirq-on-W} usage.\nksoftirqd/0/4 [HC0[0]:SC1[1]:HE1:SE0] takes:\n (\u0026rq-\u003elock){++..}, at: [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n{in-hardirq-W} state was registered at:\n  [\u003cc014103c\u003e] __lock_acquire+0x549/0x121e\n  [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n  [\u003cc013aa12\u003e] clocksource_get_next+0x39/0x3f\n  [\u003cc0139abc\u003e] update_wall_time+0x616/0x7df\n  [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc012c436\u003e] update_process_times+0x3a/0x44\n  [\u003cc013c044\u003e] tick_periodic+0x63/0x6d\n  [\u003cc013c062\u003e] tick_handle_periodic+0x14/0x5e\n  [\u003cc010568c\u003e] timer_interrupt+0x44/0x4a\n  [\u003cc0150c9f\u003e] handle_IRQ_event+0x13/0x3d\n  [\u003cc0151c14\u003e] handle_level_irq+0x79/0xbd\n  [\u003cc0105634\u003e] do_IRQ+0x69/0x7d\n  [\u003cc01041e4\u003e] common_interrupt+0x28/0x30\n  [\u003cc047007b\u003e] aac_probe_one+0x1a3/0x3f3\n  [\u003cc047ec2d\u003e] _spin_unlock_irqrestore+0x36/0x39\n  [\u003cc01512b4\u003e] setup_irq+0x1be/0x1f9\n  [\u003cc065d70b\u003e] start_kernel+0x259/0x2c5\n  [\u003cffffffff\u003e] 0xffffffff\nirq event stamp: 50102\nhardirqs last  enabled at (50102): [\u003cc047ebf4\u003e] _spin_unlock_irq+0x20/0x23\nhardirqs last disabled at (50101): [\u003cc047edc2\u003e] _spin_lock_irq+0xa/0x4b\nsoftirqs last  enabled at (50088): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\nsoftirqs last disabled at (50099): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n\nother info that might help us debug this:\nno locks held by ksoftirqd/0/4.\n\nstack backtrace:\nPid: 4, comm: ksoftirqd/0 Not tainted 2.6.27 #2\n [\u003cc013f6cb\u003e] print_usage_bug+0x13e/0x147\n [\u003cc013fef5\u003e] mark_lock+0x493/0x797\n [\u003cc01410b1\u003e] __lock_acquire+0x5be/0x121e\n [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc01210fd\u003e] finish_task_switch+0x41/0xbd\n [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0136dda\u003e] run_hrtimer_pending+0x54/0xe5\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0128afb\u003e] __do_softirq+0x7b/0xef\n [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n [\u003cc0128c12\u003e] ksoftirqd+0x56/0xc5\n [\u003cc0128bbc\u003e] ksoftirqd+0x0/0xc5\n [\u003cc0134649\u003e] kthread+0x38/0x5d\n [\u003cc0134611\u003e] kthread+0x0/0x5d\n [\u003cc0104477\u003e] kernel_thread_helper+0x7/0x10\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15e6cb3673ea6277999642802406a764b49391b0",
      "tree": "d0a46a918caa64d5fb1ed37be3e026b30e94fe77",
      "parents": [
        "caf4b323b02a16c92fba449952ac6515ddc76d7a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 07:14:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 10:29:12 2008 +0100"
      },
      "message": "tracing: add a tracer to catch execution time of kernel functions\n\nImpact: add new tracing plugin which can trace full (entry+exit) function calls\n\nThis tracer uses the low level function return ftrace plugin to\nmeasure the execution time of the kernel functions.\n\nThe first field is the caller of the function, the second is the\nmeasured function, and the last one is the execution time in\nnanoseconds.\n\n- v3:\n\n- HAVE_FUNCTION_RET_TRACER have been added. Each arch that support ftrace return\n  should enable it.\n- ftrace_return_stub becomes ftrace_stub.\n- CONFIG_FUNCTION_RET_TRACER depends now on CONFIG_FUNCTION_TRACER\n- Return traces printing can be used for other tracers on trace.c\n- Adapt to the new tracing API (no more ctrl_update callback)\n- Correct the check of \"disabled\" during insertion.\n- Minor changes...\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "caf4b323b02a16c92fba449952ac6515ddc76d7a"
}
