)]}'
{
  "log": [
    {
      "commit": "8326e284f8deb75eee3d32b973464dd96e120843",
      "tree": "a2c4e18f4e7984680946cab0303e5369f175d4f5",
      "parents": [
        "187dd317f0169142e4adf6263852f93c3b6f6a3c",
        "e888d7facd1f1460a638151036d15b6cfb3ccc74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:28 2009 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, delay: tsc based udelay should have rdtsc_barrier\n  x86, setup: correct include file in \u003casm/boot.h\u003e\n  x86, setup: Fix typo \"CONFIG_x86_64\" in \u003casm/boot.h\u003e\n  x86, mce: percpu mcheck_timer should be pinned\n  x86: Add sysctl to allow panic on IOCK NMI error\n  x86: Fix uv bau sending buffer initialization\n  x86, mce: Fix mce resume on 32bit\n  x86: Move init_gbpages() to setup_arch()\n  x86: ensure percpu lpage doesn\u0027t consume too much vmalloc space\n  x86: implement percpu_alloc kernel parameter\n  x86: fix pageattr handling for lpage percpu allocator and re-enable it\n  x86: reorganize cpa_process_alias()\n  x86: prepare setup_pcpu_lpage() for pageattr fix\n  x86: rename remap percpu first chunk allocator to lpage\n  x86: fix duplicate free in setup_pcpu_remap() failure path\n  percpu: fix too lazy vunmap cache flushing\n  x86: Set cpu_llc_id on AMD CPUs\n"
    },
    {
      "commit": "187dd317f0169142e4adf6263852f93c3b6f6a3c",
      "tree": "c539ad11655d4545c5ef4b54cbecd9cff9cff974",
      "parents": [
        "9b71272b6ad4966481d73e6abf3ae4bbc3bdabd5",
        "507e123151149e578c9aae33eb876c49824da5f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:16 2009 -0700"
      },
      "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  timer stats: Optimize by adding quick check to avoid function calls\n  timers: Fix timer_migration interface which accepts any number as input\n"
    },
    {
      "commit": "9b71272b6ad4966481d73e6abf3ae4bbc3bdabd5",
      "tree": "39ee39ee45333b9eadb0c1183d9e88f86be59983",
      "parents": [
        "61abfd2df8aa43a137ae58446dd0638a2385586e",
        "0296e4254f3318e0dcad9706fa1daf8e5addc1e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 28 11:05:04 2009 -0700"
      },
      "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 the output of profile\n  ring-buffer: Make it generally available\n  ftrace: Remove duplicate newline\n  tracing: Fix trace_buf_size boot option\n  ftrace: Fix t_hash_start()\n  ftrace: Don\u0027t manipulate @pos in t_start()\n  ftrace: Don\u0027t increment @pos in g_start()\n  tracing: Reset iterator in t_start()\n  trace_stat: Don\u0027t increment @pos in seq start()\n  tracing_bprintk: Don\u0027t increment @pos in t_start()\n  tracing/events: Don\u0027t increment @pos in s_start()\n"
    },
    {
      "commit": "0296e4254f3318e0dcad9706fa1daf8e5addc1e9",
      "tree": "7568f2372564b45fa79bbcdd36273999cae0de8c",
      "parents": [
        "1155de47cd66d0c496d5a6fb2223e980ef1285b2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jun 26 11:15:37 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 09:25:42 2009 +0200"
      },
      "message": "ftrace: Fix the output of profile\n\nThe first entry of the ftrace profile was always skipped when\nreading trace_stat/functionX.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A443D59.4080307@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5211a242d0cbdded372aee59da18f80552b0a80a",
      "tree": "5d2a853e538b8478648a57efe94ef049e76e13e6",
      "parents": [
        "9c26f52b900f7207135bafc8789e1a4f5d43e096"
      ],
      "author": {
        "name": "Kurt Garloff",
        "email": "garloff@suse.de",
        "time": "Wed Jun 24 14:32:11 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 22:06:11 2009 +0200"
      },
      "message": "x86: Add sysctl to allow panic on IOCK NMI error\n\nThis patch introduces a new sysctl:\n\n    /proc/sys/kernel/panic_on_io_nmi\n\nwhich defaults to 0 (off).\n\nWhen enabled, the kernel panics when the kernel receives an NMI\ncaused by an IO error.\n\nThe IO error triggered NMI indicates a serious system\ncondition, which could result in IO data corruption. Rather\nthan contiuing, panicing and dumping might be a better choice,\nso one can figure out what\u0027s causing the IO error.\n\nThis could be especially important to companies running IO\nintensive applications where corruption must be avoided, e.g. a\nbank\u0027s databases.\n\n[ SuSE has been shipping it for a while, it was done at the\n  request of a large database vendor, for their users. ]\n\nSigned-off-by: Kurt Garloff \u003cgarloff@suse.de\u003e\nSigned-off-by: Roberto Angelino \u003crobertangelino@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nLKML-Reference: \u003c20090624213211.GA11291@kroah.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa715284b4d28cabde6c25c568d769a6be712bc8",
      "tree": "c308ab1cdf8d0d7b6b1a01a1a233183670d62f9f",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 25 14:27:58 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 25 14:33:46 2009 +0200"
      },
      "message": "futex: request only one page from get_user_pages()\n\nYanmin noticed that fault_in_user_writeable() requests 4 pages instead\nof one.\n\nThat\u0027s the result of blindly trusting Linus\u0027 proposal :) I even looked\nup the prototype to verify the correctness: the argument in question\nis confusingly enough named \"len\" while in reality it means number of\npages.\n\nPointed-out-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1155de47cd66d0c496d5a6fb2223e980ef1285b2",
      "tree": "0ee762d6b1215a37fe89acc174de8cbbf476d218",
      "parents": [
        "00e54d087afb3867b0b461aef6c1ff433d0df564"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 25 14:30:12 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 10:31:30 2009 +0200"
      },
      "message": "ring-buffer: Make it generally available\n\nIn hunting down the cause for the hwlat_detector ring buffer spew in\nmy failed -next builds it became obvious that folks are now treating\nring_buffer as something that is generic independent of tracing and thus,\nsuitable for public driver consumption.\n\nGiven that there are only a few minor areas in ring_buffer that have any\nreliance on CONFIG_TRACING or CONFIG_FUNCTION_TRACER, provide stubs for\nthose and make it generally available.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jon Masters \u003cjcm@jonmasters.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20090625053012.GB19944@linux-sh.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00e54d087afb3867b0b461aef6c1ff433d0df564",
      "tree": "e6158e5a11ec0979ef1fc0f58a591b91509cb7b7",
      "parents": [
        "9d612beff5089b89a295a2331883a8ce3fff08c1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jun 25 14:05:27 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 10:28:36 2009 +0200"
      },
      "message": "ftrace: Remove duplicate newline\n\nBefore:\n  # echo \u0027sys_open:traceon:\u0027 \u003e set_ftrace_filter\n  # echo \u0027sys_close:traceoff:5\u0027 \u003e set_ftrace_filter\n  # cat set_ftrace_filter\n  #### all functions enabled ####\n  sys_open:traceon:unlimited\n\n  sys_close:traceoff:count\u003d0\n\nAfter:\n  # cat set_ftrace_filter\n  #### all functions enabled ####\n  sys_open:traceon:unlimited\n  sys_close:traceoff:count\u003d0\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4313A7.7030105@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6223048259006759237d826219f0fa4f312fb47",
      "tree": "ee7d50b2d1b5e1d3347a3ec535a8ed563e41a74f",
      "parents": [
        "bd453cd487ac7116a269517779b83c1061debbec",
        "d5bb68adda7cc179e8efadeaa3a283cb470f13a6",
        "3a6a6c16be78472a52f6dd7d88913373b42ad0f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 14:17:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 24 14:17:14 2009 -0700"
      },
      "message": "Merge branches \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/{vfs-2.6,audit-current}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  another race fix in jfs_check_acl()\n  Get \"no acls for this inode\" right, fix shmem breakage\n  inline functions left without protection of ifdef (acl)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  audit: inode watches depend on CONFIG_AUDIT not CONFIG_AUDIT_SYSCALL\n"
    },
    {
      "commit": "3a6a6c16be78472a52f6dd7d88913373b42ad0f7",
      "tree": "98bb91e983e54f0c026ba3b2c6d66368d06e244a",
      "parents": [
        "c82e6d450fda56cb2d4f68534173d3cd11b32f9f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jun 24 16:09:01 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 16:42:05 2009 -0400"
      },
      "message": "audit: inode watches depend on CONFIG_AUDIT not CONFIG_AUDIT_SYSCALL\n\nEven though one cannot make use of the audit watch code without\nCONFIG_AUDIT_SYSCALL the spaghetti nature of the audit code means that\nthe audit rule filtering requires that it at least be compiled.\n\nThus build the audit_watch code when we build auditfilter like it was\nbefore cfcad62c74abfef83762dc05a556d21bdf3980a2\n\nClearly this is a point of potential future cleanup..\n\nReported-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d0725992c8a6fb63a16bc9e8b2a50094cc4db3cd",
      "tree": "55b52c5bcc051c3b8c2fc3122000925541d5707b",
      "parents": [
        "c82e6d450fda56cb2d4f68534173d3cd11b32f9f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 11 23:15:43 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 24 21:27:35 2009 +0200"
      },
      "message": "futex: Fix the write access fault problem for real\n\ncommit 64d1304a64 (futex: setup writeable mapping for futex ops which\nmodify user space data) did address only half of the problem of write\naccess faults.\n\nThe patch was made on two wrong assumptions:\n\n1) access_ok(VERIFY_WRITE,...) would actually check write access.\n\n   On x86 it does _NOT_. It\u0027s a pure address range check.\n\n2) a RW mapped region can not go away under us.\n\n   That\u0027s wrong as well. Nobody can prevent another thread to call\n   mprotect(PROT_READ) on that region where the futex resides. If that\n   call hits between the get_user_pages_fast() verification and the\n   actual write access in the atomic region we are toast again.\n\nThe solution is to not rely on access_ok and get_user() for any write\naccess related fault on private and shared futexes. Instead we need to\nfault it in with verification of write access.\n\nThere is no generic non destructive write mechanism which would fault\nthe user page in trough a #PF, but as we already know that we will\nfault we can as well call get_user_pages() directly and avoid the #PF\noverhead.\n\nIf get_user_pages() returns -EFAULT we know that we can not fix it\nanymore and need to bail out to user space.\n\nRemove a bunch of confusing comments on this issue as well.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "9d612beff5089b89a295a2331883a8ce3fff08c1",
      "tree": "6f742b3997c5aa6096d4a844c08019fe4d669f55",
      "parents": [
        "d82d62444f87e5993af2fa82ed636b2206e052ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 17:33:15 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:41:12 2009 +0200"
      },
      "message": "tracing: Fix trace_buf_size boot option\n\nWe should be able to specify [KMG] when setting trace_buf_size\nboot option, as documented in kernel-parameters.txt\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41F2DB.4020102@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "507e123151149e578c9aae33eb876c49824da5f8",
      "tree": "10b4c36a278553ed3814c0643442e7210a7a1a15",
      "parents": [
        "bfdb4d9f0f611687d71cf6a460efc9e755f4a462"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Jun 23 17:38:15 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:15:09 2009 +0200"
      },
      "message": "timer stats: Optimize by adding quick check to avoid function calls\n\nWhen the kernel is configured with CONFIG_TIMER_STATS but timer\nstats are runtime disabled we still get calls to\n__timer_stats_timer_set_start_info which initializes some\nfields in the corresponding struct timer_list.\n\nSo add some quick checks in the the timer stats setup functions\nto avoid function calls to __timer_stats_timer_set_start_info\nwhen timer stats are disabled.\n\nIn an artificial workload that does nothing but playing ping\npong with a single tcp packet via loopback this decreases cpu\nconsumption by 1 - 1.5%.\n\nThis is part of a modified function trace output on SLES11:\n\n perl-2497  [00] 28630647177732388 [+  125]: sk_reset_timer \u003c-tcp_v4_rcv\n perl-2497  [00] 28630647177732513 [+  125]: mod_timer \u003c-sk_reset_timer\n perl-2497  [00] 28630647177732638 [+  125]: __timer_stats_timer_set_start_info \u003c-mod_timer\n perl-2497  [00] 28630647177732763 [+  125]: __mod_timer \u003c-mod_timer\n perl-2497  [00] 28630647177732888 [+  125]: __timer_stats_timer_set_start_info \u003c-__mod_timer\n perl-2497  [00] 28630647177733013 [+   93]: lock_timer_base \u003c-__mod_timer\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Mustafa Mesanovic \u003cmustafa.mesanovic@de.ibm.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nLKML-Reference: \u003c20090623153811.GA4641@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d82d62444f87e5993af2fa82ed636b2206e052ea",
      "tree": "701f28de7def6c58d80db72a462171cab013b514",
      "parents": [
        "694ce0a544fba37a60025a6803ee6265be8a2a22"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:54 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Fix t_hash_start()\n\nWhen the output of set_ftrace_filter is larger than PAGE_SIZE,\nt_hash_start() will be called the 2nd time, and then we start\nfrom the head of a hlist, which is wrong and causes some entries\nto be outputed twice.\n\nThe worse is, if the hlist is large enough, reading set_ftrace_filter\nwon\u0027t stop but in a dead loop.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41876E.2060407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "694ce0a544fba37a60025a6803ee6265be8a2a22",
      "tree": "a6debd92de0dcf7b42dc129402ca793c540091ae",
      "parents": [
        "85951842a1020669f0a9eb0f0d1853b41341f097"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:19 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:53 2009 +0200"
      },
      "message": "ftrace: Don\u0027t manipulate @pos in t_start()\n\nIt\u0027s rather confusing that in t_start(), in some cases @pos is\nincremented, and in some cases it\u0027s decremented and then incremented.\n\nThis patch rewrites t_start() in a much more general way.\n\nThus we fix a bug that if ftrace_filtered \u003d\u003d 1, functions have tracer\nhooks won\u0027t be printed, because the branch is always unreachable:\n\nstatic void *t_start(...)\n{\n\t...\n\tif (!p)\n\t\treturn t_hash_start(m, pos);\n\treturn p;\n}\n\nBefore:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n\nAfter:\n  # echo \u0027sys_open\u0027 \u003e /mnt/tracing/set_ftrace_filter\n  # echo \u0027sys_write:traceon:4\u0027 \u003e\u003e /mnt/tracing/set_ftrace_filter\n  sys_open\n  sys_write:traceon:count\u003d4\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A41874B.4090507@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85951842a1020669f0a9eb0f0d1853b41341f097",
      "tree": "799bba3e78b7424761901dacf3290ce05b9cb9ed",
      "parents": [
        "f129e965bef40c6153e4fe505f1e408286213424"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:54:00 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:52 2009 +0200"
      },
      "message": "ftrace: Don\u0027t increment @pos in g_start()\n\nIt\u0027s wrong to increment @pos in g_start(). It causes some entries\nlost when reading set_graph_function, if the output of the file\nis larger than PAGE_SIZE.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418738.7090401@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f129e965bef40c6153e4fe505f1e408286213424",
      "tree": "bd198daa61a79a52e1a6e06ff338c815b1516405",
      "parents": [
        "2961bf345fd1b736c3db46cad0f69855f67fbe9c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:53:44 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:51 2009 +0200"
      },
      "message": "tracing: Reset iterator in t_start()\n\nThe iterator is m-\u003eprivate, but it\u0027s not reset to trace_types in\nt_start(). If the output is larger than PAGE_SIZE and t_start()\nis called the 2nd time, things will go wrong.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418728.5020506@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2961bf345fd1b736c3db46cad0f69855f67fbe9c",
      "tree": "2032d3b59b4a93445209b5b1f0428159b61837d2",
      "parents": [
        "c8961ec6da22ea010bf4470a8e0fb3fdad0f11c4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:53:26 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:51 2009 +0200"
      },
      "message": "trace_stat: Don\u0027t increment @pos in seq start()\n\nIt\u0027s wrong to increment @pos in stat_seq_start(). It causes some\nstat entries lost when reading stat file, if the output of the file\nis larger than PAGE_SIZE.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A418716.90209@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8961ec6da22ea010bf4470a8e0fb3fdad0f11c4",
      "tree": "799b41a5eae2268010ca2d5b883a6c4fe33a9297",
      "parents": [
        "e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:52:58 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:50 2009 +0200"
      },
      "message": "tracing_bprintk: Don\u0027t increment @pos in t_start()\n\nIt\u0027s wrong to increment @pos in t_start(), otherwise we\u0027ll lose\nsome entries when reading printk_formats, if the output is larger\nthan PAGE_SIZE.\n\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4186FA.1020106@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1",
      "tree": "0b6eb8cf5e699592fc868a44b24e603ad8f3d6af",
      "parents": [
        "4e8a2372f9255a1464ef488ed925455f53fbdaa1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 24 09:52:29 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 11:02:49 2009 +0200"
      },
      "message": "tracing/events: Don\u0027t increment @pos in s_start()\n\nWhile testing syscall tracepoints posted by Jason, I found 3 entries\nwere missing when reading available_events. The output size of\navailable_events is \u003c 4 pages, which means we lost 1 entry per page.\n\nThe cause is, it\u0027s wrong to increment @pos in s_start().\n\nActually there\u0027s another bug here -- reading avaiable_events/set_events\ncan race with module unload:\n\n  # cat available_events               |\n      s_start()                        |\n      s_stop()                         |\n                                       | # rmmod foo.ko\n      s_start()                        |\n        call \u003d list_entry(m-\u003eprivate)  |\n\n@call might be freed and accessing it will lead to crash.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4186DD.6090405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "916d75761c971b6e630a26bd4ba472e90ac9a4b9",
      "tree": "3a4b18d0d29c1d12f64fefbb2bc5559813a686f7",
      "parents": [
        "9d9609851003ebed15957f0f2ce18492739ee124"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 00:02:38 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 00:02:38 2009 -0400"
      },
      "message": "Fix rule eviction order for AUDIT_DIR\n\nIf syscall removes the root of subtree being watched, we\ndefinitely do not want the rules refering that subtree\nto be destroyed without the syscall in question having\na chance to match them.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d9609851003ebed15957f0f2ce18492739ee124",
      "tree": "2c116865d2f239b5596b22a3a79eecc82f5e1299",
      "parents": [
        "35fe4d0b1b12286a81938e9c5fdfaf639ac0ce5b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:37 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 00:00:52 2009 -0400"
      },
      "message": "Audit: clean up all op\u003d output to include string quoting\n\nA number of places in the audit system we send an op\u003d followed by a string\nthat includes spaces.  Somehow this works but it\u0027s just wrong.  This patch\nmoves all of those that I could find to be quoted.\n\nExample:\n\nChange From: type\u003dCONFIG_CHANGE msg\u003daudit(1244666690.117:31): auid\u003d0 ses\u003d1\nsubj\u003dunconfined_u:unconfined_r:auditctl_t:s0-s0:c0.c1023 op\u003dremove rule\nkey\u003d\"number2\" list\u003d4 res\u003d0\n\nChange To: type\u003dCONFIG_CHANGE msg\u003daudit(1244666690.117:31): auid\u003d0 ses\u003d1\nsubj\u003dunconfined_u:unconfined_r:auditctl_t:s0-s0:c0.c1023 op\u003d\"remove rule\"\nkey\u003d\"number2\" list\u003d4 res\u003d0\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "35fe4d0b1b12286a81938e9c5fdfaf639ac0ce5b",
      "tree": "c520706593fd33748944315bb87d789a7f31960e",
      "parents": [
        "cfcad62c74abfef83762dc05a556d21bdf3980a2"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:36 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:51:05 2009 -0400"
      },
      "message": "Audit: move audit_get_nd completely into audit_watch\n\naudit_get_nd() is only used  by audit_watch and could be more cleanly\nimplemented by having the audit watch functions call it when needed rather\nthan making the generic audit rule parsing code deal with those objects.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "cfcad62c74abfef83762dc05a556d21bdf3980a2",
      "tree": "d253dbf8dfa4d31379dcd886cc1b41c69921acdd",
      "parents": [
        "ea7ae60bfe39aeedfb29571c47280bf0067ee5f3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:36 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:59 2009 -0400"
      },
      "message": "audit: seperate audit inode watches into a subfile\n\nIn preparation for converting audit to use fsnotify instead of inotify we\nseperate the inode watching code into it\u0027s own file.  This is similar to\nhow the audit tree watching code is already seperated into audit_tree.c\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ea7ae60bfe39aeedfb29571c47280bf0067ee5f3",
      "tree": "dae18e879a4e6d5c2ae53cf89267a6045db49da7",
      "parents": [
        "ee080e6ce93d5993390bccf68c1df5efd9351276"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:35 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:40 2009 -0400"
      },
      "message": "Audit: clean up audit_receive_skb\n\naudit_receive_skb is hard to clearly parse what it is doing to the netlink\nmessage.  Clean the function up so it is easy and clear to see what is going\non.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ee080e6ce93d5993390bccf68c1df5efd9351276",
      "tree": "6554d820c773f3ace97fdb1ae5defa43cbc83e05",
      "parents": [
        "038cbcf65fd6a30c79e3917690b8c46321a27915"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:35 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:39 2009 -0400"
      },
      "message": "Audit: cleanup netlink mesg handling\n\nThe audit handling of netlink messages is all over the place.  Clean things\nup, use predetermined macros, generally make it more readable.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "038cbcf65fd6a30c79e3917690b8c46321a27915",
      "tree": "bc6fc5fbf9ac6dad6055aa77bb0b1eaf35fdaa37",
      "parents": [
        "e85188f424c8eec7f311deed9a70bec57aeed741"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:35 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:37 2009 -0400"
      },
      "message": "Audit: unify the printk of an skb when auditd not around\n\nRemove code duplication of skb printk when auditd is not around in userspace\nto deal with this message.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e85188f424c8eec7f311deed9a70bec57aeed741",
      "tree": "3456260b54bc8fd8d336d5e8865104480d5ac0fe",
      "parents": [
        "b87ce6e4187c24b06483c8266822ce5e6b7fa7f3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:34 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:36 2009 -0400"
      },
      "message": "Audit: dereferencing krule as if it were an audit_watch\n\naudit_update_watch() runs all of the rules for a given watch and duplicates\nthem, attaches a new watch to them, and then when it finishes that process\nand has called free on all of the old rules (ok maybe still inside the rcu\ngrace period) it proceeds to use the last element from list_for_each_entry_safe()\nas if it were a krule rather than being the audit_watch which was anchoring\nthe list to output a message about audit rules changing.\n\nThis patch unfies the audit message from two different places into a helper\nfunction and calls it from the correct location in audit_update_rules().  We\nwill now get an audit message about the config changing for each rule (with\neach rules filterkey) rather than the previous garbage.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b87ce6e4187c24b06483c8266822ce5e6b7fa7f3",
      "tree": "24b56d53dc03b0a6c8434ad2250c1c40d179d0ce",
      "parents": [
        "35aa901c0b66cb3c2eeee23f13624014825a44a8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:34 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:34 2009 -0400"
      },
      "message": "Audit: better estimation of execve record length\n\nThe audit execve record splitting code estimates the length of the message\ngenerated.  But it forgot to include the \"\" that wrap each string in its\nestimation.  This means that execve messages with lots of tiny (1-2 byte)\narguments could still cause records greater than 8k to be emitted.  Simply\nfix the estimate.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "35aa901c0b66cb3c2eeee23f13624014825a44a8",
      "tree": "5ec19e8b65c1f3e6417c197288c42c60c852ef48",
      "parents": [
        "4e8a2372f9255a1464ef488ed925455f53fbdaa1"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:31:33 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 23:50:33 2009 -0400"
      },
      "message": "Audit: fix audit watch use after free\n\nWhen an audit watch is added to a parent the temporary watch inside the\noriginal krule from userspace is freed.  Yet the original watch is used after\nthe real watch was created in audit_add_rules()\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "bfdb4d9f0f611687d71cf6a460efc9e755f4a462",
      "tree": "d5a2ef0ccaa4da93ccb4275d8da80221788b2e48",
      "parents": [
        "d888a4c76c51092993643f8992bf55b3c28da483"
      ],
      "author": {
        "name": "Arun R Bharadwaj",
        "email": "arun@linux.vnet.ibm.com",
        "time": "Tue Jun 23 10:00:58 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 23 10:49:33 2009 +0200"
      },
      "message": "timers: Fix timer_migration interface which accepts any number as input\n\nPoornima Nayek reported:\n\n| Timer migration interface /proc/sys/kernel/timer_migration in\n| 2.6.30-git9 accepts any numerical value as input.\n|\n| Steps to reproduce:\n| 1. echo -6666666 \u003e /proc/sys/kernel/timer_migration\n| 2. cat /proc/sys/kernel/timer_migration\n| -6666666\n|\n| 1. echo 44444444444444444444444444444444444444444444444444444444444 \u003e /proc/sys/kernel/timer_migration\n| 2. cat /proc/sys/kernel/timer_migration\n| -1357789412\n|\n| Expected behavior: Should \u0027echo: write error: Invalid argument\u0027 while\n| setting any value other then 0 \u0026 1\n\nRestrict valid values to 0 and 1.\n\nReported-by: Poornima Nayak \u003cmpnayak@linux.vnet.ibm.com\u003e\nTested-by: Poornima Nayak \u003cmpnayak@linux.vnet.ibm.com\u003e\nSigned-off-by: Arun R Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nCc: poornima nayak \u003cmpnayak@linux.vnet.ibm.com\u003e\nCc: Arun Bharadwaj \u003carun@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090623043058.GA3249@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31950eb66ff47c946fd9c65c2f8c94b6b7ba13fc",
      "tree": "1ab1e09bbe7a0b33bbf19dd725172827bac5bb88",
      "parents": [
        "ac1b7c378ef26fba6694d5f118fe7fc16fee2fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "message": "mm/init: cpu_hotplug_init() must be initialized before SLAB\n\nSLAB uses get/put_online_cpus() which use a mutex which is itself only\ninitialized when cpu_hotplug_init() is called.  Currently we hang suring\nboot in SLAB due to doing that too late.\n\nReported by James Bottomley and Sachin Sant (and possibly others).\nDebugged by Benjamin Herrenschmidt.\n\nThis just removes the dynamic initialization of the data structures, and\nreplaces it with a static one, avoiding this dependency entirely, and\nremoving one unnecessary special initcall.\n\nTested-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nTested-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nTested-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2453d6ff6ffc5f0d496b7b14f509a26f99bf115e",
      "tree": "9e4e709bdb932889b0b9cfc5b2b767cfcf750b83",
      "parents": [
        "12e24f34cb0d55efd08c18b2112507d4bf498008",
        "ab33dcff40d7a9a28587e4425621e4cbc4089e03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:30:01 2009 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq, irq.h: Fix kernel-doc warnings\n  genirq: fix comment to say IRQ_WAKE_THREAD\n"
    },
    {
      "commit": "12e24f34cb0d55efd08c18b2112507d4bf498008",
      "tree": "83b07be17b8ef45f42360a3b9159b3aaae3fbad4",
      "parents": [
        "1eb51c33b21ffa3fceb634d1d6bcd6488c79bc26",
        "eadc84cc01e04f9f74ec2de0c9355be035c7b396"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:29:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 11:29:32 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  perfcounter: Handle some IO return values\n  perf_counter: Push perf_sample_data through the swcounter code\n  perf_counter tools: Define and use our own u64, s64 etc. definitions\n  perf_counter: Close race in perf_lock_task_context()\n  perf_counter, x86: Improve interactions with fast-gup\n  perf_counter: Simplify and fix task migration counting\n  perf_counter tools: Add a data file header\n  perf_counter: Update userspace callchain sampling uses\n  perf_counter: Make callchain samples extensible\n  perf report: Filter to parent set by default\n  perf_counter tools: Handle lost events\n  perf_counter: Add event overlow handling\n  fs: Provide empty .set_page_dirty() aop for anon inodes\n  perf_counter: tools: Makefile tweaks for 64-bit powerpc\n  perf_counter: powerpc: Add processor back-end for MPC7450 family\n  perf_counter: powerpc: Make powerpc perf_counter code safe for 32-bit kernels\n  perf_counter: powerpc: Change how processor-specific back-ends get selected\n  perf_counter: powerpc: Use unsigned long for register and constraint values\n  perf_counter: powerpc: Enable use of software counters on 32-bit powerpc\n  perf_counter tools: Add and use isprint()\n  ...\n"
    },
    {
      "commit": "1eb51c33b21ffa3fceb634d1d6bcd6488c79bc26",
      "tree": "5360e0b439b35a97313ea8250209e7dacff8b9a6",
      "parents": [
        "b0b7065b64fe517b4a50915a1555e8ee98890d64",
        "3104bf03a923c72043a9c5009d9cd56724304916"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:57:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:57:40 2009 -0700"
      },
      "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 out of scope variable access in sched_slice()\n  sched: Hide runqueues from direct refer at source code level\n  sched: Remove unneeded __ref tag\n  sched, x86: Fix cpufreq + sched_clock() TSC scaling\n"
    },
    {
      "commit": "b0b7065b64fe517b4a50915a1555e8ee98890d64",
      "tree": "950e7735585a83f5b4efe7a9473b5b42d5ca4f57",
      "parents": [
        "38df92b8cee936334f686c06df0e5fbb92e252df",
        "d4c4038343510d83727ea922de4435996c26c0c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:56:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:56:46 2009 -0700"
      },
      "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: (24 commits)\n  tracing/urgent: warn in case of ftrace_start_up inbalance\n  tracing/urgent: fix unbalanced ftrace_start_up\n  function-graph: add stack frame test\n  function-graph: disable when both x86_32 and optimize for size are configured\n  ring-buffer: have benchmark test print to trace buffer\n  ring-buffer: do not grab locks in nmi\n  ring-buffer: add locks around rb_per_cpu_empty\n  ring-buffer: check for less than two in size allocation\n  ring-buffer: remove useless compile check for buffer_page size\n  ring-buffer: remove useless warn on check\n  ring-buffer: use BUF_PAGE_HDR_SIZE in calculating index\n  tracing: update sample event documentation\n  tracing/filters: fix race between filter setting and module unload\n  tracing/filters: free filter_string in destroy_preds()\n  ring-buffer: use commit counters for commit pointer accounting\n  ring-buffer: remove unused variable\n  ring-buffer: have benchmark test handle discarded events\n  ring-buffer: prevent adding write in discarded area\n  tracing/filters: strloc should be unsigned short\n  tracing/filters: operand can be negative\n  ...\n\nFix up kmemcheck-induced conflict in kernel/trace/ring_buffer.c manually\n"
    },
    {
      "commit": "38df92b8cee936334f686c06df0e5fbb92e252df",
      "tree": "ffdfd4e5e746300f38a1267b207b293710b3c9a9",
      "parents": [
        "c4c5ab3089c8a794eb0bdaa9794d0f055dd82412",
        "f2e21c9610991e95621a81407cdbab881226419b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:51:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 20 10:51:44 2009 -0700"
      },
      "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  NOHZ: Properly feed cpufreq ondemand governor\n"
    },
    {
      "commit": "d4c4038343510d83727ea922de4435996c26c0c8",
      "tree": "ec735b5133ddb0c46211c87a2a7ee66c71a6d433",
      "parents": [
        "3daeb4da9a0b056bdc4af003e5605c1da4c0b068",
        "71e308a239c098673570d0b417d42262bb535909"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 18:26:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 18:26:48 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/urgent-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "3daeb4da9a0b056bdc4af003e5605c1da4c0b068",
      "tree": "a17fda13d9be51c71880a8ce2c55eaf7337c722f",
      "parents": [
        "9ea1a153a4fb435c22e9988784bb476671286112",
        "4b221f0313f0f7f1f7aa0a1fd16ad400840def26"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 17:25:49 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 17:25:49 2009 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "92bf309a9cd5fedd6c8eefbce0b9a95ada82d0a9",
      "tree": "c52fef4c699f626c0730feccb899eca75c9e4915",
      "parents": [
        "9cffa8d53335d891cc0ecb3824a67118b3ee4b2f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 18:11:53 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 12:30:30 2009 +0200"
      },
      "message": "perf_counter: Push perf_sample_data through the swcounter code\n\nPush the perf_sample_data further outwards to the swcounter interface,\nto abstract it away some more.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ea1a153a4fb435c22e9988784bb476671286112",
      "tree": "0f13f65f1bb8edae5a2906d22a209ff013e283ec",
      "parents": [
        "c85a17e22695969aa24a7ffa40cf26d6e6fcfd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:52:21 2009 +0200"
      },
      "message": "tracing/urgent: warn in case of ftrace_start_up inbalance\n\nPrevent from further ftrace_start_up inbalances so that we avoid\nfuture nop patching omissions with dynamic ftrace.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c85a17e22695969aa24a7ffa40cf26d6e6fcfd50",
      "tree": "2073f145261c6cdad39818993ddb8c099f1498ff",
      "parents": [
        "44ad18e0a65e296b2e68a1452509f6222cdce743"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 05:45:14 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 20 06:28:46 2009 +0200"
      },
      "message": "tracing/urgent: fix unbalanced ftrace_start_up\n\nPerfcounter reports the following stats for a wide system\nprofiling:\n\n #\n # (2364 samples)\n #\n # Overhead  Symbol\n # ........  ......\n #\n    15.40%  [k] mwait_idle_with_hints\n     8.29%  [k] read_hpet\n     5.75%  [k] ftrace_caller\n     3.60%  [k] ftrace_call\n     [...]\n\nThis snapshot has been taken while neither the function tracer nor\nthe function graph tracer was running.\nWith dynamic ftrace, such results show a wrong ftrace behaviour\nbecause all calls to ftrace_caller or ftrace_graph_caller (the patched\ncalls to mcount) are supposed to be patched into nop if none of those\ntracers are running.\n\nThe problem occurs after the first run of the function tracer. Once we\nlaunch it a second time, the callsites will never be nopped back,\nunless you set custom filters.\nFor example it happens during the self tests at boot time.\nThe function tracer selftest runs, and then the dynamic tracing is\ntested too. After that, the callsites are left un-nopped.\n\nThis is because the reset callback of the function tracer tries to\nunregister two ftrace callbacks in once: the common function tracer\nand the function tracer with stack backtrace, regardless of which\none is currently in use.\nIt then creates an unbalance on ftrace_start_up value which is expected\nto be zero when the last ftrace callback is unregistered. When it\nreaches zero, the FTRACE_DISABLE_CALLS is set on the next ftrace\ncommand, triggering the patching into nop. But since it becomes\nunbalanced, ie becomes lower than zero, if the kernel functions\nare patched again (as in every further function tracer runs), they\nwon\u0027t ever be nopped back.\n\nNote that ftrace_call and ftrace_graph_call are still patched back\nto ftrace_stub in the off case, but not the callers of ftrace_call\nand ftrace_graph_caller. It means that the tracing is well deactivated\nbut we waste a useless call into every kernel function.\n\nThis patch just unregisters the right ftrace_ops for the function\ntracer on its reset callback and ignores the other one which is\nnot registered, fixing the unbalance. The problem also happens\nis .30\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "befca96779b0259ac8fad0183e748a62935c39cb",
      "tree": "ab4962e27ce10abc932de4c7a4c1c29fac2988cf",
      "parents": [
        "e6229bec25be4ba00f31dd26e25721cc96c22262"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jun 18 16:49:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 16:46:06 2009 -0700"
      },
      "message": "ptrace: wait_task_zombie: do not account traced sub-threads\n\nThe bug is ancient.\n\nIf we trace the sub-thread of our natural child and this sub-thread exits,\nwe update parent-\u003esignal-\u003ecxxx fields.  But we should not do this until\nthe whole thread-group exits, otherwise we account this thread (and all\nother live threads) twice.\n\nAdd the task_detached() check.  No need to check thread_group_empty(),\nwait_consider_task()-\u003edelay_group_leader() already did this.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b49a9e7e72103ea91946453c19703a4dfa1994fe",
      "tree": "7e9e74881384c581afca56cc397901f71e904c8b",
      "parents": [
        "0c87197142427063e096f11603543ca874045952"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 17:39:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 19 17:57:36 2009 +0200"
      },
      "message": "perf_counter: Close race in perf_lock_task_context()\n\nperf_lock_task_context() is buggy because it can return a dead\ncontext.\n\nthe RCU read lock in perf_lock_task_context() only guarantees\nthe memory won\u0027t get freed, it doesn\u0027t guarantee the object is\nvalid (in our case refcount \u003e 0).\n\nTherefore we can return a locked object that can get freed the\nmoment we release the rcu read lock.\n\nperf_pin_task_context() then increases the refcount and does an\nunlock on freed memory.\n\nThat increased refcount will cause a double free, in case it\nstarted out with 0.\n\nAmmend this by including the get_ctx() functionality in\nperf_lock_task_context() (all users already did this later\nanyway), and return a NULL context when the found one is\nalready dead.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5289d4a181fb6c0b7a7607649af2ffdc491335c",
      "tree": "6c9e9ab46a29c538e4c505d3d3cd135265db08a2",
      "parents": [
        "f5970550d5ccf90453cbd7d260370ea99d1f6513"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 13:22:51 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 19 13:43:12 2009 +0200"
      },
      "message": "perf_counter: Simplify and fix task migration counting\n\nThe task migrations counter was causing rare and hard to decypher\nmemory corruptions under load. After a day of debugging and bisection\nwe found that the problem was introduced with:\n\n  3f731ca: perf_counter: Fix cpu migration counter\n\nTurning them off fixes the crashes. Incidentally, the whole\nperf_counter_task_migration() logic can be done simpler as well,\nby injecting a proper sw-counter event.\n\nThis cleanup also fixed the crashes. The precise failure mode is\nnot completely clear yet, but we are clearly not unhappy about\nhaving a fix ;-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71e308a239c098673570d0b417d42262bb535909",
      "tree": "a9e415d0ae6302e820a1f9d4ff55a724b3a12cf6",
      "parents": [
        "eb4a03780d4c4464ef2ad86d80cca3f3284fe81d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 18 12:45:08 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 18 18:40:18 2009 -0400"
      },
      "message": "function-graph: add stack frame test\n\nIn case gcc does something funny with the stack frames, or the return\nfrom function code, we would like to detect that.\n\nAn arch may implement passing of a variable that is unique to the\nfunction and can be saved on entering a function and can be tested\nwhen exiting the function. Usually the frame pointer can be used for\nthis purpose.\n\nThis patch also implements this for x86. Where it passes in the stack\nframe of the parent function, and will test that frame on exit.\n\nThere was a case in x86_32 with optimize for size (-Os) where, for a\nfew functions, gcc would align the stack frame and place a copy of the\nreturn address into it. The function graph tracer modified the copy and\nnot the actual return address. On return from the funtion, it did not go\nto the tracer hook, but returned to the parent. This broke the function\ngraph tracer, because the return of the parent (where gcc did not do\nthis funky manipulation) returned to the location that the child function\nwas suppose to. This caused strange kernel crashes.\n\nThis test detected the problem and pointed out where the issue was.\n\nThis modifies the parameters of one of the functions that the arch\nspecific code calls, so it includes changes to arch code to accommodate\nthe new prototype.\n\nNote, I notice that the parsic arch implements its own push_return_trace.\nThis is now a generic function and the ftrace_push_return_trace should be\nused instead. This patch does not touch that code.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "eb4a03780d4c4464ef2ad86d80cca3f3284fe81d",
      "tree": "5bf249073e7c5dec68ced1411b78b4bcf41660b7",
      "parents": [
        "4b221f0313f0f7f1f7aa0a1fd16ad400840def26"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 18 12:53:21 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 18 18:39:30 2009 -0400"
      },
      "message": "function-graph: disable when both x86_32 and optimize for size are configured\n\nOn x86_32, when optimize for size is set, gcc may align the frame pointer\nand make a copy of the the return address inside the stack frame.\nThe return address that is located in the stack frame may not be\nthe one used to return to the calling function. This will break the\nfunction graph tracer.\n\nThe function graph tracer replaces the return address with a jump to a hook\nfunction that can trace the exit of the function. If it only replaces\na copy, then the hook will not be called when the function returns.\nWorse yet, when the parent function returns, the function graph tracer\nwill return back to the location of the child function which will\neasily crash the kernel with weird results.\n\nTo see the problem, when i386 is compiled with -Os we get:\n\nc106be03:       57                      push   %edi\nc106be04:       8d 7c 24 08             lea    0x8(%esp),%edi\nc106be08:       83 e4 e0                and    $0xffffffe0,%esp\nc106be0b:       ff 77 fc                pushl  0xfffffffc(%edi)\nc106be0e:       55                      push   %ebp\nc106be0f:       89 e5                   mov    %esp,%ebp\nc106be11:       57                      push   %edi\nc106be12:       56                      push   %esi\nc106be13:       53                      push   %ebx\nc106be14:       81 ec 8c 00 00 00       sub    $0x8c,%esp\nc106be1a:       e8 f5 57 fb ff          call   c1021614 \u003cmcount\u003e\n\nWhen it is compiled with -O2 instead we get:\n\nc10896f0:       55                      push   %ebp\nc10896f1:       89 e5                   mov    %esp,%ebp\nc10896f3:       83 ec 28                sub    $0x28,%esp\nc10896f6:       89 5d f4                mov    %ebx,0xfffffff4(%ebp)\nc10896f9:       89 75 f8                mov    %esi,0xfffffff8(%ebp)\nc10896fc:       89 7d fc                mov    %edi,0xfffffffc(%ebp)\nc10896ff:       e8 d0 08 fa ff          call   c1029fd4 \u003cmcount\u003e\n\nThe compile with -Os will align the stack pointer then set up the\nframe pointer (%ebp), and it copies the return address back into\nthe stack frame. The change to the return address in mcount is done\nto the copy and not the real place holder of the return address.\n\nThen compile with -O2 sets up the frame pointer first, this makes\nthe change to the return address by mcount affect where the function\nwill jump on exit.\n\nReported-by: Jake Edge \u003cjake@lwn.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7bf99fb673f18408be1ebc958321ef4c3f6da9e2",
      "tree": "30913cc5304597b39f1a910997e4f8ad3c3350b4",
      "parents": [
        "2521f2c228ad750701ba4702484e31d876dbc386"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:58 2009 -0700"
      },
      "message": "gcov: enable GCOV_PROFILE_ALL for x86_64\n\nEnable gcov profiling of the entire kernel on x86_64. Required changes\ninclude disabling profiling for:\n\n* arch/kernel/acpi/realmode and arch/kernel/boot/compressed:\n  not linked to main kernel\n* arch/vdso, arch/kernel/vsyscall_64 and arch/kernel/hpet:\n  profiling causes segfaults during boot (incompatible context)\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2521f2c228ad750701ba4702484e31d876dbc386",
      "tree": "2221de3e3de9512979b8244c6304366e3be5be63",
      "parents": [
        "0b923606e75f1ab672e25b14ac039a1cdcfa382f"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "gcov: add gcov profiling infrastructure\n\nEnable the use of GCC\u0027s coverage testing tool gcov [1] with the Linux\nkernel.  gcov may be useful for:\n\n * debugging (has this code been reached at all?)\n * test improvement (how do I change my test to cover these lines?)\n * minimizing kernel configurations (do I need this option if the\n   associated code is never run?)\n\nThe profiling patch incorporates the following changes:\n\n * change kbuild to include profiling flags\n * provide functions needed by profiling code\n * present profiling data as files in debugfs\n\nNote that on some architectures, enabling gcc\u0027s profiling option\n\"-fprofile-arcs\" for the entire kernel may trigger compile/link/\nrun-time problems, some of which are caused by toolchain bugs and\nothers which require adjustment of architecture code.\n\nFor this reason profiling the entire kernel is initially restricted\nto those architectures for which it is known to work without changes.\nThis restriction can be lifted once an architecture has been tested\nand found compatible with gcc\u0027s profiling. Profiling of single files\nor directories is still available on all platforms (see config help\ntext).\n\n[1] http://gcc.gnu.org/onlinedocs/gcc/Gcov.html\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b99b87f70c7785ab1e253c6220f4b0b57ce3a7f7",
      "tree": "ec5688052334448ec8edd3a1a9cb95cd68501ac7",
      "parents": [
        "e24aca672ff06aff0e6a1045efab86043ea5f735"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "kernel: constructor support\n\nCall constructors (gcc-generated initcall-like functions) during kernel\nstart and module load.  Constructors are e.g.  used for gcov data\ninitialization.\n\nDisable constructor support for usermode Linux to prevent conflicts with\nhost glibc.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90af90d7d3a7411db64860c9d6e5798ff87cad08",
      "tree": "84f9c68edb231d6b64d2b24add4d7bedcb5a4aa8",
      "parents": [
        "612ce478fac2729ad564ec3f5d3c551674b8e9c2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:56 2009 -0700"
      },
      "message": "nsproxy: extract create_nsproxy()\n\nclone_nsproxy() does useless copying of old nsproxy -- every pointer will\nbe rewritten to new ns or to old ns.  Remove copying, rename\nclone_nsproxy(), create_nsproxy() will be used by C/R code to create fresh\nnsproxy on restart.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c2a7e72d5937c6a112141c7ff3df0727b3cf3df",
      "tree": "783dc576aef932a3b56c62da2edb63c1bf9b1170",
      "parents": [
        "dca4a979604da1bac6956c0117abc2114d6dd3ec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "utsns: extract creeate_uts_ns()\n\ncreate_uts_ns() will be used by C/R to create fresh uts_ns.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge 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": "dca4a979604da1bac6956c0117abc2114d6dd3ec",
      "tree": "88d37178c05c0441900e81df9fbb217b0ac778d6",
      "parents": [
        "ed469a63c37a996fa2c7041d2dc980715707902c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "pidns: rewrite copy_pid_ns()\n\ncopy_pid_ns() is a perfect example of a case where unwinding leads to more\ncode and makes it less clear.  Watch the diffstat.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nReviewed-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed469a63c37a996fa2c7041d2dc980715707902c",
      "tree": "a81bb7ff48cf56a10facf949407a28eb9e5961ea",
      "parents": [
        "17f98dcf6010a1cfd25d179fd0ce77d3dc2685c3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jun 17 16:27:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "pidns: make create_pid_namespace() accept parent pidns\n\ncreate_pid_namespace() creates everything, but caller has to assign parent\npidns by hand, which is unnatural.  At the moment of call new -\u003elevel has\nto be taken from somewhere and parent pidns is already available.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17f98dcf6010a1cfd25d179fd0ce77d3dc2685c3",
      "tree": "520d88ba2282b4811f492be6cc4565a2a3eea128",
      "parents": [
        "7338f29984114066b00da343a22876bb08259a84"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 17 16:27:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:55 2009 -0700"
      },
      "message": "pids: clean up find_task_by_pid variants\n\nfind_task_by_pid_type_ns is only used to implement find_task_by_vpid and\nfind_task_by_pid_ns, but both of them pass PIDTYPE_PID as first argument.\nSo just fold find_task_by_pid_type_ns into find_task_by_pid_ns and use\nfind_task_by_pid_ns to implement find_task_by_vpid.\n\nWhile we\u0027re at it also remove the exports for find_task_by_pid_ns and\nfind_task_by_vpid - we don\u0027t have any modular callers left as the only\nmodular caller of he old pre pid namespace find_task_by_pid (gfs2) was\nswitched to pid_task which operates on a struct pid pointer instead of a\npid_t.  Given the confusion about pid_t values vs namespace that\u0027s\ngenerally the better option anyway and I think we\u0027re better of restricting\nmodules to do it that way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7338f29984114066b00da343a22876bb08259a84",
      "tree": "639fa2c3bae7a8501ca232c9df905c07de153314",
      "parents": [
        "81fc401e426e8a4c719035ef86d051bd0d1111e5"
      ],
      "author": {
        "name": "Sukanto Ghosh",
        "email": "sukanto.cse.iitb@gmail.com",
        "time": "Wed Jun 17 16:27:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:54 2009 -0700"
      },
      "message": "sysctl.c: remove unused variable\n\nRemoce the unused variable \u0027val\u0027 from __do_proc_dointvec()\n\nThe integer has been declared and used as \u0027val \u003d -val\u0027 and there is no\nreference to it anywhere.\n\nSigned-off-by: Sukanto Ghosh \u003csukanto.cse.iitb@gmail.com\u003e\nCc: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\nCc: Sukanto Ghosh \u003csukanto.cse.iitb@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "371cbb387e33651b4c1326457116568ff01ac422",
      "tree": "4678d02d44fc9764f316e5d84e5d307cc14a0923",
      "parents": [
        "63706172f332fd3f6e7458ebfb35fa6de9c21dc5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:54 2009 -0700"
      },
      "message": "kthreads: simplify migration_thread() exit path\n\nNow that kthread_stop() can be used even if the task has already exited,\nwe can kill the \"wait_to_die:\" loop in migration_thread().  But we must\npin rq-\u003emigration_thread after creation.\n\nActually, I don\u0027t think CPU_UP_CANCELED or CPU_DEAD should wait for\n-\u003emigration_thread exit.  Perhaps we can simplify this code a bit more.\nmigration_call() can set -\u003eshould_stop and forget about this thread.  But\nwe need a new helper in kthred.c for that.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63706172f332fd3f6e7458ebfb35fa6de9c21dc5",
      "tree": "5548f226aa3ba7cca565a2b9d9574a5b6b1a9446",
      "parents": [
        "cdd140bdd6c7bc6395f08877a73c39941501af93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:54 2009 -0700"
      },
      "message": "kthreads: rework kthread_stop()\n\nBased on Eric\u0027s patch which in turn was based on my patch.\n\nkthread_stop() has the nasty problems:\n\n- it runs unpredictably long with the global semaphore held.\n\n- it deadlocks if kthread itself does kthread_stop() before it obeys\n  the kthread_should_stop() request.\n\n- it is not useable if kthread exits on its own, see for example the\n  ugly \"wait_to_die:\" hack in migration_thread()\n\n- it is not possible to just tell kthread it should stop, we must always\n  wait for its exit.\n\nWith this patch kthread() allocates all neccesary data (struct kthread) on\nits own stack, globals kthread_stop_xxx are deleted.  -\u003evfork_done is used\nas a pointer into \"struct kthread\", this means kthread_stop() can easily\nwait for kthread\u0027s exit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdd140bdd6c7bc6395f08877a73c39941501af93",
      "tree": "48664b2790fb2b5152bd67bf70fb3405e1ef6e8b",
      "parents": [
        "e1eb1ebcca871673c76caf63335c4237680040f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "kthreads: simplify the startup synchronization\n\nWe use two completions two create the kernel thread, this is a bit ugly.\nkthread() wakes up create_kthread() via -\u003estarted, then create_kthread()\nwakes up the caller kthread_create() via -\u003edone.  But kthread() does not\nneed to wait for kthread(), it can just return.  Instead kthread() itself\ncan wake up the caller of kthread_create().\n\nKill kthread_create_info-\u003estarted, -\u003edone is enough.  This improves the\nscalability a bit and sijmplifies the code.\n\nThe only problem if kernel_thread() fails, in that case create_kthread()\nmust do complete(\u0026create-\u003edone).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1eb1ebcca871673c76caf63335c4237680040f1",
      "tree": "d5a1b0e667222a43ec2780787ac21011072d45f1",
      "parents": [
        "f95d39d10fe7d47336e65172f52bf64e0096f983"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Wed Jun 17 16:27:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "mm: exit.c reorder wait_opts to remove padding on 64 bit builds\n\nReorder struct wait_opts to remove 8 bytes of alignment padding on 64 bit\nbuilds.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f95d39d10fe7d47336e65172f52bf64e0096f983",
      "tree": "14b469b68455968dfd707695083ece72287dfaab",
      "parents": [
        "a3f6dfb7295facb0505b5beca5a7ce48b0612379"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "do_wait: fix the theoretical race with stop/trace/cont\n\ndo_wait:\n\n\tcurrent-\u003estate \u003d TASK_INTERRUPTIBLE;\n\n\tread_lock(\u0026tasklist_lock);\n\t... search for the task to reap ...\n\nIn theory, the -\u003estate changing can leak into the critical section.  Since\nthe child can change its status under read_lock(tasklist) in parallel\n(finish_stop/ptrace_stop), we can miss the wakeup if __wake_up_parent()\nsees us in TASK_RUNNING state.  Add the barrier.\n\nAlso, use __set_current_state() to set TASK_RUNNING.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3f6dfb7295facb0505b5beca5a7ce48b0612379",
      "tree": "882e1103eaf759ab0e3bc53c08ff69b1f096b1bf",
      "parents": [
        "64a16caf5e3417ee32f670debcb5857b02a9e08e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "do_wait: kill the old BUG_ON, use while_each_thread()\n\ndo_wait() does BUG_ON(tsk-\u003esignal !\u003d current-\u003esignal), this looks like a\nraher obsolete check.  At least, I don\u0027t think do_wait() is the best place\nto verify that all threads have the same -\u003esignal.  Remove it.\n\nAlso, change the code to use while_each_thread().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64a16caf5e3417ee32f670debcb5857b02a9e08e",
      "tree": "1e32f8ac1ad0d7cefeeb6bfdac995ec1ad6d7396",
      "parents": [
        "9e8ae01d1c86dcaa6443c897662545d088036e4c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "do_wait: simplify retval/tsk_result/notask_error mess\n\nNow that we don\u0027t pass \u0026retval down to other helpers we can simplify\nthe code more.\n\n- kill tsk_result, just use retval\n\n- add the \"notask\" label right after the main loop, and\n  s/got end/goto notask/ after the fastpath pid check.\n\n  This way we don\u0027t need to initialize retval before this\n  check and the code becomes a bit more clean, if this pid\n  has no attached tasks we should just skip the list search.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e8ae01d1c86dcaa6443c897662545d088036e4c",
      "tree": "d9465ffe404d318e0038d3133f76550faa3ce3c3",
      "parents": [
        "47918025efdabd34e96b13b26eb2cf2fd6fd1f7c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "introduce \"struct wait_opts\" to simplify do_wait() patches\n\nIntroduce \"struct wait_opts\" which holds the parameters for misc helpers\nin do_wait() pathes.\n\nThis adds 13 lines to kernel/exit.c, but saves 256 bytes from .o and imho\nmakes the code much more readable.\n\nThis patch temporary uglifies rusage/siginfo code a little bit, will be\naddressed by further cleanups.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47918025efdabd34e96b13b26eb2cf2fd6fd1f7c",
      "tree": "bae081deabe6e955e94c5510ae408b50b930c225",
      "parents": [
        "3b34fc5880a2dcc7e5ed9837ef8d6bae051ab266"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "shift \"ptrace implies WUNTRACED\" from ptrace_do_wait() to wait_task_stopped()\n\nNo functional changes, preparation for the next patch.\n\nptrace_do_wait() adds WUNTRACED to options for wait_task_stopped() which\nshould always accept the stopped tracee, even if do_wait() was called\nwithout WUNTRACED.\n\nChange wait_task_stopped() to check \"ptrace || WUNTRACED\" instead.  This\nmakes the code more explicit, and \"int options\" argument becomes const in\ndo_wait() pathes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72a1de39f89325a834a8c70b2a0d8f71d919f640",
      "tree": "f79fefd4eaad9cbc381792bddb1e1f3f432ad9f6",
      "parents": [
        "77d1ef79568b337f599b75795acc8f78a87ba9ba"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "copy_process(): remove the unneeded clear_tsk_thread_flag(TIF_SIGPENDING)\n\nThe forked child can have TIF_SIGPENDING if it was copied from parent\u0027s\nti-\u003eflags.  But this is harmless and actually almost never happens,\nbecause copy_process() can\u0027t succeed if signal_pending() \u003d\u003d T.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77d1ef79568b337f599b75795acc8f78a87ba9ba",
      "tree": "4fc0f622c6e064e76e6fd28981c3375ee3d153a9",
      "parents": [
        "e49612544c695117644af48bb4625264a3d2918f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "wait_task_zombie: do not use thread_group_cputime()\n\nThere is no reason for thread_group_cputime() in wait_task_zombie(), there\nmust be no other threads.\n\nThis call was previously needed to collect the per-cpu data which we do\nnot have any longer.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Vitaly Mayatskikh \u003cvmayatsk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e49612544c695117644af48bb4625264a3d2918f",
      "tree": "7fe576d195533fb671c7a610cc35e9608e48c87e",
      "parents": [
        "d92656633b8352c6d4b14afcb7beb154d76e7aa6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "ptrace: don\u0027t take tasklist to get/set -\u003elast_siginfo\n\nChange ptrace_getsiginfo/ptrace_setsiginfo to use lock_task_sighand()\nwithout tasklist_lock.  Perhaps it makes sense to make a single helper\nwith \"bool rw\" argument.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d92656633b8352c6d4b14afcb7beb154d76e7aa6",
      "tree": "616dabaff973bc4483ece684c93afdb2dcacff59",
      "parents": [
        "d1e98f429aa10132b3010ba3b0be47552a2eb14b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:52 2009 -0700"
      },
      "message": "ptrace: do_notify_parent_cldstop: fix the wrong -\u003ensproxy usage\n\nIf the non-traced sub-thread calls do_notify_parent_cldstop(), we send the\nnotification to group_leader-\u003ereal_parent and we report group_leader\u0027s\npid.\n\nBut, if group_leader is traced we use the wrong -\u003eparent-\u003ensproxy-\u003epid_ns,\nthe tracer and parent can live in different namespaces.  Change the code\nto use \"parent\" instead of tsk-\u003eparent.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1e98f429aa10132b3010ba3b0be47552a2eb14b",
      "tree": "bd4458a65ac9ff942a3ba6dfcd70c281e15e067a",
      "parents": [
        "8053bdd5ce15dcf043d41a4dd6cac4a5567effdc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace: wait_task_zombie: s/-\u003eparent/-\u003ereal_parent/\n\nChange wait_task_zombie() to use -\u003ereal_parent instead of -\u003eparent.  We\ncould even use current afaics, but -\u003ereal_parent is more clean.\n\nWe know that the child is not ptrace_reparented() and thus they are equal.\n But we should avoid using task_struct-\u003eparent, we are going to remove it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8053bdd5ce15dcf043d41a4dd6cac4a5567effdc",
      "tree": "b139a0763d46143fbe5e36811b03c1987ef23b7a",
      "parents": [
        "4b105cbbaf7c06e01c27391957dc3c446328d087"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace_get_task_struct: s/tasklist/rcu/, make it static\n\n- Use rcu_read_lock() instead of tasklist_lock to find/get the task\n  in ptrace_get_task_struct().\n\n- Make it static, it has no callers outside of ptrace.c.\n\n- The comment doesn\u0027t match the reality, this helper does not do\n  any checks. Beacuse it is really trivial and static I removed the\n  whole comment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b105cbbaf7c06e01c27391957dc3c446328d087",
      "tree": "4b6a65061a7bf46baea9d8867fdda0c22c8a3d45",
      "parents": [
        "f2f0b00ad61d53adfecb8bdf8f3cf8f05f6ed548"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace: do not use task_lock() for attach\n\nRemove the \"Nasty, nasty\" lock dance in ptrace_attach()/ptrace_traceme() -\nfrom now task_lock() has nothing to do with ptrace at all.\n\nWith the recent changes nobody uses task_lock() to serialize with ptrace,\nbut in fact it was never needed and it was never used consistently.\n\nHowever ptrace_attach() calls __ptrace_may_access() and needs task_lock()\nto pin task-\u003emm for get_dumpable().  But we can call __ptrace_may_access()\nbefore we take tasklist_lock, -\u003ecred_exec_mutex protects us against\ndo_execve() path which can change creds and MMF_DUMP* flags.\n\n(ugly, but we can\u0027t use ptrace_may_access() because it hides the error\ncode, so we have to take task_lock() and use __ptrace_may_access()).\n\nNOTE: this change assumes that LSM hooks, security_ptrace_may_access() and\nsecurity_ptrace_traceme(), can be called without task_lock() held.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2f0b00ad61d53adfecb8bdf8f3cf8f05f6ed548",
      "tree": "dda08f8bb3e8c403b2d1cf941b17c9909975c209",
      "parents": [
        "b79b7ba93df14a1fc0b8d4d6d78a0e097de03bbd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace: cleanup check/set of PT_PTRACED during attach\n\nptrace_attach() and ptrace_traceme() are the last functions which look as\nif the untraced task can have task-\u003eptrace !\u003d 0, this must not be\npossible.  Change the code to just check -\u003eptrace !\u003d 0 and s/|\u003d/\u003d/ to set\nPT_PTRACED.\n\nAlso, a couple of trivial whitespace cleanups in ptrace_attach().\n\nAnd move ptrace_traceme() up near ptrace_attach() to keep them close to\neach other.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b79b7ba93df14a1fc0b8d4d6d78a0e097de03bbd",
      "tree": "65ce7c7335fc1dd0a91a3224466c4eaa0ec489f4",
      "parents": [
        "5cb11446892833e50970fb2277a9f7563b0a8bd3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace: ptrace_attach: check PF_KTHREAD + exit_state instead of -\u003emm\n\n- Add PF_KTHREAD check to prevent attaching to the kernel thread\n  with a borrowed -\u003emm.\n\n  With or without this change we can race with daemonize() which\n  can set PF_KTHREAD or clear -\u003emm after ptrace_attach() does the\n  check, but this doesn\u0027t matter because reparent_to_kthreadd()\n  does ptrace_unlink().\n\n- Kill \"!task-\u003emm\" check. We don\u0027t really care about -\u003emm !\u003d NULL,\n  and the task can call exit_mm() right after we drop task_lock().\n  What we need is to make sure we can\u0027t attach after exit_notify(),\n  check task-\u003eexit_state !\u003d 0 instead.\n\nAlso, move the \"already traced\" check down for cosmetic reasons.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cb11446892833e50970fb2277a9f7563b0a8bd3",
      "tree": "9cb858cb093c4b927601ef8a612d8dd791aeb1c8",
      "parents": [
        "1c216279539bd65c5a3d497e25d441dbddbcf1ec"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:51 2009 -0700"
      },
      "message": "ptrace: do not use task-\u003eptrace directly in core kernel\n\nNo functional changes.\n\n- Nobody except ptrace.c \u0026 co should use ptrace flags directly, we have\n  task_ptrace() for that.\n\n- No need to specially check PT_PTRACED, we must not have other PT_ bits\n  set without PT_PTRACED. And no need to know this flag exists.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dea33cfd99022d82d923a0c6a3bd895fb6683fb2",
      "tree": "889ea712abbbb8b8c220dd593383ec6f9ad15ffc",
      "parents": [
        "48597760fad3d6a3e30a14241a3ce5ccb1a0e9bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:49 2009 -0700"
      },
      "message": "ptrace: mm_need_new_owner: use -\u003ereal_parent to search in the siblings\n\n\"Search in the siblings\" should use -\u003ereal_parent, not -\u003eparent.  If the\ntask is traced then -\u003eparent \u003d\u003d tracer, while the task\u0027s parent is always\n-\u003ereal_parent.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87245135d5057edd5a8037131f81eeffd76d4fef",
      "tree": "9c6c695f474dfced54311467fd5c14de57f6dbb9",
      "parents": [
        "2ffebca6aa7e1687905c842dd8c5c1e811e574e7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:48 2009 -0700"
      },
      "message": "allow_signal: kill the bogus -\u003emm check, add a note about CLONE_SIGHAND\n\nallow_signal() checks -\u003emm \u003d\u003d NULL.  Not sure why.  Perhaps to make sure\ncurrent is the kernel thread.  But this helper must not be used unless we\nare the kernel thread, kill this check.\n\nAlso, document the fact that the CLONE_SIGHAND kthread must not use\nallow_signal(), unless the caller really wants to change the parent\u0027s\n-\u003esighand-\u003eaction as well.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5b947b28828e82814605824e5db0bc58d66d8c0",
      "tree": "0ce0c8c468668eb30d769fa97a99d332b9d9f987",
      "parents": [
        "22a668d7c3ef833e7d67e9cef587ecc78069d532"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jun 17 16:27:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:48 2009 -0700"
      },
      "message": "memcg: add interface to reset limits\n\nWe don\u0027t have an interface to reset mem.limit or memsw.limit now.\n\nThis patch allows to reset mem.limit or memsw.limit when they are being\nset to -1.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.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": "f9ab5b5b0f5be506640321d710b0acd3dca6154a",
      "tree": "abd8e17febed8507b4c0f96a88d2711fccb31b2b",
      "parents": [
        "8ca739e3694b83cdf22be0f6eff063e721deb1e4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 17 16:26:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:46 2009 -0700"
      },
      "message": "cgroups: forbid noprefix if mounting more than just cpuset subsystem\n\nThe \u0027noprefix\u0027 option was introduced for backwards-compatibility of\ncpuset, but actually it can be used when mounting other subsystems.\n\nThis results in possibility of name collision, and now the collision can\nreally happen, because we have \u0027stat\u0027 file in both memory and cpuacct\nsubsystem:\n\n\t# mount -t cgroup -o noprefix,memory,cpuacct xxx /mnt\n\nCgroup will happily mount the 2 subsystems, but only \u0027stat\u0027 file of memory\nsubsys can be seen.\n\nWe don\u0027t want users to use nopreifx, and also want to avoid name\ncollision, so we change to allow noprefix only if mounting just the cpuset\nsubsystem.\n\n[akpm@linux-foundation.org: fix shift for cpuset_subsys_id \u003e\u003d 32]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa0ce5bbc2dbb1853bd0c6d13f17716fcc38ac5a",
      "tree": "79efff8d1e52e3d1b968a5122447d25886ef29d7",
      "parents": [
        "1d89b30cc9be41af87881682ec82e2c107849dbe"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Wed Jun 17 16:25:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:40 2009 -0700"
      },
      "message": "softirq: introduce statistics for softirq\n\nStatistics for softirq doesn\u0027t exist.\nIt will be helpful like statistics for interrupts.\nThis patch introduces counting the number of softirq,\nwhich will be exported in /proc/softirqs.\n\nWhen softirq handler consumes much CPU time,\n/proc/stat is like the following.\n\n$ while :; do  cat /proc/stat | head -n1 ; sleep 10 ; done\ncpu  88 0 408 739665 583 28 2 0 0\ncpu  450 0 1090 740970 594 28 1294 0 0\n                              ^^^^\n                             softirq\n\nIn such a situation,\n/proc/softirqs shows us which softirq handler is invoked.\nWe can see the increase rate of softirqs.\n\n\u003cbefore\u003e\n$ cat /proc/softirqs\n                CPU0       CPU1       CPU2       CPU3\nHI                 0          0          0          0\nTIMER         462850     462805     462782     462718\nNET_TX             0          0          0        365\nNET_RX          2472          2          2         40\nBLOCK              0          0        381       1164\nTASKLET            0          0          0        224\nSCHED         462654     462689     462698     462427\nRCU             3046       2423       3367       3173\n\n\u003cafter\u003e\n$ cat /proc/softirqs\n                CPU0       CPU1       CPU2       CPU3\nHI                 0          0          0          0\nTIMER         463361     465077     465056     464991\nNET_TX            53          0          1        365\nNET_RX          3757          2          2         40\nBLOCK              0          0        398       1170\nTASKLET            0          0          0        224\nSCHED         463074     464318     464612     463330\nRCU             3505       2948       3947       3673\n\nWhen CPU TIME of softirq is high,\nthe rates of increase is the following.\n  TIMER  : 220/sec     : CPU1-3\n  NET_TX : 5/sec       : CPU0\n  NET_RX : 120/sec     : CPU0\n  SCHED  : 40-200/sec  : all CPU\n  RCU    : 45-58/sec   : all CPU\n\nThe rates of increase in an idle mode is the following.\n  TIMER  : 250/sec\n  SCHED  : 250/sec\n  RCU    : 2/sec\n\nIt seems many softirqs for receiving packets and rcu are invoked.  This\ngives us help for checking system.\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nReviewed-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43a21ea81a2400992561146327c4785ce7f7be38",
      "tree": "d4974c0ff9d7f40291515c5c0cf7e0d51abccb66",
      "parents": [
        "d3a9262e59f7fb83c6d44df3b2b1460ed57d3ea1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 25 19:39:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 18 14:46:11 2009 +0200"
      },
      "message": "perf_counter: Add event overlow handling\n\nAlternative method of mmap() data output handling that provides\nbetter overflow management and a more reliable data stream.\n\nUnlike the previous method, that didn\u0027t have any user-\u003ekernel\nfeedback and relied on userspace keeping up, this method relies on\nuserspace writing its last read position into the control page.\n\nIt will ensure new output doesn\u0027t overwrite not-yet read events,\nnew events for which there is no space left are lost and the\noverflow counter is incremented, providing exact event loss\nnumbers.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4b221f0313f0f7f1f7aa0a1fd16ad400840def26",
      "tree": "a294e6719eefb3c68562627f59a7c0a67ae9b760",
      "parents": [
        "8d707e8eb4de4b930573155ab4df4b3270ee25dd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 17:01:09 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 17:01:09 2009 -0400"
      },
      "message": "ring-buffer: have benchmark test print to trace buffer\n\nCurrently the output of the ring buffer benchmark/test prints to\nthe console. This test runs for ten seconds every ten seconds and\nouputs the result after every iteration. This needlessly fills up\nthe logs.\n\nThis patch makes the ring buffer benchmark/test print to the ftrace\nbuffer using trace_printk. To view the test results, you must examine\nthe debug/tracing/trace file.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d707e8eb4de4b930573155ab4df4b3270ee25dd",
      "tree": "2594b38c73fa1c944587f62a2f9ce70fe4f90ce4",
      "parents": [
        "d47882078f05c2cb46b85f1e12a58ed9315b9d63"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 16 21:22:48 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:27 2009 -0400"
      },
      "message": "ring-buffer: do not grab locks in nmi\n\nIf ftrace_dump_on_oops is set, and an NMI detects a lockup, then it\nwill need to read from the ring buffer. But the read side of the\nring buffer still takes locks. This patch adds a check on the read\nside that if it is in an NMI, then it will disable the ring buffer\nand not take any locks.\n\nReads can still happen on a disabled ring buffer.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d47882078f05c2cb46b85f1e12a58ed9315b9d63",
      "tree": "ad10f2172384d2112b6e8136b9981a0eb813539b",
      "parents": [
        "5f78abeebbf0a80975d719e11374535ca15396cb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 00:39:43 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:23 2009 -0400"
      },
      "message": "ring-buffer: add locks around rb_per_cpu_empty\n\nThe checking of whether the buffer is empty or not needs to be serialized\namong the readers. Add the reader spin lock around it.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5f78abeebbf0a80975d719e11374535ca15396cb",
      "tree": "8c5a5f11caadc1cb662152fb1ef84b5b1fa19bbb",
      "parents": [
        "0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 14:11:10 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:20 2009 -0400"
      },
      "message": "ring-buffer: check for less than two in size allocation\n\nThe ring buffer must have at least two pages allocated for the\nreader page swap to work.\n\nThe page count check will miss the case of a zero size passed in.\nEven though a zero size ring buffer would probably fail an allocation,\nmaking the min size check for less than two instead of equal to one makes\nthe code a bit more robust.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf",
      "tree": "4798b2172902f8ce4dc81856ee1d858909147824",
      "parents": [
        "c6a9d7b55e2df63de012a9a285bf2a0bee8e4d59"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 17 14:03:44 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 17 14:16:07 2009 -0400"
      },
      "message": "ring-buffer: remove useless compile check for buffer_page size\n\nThe original version of the ring buffer had a hack to map the\npage struct that held the pages of the buffer to also be the structure\nthat the ring buffer would keep the pages in a link list.\n\nThis overlap of the page struct was very dangerous and that hack was\nremoved a while ago.\n\nBut there was a check to make sure the buffer_page never became bigger\nthan the page struct, and would fail the compile if it did. The\ncheck was only meaningful when we had the hack. Now that we have separate\nallocated descriptors for the buffer pages, we can remove this check.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b7c142dbf1e7422d0be7f7faa3f1163ad9da9788",
      "tree": "6e62c8654bb9c329f89246235062ac2a289960df",
      "parents": [
        "0bd8df908de2aefe312d05bd25cd3abc21a6d1da",
        "f2c5dbd7b7396457efc114f825acfdd4db4608f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: start using hrtimers\n  hrtimer: export ktime_add_safe\n  UBIFS: do not forget to register BDI device\n  UBIFS: allow sync option in rootflags\n  UBIFS: remove dead code\n  UBIFS: use anonymous device\n  UBIFS: return proper error code if the compr is not present\n  UBIFS: return error if link and unlink race\n  UBIFS: reset no_space flag after inode deletion\n"
    },
    {
      "commit": "3104bf03a923c72043a9c5009d9cd56724304916",
      "tree": "c65dbf477871ea843241055cda84b2448aee0c71",
      "parents": [
        "348ec61e6268c3cd7ee75cfa50e408184a941506"
      ],
      "author": {
        "name": "Christian Engelmayer",
        "email": "christian.engelmayer@frequentis.com",
        "time": "Tue Jun 16 10:35:12 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 18:37:54 2009 +0200"
      },
      "message": "sched: Fix out of scope variable access in sched_slice()\n\nAccess to local variable lw is aliased by usage of pointer load.\nAccess to pointer load in calc_delta_mine() happens when lw is\nalready out of scope.\n\n[ Reported by static code analysis. ]\n\nSigned-off-by: Christian Engelmayer \u003cchristian.engelmayer@frequentis.com\u003e\nLKML-Reference: \u003c20090616103512.0c846e51@frequentis.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "348ec61e6268c3cd7ee75cfa50e408184a941506",
      "tree": "10829dde8d184ed59bf3d76578bb444d097a8598",
      "parents": [
        "fd5e1b5dbaa8b4aacc0e251d74182eda37062194"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Wed Jun 17 22:20:55 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 18:29:42 2009 +0200"
      },
      "message": "sched: Hide runqueues from direct refer at source code level\n\nThere are some points which refer the per-cpu value \"runqueues\" directly.\nsched.c provides nice abstraction, such as cpu_rq() and this_rq(),\nso we should use these macros when looking runqueues.\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nLKML-Reference: \u003c20090617.222055.374768827975756908.mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd5e1b5dbaa8b4aacc0e251d74182eda37062194",
      "tree": "cba4e780784649fe9c9535b8d5ac1617f52e1a15",
      "parents": [
        "84599f8a59e77699f18f06948cea171a349a3f0f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jun 15 13:34:19 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 16:08:04 2009 +0200"
      },
      "message": "sched: Remove unneeded __ref tag\n\nThose two functions no longer call alloc_bootmmem_cpumask_var(),\nso no need to tag them with __init_refok.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003c4A35DD5B.9050106@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a3d06cc6aa3e765dc2bf98626f87272dcf641dca",
      "tree": "aa3e49b58f08d6c0ea55cdca4fb5e6c8ba6ae333",
      "parents": [
        "0990b1c65729012a63e0eeca93aaaafea4e9a064",
        "65795efbd380a832ae508b04dba8f8e53f0b84d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 13:06:17 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 13:06:17 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nConflicts:\n\tarch/x86/include/asm/kmap_types.h\n\tinclude/linux/mm.h\n\n\tinclude/asm-generic/kmap_types.h\n\nMerge reason: We crossed changes with kmap_types.h cleanups in mainline.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "517d08699b250021303f9a7cf0d758b6dc0748ed",
      "tree": "5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc",
      "parents": [
        "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
        "a34601c5d84134055782ee031d58d82f5440e918"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027\n\n* akpm: (182 commits)\n  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n  fbdev: *bfin*: fix __dev{init,exit} markings\n  fbdev: *bfin*: drop unnecessary calls to memset\n  fbdev: bfin-t350mcqb-fb: drop unused local variables\n  fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n  fbdev: s1d13xxxfb: add accelerated bitblt functions\n  tcx: use standard fields for framebuffer physical address and length\n  fbdev: add support for handoff from firmware to hw framebuffers\n  intelfb: fix a bug when changing video timing\n  fbdev: use framebuffer_release() for freeing fb_info structures\n  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n  s3c-fb: CPUFREQ frequency scaling support\n  s3c-fb: fix resource releasing on error during probing\n  carminefb: fix possible access beyond end of carmine_modedb[]\n  acornfb: remove fb_mmap function\n  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n  mb862xxfb: restrict compliation of platform driver to PPC\n  Samsung SoC Framebuffer driver: add Alpha Channel support\n  atmel-lcdc: fix pixclock upper bound detection\n  offb: use framebuffer_alloc() to allocate fb_info struct\n  ...\n\nManually fix up conflicts due to kmemcheck in mm/slab.c\n"
    },
    {
      "commit": "009789f040b71699278e70a6664701c10065e430",
      "tree": "83692d9eec2773e1d78628120f8e36807efe233b",
      "parents": [
        "b72b71c6cb6ecc564d4d5f9c512a7df269837846"
      ],
      "author": {
        "name": "Chris Peterson",
        "email": "cpeterso@cpeterso.com",
        "time": "Tue Jun 16 15:33:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:49 2009 -0700"
      },
      "message": "slow-work: use round_jiffies() for thread pool\u0027s cull and OOM timers\n\nRound the slow work queue\u0027s cull and OOM timeouts to whole second boundary\nwith round_jiffies().  The slow work queue uses a pair of timers to cull\nidle threads and, after OOM, to delay new thread creation.\n\nThis patch also extracts the mod_timer() logic for the cull timer into a\nseparate helper function.\n\nBy rounding non-time-critical timers such as these to whole seconds, they\nwill be batched up to fire at the same time rather than being spread out.\nThis allows the CPU wake up less, which saves power.\n\nSigned-off-by: Chris Peterson \u003ccpeterso@cpeterso.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30639b6af85a92491b22dd14c17b14ca11da60e6",
      "tree": "f21c4dd631da5b8750678958b29947d4d0e90cb0",
      "parents": [
        "8b0b1db0133e4218a9b45c09e53793c039edebe1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jun 16 15:33:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "groups: move code to kernel/groups.c\n\nMove supplementary groups implementation to kernel/groups.c .\nkernel/sys.c already accumulated quite a few random stuff.\n\nDo strictly copy/paste + add required headers to compile.  Compile-tested\non many configs and archs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b33112d1cc25e658c334125d127a6ae15d5a0ad6",
      "tree": "a09dc0715c317198caf868010a6e10f67bf939c2",
      "parents": [
        "417dcdf99ec9f8d8d6917189130bdc17cb67c678"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Jun 16 15:33:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "kernel/kfifo.c: replace conditional test with is_power_of_2()\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6837765963f1723e80ca97b1fae660f3a60d77df",
      "tree": "a9a6ed4b7e3bf188966da78b04bf39298f24375a",
      "parents": [
        "bce7394a3ef82b8477952fbab838e4a6e8cb47d2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:42 2009 -0700"
      },
      "message": "mm: remove CONFIG_UNEVICTABLE_LRU config option\n\nCurrently, nobody wants to turn UNEVICTABLE_LRU off.  Thus this\nconfigurability is unnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f33d49a2ed546e01f7b1d0607661810f2421859",
      "tree": "8b05ac7ec2cd123efb266ecaa1bf0bd1487158f8",
      "parents": [
        "75927af8bcb940dad4fe281713d526cb520869ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 16 15:32:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm, PM/Freezer: Disable OOM killer when tasks are frozen\n\nCurrently, the following scenario appears to be possible in theory:\n\n* Tasks are frozen for hibernation or suspend.\n* Free pages are almost exhausted.\n* Certain piece of code in the suspend code path attempts to allocate\n  some memory using GFP_KERNEL and allocation order less than or\n  equal to PAGE_ALLOC_COSTLY_ORDER.\n* __alloc_pages_internal() cannot find a free page so it invokes the\n  OOM killer.\n* The OOM killer attempts to kill a task, but the task is frozen, so\n  it doesn\u0027t die immediately.\n* __alloc_pages_internal() jumps to \u0027restart\u0027, unsuccessfully tries\n  to find a free page and invokes the OOM killer.\n* No progress can be made.\n\nAlthough it is now hard to trigger during hibernation due to the memory\nshrinking carried out by the hibernation code, it is theoretically\npossible to trigger during suspend after the memory shrinking has been\nremoved from that code path.  Moreover, since memory allocations are\ngoing to be used for the hibernation memory shrinking, it will be even\nmore likely to happen during hibernation.\n\nTo prevent it from happening, introduce the oom_killer_disabled switch\nthat will cause __alloc_pages_internal() to fail in the situations in\nwhich the OOM killer would have been called and make the freezer set\nthis switch after tasks have been successfully frozen.\n\n[akpm@linux-foundation.org: be nicer to the namespace]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Fengguang Wu \u003cfengguang.wu@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6484eb3e2a81807722c5f28efef94d8338b7b996",
      "tree": "10ce36f412c2ff0c7eb399af1a189f8e354f56db",
      "parents": [
        "b3c466ce512923298ae8c0121d3e9f397a3f1210"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not check NUMA node ID when the caller knows the node is valid\n\nCallers of alloc_pages_node() can optionally specify -1 as a node to mean\n\"allocate from the current node\".  However, a number of the callers in\nfast paths know for a fact their node is valid.  To avoid a comparison and\nbranch, this patch adds alloc_pages_exact_node() that only checks the nid\nwith VM_BUG_ON().  Callers that know their node is valid are then\nconverted.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\t[for the SLOB NUMA bits]\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58568d2a8215cb6f55caf2332017d7bdff954e1c",
      "tree": "ffcdee457494ac78d6550b0aeac86536ca152e7b",
      "parents": [
        "950592f7b991f267d707d372b90f508bbe72acbc"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpuset,mm: update tasks\u0027 mems_allowed in time\n\nFix allocating page cache/slab object on the unallowed node when memory\nspread is set by updating tasks\u0027 mems_allowed after its cpuset\u0027s mems is\nchanged.\n\nIn order to update tasks\u0027 mems_allowed in time, we must modify the code of\nmemory policy.  Because the memory policy is applied in the process\u0027s\ncontext originally.  After applying this patch, one task directly\nmanipulates anothers mems_allowed, and we use alloc_lock in the\ntask_struct to protect mems_allowed and memory policy of the task.\n\nBut in the fast path, we didn\u0027t use lock to protect them, because adding a\nlock may lead to performance regression.  But if we don\u0027t add a lock,the\ntask might see no nodes when changing cpuset\u0027s mems_allowed to some\nnon-overlapping set.  In order to avoid it, we set all new allowed nodes,\nthen clear newly disallowed ones.\n\n[lee.schermerhorn@hp.com:\n  The rework of mpol_new() to extract the adjusting of the node mask to\n  apply cpuset and mpol flags \"context\" breaks set_mempolicy() and mbind()\n  with MPOL_PREFERRED and a NULL nodemask--i.e., explicit local\n  allocation.  Fix this by adding the check for MPOL_PREFERRED and empty\n  node mask to mpol_new_mpolicy().\n\n  Remove the now unneeded \u0027nodes \u003d NULL\u0027 from mpol_new().\n\n  Note that mpol_new_mempolicy() is always called with a non-NULL\n  \u0027nodes\u0027 parameter now that it has been removed from mpol_new().\n  Therefore, we don\u0027t need to test nodes for NULL before testing it for\n  \u0027empty\u0027.  However, just to be extra paranoid, add a VM_BUG_ON() to\n  verify this assumption.]\n[lee.schermerhorn@hp.com:\n\n  I don\u0027t think the function name \u0027mpol_new_mempolicy\u0027 is descriptive\n  enough to differentiate it from mpol_new().\n\n  This function applies cpuset set context, usually constraining nodes\n  to those allowed by the cpuset.  However, when the \u0027RELATIVE_NODES flag\n  is set, it also translates the nodes.  So I settled on\n  \u0027mpol_set_nodemask()\u0027, because the comment block for mpol_new() mentions\n  that we need to call this function to \"set nodes\".\n\n  Some additional minor line length, whitespace and typo cleanup.]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "950592f7b991f267d707d372b90f508bbe72acbc",
      "tree": "b57ef015ff5cd54d8ab21005b466c80e9ccfa9e3",
      "parents": [
        "f3b39d47ebc51416fc3b690a32dfe030a2035e67"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpusets: update tasks\u0027 page/slab spread flags in time\n\nFix the bug that the kernel didn\u0027t spread page cache/slab object evenly\nover all the allowed nodes when spread flags were set by updating tasks\u0027\npage/slab spread flags in time.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "f3b39d47ebc51416fc3b690a32dfe030a2035e67"
}
