)]}'
{
  "log": [
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35f3d14dbbc58447c61e38a162ea10add6b31dc7",
      "tree": "3e03cd540b7dcdac82195c4e76862c0ce6daaaf0",
      "parents": [
        "3d42b3612891baecf709d93f28655a6882a65d41"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 10:43:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:40 2010 +0200"
      },
      "message": "pipe: add support for shrinking and growing pipes\n\nThis patch adds F_GETPIPE_SZ and F_SETPIPE_SZ fcntl() actions for\ngrowing and shrinking the size of a pipe and adjusts pipe.c and splice.c\n(and relay and network splice) usage to work with these larger (or smaller)\npipes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "33cf23b0a535475aead57707cb9f4fe135a93544",
      "tree": "67e14f77f0eeab847a26a6cbfcb44eecb5fa2fda",
      "parents": [
        "7a9b149212f3716c598afe973b6261fd58453b7a",
        "95bb335c0ebe96afe926387a1ef3a096bd884a82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:19:18 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (182 commits)\n  [SCSI] aacraid: add an ifdef\u0027d device delete case instead of taking the device offline\n  [SCSI] aacraid: prohibit access to array container space\n  [SCSI] aacraid: add support for handling ATA pass-through commands.\n  [SCSI] aacraid: expose physical devices for models with newer firmware\n  [SCSI] aacraid: respond automatically to volumes added by config tool\n  [SCSI] fcoe: fix fcoe module ref counting\n  [SCSI] libfcoe: FIP Keep-Alive messages for VPorts are sent with incorrect port_id and wwn\n  [SCSI] libfcoe: Fix incorrect MAC address clearing\n  [SCSI] fcoe: fix a circular locking issue with rtnl and sysfs mutex\n  [SCSI] libfc: Move the port_id into lport\n  [SCSI] fcoe: move link speed checking into its own routine\n  [SCSI] libfc: Remove extra pointer check\n  [SCSI] libfc: Remove unused fc_get_host_port_type\n  [SCSI] fcoe: fixes wrong error exit in fcoe_create\n  [SCSI] libfc: set seq_id for incoming sequence\n  [SCSI] qla2xxx: Updates to ISP82xx support.\n  [SCSI] qla2xxx: Optionally disable target reset.\n  [SCSI] qla2xxx: ensure flash operation and host reset via sg_reset are mutually exclusive\n  [SCSI] qla2xxx: Silence bogus warning by gcc for wrap and did.\n  [SCSI] qla2xxx: T10 DIF support added.\n  ...\n"
    },
    {
      "commit": "752f114fb83c5839de37a250b4f8257ed5438341",
      "tree": "c565c3b6670d21ad7f5cd6cdda5864a76d3f2e0c",
      "parents": [
        "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
        "ad56b0797e67df5e04b2f1a1e02900145c5c16f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:35:04 2010 -0700"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix \"integer as NULL pointer\" warning.\n  tracing: Fix tracepoint.h DECLARE_TRACE() to allow more than one header\n  tracing: Make the documentation clear on trace_event boot option\n  ring-buffer: Wrap open-coded WARN_ONCE\n  tracing: Convert nop macros to static inlines\n  tracing: Fix sleep time function profiling\n  tracing: Show sample std dev in function profiling\n  tracing: Add documentation for trace commands mod, traceon/traceoff\n  ring-buffer: Make benchmark handle missed events\n  ring-buffer: Make non-consuming read less expensive with lots of cpus.\n  tracing: Add graph output support for irqsoff tracer\n  tracing: Have graph flags passed in to ouput functions\n  tracing: Add ftrace events for graph tracer\n  tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n  tracing: Fix uninitialized variable of tracing/trace output\n"
    },
    {
      "commit": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
      "tree": "506aa0b4bdbf90f61e7e9261c7db90aa1452dcce",
      "parents": [
        "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
        "9c6f7e43b4e02c161b53e97ba913855246876c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n  sched, wait: Use wrapper functions\n  sched: Remove a stale comment\n  ondemand: Make the iowait-is-busy time a sysfs tunable\n  ondemand: Solve a big performance issue by counting IOWAIT time as busy\n  sched: Intoduce get_cpu_iowait_time_us()\n  sched: Eliminate the ts-\u003eidle_lastupdate field\n  sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n  sched: Update the idle statistics in get_cpu_idle_time_us()\n  sched: Introduce a function to update the idle statistics\n  sched: Add a comment to get_cpu_idle_time_us()\n  cpu_stop: add dummy implementation for UP\n  sched: Remove rq argument to the tracepoints\n  rcu: need barrier() in UP synchronize_sched_expedited()\n  sched: correctly place paranioa memory barriers in synchronize_sched_expedited()\n  sched: kill paranoia check in synchronize_sched_expedited()\n  sched: replace migration_thread with cpu_stop\n  stop_machine: reimplement using cpu_stop\n  cpu_stop: implement stop_cpu[s]()\n  sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n  ...\n"
    },
    {
      "commit": "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
      "tree": "2d96a9e9c28cf6fa628a278decc00ad55a8b043b",
      "parents": [
        "3aaf51ace5975050ab43c7d4d7e439e0ae7d13d7",
        "94f3ca95787ada3d64339a4ecb2754236ab563f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (311 commits)\n  perf tools: Add mode to build without newt support\n  perf symbols: symbol inconsistency message should be done only at verbose\u003d1\n  perf tui: Add explicit -lslang option\n  perf options: Type check all the remaining OPT_ variants\n  perf options: Type check OPT_BOOLEAN and fix the offenders\n  perf options: Check v type in OPT_U?INTEGER\n  perf options: Introduce OPT_UINTEGER\n  perf tui: Add workaround for slang \u003c 2.1.4\n  perf record: Fix bug mismatch with -c option definition\n  perf options: Introduce OPT_U64\n  perf tui: Add help window to show key associations\n  perf tui: Make \u003c- exit menus too\n  perf newt: Add single key shortcuts for zoom into DSO and threads\n  perf newt: Exit browser unconditionally when CTRL+C, q or Q is pressed\n  perf newt: Fix the \u0027A\u0027/\u0027a\u0027 shortcut for annotate\n  perf newt: Make \u003c- exit the ui_browser\n  x86, perf: P4 PMU - fix counters management logic\n  perf newt: Make \u003c- zoom out filters\n  perf report: Report number of events, not samples\n  perf hist: Clarify events_stats fields usage\n  ...\n\nFix up trivial conflicts in kernel/fork.c and tools/perf/builtin-record.c\n"
    },
    {
      "commit": "27a9da6538ee18046d7bff8e36a9f783542c54c3",
      "tree": "9f9944ca8742ec52f7e4a674f7475fc0378abdb8",
      "parents": [
        "48652ced1533c3372f996a0d83b6e73b1f1c9381"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 04 20:36:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:28:17 2010 +0200"
      },
      "message": "sched: Remove rq argument to the tracepoints\n\nstruct rq isn\u0027t visible outside of sched.o so its near useless to\nexpose the pointer, also there are no users of it, so remove it.\n\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1272997616.1642.207.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d9f599e1e6d019968b35d2dc63074b9e8964fa69",
      "tree": "6253e19189306cef7952310d6ef62fb6ab675481",
      "parents": [
        "4778e0e8c64f683a71632dba1cff1f85f76f83c4"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 17:39:11 2010 +0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 06 19:49:52 2010 -0400"
      },
      "message": "perf: Fix check at end of event search\n\nThe original code doesn\u0027t work because \"call\" is never NULL there.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nLKML-Reference: \u003c20100320143911.GF5331@bicker\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "668eb65f092902eb7dd526af73d4a7f025a94612",
      "tree": "2ef89525a77f0541bf527dc33325969cf360c4a4",
      "parents": [
        "2e26ca7150a4f2ab3e69471dfc65f131e7dd7a05"
      ],
      "author": {
        "name": "Thiago Farina",
        "email": "tfransosi@gmail.com",
        "time": "Sun Jan 24 11:03:50 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 05 12:01:26 2010 -0400"
      },
      "message": "tracing: Fix \"integer as NULL pointer\" warning.\n\nkernel/trace/trace_output.c:256:24: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Thiago Farina \u003ctfransosi@gmail.com\u003e\nLKML-Reference: \u003c1264349038-1766-3-git-send-email-tfransosi@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "956097912c40a03bf22603a3be73503fd9ea9e44",
      "tree": "2d73d9dd1fed43cb1eeaa9137fefc72884e62694",
      "parents": [
        "4dbf6bc239c169b032777616806ecc648058f6b2"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bp@alien8.de",
        "time": "Sun May 02 08:03:54 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 04 12:23:47 2010 -0400"
      },
      "message": "ring-buffer: Wrap open-coded WARN_ONCE\n\nWrap open-coded WARN_ONCE functionality into the equivalent macro.\n\nSigned-off-by: Borislav Petkov \u003cbp@alien8.de\u003e\nLKML-Reference: \u003c20100502060354.GA5281@liondog.tnic\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "feef47d0cb530e8419dfa0b48141b538b89b1b1a",
      "tree": "ad40b07e8b240eca134770120b5c644ec0062ce2",
      "parents": [
        "f93a20541134fa767e8dc4eb32e956d30b9f6b92"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Apr 23 05:59:55 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 01 04:32:14 2010 +0200"
      },
      "message": "hw-breakpoints: Get the number of available registers on boot dynamically\n\nThe breakpoint generic layer assumes that archs always know in advance\nthe static number of address registers available to host breakpoints\nthrough the HBP_NUM macro.\n\nHowever this is not true for every archs. For example Arm needs to get\nthis information dynamically to handle the compatiblity between\ndifferent versions.\n\nTo solve this, this patch proposes to drop the static HBP_NUM macro\nand let the arch provide the number of available slots through a\nnew hw_breakpoint_slots() function. For archs that have\nCONFIG_HAVE_MIXED_BREAKPOINTS_REGS selected, it will be called once\nas the number of registers fits for instruction and data breakpoints\ntogether.\nFor the others it will be called first to get the number of\ninstruction breakpoint registers and another time to get the\ndata breakpoint registers, the targeted type is given as a\nparameter of hw_breakpoint_slots().\n\nReported-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nCc: K. Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf81623542332bc2cedf3db49cbb2edb724780d2",
      "tree": "47e4b784fefd533251b58ae1c2d8c8d280242bcf",
      "parents": [
        "5a2e3995951176e1aaa63d17ae2e1d26ac99003d"
      ],
      "author": {
        "name": "Kei Tokunaga",
        "email": "tokunaga.keiich@jp.fujitsu.com",
        "time": "Thu Apr 01 20:41:40 2010 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Apr 30 12:51:10 2010 -0500"
      },
      "message": "[SCSI] add scsi trace core functions and put trace points\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Tomohiro Kusumi \u003ckusumi.tomohiro@jp.fujitsu.com\u003e\nSigned-off-by: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "5a2e3995951176e1aaa63d17ae2e1d26ac99003d",
      "tree": "7305a7dc2c1822e5d4fec610d1c9bb6ddfadce70",
      "parents": [
        "59c31b69d278b760fb84266f99c1dcb0f73ec51d"
      ],
      "author": {
        "name": "Kei Tokunaga",
        "email": "tokunaga.keiich@jp.fujitsu.com",
        "time": "Thu Apr 01 20:40:58 2010 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Apr 30 12:50:22 2010 -0500"
      },
      "message": "[SCSI] ftrace: add __print_hex()\n\n__print_hex() prints values in an array in hex (w/o \u00270x\u0027) (space separated)\nEX) 92 33 32 f3 ee 4d\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tomohiro Kusumi \u003ckusumi.tomohiro@jp.fujitsu.com\u003e\nSigned-off-by: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "37e44bc50d91df1fe7edcf6f02fe168c6d802e64",
      "tree": "40058a2b27e94400dc4345ba13b334fb732ae532",
      "parents": [
        "e330b3bcd83199dd63a819d8d12e40f9edae6c77"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 27 21:04:24 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 21:04:24 2010 -0400"
      },
      "message": "tracing: Fix sleep time function profiling\n\nWhen sleep_time is off the function profiler ignores the time that a task\nis scheduled out. When the task is scheduled out a timestamp is taken.\nWhen the task is scheduled back in, the timestamp is compared to the\ncurrent time and the saved calltimes are adjusted accordingly.\n\nBut when stopping the function profiler, the sched switch hook that\ndoes this adjustment was stopped before shutting down the tracer.\nThis allowed some tasks to not get their timestamps set when they\nscheduled out. When the function profiler started again, this would\nskew the times of the scheduler functions.\n\nThis patch moves the stopping of the sched switch to after the function\nprofiler is stopped. It also ignores zero set calltimes, which may\nhappen on start up.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e330b3bcd83199dd63a819d8d12e40f9edae6c77",
      "tree": "45d488ed1f112db14ca180af5f4d2d09515a1f09",
      "parents": [
        "07271aa42d13378e67ebd79ea9ca1c4a5e2ad46f"
      ],
      "author": {
        "name": "Chase Douglas",
        "email": "chase.douglas@canonical.com",
        "time": "Mon Apr 26 14:02:05 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 18:23:15 2010 -0400"
      },
      "message": "tracing: Show sample std dev in function profiling\n\nWhen combined with function graph tracing the ftrace function profiler\nalso prints the average run time of functions. While this gives us some\ngood information, it doesn\u0027t tell us anything about the variance of the\nrun times of the function. This change prints out the s^2 sample\nstandard deviation alongside the average.\n\nThis change adds one entry to the profile record structure. This\nincreases the memory footprint of the function profiler by 1/3 on a\n32-bit system, and by 1/5 on a 64-bit system when function graphing is\nenabled, though the memory is only allocated when the profiler is turned\non. During the profiling, one extra line of code adds the squared\ncalltime to the new record entry, so this should not adversly affect\nperformance.\n\nNote that the square of the sample standard deviation is printed because\nthere is no sqrt implementation for unsigned long long in the kernel.\n\nSigned-off-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nLKML-Reference: \u003c1272304925-2436-1-git-send-email-chase.douglas@canonical.com\u003e\n\n[ fixed comment about ns^2 -\u003e us^2 conversion ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a838b2e634405fb89ddbf4fa9412acb33911911f",
      "tree": "987cb7b9bb5f7558b72760ba18a0979ac19212fd",
      "parents": [
        "72c9ddfd4c5bf54ef03cfdf57026416cb678eeba"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 27 13:26:58 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 13:26:58 2010 -0400"
      },
      "message": "ring-buffer: Make benchmark handle missed events\n\nWith the addition of the \"missed events\" flags that is stored in the\ncommit field of the ring buffer page, the ring_buffer_benchmark\nwas not updated to handle this. If events are missed, then the\nmissed events flag is set in the ring buffer page, the benchmark\nwill count that flag as part of the size of the page and will hit the BUG()\nwhen it tries to read beyond the page.\n\nThe solution is simply to have the ring buffer benchmark mask off\nthe extra bits.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "72c9ddfd4c5bf54ef03cfdf57026416cb678eeba",
      "tree": "bd2c2b6b411975a8219d7138ba7699ee5d324e77",
      "parents": [
        "62b915f1060996a8e1f69be50e3b8e9e43b710cb"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 20 15:47:11 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 13:06:35 2010 -0400"
      },
      "message": "ring-buffer: Make non-consuming read less expensive with lots of cpus.\n\nWhen performing a non-consuming read, a synchronize_sched() is\nperformed once for every cpu which is actively tracing.\n\nThis is very expensive, and can make it take several seconds to open\nup the \u0027trace\u0027 file with lots of cpus.\n\nOnly one synchronize_sched() call is actually necessary.  What is\ndesired is for all cpus to see the disabling state change.  So we\ntransform the existing sequence:\n\n\tfor_each_cpu() {\n\t\tring_buffer_read_start();\n\t}\n\nwhere each ring_buffer_start() call performs a synchronize_sched(),\ninto the following:\n\n\tfor_each_cpu() {\n\t\tring_buffer_read_prepare();\n\t}\n\tring_buffer_read_prepare_sync();\n\tfor_each_cpu() {\n\t\tring_buffer_read_start();\n\t}\n\nwherein only the single ring_buffer_read_prepare_sync() call needs to\ndo the synchronize_sched().\n\nThe first phase, via ring_buffer_read_prepare(), allocates the \u0027iter\u0027\nmemory and increments -\u003erecord_disabled.\n\nIn the second phase, ring_buffer_read_prepare_sync() makes sure this\n-\u003erecord_disabled state is visible fully to all cpus.\n\nAnd in the final third phase, the ring_buffer_read_start() calls reset\nthe \u0027iter\u0027 objects allocated in the first phase since we now know that\nnone of the cpus are adding trace entries any more.\n\nThis makes openning the \u0027trace\u0027 file nearly instantaneous on a\nsparc64 Niagara2 box with 128 cpus tracing.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003c20100420.154711.11246950.davem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "62b915f1060996a8e1f69be50e3b8e9e43b710cb",
      "tree": "26741f065b30b67022d680c3bc2afbda319638e1",
      "parents": [
        "d7a8d9e907cc294ec7a4a7046d1886375fbcc82e"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Apr 02 19:01:22 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 27 12:36:53 2010 -0400"
      },
      "message": "tracing: Add graph output support for irqsoff tracer\n\nAdd function graph output to irqsoff tracer.\n\nThe graph output is enabled by setting new \u0027display-graph\u0027 trace option.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1270227683-14631-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d7a8d9e907cc294ec7a4a7046d1886375fbcc82e",
      "tree": "5487e297eafdf978a7355ff11f337c98ddf98f74",
      "parents": [
        "9106b69382912ddc403a307b69bf894a6f3004e4"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Apr 02 19:01:21 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 26 17:30:18 2010 -0400"
      },
      "message": "tracing: Have graph flags passed in to ouput functions\n\nLet the function graph tracer have custom flags passed to its\noutput functions.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1270227683-14631-3-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9106b69382912ddc403a307b69bf894a6f3004e4",
      "tree": "b4a08ee1cbdfd8c43544231fa3623c45b1bf9a17",
      "parents": [
        "77a7f2e94e6998e307917fe63fa4b6d5162d44e9"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Apr 02 19:01:20 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 26 16:55:08 2010 -0400"
      },
      "message": "tracing: Add ftrace events for graph tracer\n\nAdd ftrace events for graph tracer, so the graph output could be shared\nwith other tracers.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1270227683-14631-2-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cecbca96da387428e220e307a9c945e37e2f4d9e",
      "tree": "2edefda983658c19a8f2b38ff951a3046597a4f7",
      "parents": [
        "b15c7b1cee119999e9eafcd602d24a595e77adac"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Apr 18 19:08:41 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 21 23:11:42 2010 +0200"
      },
      "message": "tracing: Dump either the oops\u0027s cpu source or all cpus buffers\n\nThe ftrace_dump_on_oops kernel parameter, sysctl and sysrq let one\ndump every cpu buffers when an oops or panic happens.\n\nIt\u0027s nice when you have few cpus but it may take ages if have many,\nplus you miss the real origin of the problem in all the cpu traces.\n\nSometimes, all you need is to dump the cpu buffer that triggered the\nopps, most of the time it is our main interest.\n\nThis patch modifies ftrace_dump_on_oops to handle this choice.\n\nThe ftrace_dump_on_oops kernel parameter, when it comes alone, has\nthe same behaviour than before. But ftrace_dump_on_oops\u003dorig_cpu\nwill only dump the buffer of the cpu that oops\u0027ed.\n\nSimilarly, sysctl kernel.ftrace_dump_on_oops\u003d1 and\necho 1 \u003e /proc/sys/kernel/ftrace_dump_on_oops keep their previous\nbehaviour. But setting 2 jumps into cpu origin dump mode.\n\nv2: Fix double setup\nv3: Fix spelling issues reported by Randy Dunlap\nv4: Also update __ftrace_dump in the selftests\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "93ccae7a2227466a0d071fe52c51319f2f34c365",
      "tree": "ad98a4db74fff834ce79b83f21192713cc3665bc",
      "parents": [
        "df0faf4be02996135bc3a06b4f34360449c78084"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 12 13:17:08 2010 -0400"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 14 17:26:28 2010 -0300"
      },
      "message": "tracing/kprobes: Support basic types on dynamic events\n\nSupport basic types of integer (u8, u16, u32, u64, s8, s16, s32, s64) in\nkprobe tracer. With this patch, users can specify above basic types on\neach arguments after \u0027:\u0027. If omitted, the argument type is set as\nunsigned long (u32 or u64, arch-dependent).\n\n e.g.\n  echo \u0027p account_system_time+0 hardirq_offset\u003d%si:s32\u0027 \u003e kprobe_events\n\n  adds a probe recording hardirq_offset in signed-32bits value on the\n  entry of account_system_time.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100412171708.3790.18599.stgit@localhost6.localdomain6\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "b15c7b1cee119999e9eafcd602d24a595e77adac",
      "tree": "48765b70c65e80d62f0ce11a3245b4ef2299b060",
      "parents": [
        "c1ab9cab75098924fa8226a8a371de66977439df",
        "aa27497c2fb4c7f57706099bd489e683e5cc3e3b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 14 12:15:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 14 12:15:23 2010 +0200"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/core\n"
    },
    {
      "commit": "ca7e0c612005937a4a5a75d3fed90459993de65c",
      "tree": "b574fc0f0189b52ffc87ba20c418228db556faa1",
      "parents": [
        "8141d0050d76e5695011b5ab577ec66fb51a998c",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:36:36 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:37:18 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nSemantic conflict: arch/x86/kernel/cpu/perf_event_intel_ds.c\n\nMerge reason: pick up latest fixes, fix the conflict\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1ab9cab75098924fa8226a8a371de66977439df",
      "tree": "767e77302ca8f2eb781c60624bc8518cd50ba6eb",
      "parents": [
        "ff0ff84a0767df48d728c36510365344a7e7d582",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 09:06:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 10:18:47 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/module.h\n\tkernel/module.c\n\nSemantic conflict:\n\tinclude/trace/events/module.h\n\nMerge reason: Resolve the conflict with upstream commit 5fbfb18 (\"Fix up\n              possibly racy module refcounting\")\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa27497c2fb4c7f57706099bd489e683e5cc3e3b",
      "tree": "66fab7036e68592003548fd753b31d906d38b7ee",
      "parents": [
        "ff0ff84a0767df48d728c36510365344a7e7d582"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Apr 05 17:11:05 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 05 11:01:22 2010 -0400"
      },
      "message": "tracing: Fix uninitialized variable of tracing/trace output\n\nBecause a local variable is not initialized, I got these\nwhen I did \u0027cat tracing/trace\u0027. (not trace_pipe):\n\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770221: lock_acquire: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770221: lock_release: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446612133255294080 EVENTS]\n              ps-3099  [000]   560.770221: lock_acquire: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770222: lock_release: ffff880030865010 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:0 [LOST 18446744071579453134 EVENTS]\n              ps-3099  [000]   560.770222: lock_release: ffffffff816cfb98 dcache_lock\n\nSee peek_next_entry(), it does not set *lost_events when we \u0027cat tracing/trace\u0027\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BB9A929.2000303@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "336f5899d287f06d8329e208fc14ce50f7ec9698",
      "tree": "9b762d450d5eb248a6ff8317badb7e223d93ed58",
      "parents": [
        "a4ab2773205e8b94c18625455f85e3b6bb9d7ad6",
        "db217dece3003df0841bacf9556b5c06aa097dae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 05 11:37:28 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 05 11:37:28 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into export-slabh\n"
    },
    {
      "commit": "8ce42c8b7fdf4fc008a6fc7349beb8f4dd5cb774",
      "tree": "bc05326ed8ade9137e3ce5fb5b1d439dcdce266f",
      "parents": [
        "0121b0c771f929bb5298554b70843ab46280c298",
        "6e03bb5ad363fdbe4e1e227cfb78f7978c662e18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:13:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:13:10 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Always build the powerpc perf_arch_fetch_caller_regs version\n  perf: Always build the stub perf_arch_fetch_caller_regs version\n  perf, probe-finder: Build fix on Debian\n  perf/scripts: Tuple was set from long in both branches in python_process_event()\n  perf: Fix \u0027perf sched record\u0027 deadlock\n  perf, x86: Fix callgraphs of 32-bit processes on 64-bit kernels\n  perf, x86: Fix AMD hotplug \u0026 constraint initialization\n  x86: Move notify_cpu_starting() callback to a later stage\n  x86,kgdb: Always initialize the hw breakpoint attribute\n  perf: Use hot regs with software sched switch/migrate events\n  perf: Correctly align perf event tracing buffer\n"
    },
    {
      "commit": "ec5e61aabeac58670691bd0613388d16697d0d81",
      "tree": "59838509358f27334874b90756505785cde29b02",
      "parents": [
        "75ec5a245c7763c397f31ec8964d0a46c54a7386",
        "8bb39f9aa068262732fe44b965d7a6eb5a5a7d67"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 19:37:50 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 19:38:10 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nConflicts:\n\tarch/x86/kernel/cpu/perf_event.c\n\nMerge reason: Resolve the conflict, pick up fixes\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb1e79611cc9bfe21978230e3521e77ea2d7874a",
      "tree": "0d5ebdb4a0b178fcd524d3b725da3e8a3cd6151e",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Mar 23 00:08:59 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 01 08:26:30 2010 +0200"
      },
      "message": "perf: Correctly align perf event tracing buffer\n\nThe trace event buffer used by perf to record raw sample events\nis typed as an array of char and may then not be aligned to 8\nby alloc_percpu().\n\nBut we need it to be aligned to 8 in sparc64 because we cast\nthis buffer into a random structure type built by the TRACE_EVENT()\nmacro to store the traces. So if a random 64 bits field is accessed\ninside, it may be not under an expected good alignment.\n\nUse an array of long instead to force the appropriate alignment, and\nperform a compile time check to ensure the size in byte of the buffer\nis a multiple of sizeof(long) so that its actual size doesn\u0027t get\nshrinked under us.\n\nThis fixes unaligned accesses reported while using perf lock\nin sparc 64.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSuggested-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff0ff84a0767df48d728c36510365344a7e7d582",
      "tree": "9f32396f4b5a53a3b55429a257c0630dffc8176e",
      "parents": [
        "bc21b478425ac73f66a5ec0b375a5e0d12d609ce"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 31 22:11:42 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:57:08 2010 -0400"
      },
      "message": "ring-buffer: Add lost event count to end of sub buffer\n\nCurrently, binary readers of the ring buffer only know where events were\nlost, but not how many events were lost at that location.\nThis information is available, but it would require adding another\nfield to the sub buffer header to include it.\n\nBut when a event can not fit at the end of a sub buffer, it is written\nto the next sub buffer. This means there is a good chance that the\nbuffer may have room to hold this counter. If it does, write\nthe counter at the end of the sub buffer and set another flag\nin the data size field that states that this information exists.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc21b478425ac73f66a5ec0b375a5e0d12d609ce",
      "tree": "a5e8be66a9114f73d4c87112d515424f14e7bebd",
      "parents": [
        "66a8cb95ed04025664d1db4e952155ee1dccd048"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 31 19:49:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:57:06 2010 -0400"
      },
      "message": "tracing: Show the lost events in the trace_pipe output\n\nNow that the ring buffer can keep track of where events are lost.\nUse this information to the output of trace_pipe:\n\n       hackbench-3588  [001]  1326.701660: lock_acquire: ffffffff816591e0 read rcu_read_lock\n       hackbench-3588  [001]  1326.701661: lock_acquire: ffff88003f4091f0 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\n       hackbench-3588  [001]  1326.701664: lock_release: ffff88003f4091f0 \u0026(\u0026dentry-\u003ed_lock)-\u003erlock\nCPU:1 [LOST 673 EVENTS]\n       hackbench-3588  [001]  1326.702711: kmem_cache_free: call_site\u003dffffffff81102b85 ptr\u003dffff880026d96738\n       hackbench-3588  [001]  1326.702712: lock_release: ffff88003e1480a8 \u0026mm-\u003emmap_sem\n       hackbench-3588  [001]  1326.702713: lock_acquire: ffff88003e1480a8 \u0026mm-\u003emmap_sem\n\nEven works with the function graph tracer:\n\n 2) ! 170.098 us  |                                            }\n 2)   4.036 us    |                                            rcu_irq_exit();\n 2)   3.657 us    |                                            idle_cpu();\n 2) ! 190.301 us  |                                          }\nCPU:2 [LOST 2196 EVENTS]\n 2)   0.853 us    |                            } /* cancel_dirty_page */\n 2)               |                            remove_from_page_cache() {\n 2)   1.578 us    |                              _raw_spin_lock_irq();\n 2)               |                              __remove_from_page_cache() {\n\nNote, it does not work with the iterator \"trace\" file, since it requires\nthe use of consuming the page from the ring buffer to determine how many\nevents were lost, which the iterator does not do.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "66a8cb95ed04025664d1db4e952155ee1dccd048",
      "tree": "74417422a78bc8198de46b0e52e490175af866e0",
      "parents": [
        "eb0c53771fb2f5f66b0edb3ebce33be4bbf1c285"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Mar 31 13:21:56 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 31 22:57:04 2010 -0400"
      },
      "message": "ring-buffer: Add place holder recording of dropped events\n\nCurrently, when the ring buffer drops events, it does not record\nthe fact that it did so. It does inform the writer that the event\nwas dropped by returning a NULL event, but it does not put in any\nplace holder where the event was dropped.\n\nThis is not a trivial thing to add because the ring buffer mostly\nruns in overwrite (flight recorder) mode. That is, when the ring\nbuffer is full, new data will overwrite old data.\n\nIn a produce/consumer mode, where new data is simply dropped when\nthe ring buffer is full, it is trivial to add the placeholder\nfor dropped events. When there\u0027s more room to write new data, then\na special event can be added to notify the reader about the dropped\nevents.\n\nBut in overwrite mode, any new write can overwrite events. A place\nholder can not be inserted into the ring buffer since there never\nmay be room. A reader could also come in at anytime and miss the\nplaceholder.\n\nLuckily, the way the ring buffer works, the read side can find out\nif events were lost or not, and how many events. Everytime a write\ntakes place, if it overwrites the header page (the next read) it\nupdates a \"overrun\" variable that keeps track of the number of\nlost events. When a reader swaps out a page from the ring buffer,\nit can record this number, perfom the swap, and then check to\nsee if the number changed, and take the diff if it has, which would be\nthe number of events dropped. This can be stored by the reader\nand returned to callers of the reader.\n\nSince the reader page swap will fail if the writer moved the head\npage since the time the reader page set up the swap, this gives room\nto record the overruns without worrying about races. If the reader\nsets up the pages, records the overrun, than performs the swap,\nif the swap succeeds, then the overrun variable has not been\nupdated since the setup before the swap.\n\nFor binary readers of the ring buffer, a flag is set in the header\nof each sub page (sub buffer) of the ring buffer. This flag is embedded\nin the size field of the data on the sub buffer, in the 31st bit (the size\ncan be 32 or 64 bits depending on the architecture), but only 27\nbits needs to be used for the actual size (less actually).\n\nWe could add a new field in the sub buffer header to also record the\nnumber of events dropped since the last read, but this will change the\nformat of the binary ring buffer a bit too much. Perhaps this change can\nbe made if the information on the number of events dropped is considered\nimportant enough.\n\nNote, the notification of dropped events is only used by consuming reads\nor peeking at the ring buffer. Iterating over the ring buffer does not\nkeep this information because the necessary data is only available when\na page swap is made, and the iterator does not swap out pages.\n\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"Luis Claudio R. Goncalves\" \u003clclaudio@uudg.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "292f60c0c4ab44aa2d589ba03c12e64a3b3c5e38",
      "tree": "0c33c9b23202a27c768dee45776503c9ec6b8306",
      "parents": [
        "e36673ec5126f15a8cddf6049aede7bdcf484c26"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Mar 29 17:37:02 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Mar 29 15:23:24 2010 -0400"
      },
      "message": "ring-buffer: Add missing unlock\n\nIn some error handling cases the lock is not unlocked.  The return is\nconverted to a goto, to share the unlock at the end of the function.\n\nA simplified version of the semantic patch that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r exists@\nexpression E1;\nidentifier f;\n@@\n\nf (...) { \u003c+...\n* spin_lock_irq (E1,...);\n... when !\u003d E1\n* return ...;\n...+\u003e }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nLKML-Reference: \u003cPine.LNX.4.64.1003291736440.21896@ask.diku.dk\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e36673ec5126f15a8cddf6049aede7bdcf484c26",
      "tree": "020070456e2875bc2293c36b4fb7415e4d717199",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 24 10:57:37 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Mar 29 15:16:44 2010 -0400"
      },
      "message": "tracing: Fix lockdep warning in global_clock()\n\n# echo 1 \u003e events/enable\n # echo global \u003e trace_clock\n\n------------[ cut here ]------------\nWARNING: at kernel/lockdep.c:3162 check_flags+0xb2/0x190()\n...\n---[ end trace 3f86734a89416623 ]---\npossible reason: unannotated irqs-on.\n...\n\nThere\u0027s no reason to use the raw_local_irq_save() in trace_clock_global.\nThe local_irq_save() version is fine, and does not cause the bug in lockdep.\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BA97FA1.7030606@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "833961d81f0ece46b7884f988cc65509e2c49646",
      "tree": "4c4bef2e8ec7d8510de827d83010b0fe76c4924f",
      "parents": [
        "3cacf42462c8c97e045a07a5fc92aa357489c8b5",
        "2271048d1b3b0aabf83d25b29c20646dcabedc05"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:13 2010 -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  ring-buffer: Do 8 byte alignment for 64 bit that can not handle 4 byte align\n"
    },
    {
      "commit": "faa4602e47690fb11221e00f9b9697c8dc0d4b19",
      "tree": "af667d1cdff7dc63b6893ee3f27a1f2503229ed1",
      "parents": [
        "7c5ecaf7666617889f337296c610815b519abfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Mar 25 14:51:50 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 26 11:33:55 2010 +0100"
      },
      "message": "x86, perf, bts, mm: Delete the never used BTS-ptrace code\n\nSupport for the PMU\u0027s BTS features has been upstreamed in\nv2.6.32, but we still have the old and disabled ptrace-BTS,\nas Linus noticed it not so long ago.\n\nIt\u0027s buggy: TIF_DEBUGCTLMSR is trampling all over that MSR without\nregard for other uses (perf) and doesn\u0027t provide the flexibility\nneeded for perf either.\n\nIts users are ptrace-block-step and ptrace-bts, since ptrace-bts\nwas never used and ptrace-block-step can be implemented using a\nmuch simpler approach.\n\nSo axe all 3000 lines of it. That includes the *locked_memory*()\nAPIs in mm/mlock.c as well.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c20100325135413.938004390@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2271048d1b3b0aabf83d25b29c20646dcabedc05",
      "tree": "4d20fa61a1d6fc2542b283b45c2a7a374fb2c3f5",
      "parents": [
        "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 18 17:54:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 18 23:11:35 2010 -0400"
      },
      "message": "ring-buffer: Do 8 byte alignment for 64 bit that can not handle 4 byte align\n\nThe ring buffer uses 4 byte alignment while recording events into the\nbuffer, even on 64bit machines. This saves space when there are lots\nof events being recorded at 4 byte boundaries.\n\nThe ring buffer has a zero copy method to write into the buffer, with\nthe reserving of space and then committing it. This may cause problems\nwhen writing an 8 byte word into a 4 byte alignment (not 8). For x86 and\nPPC this is not an issue, but on some architectures this would cause an\nout-of-alignment exception.\n\nThis patch uses CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine\nif it is OK to use 4 byte alignments on 64 bit machines. If it is not,\nit forces the ring buffer event header to be 8 bytes and not 4,\nand will align the length of the data to be 8 byte aligned.\nThis keeps the data payload at 8 byte alignments and will allow these\nmachines to run without issue.\n\nThe trick to this is that the header can be either 4 bytes or 8 bytes\ndepending on the length of the data payload. The 4 byte header\nhas a length field that supports up to 112 bytes. If the length of\nthe data is more than 112, the length field is set to zero, and the actual\nlength is stored in the next 4 bytes after the header.\n\nWhen CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set, the code forces\nzero in the 4 byte header forcing the length to be stored in the 4 byte\narray, even with a small data load. It also forces the length of the\ndata load to be 8 byte aligned. The combination of these two guarantee\nthat the data is always at 8 byte alignment.\n\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n           (on sparc64)\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f82c37e7bb4c4d9b6a476c642d5c2d2efbd6f240",
      "tree": "09fc553c2fb6f527962048d139159dc139e04afc",
      "parents": [
        "c6b9e73f2fee8bb86058f296de808b326473456b",
        "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  perf: Fix unexported generic perf_arch_fetch_caller_regs\n  perf record: Don\u0027t try to find buildids in a zero sized file\n  perf: export perf_trace_regs and perf_arch_fetch_caller_regs\n  perf, x86: Fix hw_perf_enable() event assignment\n  perf, ppc: Fix compile error due to new cpu notifiers\n  perf: Make the install relative to DESTDIR if specified\n  kprobes: Calculate the index correctly when freeing the out-of-line execution slot\n  perf tools: Fix sparse CPU numbering related bugs\n  perf_event: Fix oops triggered by cpu offline/online\n  perf: Drop the obsolete profile naming for trace events\n  perf: Take a hot regs snapshot for trace events\n  perf: Introduce new perf_fetch_caller_regs() for hot regs snapshot\n  perf/x86-64: Use frame pointer to walk on irq and process stacks\n  lockdep: Move lock events under lockdep recursion protection\n  perf report: Print the map table just after samples for which no map was found\n  perf report: Add multiple event support\n  perf session: Change perf_session post processing functions to take histogram tree\n  perf session: Add storage for seperating event types in report\n  perf session: Change add_hist_entry to take the tree root instead of session\n  perf record: Add ID and to recorded event data when recording multiple events\n  ...\n"
    },
    {
      "commit": "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd",
      "tree": "432f0d89d45fc62d666d46e591ffe109f111cb1e",
      "parents": [
        "9f591fd76afdc0e5192e9ed00a36f8efc0b4dfe6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Mar 16 01:05:02 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 17 12:26:49 2010 +0100"
      },
      "message": "perf: Fix unexported generic perf_arch_fetch_caller_regs\n\nperf_arch_fetch_caller_regs() is exported for the overriden x86\nversion, but not for the generic weak version.\n\nAs a general rule, weak functions should not have their symbol\nexported in the same file they are defined.\n\nSo let\u0027s export it on trace_event_perf.c as it is used by trace\nevents only.\n\nThis fixes:\n\n\tERROR: \".perf_arch_fetch_caller_regs\" [fs/xfs/xfs.ko] undefined!\n\tERROR: \".perf_arch_fetch_caller_regs\" [arch/powerpc/platforms/cell/spufs/spufs.ko] undefined!\n\n-v2: And also only build it if trace events are enabled.\n-v3: Fix changelog mistake\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1268697902-9518-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4e3eaddd142e2142c048c5052a0a9d2604fccfc6",
      "tree": "5bc45a286502e54e790c54948f22364c5afd9d89",
      "parents": [
        "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
        "b97c4bc16734a2e597dac7f91ee9eb78f4aeef9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking: Make sparse work with inline spinlocks and rwlocks\n  x86/mce: Fix RCU lockdep splats\n  rcu: Increase RCU CPU stall timeouts if PROVE_RCU\n  ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n  rcu: Suppress RCU lockdep warnings during early boot\n  rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n  rcu: Suppress __mpol_dup() false positive from RCU lockdep\n  rcu: Make rcu_read_lock_sched_held() handle !PREEMPT\n  rcu: Add control variables to lockdep_rcu_dereference() diagnostics\n  rcu, cgroup: Relax the check in task_subsys_state() as early boot is now handled by lockdep-RCU\n  rcu: Use wrapper function instead of exporting tasklist_lock\n  sched, rcu: Fix rcu_dereference() for RCU-lockdep\n  rcu: Make task_subsys_state() RCU-lockdep checks handle boot-time use\n  rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU\n  x86/gart: Unexport gart_iommu_aperture\n\nFix trivial conflicts in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
      "tree": "711b6da2a665e26940c59b9db493c59d879f6cc6",
      "parents": [
        "461d208cfbd1f0af26027b2c35ded515e54b1ee6",
        "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Do not record user stack trace from NMI context\n  tracing: Disable buffer switching when starting or stopping trace\n  tracing: Use same local variable when resetting the ring buffer\n  function-graph: Init curr_ret_stack with ret_stack\n  ring-buffer: Move disabled check into preempt disable section\n  function-graph: Add tracing_thresh support to function_graph tracer\n  tracing: Update the comm field in the right variable in update_max_tr\n  function-graph: Use comment notation for func names of dangling \u0027}\u0027\n  function-graph: Fix unused reference to ftrace_set_func()\n  tracing: Fix warning in s_next of trace file ops\n  tracing: Include irqflags headers from trace clock\n"
    },
    {
      "commit": "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15",
      "tree": "5f7d831ab4de8f8c3577230ba8b15e0681eef52f",
      "parents": [
        "a2f8071428ed9a0f06865f417c962421c9a6b488"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 20:03:30 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:31:49 2010 -0500"
      },
      "message": "tracing: Do not record user stack trace from NMI context\n\nA bug was found with Li Zefan\u0027s ftrace_stress_test that caused applications\nto segfault during the test.\n\nPlacing a tracing_off() in the segfault code, and examining several\ntraces, I found that the following was always the case. The lock tracer\nwas enabled (lockdep being required) and userstack was enabled. Testing\nthis out, I just enabled the two, but that was not good enough. I needed\nto run something else that could trigger it. Running a load like hackbench\ndid not work, but executing a new program would. The following would\ntrigger the segfault within seconds:\n\n  # echo 1 \u003e /debug/tracing/options/userstacktrace\n  # echo 1 \u003e /debug/tracing/events/lock/enable\n  # while :; do ls \u003e /dev/null ; done\n\nEnabling the function graph tracer and looking at what was happening\nI finally noticed that all cashes happened just after an NMI.\n\n 1)               |    copy_user_handle_tail() {\n 1)               |      bad_area_nosemaphore() {\n 1)               |        __bad_area_nosemaphore() {\n 1)               |          no_context() {\n 1)               |            fixup_exception() {\n 1)   0.319 us    |              search_exception_tables();\n 1)   0.873 us    |            }\n[...]\n 1)   0.314 us    |  __rcu_read_unlock();\n 1)   0.325 us    |    native_apic_mem_write();\n 1)   0.943 us    |  }\n 1)   0.304 us    |  rcu_nmi_exit();\n[...]\n 1)   0.479 us    |  find_vma();\n 1)               |  bad_area() {\n 1)               |    __bad_area() {\n\nAfter capturing several traces of failures, all of them happened\nafter an NMI. Curious about this, I added a trace_printk() to the NMI\nhandler to read the regs-\u003eip to see where the NMI happened. In which I\nfound out it was here:\n\nffffffff8135b660 \u003cpage_fault\u003e:\nffffffff8135b660:       48 83 ec 78             sub    $0x78,%rsp\nffffffff8135b664:       e8 97 01 00 00          callq  ffffffff8135b800 \u003cerror_entry\u003e\n\nWhat was happening is that the NMI would happen at the place that a page\nfault occurred. It would call rcu_read_lock() which was traced by\nthe lock events, and the user_stack_trace would run. This would trigger\na page fault inside the NMI. I do not see where the CR2 register is\nsaved or restored in NMI handling. This means that it would corrupt\nthe page fault handling that the NMI interrupted.\n\nThe reason the while loop of ls helped trigger the bug, was that\neach execution of ls would cause lots of pages to be faulted in, and\nincrease the chances of the race happening.\n\nThe simple solution is to not allow user stack traces in NMI context.\nAfter this patch, I ran the above \"ls\" test for a couple of hours\nwithout any issues. Without this patch, the bug would trigger in less\nthan a minute.\n\nCc: stable@kernel.org\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a2f8071428ed9a0f06865f417c962421c9a6b488",
      "tree": "731d1e4f684fa5e5e27b56f1ed5f74d5945b20bd",
      "parents": [
        "283740c619d211e34572cc93c8cdba92ccbdb9cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:56:00 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:30:21 2010 -0500"
      },
      "message": "tracing: Disable buffer switching when starting or stopping trace\n\nWhen the trace iterator is read, tracing_start() and tracing_stop()\nis called to stop tracing while the iterator is processing the trace\noutput.\n\nThese functions disable both the standard buffer and the max latency\nbuffer. But if the wakeup tracer is running, it can switch these\nbuffers between the two disables:\n\n  buffer \u003d global_trace.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\n      \u003c\u003c\u003c--------- swap happens here\n\n  buffer \u003d max_tr.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\nWhat happens is that we disabled the same buffer twice. On tracing_start()\nwe can enable the same buffer twice. All ring_buffer_record_disable()\nmust be matched with a ring_buffer_record_enable() or the buffer\ncan be disable permanently, or enable prematurely, and cause a bug\nwhere a reset happens while a trace is commiting.\n\nThis patch protects these two by taking the ftrace_max_lock to prevent\na switch from occurring.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "283740c619d211e34572cc93c8cdba92ccbdb9cc",
      "tree": "3bdce475017ff9a5fe82c6d214d27b27e555320c",
      "parents": [
        "ea14eb714041d40fcc5180b5a586034503650149"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:48:41 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:29:20 2010 -0500"
      },
      "message": "tracing: Use same local variable when resetting the ring buffer\n\nIn the ftrace code that resets the ring buffer it references the\nbuffer with a local variable, but then uses the tr-\u003ebuffer as the\nparameter to reset. If the wakeup tracer is running, which can\nswitch the tr-\u003ebuffer with the max saved buffer, this can break\nthe requirement of disabling the buffer before the reset.\n\n   buffer \u003d tr-\u003ebuffer;\n   ring_buffer_record_disable(buffer);\n   synchronize_sched();\n   __tracing_reset(tr-\u003ebuffer, cpu);\n\nIf the tr-\u003ebuffer is swapped, then the reset is not happening to the\nbuffer that was disabled. This will cause the ring buffer to fail.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ea14eb714041d40fcc5180b5a586034503650149",
      "tree": "a7cb72753c85cf79ac6fa31863d65d2f081e0823",
      "parents": [
        "52fbe9cde7fdb5c6fac196d7ebd2d92d05ef3cd4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:41:23 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:28:02 2010 -0500"
      },
      "message": "function-graph: Init curr_ret_stack with ret_stack\n\nIf the graph tracer is active, and a task is forked but the allocating of\nthe processes graph stack fails, it can cause crash later on.\n\nThis is due to the temporary stack being NULL, but the curr_ret_stack\nvariable is copied from the parent. If it is not -1, then in\nftrace_graph_probe_sched_switch() the following:\n\n\tfor (index \u003d next-\u003ecurr_ret_stack; index \u003e\u003d 0; index--)\n\t\tnext-\u003eret_stack[index].calltime +\u003d timestamp;\n\nWill cause a kernel OOPS.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "52fbe9cde7fdb5c6fac196d7ebd2d92d05ef3cd4",
      "tree": "77ec9beecf7a58ed06f59c589f122caf87ec4f0b",
      "parents": [
        "915a0b575fdb2376135ed9334b3ccb1eb51db622"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 08 14:50:43 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:26:56 2010 -0500"
      },
      "message": "ring-buffer: Move disabled check into preempt disable section\n\nThe ring buffer resizing and resetting relies on a schedule RCU\naction. The buffers are disabled, a synchronize_sched() is called\nand then the resize or reset takes place.\n\nBut this only works if the disabling of the buffers are within the\npreempt disabled section, otherwise a window exists that the buffers\ncan be written to while a reset or resize takes place.\n\nCc: stable@kernel.org\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B949E43.2010906@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "639fe4b12f92b54c9c3b38c82cdafaa38cfd3e63",
      "tree": "145b856d6945bf8575e0b1636a91be6474f87562",
      "parents": [
        "45e16a6834b6af098702e5ea6c9a40de42ff77d8"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Mar 11 15:30:35 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 15:21:29 2010 +0100"
      },
      "message": "perf: export perf_trace_regs and perf_arch_fetch_caller_regs\n\nExport perf_trace_regs and perf_arch_fetch_caller_regs since module will\nuse these.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\n[ use EXPORT_PER_CPU_SYMBOL_GPL() ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4B989C1B.2090407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "915a0b575fdb2376135ed9334b3ccb1eb51db622",
      "tree": "12070fc07897e0cd9170aeb351a96923d44d7813",
      "parents": [
        "e02c4fd3142dfb9412531bbfabd510a2a7c6ea46",
        "0e95017355dcf43031da6d0e360a748717e56df1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:39:33 2010 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "3f379b03fbfddd20536389a85c6456f8233d1f8d",
      "tree": "2847590a23aa0d72e799bd6d65a8a794abb565ac",
      "parents": [
        "54dbf96c921513bf98484a20ef366d51944a4c4d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Mar 05 15:03:25 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 13:38:01 2010 +0100"
      },
      "message": "ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n\nReplace the calls to read_barrier_depends() in\nftrace_list_func() with rcu_dereference_raw() to improve\nreadability.  The reason that we use rcu_dereference_raw() here\nis that removed entries are never freed, instead they are simply\nleaked.  This is one of a very few cases where use of\nrcu_dereference_raw() is the long-term right answer.  And I\ndon\u0027t yet know of any others.  ;-)\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1267830207-9474-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97d5a22005f38057b4bc0d95f81cd26510268794",
      "tree": "b981789b1cec8ac36527e52204e407b32efa0ea6",
      "parents": [
        "c530665c31c0140b74ca7689e7f836177796e5bd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 05 05:35:37 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 10 14:47:18 2010 +0100"
      },
      "message": "perf: Drop the obsolete profile naming for trace events\n\nDrop the obsolete \"profile\" naming used by perf for trace events.\nPerf can now do more than simple events counting, so generalize\nthe API naming.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\n"
    },
    {
      "commit": "c530665c31c0140b74ca7689e7f836177796e5bd",
      "tree": "ac9ebb98aca58fdf84cc18958a94393a9a7bbdf3",
      "parents": [
        "5331d7b84613b8325362dde53dc2bff2fb87d351"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 03 07:16:16 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 10 14:40:38 2010 +0100"
      },
      "message": "perf: Take a hot regs snapshot for trace events\n\nWe are taking a wrong regs snapshot when a trace event triggers.\nEither we use get_irq_regs(), which gives us the interrupted\nregisters if we are in an interrupt, or we use task_pt_regs()\nwhich gives us the state before we entered the kernel, assuming\nwe are lucky enough to be no kernel thread, in which case\ntask_pt_regs() returns the initial set of regs when the kernel\nthread was started.\n\nWhat we want is different. We need a hot snapshot of the regs,\nso that we can get the instruction pointer to record in the\nsample, the frame pointer for the callchain, and some other\nthings.\n\nLet\u0027s use the new perf_fetch_caller_regs() for that.\n\nComparison with perf record -e lock: -R -a -f -g\nBefore:\n\n        perf  [kernel]                   [k] __do_softirq\n               |\n               --- __do_softirq\n                  |\n                  |--55.16%-- __open\n                  |\n                   --44.84%-- __write_nocancel\n\nAfter:\n\n            perf  [kernel]           [k] perf_tp_event\n               |\n               --- perf_tp_event\n                  |\n                  |--41.07%-- lock_acquire\n                  |          |\n                  |          |--39.36%-- _raw_spin_lock\n                  |          |          |\n                  |          |          |--7.81%-- hrtimer_interrupt\n                  |          |          |          smp_apic_timer_interrupt\n                  |          |          |          apic_timer_interrupt\n\nThe old case was producing unreliable callchains. Now having\nright frame and instruction pointers, we have the trace we\nwant.\n\nAlso syscalls and kprobe events already have the right regs,\nlet\u0027s use them instead of wasting a retrieval.\n\nv2: Follow the rename perf_save_regs() -\u003e perf_fetch_caller_regs()\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Archs \u003clinux-arch@vger.kernel.org\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "0e95017355dcf43031da6d0e360a748717e56df1",
      "tree": "829989bfb494e8d2d773d9dc1bc014b7f28d3bed",
      "parents": [
        "1acaa1b2d9b5904c9cce06122990a2d71046ce16"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Thu Feb 25 15:36:43 2010 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:20:57 2010 -0500"
      },
      "message": "function-graph: Add tracing_thresh support to function_graph tracer\n\nAdd support for tracing_thresh to the function_graph tracer.  This\nversion of this feature isolates the checks into new entry and\nreturn functions, to avoid adding more conditional code into the\nmain function_graph paths.\n\nWhen the tracing_thresh is set and the function graph tracer is\nenabled, only the functions that took longer than the time in\nmicroseconds that was set in tracing_thresh are recorded. To do this\nefficiently, only the function exits are recorded:\n\n [tracing]# echo 100 \u003e tracing_thresh\n [tracing]# echo function_graph \u003e current_tracer\n [tracing]# cat trace\n # tracer: function_graph\n #\n # CPU  DURATION                  FUNCTION CALLS\n # |     |   |                     |   |   |   |\n  1) ! 119.214 us  |  } /* smp_apic_timer_interrupt */\n  1)   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n  0) ! 101.527 us  |              } /* __rcu_process_callbacks */\n  0) ! 126.461 us  |            } /* rcu_process_callbacks */\n  0) ! 145.111 us  |          } /* __do_softirq */\n  0) ! 149.667 us  |        } /* do_softirq */\n  0) ! 168.817 us  |      } /* irq_exit */\n  0) ! 248.254 us  |    } /* smp_apic_timer_interrupt */\n\nAlso, add support for specifying tracing_thresh on the kernel\ncommand line.  When used like so: \"tracing_thresh\u003d200 ftrace\u003dfunction_graph\"\nthis can be used to analyse system startup.  It is important to disable\ntracing soon after boot, in order to avoid losing the trace data.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nLKML-Reference: \u003c4B87098B.4040308@am.sony.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1acaa1b2d9b5904c9cce06122990a2d71046ce16",
      "tree": "76e4d061aa4c666c89f581e438b105bd69ee27df",
      "parents": [
        "a094fe04c751698a18c3a0d376a3bdb117f1e0d8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Mar 05 18:23:50 2010 -0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:12:08 2010 -0500"
      },
      "message": "tracing: Update the comm field in the right variable in update_max_tr\n\nThe latency output showed:\n\n #    | task: -3 (uid:0 nice:0 policy:1 rt_prio:99)\n\nThe comm is missing in the \"task:\" and it looks like a minus 3 is\nthe output. The correct display should be:\n\n #    | task: migration/0-3 (uid:0 nice:0 policy:1 rt_prio:99)\n\nThe problem is that the comm is being stored in the wrong data\nstructure. The max_tr.data[cpu] is what stores the comm, not the\ntr-\u003edata[cpu].\n\nBefore this patch the max_tr.data[cpu]-\u003ecomm was zeroed and the /debug/trace\nended up showing just the \u0027-\u0027 sign followed by the pid.\n\nAlso remove a needless initialization of max_data.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c1267824230-23861-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a094fe04c751698a18c3a0d376a3bdb117f1e0d8",
      "tree": "7abee80b275f376b686a7b616cfa13cf24d386b9",
      "parents": [
        "801c29fd1fdeb84f60241beb445ff5db154450ae"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 05 20:08:58 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:11:13 2010 -0500"
      },
      "message": "function-graph: Use comment notation for func names of dangling \u0027}\u0027\n\nWhen a \u0027}\u0027 does not have a matching function start, the name is printed\nwithin parenthesis. But this makes it confusing between ending \u0027}\u0027\nand function starts. This patch makes the function name appear in C comment\nnotation.\n\nOld view:\n 3)   1.281 us    |            } (might_fault)\n 3)   3.620 us    |          } (filldir)\n 3)   5.251 us    |        } (call_filldir)\n 3)               |        call_filldir() {\n 3)               |          filldir() {\n\nNew view:\n 3)   1.281 us    |            } /* might_fault */\n 3)   3.620 us    |          } /* filldir */\n 3)   5.251 us    |        } /* call_filldir */\n 3)               |        call_filldir() {\n 3)               |          filldir() {\n\nRequested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "801c29fd1fdeb84f60241beb445ff5db154450ae",
      "tree": "ce6d2cf95d86c7863393914b5ba37c90b56b44e9",
      "parents": [
        "ae1f30384baef4056438d81b305a6a5199b0d16c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 05 20:02:19 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 05 21:00:30 2010 -0500"
      },
      "message": "function-graph: Fix unused reference to ftrace_set_func()\n\nThe declaration of ftrace_set_func() is at the start of the ftrace.c file\nand wrapped with a #ifdef CONFIG_FUNCTION_GRAPH condition. If function\ngraph tracing is enabled but CONFIG_DYNAMIC_FTRACE is not, a warning\nabout that function being declared static and unused is given.\n\nThis really should have been placed within the CONFIG_FUNCTION_GRAPH\ncondition that uses ftrace_set_func().\n\nMoving the declaration down fixes the warning and makes the code cleaner.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d53dd546f36073e0d29b0cfc24c665db301e3e7",
      "tree": "1cd2582e669fe2ff580ddc707705e5efb18251de",
      "parents": [
        "99ee4ca746dda71326db7645463b4075ac1d665c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Mar 03 17:50:18 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 12:07:35 2010 +0100"
      },
      "message": "rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n\nChange the pair of rcu_dereference() calls in\nftrace_perf_buf_prepare() to rcu_dereference_sched().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1267667418-32233-3-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e02c4fd3142dfb9412531bbfabd510a2a7c6ea46",
      "tree": "61b64506b2c016e050f940a89d1ffd36b7c00fdf",
      "parents": [
        "ae1f30384baef4056438d81b305a6a5199b0d16c",
        "ac91d85456372a90af5b85eb6620fd2efb1e431b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 11:51:29 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 11:51:29 2010 +0100"
      },
      "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": "0a135ba14d71fb84c691a5386aff5049691fe6d7",
      "tree": "adb1de887dd6839d69d2fc16ffa2a10ff63298fa",
      "parents": [
        "4850f524b2c4c8a4e9f8ef4dd9c7c4afde2f2b2c",
        "a29d8b8e2d811a24bbe49215a0f0c536b72ebc18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: add __percpu sparse annotations to what\u0027s left\n  percpu: add __percpu sparse annotations to fs\n  percpu: add __percpu sparse annotations to core kernel subsystems\n  local_t: Remove leftover local.h\n  this_cpu: Remove pageset_notifier\n  this_cpu: Page allocator conversion\n  percpu, x86: Generic inc / dec percpu instructions\n  local_t: Move local.h include to ringbuffer.c and ring_buffer_benchmark.c\n  module: Use this_cpu_xx to dynamically allocate counters\n  local_t: Remove cpu_local_xx macros\n  percpu: refactor the code in pcpu_[de]populate_chunk()\n  percpu: remove compile warnings caused by __verify_pcpu_ptr()\n  percpu: make accessors check for percpu pointer in sparse\n  percpu: add __percpu for sparse.\n  percpu: make access macros universal\n  percpu: remove per_cpu__ prefix.\n"
    },
    {
      "commit": "ac91d85456372a90af5b85eb6620fd2efb1e431b",
      "tree": "df15f1b8c3c6b8b5a6367f70a527b2da7e240361",
      "parents": [
        "3a5b27bf6f29574d667230c7e76e4b83fe3014e0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 02 17:54:50 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 02 21:11:47 2010 -0500"
      },
      "message": "tracing: Fix warning in s_next of trace file ops\n\nThis warning in s_next() can be triggered by lseek():\n [\u003cc018b3f7\u003e] ? s_next+0x77/0x80\n [\u003cc013e3c1\u003e] warn_slowpath_common+0x81/0xa0\n [\u003cc018b3f7\u003e] ? s_next+0x77/0x80\n [\u003cc013e3fa\u003e] warn_slowpath_null+0x1a/0x20\n [\u003cc018b3f7\u003e] s_next+0x77/0x80\n [\u003cc01efa77\u003e] traverse+0x117/0x200\n [\u003cc01eff13\u003e] seq_lseek+0xa3/0x120\n [\u003cc01efe70\u003e] ? seq_lseek+0x0/0x120\n [\u003cc01d7081\u003e] vfs_llseek+0x41/0x50\n [\u003cc01d8116\u003e] sys_llseek+0x66/0xa0\n [\u003cc0102bd0\u003e] sysenter_do_call+0x12/0x26\n\nThe iterator \"leftover\" variable is zeroed in the opening of the trace\nfile. But lseek can call s_start() which will call s_next() without\nreseting the \"leftover\" variable back to zero, which might trigger\nthe WARN_ON_ONCE(iter-\u003eleftover) that is in s_next().\n\nCc: stable@kernel.org\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B8CE06A.9090207@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b1bf9368407ae7e89d8a005bb40beb70a41df539",
      "tree": "3815c8aab19c6c186736673c624fef5f3faab716",
      "parents": [
        "524df55725217b13d5a232fb5badb5846418ea0e",
        "4671a1322052425afa38fcb7980d2fd2bb0fc99b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block: (38 commits)\n  block: don\u0027t access jiffies when initialising io_context\n  cfq: remove 8 bytes of padding from cfq_rb_root on 64 bit builds\n  block: fix for \"Consolidate phys_segment and hw_segment limits\"\n  cfq-iosched: quantum check tweak\n  blktrace: perform cleanup after setup error\n  blkdev: fix merge_bvec_fn return value checks\n  cfq-iosched: requests \"in flight\" vs \"in driver\" clarification\n  cciss: Fix problem with scatter gather elements in the scsi half of the driver\n  cciss: eliminate unnecessary pointer use in cciss scsi code\n  cciss: do not use void pointer for scsi hba data\n  cciss: factor out scatter gather chain block mapping code\n  cciss: fix scatter gather chain block dma direction kludge\n  cciss: simplify scatter gather code\n  cciss: factor out scatter gather chain block allocation and freeing\n  cciss: detect bad alignment of scsi commands at build time\n  cciss: clarify command list padding calculation\n  cfq-iosched: rethink seeky detection for SSDs\n  cfq-iosched: rework seeky detection\n  block: remove padding from io_context on 64bit builds\n  block: Consolidate phys_segment and hw_segment limits\n  ...\n"
    },
    {
      "commit": "9a8c28c8311e30ba97499447d5a11662f5aea094",
      "tree": "b0260ab00c6e24fb02ca1cb3c147350e933c79ba",
      "parents": [
        "9f7cdbc33f36d28e57eaba0093f68f0d14c38c5b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Feb 27 20:35:13 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Feb 28 19:47:19 2010 +0100"
      },
      "message": "blktrace: perform cleanup after setup error\n\nCurrently even if BLKTRACESETUP ioctl has failed user must call\nBLKTRACETEARDOWN to be shure what all staff was cleaned, which\nis contr-intuitive.\nLet\u0027s setup ioctl make necessery cleanup by it self.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ae1f30384baef4056438d81b305a6a5199b0d16c",
      "tree": "8080911432c5a3dbf535e69b8e23f1d21164104e",
      "parents": [
        "480917427b0b6ff39de55ffc81391055472e6c26"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Feb 28 19:42:38 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 28 19:45:01 2010 +0100"
      },
      "message": "tracing: Include irqflags headers from trace clock\n\ntrace_clock.c includes spinlock.h, which ends up including\nasm/system.h, which in turn includes linux/irqflags.h in x86.\n\nSo the definition of raw_local_irq_save is luckily covered there,\nbut this is not the case in parisc:\n\n   tip/kernel/trace/trace_clock.c:86: error: implicit declaration of function \u0027raw_local_irq_save\u0027\n   tip/kernel/trace/trace_clock.c:112: error: implicit declaration of function \u0027raw_local_irq_restore\u0027\n\nWe need to include linux/irqflags.h directly from trace_clock.c\nto avoid such build error.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6556a6743549defc32e5f90ee2cb1ecd833a44c3",
      "tree": "622306583d4a3c13235a8bfc012854c125c597f1",
      "parents": [
        "e0d272429a34ff143bfa04ee8e29dd4eed2964c7",
        "1dd2980d990068e20045b90c424518cc7f3657ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 28 10:20:25 2010 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (172 commits)\n  perf_event, amd: Fix spinlock initialization\n  perf_event: Fix preempt warning in perf_clock()\n  perf tools: Flush maps on COMM events\n  perf_events, x86: Split PMU definitions into separate files\n  perf annotate: Handle samples not at objdump output addr boundaries\n  perf_events, x86: Remove superflous MSR writes\n  perf_events: Simplify code by removing cpu argument to hw_perf_group_sched_in()\n  perf_events, x86: AMD event scheduling\n  perf_events: Add new start/stop PMU callbacks\n  perf_events: Report the MMAP pgoff value in bytes\n  perf annotate: Defer allocating sym_priv-\u003ehist array\n  perf symbols: Improve debugging information about symtab origins\n  perf top: Use a macro instead of a constant variable\n  perf symbols: Check the right return variable\n  perf/scripts: Tag syscall_name helper as not yet available\n  perf/scripts: Add perf-trace-python Documentation\n  perf/scripts: Remove unnecessary PyTuple resizes\n  perf/scripts: Add syscall tracing scripts\n  perf/scripts: Add Python scripting engine\n  perf/scripts: Remove check-perf-trace from listed scripts\n  ...\n\nFix trivial conflict in tools/perf/util/probe-event.c\n"
    },
    {
      "commit": "480917427b0b6ff39de55ffc81391055472e6c26",
      "tree": "1108a81c38967031d929acec357885745d83d46c",
      "parents": [
        "6fb83029db161141d68cf019760a893d03d0682b",
        "f1c7f517a5dc23bce07efa5ed55e2c074ed9d4ba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 27 10:41:16 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 27 10:41:16 2010 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/core\n"
    },
    {
      "commit": "6fb83029db161141d68cf019760a893d03d0682b",
      "tree": "6f149c23cedc9b2a5f72b5b90ab8426b39afbb7c",
      "parents": [
        "281b3714e91162b66add1cfac404cf7b81e3e2f2",
        "e01292b1fd68ff2abe234d584b06e64344d2c1de"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 27 10:06:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 27 10:06:10 2010 +0100"
      },
      "message": "Merge branch \u0027tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into tracing/core\n"
    },
    {
      "commit": "f1c7f517a5dc23bce07efa5ed55e2c074ed9d4ba",
      "tree": "187be4d66aaa35db2eb1cd77b49520868e999b67",
      "parents": [
        "281b3714e91162b66add1cfac404cf7b81e3e2f2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Feb 26 17:08:16 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 26 19:25:53 2010 -0500"
      },
      "message": "ftrace: Add function names to dangling } in function graph tracer\n\nThe function graph tracer is currently the most invasive tracer\nin the ftrace family. It can easily overflow the buffer even with\n10megs per CPU. This means that events can often be lost.\n\nOn start up, or after events are lost, if the function return is\nrecorded but the function enter was lost, all we get to see is the\nexiting \u0027}\u0027.\n\nHere is how a typical trace output starts:\n\n [tracing] cat trace\n # tracer: function_graph\n #\n # CPU  DURATION                  FUNCTION CALLS\n # |     |   |                     |   |   |   |\n  0) + 91.897 us   |                  }\n  0) ! 567.961 us  |                }\n  0)   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n  0) ! 579.083 us  |                _raw_spin_lock_irqsave();\n  0)   4.694 us    |                _raw_spin_unlock_irqrestore();\n  0) ! 594.862 us  |              }\n  0) ! 603.361 us  |            }\n  0) ! 613.574 us  |          }\n  0) ! 623.554 us  |        }\n  0)   3.653 us    |        fget_light();\n  0)               |        sock_poll() {\n\nThere are a series of \u0027}\u0027 with no matching \"func() {\". There\u0027s no information\nto what functions these ending brackets belong to.\n\nThis patch adds a stack on the per cpu structure used in outputting\nthe function graph tracer to keep track of what function was outputted.\nThen on a function exit event, it checks the depth to see if the\nfunction exit has a matching entry event. If it does, then it only\nprints the \u0027}\u0027, otherwise it adds the function name after the \u0027}\u0027.\n\nThis allows function exit events to show what function they belong to\nat trace output startup, when the entry was lost due to ring buffer\noverflow, or even after a new task is scheduled in.\n\nHere is what the above trace will look like after this patch:\n\n [tracing] cat trace\n # tracer: function_graph\n #\n # CPU  DURATION                  FUNCTION CALLS\n # |     |   |                     |   |   |   |\n  0) + 91.897 us   |                  } (irq_exit)\n  0) ! 567.961 us  |                } (smp_apic_timer_interrupt)\n  0)   \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d |\n  0) ! 579.083 us  |                _raw_spin_lock_irqsave();\n  0)   4.694 us    |                _raw_spin_unlock_irqrestore();\n  0) ! 594.862 us  |              } (add_wait_queue)\n  0) ! 603.361 us  |            } (__pollwait)\n  0) ! 613.574 us  |          } (tcp_poll)\n  0) ! 623.554 us  |        } (sock_poll)\n  0)   3.653 us    |        fget_light();\n  0)               |        sock_poll() {\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "281b3714e91162b66add1cfac404cf7b81e3e2f2",
      "tree": "9f80453153db272c207129d971e17d31a6bb214a",
      "parents": [
        "64b9fb5704a479d98a59f2a1d45d3331a8f847f8",
        "7b60997f73865b019e595720185c85285ca3df9a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:20:17 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:20:17 2010 +0100"
      },
      "message": "Merge branch \u0027tip/tracing/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/core\n"
    },
    {
      "commit": "64b9fb5704a479d98a59f2a1d45d3331a8f847f8",
      "tree": "2b1052b05fa7615c817894bc9802bc5bb2af7ac1",
      "parents": [
        "83f0d53993b2967e54186468b0fc4321447f68f1",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 09:18:32 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.33\u0027 into tracing/core\n\nConflicts:\n\tscripts/recordmcount.pl\n\nMerge reason: Merge up to v2.6.33.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7b60997f73865b019e595720185c85285ca3df9a",
      "tree": "4b441b810a31484cf28621b7690dadcf71a19e3e",
      "parents": [
        "c85f3a91f84d5a85f179c2504bb7a39370c82b41"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Wed Feb 24 15:40:26 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 10:42:55 2010 -0500"
      },
      "message": "tracing: Simplify memory recycle of trace_define_field\n\nDiscard freeing field-\u003etype since it is not necessary.\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nLKML-Reference: \u003c1266997226-6833-5-git-send-email-wenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c85f3a91f84d5a85f179c2504bb7a39370c82b41",
      "tree": "04f082a3f73138f97a4022e624942f29420617a9",
      "parents": [
        "a5efd925115cbc1f90195dca9a25f7b8daa10c37"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Wed Feb 24 15:40:24 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 10:41:24 2010 -0500"
      },
      "message": "tracing: Remove unnecessary variable in print_graph_return\n\nThe \"cpu\" variable is declared at the start of the function and\nalso within a branch, with the exact same initialization.\n\nRemove the local variable of the same name in the branch.\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nLKML-Reference: \u003c1266997226-6833-3-git-send-email-wenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a5efd925115cbc1f90195dca9a25f7b8daa10c37",
      "tree": "476e5db28eec3d8a9145ccacdde7b35801af757b",
      "parents": [
        "6574658b3bc7c408581629de5efb809f125cce8c"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Wed Feb 24 15:40:23 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 10:36:29 2010 -0500"
      },
      "message": "tracing: Fix typo of info text in trace_kprobe.c\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nLKML-Reference: \u003c1266997226-6833-2-git-send-email-wenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6574658b3bc7c408581629de5efb809f125cce8c",
      "tree": "4b0399c265df57ec762604123fb1d5f9edcae8dd",
      "parents": [
        "1ab83a89411556c4d5914dcf0d5da190178ae7db"
      ],
      "author": {
        "name": "Wenji Huang",
        "email": "wenji.huang@oracle.com",
        "time": "Wed Feb 24 15:40:22 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 10:35:55 2010 -0500"
      },
      "message": "tracing: Fix typo in prof_sysexit_enable()\n\nSigned-off-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nLKML-Reference: \u003c1266997226-6833-1-git-send-email-wenji.huang@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1ab83a89411556c4d5914dcf0d5da190178ae7db",
      "tree": "894b875ef02497e02e5c4c03ca5a4a0b40ce47dc",
      "parents": [
        "86c38a31aa7f2dd6e74a262710bf8ebf7455acc5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 24 15:28:14 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 10:31:45 2010 -0500"
      },
      "message": "tracing: Remove CONFIG_TRACE_POWER from kernel config\n\nThe power tracer has been converted to power trace events.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B84D50E.4070806@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "86c38a31aa7f2dd6e74a262710bf8ebf7455acc5",
      "tree": "167d2c46917233373e597cc5f82d3f9132170e65",
      "parents": [
        "0c54dd341fb701928b8e5dca91ced1870c55b05b"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Feb 24 13:59:23 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 25 09:38:11 2010 -0500"
      },
      "message": "tracing: Fix ftrace_event_call alignment for use with gcc 4.5\n\nGCC 4.5 introduces behavior that forces the alignment of structures to\n use the largest possible value. The default value is 32 bytes, so if\n some structures are defined with a 4-byte alignment and others aren\u0027t\n declared with an alignment constraint at all - it will align at 32-bytes.\n\n For things like the ftrace events, this results in a non-standard array.\n When initializing the ftrace subsystem, we traverse the _ftrace_events\n section and call the initialization callback for each event. When the\n structures are misaligned, we could be treating another part of the\n structure (or the zeroed out space between them) as a function pointer.\n\n This patch forces the alignment for all the ftrace_event_call structures\n to 4 bytes.\n\n Without this patch, the kernel fails to boot very early when built with\n gcc 4.5.\n\n It\u0027s trivial to check the alignment of the members of the array, so it\n might be worthwhile to add something to the build system to do that\n automatically. Unfortunately, that only covers this case. I\u0027ve asked one\n of the gcc developers about adding a warning when this condition is seen.\n\nCc: stable@kernel.org\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nLKML-Reference: \u003c4B85770B.6010901@suse.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f850c30c8b426ba1688cb63b1a3e534eed03a138",
      "tree": "b01f27bc57b73cf8311c8135be0ffc8e93b16ed6",
      "parents": [
        "e7b8e675d9c71b868b66f62f725a948047514719"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Feb 10 17:25:17 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 17 13:13:08 2010 +0100"
      },
      "message": "tracing/kprobes: Make Kconfig dependencies generic\n\nKPROBES_EVENT actually depends on the regs and stack access API\n(b1cf540f) and not on x86.\nSo introduce a new config option which architectures can select if\nthey have the API implemented and switch x86.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nLKML-Reference: \u003c20100210162517.GB6933@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "e7b8e675d9c71b868b66f62f725a948047514719",
      "tree": "77877e2470148dc47653408c4b624734a8f14239",
      "parents": [
        "ea2c68a08fedb5053ba312d661e47df9f4d72411"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jan 26 04:40:03 2010 -0500"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 17 13:07:21 2010 +0100"
      },
      "message": "tracing: Unify arch_syscall_addr() implementations\n\nMost implementations of arch_syscall_addr() are the same, so create a\ndefault version in common code and move the one piece that differs (the\nsyscall table) to asm/syscall.h.  New arch ports don\u0027t have to waste\ntime copying \u0026 pasting this simple function.\n\nThe s390/sparc versions need to be different, so document why.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1264498803-17278-1-git-send-email-vapier@gentoo.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "a9bb18f36c8056f0712fb28c52c0f85d98438dfb",
      "tree": "408900306e5730221cb026f9c8fe9bdc9ec14d7c",
      "parents": [
        "4f48f8b7fd18c44f8478174f9925cc3c059c6ce4"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Feb 10 17:23:47 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 14 09:43:58 2010 +0100"
      },
      "message": "tracing/kprobes: Fix probe parsing\n\nTrying to add a probe like:\n\n  echo p:myprobe 0x10000 \u003e /sys/kernel/debug/tracing/kprobe_events\n\nwill fail since the wrong pointer is passed to strict_strtoul\nwhen trying to convert the address to an unsigned long.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100210162346.GA6933@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7c6b1fe9f942c1a30585ec2210a09dfff238506",
      "tree": "de7780b1b6cff9c8f33c9de1240a0b19bea9aa94",
      "parents": [
        "ede55c9d78101fef0d8e620940a5163f14b02f29"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 10 15:43:04 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Feb 11 14:32:38 2010 -0500"
      },
      "message": "ftrace: Allow to remove a single function from function graph filter\n\nI don\u0027t see why we can only clear all functions from the filter.\n\nAfter patching:\n\n  # echo sys_open \u003e set_graph_function\n  # echo sys_close \u003e\u003e set_graph_function\n  # cat set_graph_function\n  sys_open\n  sys_close\n  # echo \u0027!sys_close\u0027 \u003e\u003e set_graph_function\n  # cat set_graph_function\n  sys_open\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B726388.2000408@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ede55c9d78101fef0d8e620940a5163f14b02f29",
      "tree": "d09ace47623ef59d7db6a9ee66f3f0794ff2d6ea",
      "parents": [
        "ea2c68a08fedb5053ba312d661e47df9f4d72411"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jan 27 11:25:54 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 09 21:35:05 2010 -0500"
      },
      "message": "tracing: Add correct/incorrect to sort keys for branch annotation output\n\nThe branch annotation is a bit difficult to see the worst offenders\nbecause it only sorts by percentage:\n\n correct incorrect  %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n       0      163 100 qdisc_restart                  sch_generic.c        179\n       0      163 100 pfifo_fast_dequeue             sch_generic.c        447\n       0        4 100 pskb_trim_rcsum                skbuff.h             1689\n       0        4 100 llc_rcv                        llc_input.c          170\n       0       18 100 psmouse_interrupt              psmouse-base.c       304\n       0        3 100 atkbd_interrupt                atkbd.c              389\n       0        5 100 usb_alloc_dev                  usb.c                437\n       0       11 100 vsscanf                        vsprintf.c           1897\n       0        2 100 IS_ERR                         err.h                34\n       0       23 100 __rmqueue_fallback             page_alloc.c         865\n       0        4 100 probe_wakeup_sched_switch      trace_sched_wakeup.c 142\n       0        3 100 move_masked_irq                migration.c          11\n\nAdding the incorrect and correct values as sort keys makes this file a\nbit more informative:\n\n correct incorrect  %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n       0   366541 100 audit_syscall_entry            auditsc.c            1637\n       0   366538 100 audit_syscall_exit             auditsc.c            1685\n       0   115839 100 sched_info_switch              sched_stats.h        269\n       0    74567 100 sched_info_queued              sched_stats.h        222\n       0    66578 100 sched_info_dequeued            sched_stats.h        177\n       0    15113 100 trace_workqueue_insertion      workqueue.h          38\n       0    15107 100 trace_workqueue_execution      workqueue.h          45\n       0     3622 100 syscall_trace_leave            ptrace.c             1772\n       0     2750 100 sched_move_task                sched.c              10100\n       0     2750 100 sched_move_task                sched.c              10110\n       0     1815 100 pre_schedule_rt                sched_rt.c           1462\n       0      837 100 audit_alloc                    auditsc.c            879\n       0      814 100 tcp_mss_split_point            tcp_output.c         1302\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1537a3638cbf741d3826c1002026cce487a6bee0",
      "tree": "ccb28bc0cbad64686c7cff704a6e7ee898aff35f",
      "parents": [
        "b5218a87cbe0f01d551b2dae90b54cad8ded72df"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Fri Jan 29 15:57:49 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:45 2010 +0100"
      },
      "message": "tree-wide: fix \u0027lenght\u0027 typo in comments and code\n\nSome misspelled occurences of \u0027octet\u0027 and some comments were also fixed\nas I was on it.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c41b20e721ea4f6f20f66a66e7f0c3c97a2ca9c2",
      "tree": "92cd1b2b1cdb871530bb07bbbcbfeaffe1170830",
      "parents": [
        "a089377f29d3af0f62f3bdc6db0c5042513fc3f3"
      ],
      "author": {
        "name": "Adam Buchbinder",
        "email": "adam.buchbinder@gmail.com",
        "time": "Fri Dec 11 16:35:39 2009 -0500"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 04 11:55:45 2010 +0100"
      },
      "message": "Fix misspellings of \"truly\" in comments.\n\nSome comments misspell \"truly\"; this fixes them. No code changes.\n\nSigned-off-by: Adam Buchbinder \u003cadam.buchbinder@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "f24bb999d2b9f2950e5cac5b69bffedf73c24ea4",
      "tree": "2c595d1c4c34f06eda309fd3770e3a7fb9ffba8a",
      "parents": [
        "4554dbcb85a4ed2abaa2b6fa15649b796699ec89"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:25 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace: Remove record freezing\n\nRemove record freezing. Because kprobes never puts probe on\nftrace\u0027s mcount call anymore, it doesn\u0027t need ftrace to check\nwhether kprobes on it.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100202214925.4694.73469.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2cfa19780d61740f65790c5bae363b759d7c96fa",
      "tree": "cc7a8277a9f04c1bd613efe03c7d6d16cd18dc96",
      "parents": [
        "615d0ebbc782b67296e3226c293f520f93f93515"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Feb 02 16:49:11 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:36:19 2010 +0100"
      },
      "message": "ftrace/alternatives: Introducing *_text_reserved functions\n\nIntroducing *_text_reserved functions for checking the text\naddress range is partially reserved or not. This patch provides\nchecking routines for x86 smp alternatives and dynamic ftrace.\nSince both functions modify fixed pieces of kernel text, they\nshould reserve and protect those from other dynamic text\nmodifier, like kprobes.\n\nThis will also be extended when introducing other subsystems\nwhich modify fixed pieces of kernel text. Dynamic text modifiers\nshould avoid those.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: przemyslaw@pawelczyk.it\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c20100202214911.4694.16587.stgit@dhcp-100-2-132.bos.redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f48f8b7fd18c44f8478174f9925cc3c059c6ce4",
      "tree": "94eb6ad3dcf1d381d7b2bc81b3883d6cde98f3ba",
      "parents": [
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Feb 02 15:32:09 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 02 10:20:18 2010 -0500"
      },
      "message": "tracing: Fix circular dead lock in stack trace\n\nWhen we cat \u003cdebugfs\u003e/tracing/stack_trace, we may cause circular lock:\nsys_read()\n  t_start()\n     arch_spin_lock(\u0026max_stack_lock);\n\n  t_show()\n     seq_printf(), vsnprintf() .... /* they are all trace-able,\n       when they are traced, max_stack_lock may be required again. */\n\nThe following script can trigger this circular dead lock very easy:\n#!/bin/bash\n\necho 1 \u003e /proc/sys/kernel/stack_tracer_enabled\n\nmount -t debugfs xxx /mnt \u003e /dev/null 2\u003e\u00261\n\n(\n# make check_stack() zealous to require max_stack_lock\nfor ((; ;))\n{\n\techo 1 \u003e /mnt/tracing/stack_max_size\n}\n) \u0026\n\nfor ((; ;))\n{\n\tcat /mnt/tracing/stack_trace \u003e /dev/null\n}\n\nTo fix this bug, we increase the percpu trace_active before\nrequire the lock.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B67D4F9.9080905@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ab386128f20c44c458a90039ab1bdc265ac474c9",
      "tree": "2ad188744922b1bb951fd10ff50dc04c83acce22",
      "parents": [
        "dbfc196a3cc1a2514ad0737a82f764de23bd65e6",
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n"
    },
    {
      "commit": "ae7f6711d6231c9ba54feb5ba9856c3775e482f8",
      "tree": "89070c82204b2503348e4fd6c51d25a169375545",
      "parents": [
        "64abebf731df87e6f4ae7d9ffc340bdf0c033e44",
        "b23ff0e9330e4b11e18af984d50573598e10e7f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 29 09:24:57 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 29 10:36:22 2010 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: We want to queue up a dependent patch. Also update to\n              later -rc\u0027s.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e12a4a7a3a78bc9c3aaf3486dde3b8ab1cdf465",
      "tree": "584de4d1c4dde232a8967d1a95d5b4f6eef8c606",
      "parents": [
        "430ad5a600a83956749307b13257c464c3826b55"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jan 28 09:34:27 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jan 29 02:14:40 2010 +0100"
      },
      "message": "tracing/kprobe: Cleanup unused return value of tracing functions\n\nThe return values of the kprobe\u0027s tracing functions are meaningless,\nlets remove these.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c4B60E9A3.2040505@cn.fujitsu.com\u003e\n[fweisbec@gmail: whitespace fixes, drop useless void returns in end\nof functions]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "430ad5a600a83956749307b13257c464c3826b55",
      "tree": "9cd3dd3f54e29397ff303478de9fe6902f675b9b",
      "parents": [
        "339ce1a4dc2ca26444c4f65c31b71a5056f3bb0b"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Thu Jan 28 09:32:29 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jan 29 02:02:57 2010 +0100"
      },
      "message": "perf: Factorize trace events raw sample buffer operations\n\nIntroduce ftrace_perf_buf_prepare() and ftrace_perf_buf_submit() to\ngather the common code that operates on raw events sampling buffer.\nThis cleans up redundant code between regular trace events, syscall\nevents and kprobe events.\n\nChangelog v1-\u003ev2:\n- Rename function name as per Masami and Frederic\u0027s suggestion\n- Add __kprobes for ftrace_perf_buf_prepare() and make\n  ftrace_perf_buf_submit() inline as per Masami\u0027s suggestion\n- Export ftrace_perf_buf_prepare since modules will use it\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c4B60E92D.9000808@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "ea2c68a08fedb5053ba312d661e47df9f4d72411",
      "tree": "76e5e61b8377aac6283670481171bf899905052b",
      "parents": [
        "24a53652e361321b09df5040711e69387344ce09"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 13 19:38:30 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Jan 29 01:05:12 2010 +0100"
      },
      "message": "tracing: Simplify test for function_graph tracing start point\n\nIn the function graph tracer, a calling function is to be traced\nonly when it is enabled through the set_graph_function file,\nor when it is nested in an enabled function.\n\nCurrent code uses TSK_TRACE_FL_GRAPH to test whether it is nested\nor not. Looking at the code, we can get this:\n(trace-\u003edepth \u003e 0) \u003c\u003d\u003d\u003e (TSK_TRACE_FL_GRAPH is set)\n\ntrace-\u003edepth is more explicit to tell that it is nested.\nSo we use trace-\u003edepth directly and simplify the code.\n\nNo functionality is changed.\nTSK_TRACE_FL_GRAPH is not removed yet, it is left for future usage.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c4B4DB0B6.7040607@cn.fujitsu.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "03688970347bfea32823953a7ce5886d1713205f",
      "tree": "7ae2cc539b20b0a621d4a11f335f96de619ecfcb",
      "parents": [
        "6993b1bb1e62367f500789835a1f747e12259f07"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Fri Jan 22 08:12:47 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 26 17:00:39 2010 -0500"
      },
      "message": "tracing/documentation: Cover new frame pointer semantics\n\nUpdate the graph tracer examples to cover the new frame pointer semantics\n(in terms of passing it along).  Move the HAVE_FUNCTION_GRAPH_FP_TEST docs\nout of the Kconfig, into the right place, and expand on the details.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nLKML-Reference: \u003c1264165967-18938-1-git-send-email-vapier@gentoo.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3c05d7482777f15e71bb4cb1ba78dee2800dfec6",
      "tree": "cb3d7c935ede863ca94e0beb97dc57ceb1e75e7b",
      "parents": [
        "492a74f4210e15f4701422e2e1c4cd3c1e45ddae"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jan 26 16:14:08 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 26 16:14:08 2010 -0500"
      },
      "message": "ring-buffer: Check for end of page in iterator\n\nIf the iterator comes to an empty page for some reason, or if\nthe page is emptied by a consuming read. The iterator code currently\ndoes not check if the iterator is pass the contents, and may\nreturn a false entry.\n\nThis patch adds a check to the ring buffer iterator to test if the\ncurrent page has been completely read and sets the iterator to the\nnext page if necessary.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "492a74f4210e15f4701422e2e1c4cd3c1e45ddae",
      "tree": "a45808e0aa8e5f50ca934a571660f24d6b2d8e1d",
      "parents": [
        "74bf4076f2ed79b5510440b72a561823a8852ec0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jan 25 15:17:47 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jan 26 16:09:30 2010 -0500"
      },
      "message": "ring-buffer: Check if ring buffer iterator has stale data\n\nUsually reads of the ring buffer is performed by a single task.\nThere are two types of reads from the ring buffer.\n\nOne is a consuming read which will consume the entry that was read\nand the next read will be the entry that follows.\n\nThe other is an iterator that will let the user read the contents of\nthe ring buffer without modifying it. When an iterator is allocated,\nwrites to the ring buffer are disabled to protect the iterator.\n\nThe problem exists when consuming reads happen while an iterator is\nallocated. Specifically, the kind of read that swaps out an entire\npage (used by splice) and replaces it with a new read. If the iterator\nis on the page that is swapped out, then the next read may read\nfrom this swapped out page and return garbage.\n\nThis patch adds a check when reading the iterator to make sure that\nthe iterator contents are still valid. If a consuming read has taken\nplace, the iterator is reset.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "74bf4076f2ed79b5510440b72a561823a8852ec0",
      "tree": "d992d49f992cd77e20c9833876c021ad9b265f57",
      "parents": [
        "f6760aa024199cfbce564311dc4bc4d47b6fb349"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jan 25 15:11:53 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 25 15:11:53 2010 -0500"
      },
      "message": "tracing: Prevent kernel oops with corrupted buffer\n\nIf the contents of the ftrace ring buffer gets corrupted and the trace\nfile is read, it could create a kernel oops (usualy just killing the user\ntask thread). This is caused by the checking of the pid in the buffer.\nIf the pid is negative, it still references the cmdline cache array,\nwhich could point to an invalid address.\n\nThe simple fix is to test for negative PIDs.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "231e36f4d2e63dd770db80b9f5113310c2bcfcfd",
      "tree": "6ecff75b334f24234e0e44bed703cfaa809a7d10",
      "parents": [
        "0eda7385db1f30271ade830a231006938a76fb53"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Jan 14 00:12:12 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 17 08:15:35 2010 +0100"
      },
      "message": "tracing/kprobe: Update kprobe tracing self test for new syntax\n\nUpdate kprobe tracing self test for new syntax (it supports\ndeleting individual probes, and drops $argN support)\nand behavior change (new probes are disabled in default).\n\nThis selftest includes the following checks:\n\n - Adding function-entry probe and return probe with arguments.\n - Enabling these probes.\n - Deleting it individually.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100114051211.7814.29436.stgit@localhost6.localdomain6\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24a53652e361321b09df5040711e69387344ce09",
      "tree": "9db320478f5233ee4b427292cc57ad4b3a66fefb",
      "parents": [
        "d931369b74b3d6f2044f595af6f3dd074f65d9cf"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jan 14 08:23:15 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 17 08:06:25 2010 +0100"
      },
      "message": "tracing: Drop the tr check from the graph tracing path\n\nEach time we save a function entry from the function graph\ntracer, we check if the trace array is set, which is wasteful\nbecause it is set anyway before we start the tracer. All we need\nis to ensure we have good read and write orderings. When we set\nthe trace array, we just need to guarantee it to be visible\nbefore starting tracing.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1263453795-7496-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d1303dd1d6b220cab375f24fa91a5640e54e169e",
      "tree": "6b37f4fe7ef331e18c35919ae2fab0ce9da5e6b9",
      "parents": [
        "16da27a8bc7a0d050686d1b2e9efb53fab9ed226"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 14 10:54:40 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 14 22:38:14 2010 -0500"
      },
      "message": "tracing/filters: Add comment for match callbacks\n\nWe should be clear on 2 things:\n\n- the length parameter of a match callback includes\n  tailing \u0027\\0\u0027.\n\n- the string to be searched might not be NULL-terminated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B4E8770.7000608@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "16da27a8bc7a0d050686d1b2e9efb53fab9ed226",
      "tree": "def65eba395d9b2a2531f87dc1dd051be7845e92",
      "parents": [
        "b2af211f284eb1bef19fbb85fc8ef551bb1e7460"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 14 10:54:27 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 14 22:38:12 2010 -0500"
      },
      "message": "tracing/filters: Fix MATCH_FULL filter matching for PTR_STRING\n\nMATCH_FULL matching for PTR_STRING is not working correctly:\n\n  # echo \u0027func \u003d\u003d vt\u0027 \u003e events/bkl/lock_kernel/filter\n  # echo 1 \u003e events/bkl/lock_kernel/enable\n  ...\n  # cat trace\n   Xorg-1484  [000]  1973.392586: lock_kernel: ... func\u003dvt_ioctl()\n    gpm-1402  [001]  1974.027740: lock_kernel: ... func\u003dvt_ioctl()\n\nWe should pass to regex.match(..., len) the length (including \u0027\\0\u0027)\nof the source string instead of the length of the pattern string.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B4E8763.5070707@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "b2af211f284eb1bef19fbb85fc8ef551bb1e7460"
}
