)]}'
{
  "log": [
    {
      "commit": "e83c2b0ff325f52dda1aff3572d0e1516216c54b",
      "tree": "0d9dd56df33a308d03c8ac2d666826017777f0cf",
      "parents": [
        "9fcfc91bda04259abb9af2fd83bbf48d19da8502",
        "12de38b186c2af97bf0b4a1f907f766df46b1def"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:04:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:04:53 2009 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Inform kmemleak about pid_hash\n  kmemleak: Do not warn if an unknown object is freed\n  kmemleak: Do not report new leaked objects if the scanning was stopped\n  kmemleak: Slightly change the policy on newly allocated objects\n  kmemleak: Do not trigger a scan when reading the debug/kmemleak file\n  kmemleak: Simplify the reports logged by the scanning thread\n  kmemleak: Enable task stacks scanning by default\n  kmemleak: Allow the early log buffer to be configurable.\n"
    },
    {
      "commit": "55bcab46955644d5a8149a9b3cc9752a336e02f8",
      "tree": "a45593603de9265cb0624043ab36f4e0f98823fc",
      "parents": [
        "58580c86450bc09ff101f0d23fd8a162c146bc64",
        "7bec7a9134c25cecb0d7029199b59f7b1bef35b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:02:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 19:02:59 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: (47 commits)\n  perf report: Add --symbols parameter\n  perf report: Add --comms parameter\n  perf report: Add --dsos parameter\n  perf_counter tools: Adjust only prelinked symbol\u0027s addresses\n  perf_counter: Provide a way to enable counters on exec\n  perf_counter tools: Reduce perf stat measurement overhead/skew\n  perf stat: Use percentages for scaling output\n  perf_counter, x86: Update x86_pmu after WARN()\n  perf stat: Micro-optimize the code: memcpy is only required if no event is selected and !null_run\n  perf stat: Improve output\n  perf stat: Fix multi-run stats\n  perf stat: Add -n/--null option to run without counters\n  perf_counter tools: Remove dead code\n  perf_counter: Complete counter swap\n  perf report: Print sorted callchains per histogram entries\n  perf_counter tools: Prepare a small callchain framework\n  perf record: Fix unhandled io return value\n  perf_counter tools: Add alias for \u0027l1d\u0027 and \u0027l1i\u0027\n  perf-report: Add bare minimum PERF_EVENT_READ parsing\n  perf-report: Add modes for inherited stats and no-samples\n  ...\n"
    },
    {
      "commit": "df279ca8966c3de83105428e3391ab17690802a9",
      "tree": "9c10bbad25bbb8f3b40bd25ec3aadf8f0c0a4324",
      "parents": [
        "b4f90189dc2c7a7e6926ea480ae3404ec3de4581"
      ],
      "author": {
        "name": "Renaud Lottiaux",
        "email": "renaud.lottiaux@kerlabs.com",
        "time": "Tue Jun 30 11:41:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:00 2009 -0700"
      },
      "message": "bsdacct: fix access to invalid filp in acct_on()\n\nThe file opened in acct_on and freshly stored in the ns-\u003ebacct struct can\nbe closed in acct_file_reopen by a concurrent call after we release\nacct_lock and before we call mntput(file-\u003ef_path.mnt).\n\nRecord file-\u003ef_path.mnt in a local variable and use this variable only.\n\nSigned-off-by: Renaud Lottiaux \u003crenaud.lottiaux@kerlabs.com\u003e\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.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": "8bc1ad7dd301b7ca7454013519fa92e8c53655ff",
      "tree": "602ec95fa99b0256370f3d887953cb30e159cc25",
      "parents": [
        "529ba0d9669386157457a1cb96294d2fe79b3f88"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Tue Jun 30 11:41:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:00 2009 -0700"
      },
      "message": "kernel/resource.c: fix sign extension in reserve_setup()\n\nWhen the 32-bit signed quantities get assigned to the u64 resource_size_t,\nthey are incorrectly sign-extended.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d13253\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d9905\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nReported-by: Leann Ogasawara \u003cleann@ubuntu.com\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nReported-by: \u003cpablomme@googlemail.com\u003e\nTested-by: \u003cpablomme@googlemail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57e7986ed142417498155ebcd5eaf617ac37136d",
      "tree": "81ce9acd79ee7e6383dfd5cdadc4e016a012990e",
      "parents": [
        "051ae7f7344f453616b6b10332d4d8e1d40ed823"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jun 30 16:07:19 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 30 12:00:16 2009 +0200"
      },
      "message": "perf_counter: Provide a way to enable counters on exec\n\nThis provides a way to mark a counter to be enabled on the next\nexec. This is useful for measuring the total activity of a\nprogram without including overhead from the process that\nlaunches it.\n\nThis also changes the perf stat command to use this new\nfacility.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c19017.43927.838745.689203@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12de38b186c2af97bf0b4a1f907f766df46b1def",
      "tree": "de85488aa885f29933eec7e733b2e232401fd105",
      "parents": [
        "b6e687221eb840bacd4d4a991e5f8e7ed3ae910a"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:13:55 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jun 29 17:14:14 2009 +0100"
      },
      "message": "kmemleak: Inform kmemleak about pid_hash\n\nKmemleak does not track alloc_bootmem calls but the pid_hash allocated\nin pidhash_init() would need to be scanned as it contains pointers to\nstruct pid objects.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "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": "19d2e755436054dfc2be640bffc32e427c37ac3d",
      "tree": "f53c2e93820d1ca6d04e8b42c7bca08af01c9b44",
      "parents": [
        "f55c555226b1010b249730ec6b232e5470286950"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 26 13:10:23 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 26 17:48:54 2009 +0200"
      },
      "message": "perf_counter: Complete counter swap\n\nComplete the counter swap by indeed switching the times too and\nupdating the userpage after modifying the counter values.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1246014623.31755.195.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "e6e18ec79b023d5fe84226cef533cf0e3770ce93",
      "tree": "6fc1bd9afd21454864abe2aec6a0e35e17d47f04",
      "parents": [
        "bfbd3381e63aa2a14c6706afb50ce4630aa0d9a2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 25 11:27:12 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 21:39:08 2009 +0200"
      },
      "message": "perf_counter: Rework the sample ABI\n\nThe PERF_EVENT_READ implementation made me realize we don\u0027t\nactually need the sample_type int the output sample, since\nwe already have that in the perf_counter_attr information.\n\nTherefore, remove the PERF_EVENT_MISC_OVERFLOW bit and the\nevent-\u003etype overloading, and imply put counter overflow\nsamples in a PERF_EVENT_SAMPLE type.\n\nThis also fixes the issue that event-\u003etype was only 32-bit\nand sample_type had 64 usable bits.\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": "bfbd3381e63aa2a14c6706afb50ce4630aa0d9a2",
      "tree": "9b165a3068b8a7976ea34e633013165855bb5f51",
      "parents": [
        "38b200d67636a30cb8dc1508137908e7a649b5c9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 24 21:11:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 21:39:07 2009 +0200"
      },
      "message": "perf_counter: Implement more accurate per task statistics\n\nWith the introduction of PERF_EVENT_READ we have the\npossibility to provide accurate counter values for\nindividual tasks in a task hierarchy.\n\nHowever, due to the lazy context switching used for similar\ncounter contexts our current per task counts are way off.\n\nIn order to maintain some of the lazy switch benefits we\ndon\u0027t disable it out-right, but simply iterate the active\ncounters and flip the values between the contexts.\n\nThis only reads the counters but does not need to reprogram\nthe full PMU.\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": "38b200d67636a30cb8dc1508137908e7a649b5c9",
      "tree": "74f88d57a7f55075d4cd0b46690ff4b319dca642",
      "parents": [
        "194002b274e9169a04beb1b23dcc132159bb566c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 23 20:13:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 21:39:07 2009 +0200"
      },
      "message": "perf_counter: Add PERF_EVENT_READ\n\nProvide a read() like event which can be used to log the\ncounter value at specific sites such as child-\u003eparent\nfolding on exit.\n\nIn order to be useful, we log the counter parent ID, not the\nactual counter ID, since userspace can only relate parent\nIDs to perf_counter_attr constructs.\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": "194002b274e9169a04beb1b23dcc132159bb566c",
      "tree": "6977e48df4a1429dae999d4afe23e5e28febc99e",
      "parents": [
        "7f8b4e4e0988dadfd22330fd147ad2453e19f510"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 22 16:35:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 21:39:06 2009 +0200"
      },
      "message": "perf_counter, x86: Add mmap counter read support\n\nUpdate the mmap control page with the needed information to\nuse the userspace RDPMC instruction for self monitoring.\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": "7f8b4e4e0988dadfd22330fd147ad2453e19f510",
      "tree": "b57c6b0fbfd3718dbc6f27bd7f422bb276c11469",
      "parents": [
        "41f95331b972a039f519ae0c70f051b7121f7346"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 22 14:34:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 25 21:39:05 2009 +0200"
      },
      "message": "perf_counter: Add scale information to the mmap control page\n\nAdd the needed time scale to the self-profile mmap information.\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": "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": "f344011ccb85469445369153c3d27c4ee4bc2ac8",
      "tree": "66f041a826d09c690a5e6bb3d091494d52bc8565",
      "parents": [
        "b84fbc9fb1d943e2c5f4efe52ed0e3c93a4bdb6a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 22 13:58:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 23 11:42:46 2009 +0200"
      },
      "message": "perf_counter: Optimize perf_counter_alloc()\u0027s inherit case\n\nWe don\u0027t need to add usage counts for swcounter and attr usage\nmodels for inherited counters since the parent counter will\nalways have one, which suffices to generate the needed output.\n\nThis avoids up to 3 global atomic increments per inherited\ncounter.\n\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b84fbc9fb1d943e2c5f4efe52ed0e3c93a4bdb6a",
      "tree": "aaa492fd620de2177c6b8e5bb52348b30c7e49c7",
      "parents": [
        "f29ac756a40d0f1bb07d682ea521e7b666ff06d5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 22 13:57:40 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 23 11:42:45 2009 +0200"
      },
      "message": "perf_counter: Push inherit into perf_counter_alloc()\n\nTeach perf_counter_alloc() about inheritance so that we can\noptimize the inherit path in the next patch.\n\nRemove the child_counter-\u003eatrr.inherit \u003d 1 line because the\nonly way to get there is if parent_counter-\u003eattr.inherit \u003d\u003d 1\nand we copy the attrs.\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": "f29ac756a40d0f1bb07d682ea521e7b666ff06d5",
      "tree": "6fabe2f38ae10f824e57fdd5b035ba81b75a71a8",
      "parents": [
        "3d906ef10a539ff336010afab8f6f9c4fe379695"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 18:27:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 23 11:42:44 2009 +0200"
      },
      "message": "perf_counter: Optimize perf_swcounter_event()\n\nSimilar to tracepoints, use an enable variable to reduce\noverhead when unused.\n\nOnly look for a counter of a particular event type when we know\nthere is at least one in the system.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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"
    }
  ],
  "next": "0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf"
}
