)]}'
{
  "log": [
    {
      "commit": "d2f30c73aba19be828c759edcd21140390cd06e4",
      "tree": "b9bad75b11e21680f8f9443f0143d62be23cae78",
      "parents": [
        "1b065fdff1c950d96e4c571abe873a9a8aaa6d51",
        "02a9d03772aa1ff33a26180a2da0bfb191240eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "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 symbols: Remove incorrect open-coded container_of()\n  perf record: Handle restrictive permissions in /proc/{kallsyms,modules}\n  x86/kprobes: Prevent kprobes to probe on save_args()\n  irq_work: Drop cmpxchg() result\n  perf: Fix owner-list vs exit\n  x86, hw_nmi: Move backtrace_mask declaration under ARCH_HAS_NMI_WATCHDOG\n  tracing: Fix recursive user stack trace\n  perf,hw_breakpoint: Initialize hardware api earlier\n  x86: Ignore trap bits on single step exceptions\n  tracing: Force arch_local_irq_* notrace for paravirt\n  tracing: Fix module use of trace_bprintk()\n"
    },
    {
      "commit": "a89d4bd055718d3b4ddb380ee22951a1300b4096",
      "tree": "ca7a040a619f7c1fb6a42e77be7ff9147417aa2b",
      "parents": [
        "e53beacd23d9cb47590da6a7a7f6d417b941a994",
        "91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 08:07:36 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 08:07:36 2010 +0100"
      },
      "message": "Merge branch \u0027tip/perf/urgent-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ebc8ec86fe0f3f3acf9ba9b41a368f819e7807e",
      "tree": "c0b3d4f14ae6dd98318d78fcf7d16f47954e06a4",
      "parents": [
        "df6e61d4ca268dc8706db38222fde9f04701566c",
        "89480801a17a3069f45169d40b828c8e511aa005"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 16 09:27:13 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 16 09:27:13 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] kprobes: Fix the return address of multiple kretprobes\n  [S390] kprobes: disable interrupts throughout\n  [S390] ftrace: build without frame pointers on s390\n  [S390] mm: add devmem_is_allowed() for STRICT_DEVMEM checking\n  [S390] vmlogrdr: purge after recording is switched off\n  [S390] cio: fix incorrect ccw_device_init_count\n  [S390] tape: add medium state notifications\n  [S390] fix get_user_pages_fast\n"
    },
    {
      "commit": "91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e",
      "tree": "26d7afb8373474a4d44d0eba4130499676c35bc7",
      "parents": [
        "b5908548537ccd3ada258ca5348df7ffc93e5a06"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 10 12:56:12 2010 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Nov 12 21:20:08 2010 -0500"
      },
      "message": "tracing: Fix recursive user stack trace\n\nThe user stack trace can fault when examining the trace. Which\nwould call the do_page_fault handler, which would trace again,\nwhich would do the user stack trace, which would fault and call\ndo_page_fault again ...\n\nThus this is causing a recursive bug. We need to have a recursion\ndetector here.\n\n[ Resubmitted by Jiri Olsa ]\n\n[ Eric Dumazet recommended using __this_cpu_* instead of __get_cpu_* ]\n\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1289390172-9730-3-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "02e031cbc843b010e72fcc05c76113c688b2860f",
      "tree": "9f68559ec3acc39bcc4ce2ff87043a094eaa2e8f",
      "parents": [
        "00e375e7e962f938f6b3c93e4cd097a5e26cc788"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 10 14:54:09 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Nov 10 14:54:09 2010 +0100"
      },
      "message": "block: remove REQ_HARDBARRIER\n\nREQ_HARDBARRIER is dead now, so remove the leftovers.  What\u0027s left\nat this point is:\n\n - various checks inside the block layer.\n - sanity checks in bio based drivers.\n - now unused bio_empty_barrier helper.\n - Xen blockfront use of BLKIF_OP_WRITE_BARRIER - it\u0027s dead for a while,\n   but Xen really needs to sort out it\u0027s barrier situaton.\n - setting of ordered tags in uas - dead code copied from old scsi\n   drivers.\n - scsi different retry for barriers - it\u0027s dead and should have been\n   removed when flushes were converted to FS requests.\n - blktrace handling of barriers - removed.  Someone who knows blktrace\n   better should add support for REQ_FLUSH and REQ_FUA, though.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "becf91f18750cf1c60828aa2ee63a36b05c2e4d0",
      "tree": "3b97a843ef2aaad89250ec8b8897474ad0169c44",
      "parents": [
        "ec6743bb06510c7b629603ce35713d6ae9273579"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Nov 10 10:05:56 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Nov 10 10:05:54 2010 +0100"
      },
      "message": "[S390] ftrace: build without frame pointers on s390\n\ns390 doesn\u0027t need FRAME_POINTERS in order to have a working function tracer.\nWe don\u0027t need frame pointers in order to get strack traces since we always\nhave valid backchains by using the -mkernel-backchain gcc option.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a042e26137d7674ac04b1cd2d5c06b9ebc1ee2d5",
      "tree": "c1a7a8bda41b99caa4b4a0fe320fc73278879f7d",
      "parents": [
        "f66dd539feb849a3a00f7fac67c026e0935e373a",
        "e25804a0327dad954f7d43803178fdef2fd35b4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 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: (50 commits)\n  perf python scripting: Add futex-contention script\n  perf python scripting: Fixup cut\u0027n\u0027paste error in sctop script\n  perf scripting: Shut up \u0027perf record\u0027 final status\n  perf record: Remove newline character from perror() argument\n  perf python scripting: Support fedora 11 (audit 1.7.17)\n  perf python scripting: Improve the syscalls-by-pid script\n  perf python scripting: print the syscall name on sctop\n  perf python scripting: Improve the syscalls-counts script\n  perf python scripting: Improve the failed-syscalls-by-pid script\n  kprobes: Remove redundant text_mutex lock in optimize\n  x86/oprofile: Fix uninitialized variable use in debug printk\n  tracing: Fix \u0027faild\u0027 -\u003e \u0027failed\u0027 typo\n  perf probe: Fix format specified for Dwarf_Off parameter\n  perf trace: Fix detection of script extension\n  perf trace: Use $PERF_EXEC_PATH in canned report scripts\n  perf tools: Document event modifiers\n  perf tools: Remove direct slang.h include\n  perf_events: Fix for transaction recovery in group_sched_in()\n  perf_events: Revert: Fix transaction recovery in group_sched_in()\n  perf, x86: Use NUMA aware allocations for PEBS/BTS/DS allocations\n  ...\n"
    },
    {
      "commit": "61d8e11e519ee7912ab59610fba1aaf08e3c1d84",
      "tree": "f06e035c88cbf508eb6e24875b878ee78d581cf8",
      "parents": [
        "c3b92ce9e75f6353104fc7f8e32fb9fdb2550ad0"
      ],
      "author": {
        "name": "Zimny Lech",
        "email": "napohybelskurwysynom2010@gmail.com",
        "time": "Wed Oct 27 15:34:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:18 2010 -0700"
      },
      "message": "Remove duplicate includes from many files\n\nSigned-off-by: Zimny Lech \u003cnapohybelskurwysynom2010@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c16d2c813a7490408e966f52b881e70fc8d7f77",
      "tree": "3a2a4286a674d2e009f84687b5d0b74809774c28",
      "parents": [
        "5df414c61e1b6f15bdc3759f292c7404286c9827",
        "b8b2663bd7c9da04ac804659b9f617c199d0252c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 26 13:14:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 26 13:14:02 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/ringbuffer-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "aa7b250c252cc8e6b1daf0e1eada5eba42a1a68d",
      "tree": "936134db39aad1c95910d051050b02913fc6a393",
      "parents": [
        "b8ecad8b2f8757d51632b1ea6d602c1f7b9760a2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Oct 21 22:17:19 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 23 20:06:38 2010 +0200"
      },
      "message": "tracing: Fix \u0027faild\u0027 -\u003e \u0027failed\u0027 typo\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nLKML-Reference: \u003ccd9855af60d7d90e9f55fc7afd0ed23fcdaa6f52.1287724261.git.joe@perches.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3bda3ac33d3bf3e5a4049e2cabe82d3caaffc26",
      "tree": "e8ce99ce6b807b5929b8dd0920fcbefa8a59bc1c",
      "parents": [
        "f7030bbc446430ecd12c9ad02cf0ea94934e5f91"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Oct 11 10:20:14 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Oct 22 15:34:11 2010 -0500"
      },
      "message": "kdb,ftdump: Remove reference to internal kdb include\n\nNow that include/linux/kdb.h properly exports all the functions\nrequired to dynamically add a kdb shell command, the reference to the\nprivate kdb header can be removed.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "eea4a0b19a2719e3e23b5450dd9fbe97789d2a57",
      "tree": "c0fccc0d532bb4c4fc0a6e13ea13a08d47192b9e",
      "parents": [
        "d7842da470f244d258f21c5f72cd8388b3541d04",
        "dd49a38cf30944be27892c10b1c0e5b3fa73bcb2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 15:13:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 15:13:45 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "b5153163ed580e00c67bdfecb02b2e3843817b3e",
      "tree": "b8c878601f07f5df8f694435857a5f3dcfd75482",
      "parents": [
        "a8cbf22559ceefdcdfac00701e8e6da7518b7e8e",
        "6451d7783ba5ff24eb1a544eaa6665b890f30466"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 16:42:32 2010 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)\n  arm: remove machine_desc.io_pg_offst and .phys_io\n  arm: use addruart macro to establish debug mappings\n  arm: return both physical and virtual addresses from addruart\n  arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC\n  ARM: make struct machine_desc definition coherent with its comment\n  eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free\n  cpuimx27: fix compile when ULPI is selected\n  mach-pcm037_eet: fix compile errors\n  Fixing ethernet driver compilation error for i.MX31 ADS board\n  cpuimx51: update board support\n  mx5: add cpuimx51sd module and its baseboard\n  iomux-mx51: fix GPIO_1_xx \u0027s IOMUX configuration\n  imx-esdhc: update devices registration\n  mx51: add resources for SD/MMC on i.MX51\n  iomux-mx51: fix SD1 and SD2\u0027s iomux configuration\n  clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability\n  clock-mx51: factorize clk_set_parent and clk_get_rate\n  eukrea_mbimxsd: add support for DVI displays\n  cpuimx25 \u0026 cpuimx35: fix OTG port registration in host mode\n  i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472\n  ...\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 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: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "dd49a38cf30944be27892c10b1c0e5b3fa73bcb2",
      "tree": "6f517e3e643923556c92a647918984fc2ea36bb8",
      "parents": [
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 20 21:51:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 21 08:55:06 2010 -0400"
      },
      "message": "tracing: Do not limit the size of the number of CPU buffers\n\nThe tracing per_cpu buffers were limited to 999 CPUs for a mear\nsavings in stack space of a char array. Up the array to 30 characters\nwhich is more than enough to hold a 64 bit number.\n\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b8b2663bd7c9da04ac804659b9f617c199d0252c",
      "tree": "9612cc2a1215cd4e0d67d9a45bed528bbbb83f51",
      "parents": [
        "d9abde2138e0a00a0d7e44676928efa0ef629d48"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 19 13:23:25 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 15:17:58 2010 -0400"
      },
      "message": "ring-buffer: Remove unused macro RB_TIMESTAMPS_PER_PAGE\n\nWith the binding of time extends to events we no longer need to use\nthe macro RB_TIMESTAMPS_PER_PAGE. Remove it.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d9abde2138e0a00a0d7e44676928efa0ef629d48",
      "tree": "29b75afdf39664debd21c50af5d882856f7fa2a9",
      "parents": [
        "140ff89127c74b1b1c1b0152a36ea3720ccf6bc3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 19 13:17:08 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 15:17:57 2010 -0400"
      },
      "message": "ring-buffer: Micro-optimize with some strategic inlining\n\nBy using inline and noinline, we are able to make the fast path of\nrecording an event 4% faster.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "140ff89127c74b1b1c1b0152a36ea3720ccf6bc3",
      "tree": "4948fdc850ca13b530f5b4f3c4649b2c510e1a30",
      "parents": [
        "69d1b839f7eee347e357b3f6cce7f630cc6ff93d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 08 10:50:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 15:17:56 2010 -0400"
      },
      "message": "ring-buffer: Remove condition to add timestamp in fast path\n\nThere\u0027s a condition to check if we should add a time extend or\nnot in the fast path. But this condition is racey (in the sense\nthat we can add a unnecessary time extend, but nothing that\ncan break anything). We later check if the time or event time\ndelta should be zero or have real data in it (not racey), making\nthis first check redundant.\n\nThis check may help save space once in a while, but really is\nnot worth the hassle to try to save some space that happens at\nmost 134 ms at a time.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "69d1b839f7eee347e357b3f6cce7f630cc6ff93d",
      "tree": "5aeefde6c8c0234ccea22169817cef07fcf9c692",
      "parents": [
        "afcc5c6872f0215d515a637041bb51f8691a8ea7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 07 18:18:05 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 15:17:16 2010 -0400"
      },
      "message": "ring-buffer: Bind time extend and data events together\n\nWhen the time between two timestamps is greater than\n2^27 nanosecs (~134 ms) a time extend event is added that extends\nthe time difference to 59 bits (~18 years). This is due to\nevents only having a 27 bit field to store time.\n\nCurrently this time extend is a separate event. We add it just before\nthe event data that is being written to the buffer. But before\nthe event data is committed, the event data can also be discarded (as\nwith the case of filters). But because the time extend has already been\ncommitted, it will stay in the buffer.\n\nIf lots of events are being filtered and no event is being\nwritten, then every 134ms a time extend can be added to the buffer\nwithout any data attached. To keep from filling the entire buffer\nwith time extends, a time extend will never be the first event\nin a page because the page timestamp can be used. Time extends can\nonly fill the rest of a page with some data at the beginning.\n\nThis patch binds the time extend with the data. The difference here\nis that the time extend is not committed before the data is added.\nInstead, when a time extend is needed, the space reserved on\nthe ring buffer is the time extend + the data event size. The\ntime extend is added to the first part of the reserved block and\nthe data is added to the second. The time extend event is passed\nback to the reserver, but since the reserver also uses a function\nto find the data portion of the reserved block, no changes to the\nring buffer interface need to be made.\n\nWhen a commit is discarded, we now remove both the time extend and\nthe event. With this approach no more than one time extend can\nbe in the buffer in a row. Data must always follow a time extend.\n\nThanks to Mathieu Desnoyers for suggesting this idea.\n\nSuggested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f25106aeab7408394b9dd707e5ecf557e269c723",
      "tree": "58013e1e5eb776a921cbc8f3ef86267472fea8be",
      "parents": [
        "e8bc43e84fada397af1b677b07dbf26e6ac78fcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 20 12:40:12 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 12:40:12 2010 -0400"
      },
      "message": "ring-buffer: Pass delta by value and not by reference\n\nThe delta between events is passed to the timestamp code by reference\nand the timestamp code will reset the value. But it can be reset\nfrom the caller. No need to pass it in by reference.\n\nBy changing the call to pass by value, lets gcc optimize the code\na bit more where it can store the delta in a register and not\nworry about updating the reference.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e8bc43e84fada397af1b677b07dbf26e6ac78fcc",
      "tree": "60f6fe1acbd15fcd9fdc051660479f300c164ab6",
      "parents": [
        "747e94ae3d1b4c9bf5380e569f614eb9040b79e7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 20 10:58:02 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 20 10:58:02 2010 -0400"
      },
      "message": "ring-buffer: Pass timestamp by value and not by reference\n\nThe original code for the ring buffer had locations that modified\nthe timestamp and that change was used by the callers. Now,\nthe timestamp is not reused by the callers and there is no reason\nto pass it by reference.\n\nBy changing the call to pass by value, lets gcc optimize the code\na bit more where it can store the timestamp in a register and not\nworry about updating the reference.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "809b4e00baf006a990a73329ba381d536c6fa277",
      "tree": "e949e0efd019d6f932537aba762792b07a84351c",
      "parents": [
        "a0a55682b83fd5f012afadcf415b030d7424ae68",
        "79a94c3538bda6869d7bb150b5e02dd3a72314dd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Oct 19 22:06:36 2010 +0100"
      },
      "message": "Merge branch \u0027devel-stable\u0027 into devel\n"
    },
    {
      "commit": "747e94ae3d1b4c9bf5380e569f614eb9040b79e7",
      "tree": "29404444fa5106e6d3361fc6c85b4463777ec3a3",
      "parents": [
        "51ea8a88aae425915b458bfe295f1f10a3d52781"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 08 13:51:48 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 19 13:22:36 2010 -0400"
      },
      "message": "ring-buffer: Make write slow path out of line\n\nGcc inlines the slow path of the ring buffer write which can\nhurt performance. This patch simply forces the slow path function\nrb_move_tail() to always be a function.\n\nThe ring_buffer_benchmark module with reader_disabled\u003d1 shows that\nthis patch changes the time to record an event from 135 ns to\n132 ns. (3 ns or 2.22% improvement)\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7e40798f406fe73f9bac496a390daabd8768a8f7",
      "tree": "c75eee47b3d324218c53bf4f6af5b2fa9780d1db",
      "parents": [
        "78c89ba121221d9224a5747803d7fffe51cd6e44"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 19 10:56:19 2010 -0400"
      },
      "message": "tracing: Fix compile issue for trace_sched_wakeup.c\n\nThe function start_func_tracer() was incorrectly added in the\n #ifdef CONFIG_FUNCTION_TRACER condition, but is still used even\nwhen function tracing is not enabled.\n\nThe calls to register_ftrace_function() and register_ftrace_graph()\nbecome nops (and their arguments are even ignored), thus there is\nno reason to hide start_func_tracer() when function tracing is\nnot enabled.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "01b284f9b6d51cc3f3bcf3b49f16d2601d3ca22d",
      "tree": "686f6c3cb92f172c96eeb853c58cb343bbb5dd94",
      "parents": [
        "0fc86c7bd924debd0bddee790ecc884604fdcc63"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Sep 17 20:39:22 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 19 11:29:57 2010 +0200"
      },
      "message": "blktrace: remove the big kernel lock\n\nAccording to Jens, this code does not need the BKL at all,\nit is sufficiently serialized by bd_mutex.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "23beab76b490172a9ff3d52843e4d27a35b2a4c6",
      "tree": "4fcde568ad32a1be08301172cb61a22717217f0e",
      "parents": [
        "8ed9059533eb89b4372d7fc31b6565c053e5253b",
        "5fb31a96e1e0078f1e82736ccd72a61ecabe6a4f",
        "80be7a7f642719bf99fc49692fc77d6333f51a73",
        "19852e59002fbba1c2c6ba0f154095a37ad2ac03",
        "29e29f27486ed7074df259b3eda8656bb014e9b5",
        "725343fa748fc9b7c883d198e9cec391425aa478",
        "9e978f096241e303c10cf6e6dc80dce41ef41b92",
        "f3af03de0b1c42225d492d874d9afeed0c02568c",
        "5333a3de3cdd739ec4f6d501f5f6d09bab7ff919"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Oct 18 22:34:25 2010 +0100"
      },
      "message": "Merge branches \u0027at91\u0027, \u0027dcache\u0027, \u0027ftrace\u0027, \u0027hwbpt\u0027, \u0027misc\u0027, \u0027mmci\u0027, \u0027s3c\u0027, \u0027st-ux\u0027 and \u0027unwind\u0027 into devel\n"
    },
    {
      "commit": "78c89ba121221d9224a5747803d7fffe51cd6e44",
      "tree": "08f529d73a27513014a15c0a21dfa2d106a68368",
      "parents": [
        "5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 23:22:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:38 2010 -0400"
      },
      "message": "tracing: Remove parent recording in latency tracer graph options\n\nEven though the parent is recorded with the normal function tracing\nof the latency tracers (irqsoff and wakeup), the function graph\nrecording is bogus.\n\nThis is due to the function graph messing with the return stack.\nThe latency tracers pass in as the parent CALLER_ADDR0, which\nworks fine for plain function tracing. But this causes bogus output\nwith the graph tracer:\n\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  return_to_handler();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  _raw_spin_unlock_irqrestore();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  return_to_handler();\n 3)    \u003cidle\u003e-0    |  d.s3.  0.000 us    |  trace_hardirqs_on();\n\nThe \"return_to_handle()\" call is the trampoline of the\nfunction graph tracer, and is meaningless in this context.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564",
      "tree": "5ef2d83c172b0e22dea1532d33e491471a1cc6e7",
      "parents": [
        "542181d3769d001c59cd17573dd4381e87d215f2"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 19:41:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:36 2010 -0400"
      },
      "message": "tracing: Use one prologue for the preempt irqs off tracer function tracers\n\nThe preempt and irqsoff tracers have three types of function tracers.\nNormal function tracer, function graph entry, and function graph return.\nEach of these use a complex dance to prevent recursion and whether\nto trace the data or not (depending if interrupts are enabled or not).\n\nThis patch moves the duplicate code into a single routine, to\nprevent future mistakes with modifying duplicate complex code.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "542181d3769d001c59cd17573dd4381e87d215f2",
      "tree": "ffb13617cd0fee70cdd1a9eb869daca272b07454",
      "parents": [
        "7495a5beaa22f190f4888aa8cbe4827c16575d0a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 05 16:38:49 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:33 2010 -0400"
      },
      "message": "tracing: Use one prologue for the wakeup tracer function tracers\n\nThe wakeup tracer has three types of function tracers. Normal\nfunction tracer, function graph entry, and function graph return.\nEach of these use a complex dance to prevent recursion and whether\nto trace the data or not (depending on the wake_task variable).\n\nThis patch moves the duplicate code into a single routine, to\nprevent future mistakes with modifying duplicate complex code.\n\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7495a5beaa22f190f4888aa8cbe4827c16575d0a",
      "tree": "8e094689aba97c6739450f32ee2ca6fe0c58d319",
      "parents": [
        "0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Sep 23 14:00:53 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:30 2010 -0400"
      },
      "message": "tracing: Graph support for wakeup tracer\n\nAdd function graph support for wakeup latency tracer.\nThe graph output is enabled by setting the \u0027display-graph\u0027\ntrace option.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1285243253-7372-4-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf",
      "tree": "f868daa13783b0dc99f43c53c2a53c2dfa92b85e",
      "parents": [
        "a9d61173dc1cb63e660ae89e874e51ba4fd2f991"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Thu Sep 23 14:00:52 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:28 2010 -0400"
      },
      "message": "tracing: Make graph related irqs/preemptsoff functions global\n\nMove trace_graph_function() and print_graph_headers_flags() functions\nto the trace_function_graph.c to be globaly available.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c1285243253-7372-3-git-send-email-jolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a9d61173dc1cb63e660ae89e874e51ba4fd2f991",
      "tree": "e1ca3badfc9604199670d049e26871bd69d8932f",
      "parents": [
        "907f27840985fe6a0c62e43cd4702c6e04b4bcc7"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Sep 24 17:41:02 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:25 2010 -0400"
      },
      "message": "tracing: Add proper check for irq_depth routines\n\nThe check_irq_entry and check_irq_return could be called\nfrom graph event context. In such case there\u0027s no graph\nprivate data allocated. Adding checks to handle this case.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c20100924154102.GB1818@jolsa.brq.redhat.com\u003e\n\n[ Fixed some grammar in the comments ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "907f27840985fe6a0c62e43cd4702c6e04b4bcc7",
      "tree": "1023e32295a25e0602aef4bab14f41b97975f6bd",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Mon Sep 27 19:04:53 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Oct 18 10:53:22 2010 -0400"
      },
      "message": "tracing/trivial: Remove cast from void*\n\nUnnecessary cast from void* in assignment.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "0fdf13606b67f830559abdaad15980c7f4f05ec4",
      "tree": "dd69bf50a6d27cd15f1876657584e4e2b526d9d8",
      "parents": [
        "d9d572a9c0195486e3baf0d8d6a710196a707335",
        "cf4db2597ae93b60efc0a7a4ec08690b75d629b1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 06:12:28 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 15 06:12:28 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/recordmcount-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "cf4db2597ae93b60efc0a7a4ec08690b75d629b1",
      "tree": "12ee3585d7a65291032b3258000523d6386c7d2e",
      "parents": [
        "c28d5077f8d79bfce1e3f88db2e261cf2b6473dc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Oct 14 23:32:44 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 14 23:32:44 2010 -0400"
      },
      "message": "ftrace: Rename config option HAVE_C_MCOUNT_RECORD to HAVE_C_RECORDMCOUNT\n\nThe config option used by archs to let the build system know that\nthe C version of the recordmcount works for said arch is currently\ncalled HAVE_C_MCOUNT_RECORD which enables BUILD_C_RECORDMCOUNT. To\nbe more consistent with the name that all archs may use, it has been\nrenamed to HAVE_C_RECORDMCOUNT. This will be less confusing since\nwe are building a C recordmcount and not a mcount_record.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: linux-kbuild@vger.kernel.org\nCc: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "72441cb1fd77d092f09ddfac748955703884c9a7",
      "tree": "3b02aecebf718f1cb6e9752b809e825b237527da",
      "parents": [
        "81d3858d3131a589cade0d8b57f95cc1fc699b89"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Oct 13 17:12:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 14 16:52:41 2010 -0400"
      },
      "message": "ftrace/x86: Add support for C version of recordmcount\n\nThis patch adds the support for the C version of recordmcount and\ncompile times show ~ 12% improvement.\n\nAfter verifying this works, other archs can add:\n\n HAVE_C_MCOUNT_RECORD\n\nin its Kconfig and it will use the C version of recordmcount\ninstead of the perl version.\n\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: linux-kbuild@vger.kernel.org\nCc: John Reiser \u003cjreiser@bitwagon.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "14cae9bd2faf6d0d75702c2e107e75207bcdfec1",
      "tree": "78b3d25ee41713ae5324c6f19e149817605780ac",
      "parents": [
        "7cd2541cf2395962daf98ec32a141aba3398a9b2"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bp@alien8.de",
        "time": "Wed Sep 29 10:08:23 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 13 17:47:53 2010 +0200"
      },
      "message": "tracing: Fix function-graph build warning on 32-bit\n\nFix\n\nkernel/trace/trace_functions_graph.c: In function ‘trace_print_graph_duration’:\nkernel/trace/trace_functions_graph.c:652: warning: comparison of distinct pointer types lacks a cast\n\nwhen building 36-rc6 on a 32-bit due to the strict type check failing\nin the min() macro.\n\nSigned-off-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c20100929080823.GA13595@liondog.tnic\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "d01343244abdedd18303d0323b518ed9cdcb1988",
      "tree": "ec3dff2c73f7fb5a728c4b2271028da3a51cdcd7",
      "parents": [
        "c1e028ef40b8d6943b767028ba17d4f2ba020edb"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Oct 12 12:06:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 12 12:06:43 2010 -0400"
      },
      "message": "ring-buffer: Fix typo of time extends per page\n\nTime stamps for the ring buffer are created by the difference between\ntwo events. Each page of the ring buffer holds a full 64 bit timestamp.\nEach event has a 27 bit delta stamp from the last event. The unit of time\nis nanoseconds, so 27 bits can hold ~134 milliseconds. If two events\nhappen more than 134 milliseconds apart, a time extend is inserted\nto add more bits for the delta. The time extend has 59 bits, which\nis good for ~18 years.\n\nCurrently the time extend is committed separately from the event.\nIf an event is discarded before it is committed, due to filtering,\nthe time extend still exists. If all events are being filtered, then\nafter ~134 milliseconds a new time extend will be added to the buffer.\n\nThis can only happen till the end of the page. Since each page holds\na full timestamp, there is no reason to add a time extend to the\nbeginning of a page. Time extends can only fill a page that has actual\ndata at the beginning, so there is no fear that time extends will fill\nmore than a page without any data.\n\nWhen reading an event, a loop is made to skip over time extends\nsince they are only used to maintain the time stamp and are never\ngiven to the caller. As a paranoid check to prevent the loop running\nforever, with the knowledge that time extends may only fill a page,\na check is made that tests the iteration of the loop, and if the\niteration is more than the number of time extends that can fit in a page\na warning is printed and the ring buffer is disabled (all of ftrace\nis also disabled with it).\n\nThere is another event type that is called a TIMESTAMP which can\nhold 64 bits of data in the theoretical case that two events happen\n18 years apart. This code has not been implemented, but the name\nof this event exists, as well as the structure for it. The\nsize of a TIMESTAMP is 16 bytes, where as a time extend is only\n8 bytes. The macro used to calculate how many time extends can fit on\na page used the TIMESTAMP size instead of the time extend size\ncutting the amount in half.\n\nThe following test case can easily trigger the warning since we only\nneed to have half the page filled with time extends to trigger the\nwarning:\n\n # cd /sys/kernel/debug/tracing/\n # echo function \u003e current_tracer\n # echo \u0027common_pid \u003c 0\u0027 \u003e events/ftrace/function/filter\n # echo \u003e trace\n # echo 1 \u003e trace_marker\n # sleep 120\n # cat trace\n\nEnabling the function tracer and then setting the filter to only trace\nfunctions where the process id is negative (no events), then clearing\nthe trace buffer to ensure that we have nothing in the buffer,\nthen write to trace_marker to add an event to the beginning of a page,\nsleep for 2 minutes (only 35 seconds is probably needed, but this\nguarantees the bug), and then finally reading the trace which will\ntrigger the bug.\n\nThis patch fixes the typo and prevents the false positive of that warning.\n\nReported-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nTested-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Stable Kernel \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e0cf0cd49632552f063fb3ae58691946da45fb2e",
      "tree": "69bf197142ba0ceb0b10d792ef76b9a61c891912",
      "parents": [
        "bf5438fca2950b03c21ad868090cc1a8fcd49536"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:04 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:30:03 2010 -0400"
      },
      "message": "jump label: Initialize workqueue tracepoints *before* they are registered\n\nInitialize the workqueue data structures *before* they are registered\nso that they are ready for callbacks.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003ce3a3383fc370ac7086625bebe89d9480d7caf372.1284733808.git.jbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3aabae7d9dfaed60effe93662f02c19bafc18537",
      "tree": "af94cdd69add07601d9f3f5988dfc1dc255e3886",
      "parents": [
        "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
        "57c072c7113f54f9512624d6c665db6184448782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
      "tree": "e1f635e807691cb634fd63478861938592f226fa",
      "parents": [
        "b304d0441a4118fadd4c3f16e4dc600c271030b5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 14 22:19:46 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 22:19:46 2010 -0400"
      },
      "message": "tracing: Remove leftover FTRACE_ENABLE/DISABLE_MCOUNT enums\n\nThe enums for FTRACE_ENABLE_MCOUNT and FTRACE_DISABLE_MCOUNT were\nused as commands to ftrace_run_update_code(). But these commands\nwere used by the old nasty ftrace daemon that has long been slain.\n\nThis is a clean up patch to remove the references to these enums\nand simplify the code a little.\n\nReported-by: Wu Zhangjin \u003cwuzhangjin@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b304d0441a4118fadd4c3f16e4dc600c271030b5",
      "tree": "ed477c965cf6eaf852f69f7dd855c0ea83f8e36d",
      "parents": [
        "2bd16212b8eb86f9574e78d6605a5ba9e9aa8c4e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 14 18:58:33 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 20:18:07 2010 -0400"
      },
      "message": "tracing: Do not trace in irq when funcgraph-irq option is zero\n\nWhen the function graph tracer funcgraph-irq option is zero, disable\ntracing in IRQs. This makes the option have two effects.\n\n1) When reading the trace file, do not display the functions that\n   happen in interrupt context (when detected)\n\n2) [*new*] When recording a trace, skip those that are detected\n   to be in interrupt by the \u0027in_irq()\u0027 function\n\nNote, in_irq() is updated at irq_enter() and irq_exit(). There are\nstill functions that are recorded by the function graph tracer that\nis in interrupt context but outside the irq_enter/exit() routines.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2bd16212b8eb86f9574e78d6605a5ba9e9aa8c4e",
      "tree": "dc26de82f9830265eef31d9eebffce22f0ef632c",
      "parents": [
        "469917ce8717b9f8c5298bf279fa138859baab8d"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Sep 07 16:53:44 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 20:18:07 2010 -0400"
      },
      "message": "tracing: Add funcgraph-irq option for function graph tracer.\n\nIt\u0027s handy to be able to disable the irq related output\nand not to have to jump over each irq related code, when\nyou have no interrest in it.\n\nThe option is by default enabled, so there\u0027s no change to\ncurrent behaviour. It affects only the final output, so all\nthe irq related data stay in the ring buffer.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nLKML-Reference: \u003c20100907145344.GC1912@jolsa.brq.redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "57c072c7113f54f9512624d6c665db6184448782",
      "tree": "c005a9325d308763bd1763853395c7b13010b5e3",
      "parents": [
        "98c4fd046f07156ca6055677e8f03d4280be16c1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 14 11:21:11 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 15:14:20 2010 -0400"
      },
      "message": "tracing: Fix reading of set_ftrace_filter across lists\n\nIf we do:\n\n # cd /sys/kernel/debug\n # echo \u0027do_IRQ:traceon schedule:traceon sys_write:traceon\u0027 \u003e \\\n    set_ftrace_filter\n # cat set_ftrace_filter\n\nWe get the following output:\n\n #### all functions enabled ####\n sys_write:traceon:unlimited\n schedule:traceon:unlimited\n do_IRQ:traceon:unlimited\n\nThis outputs two lists. One is the fact that all functions are\ncurrently enabled for function tracing, the other has three probed\nfunctions, which happen to have \u0027traceon\u0027 as their commands.\n\nCurrently, when reading the first list (functions enabled) the\nseq_file code will receive a \"NULL\" from the t_next() function\ncausing it to exit early. This makes \"read()\" from userspace stop\nreading the code at this boarder. Although read is allowed to do this,\nsome (broken) applications might consider this an end of file and\nstop early.\n\nThis patch adds the start of the second list to t_next() when it\nfinishes the first list. It is a simple change and gives the\nset_ftrace_filter file nicer reading ability.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "98c4fd046f07156ca6055677e8f03d4280be16c1",
      "tree": "bf461479713dbbaf79b0bf1a50a3ba0f30a2f17c",
      "parents": [
        "4aeb69672d011fac5c8df671f3ca89f7987c104e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Sep 10 11:47:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 14:46:01 2010 -0400"
      },
      "message": "tracing: Keep track of set_ftrace_filter position and allow lseek again\n\nThis patch keeps track of the index within the elements of\nset_ftrace_filter and if the position goes backwards, it nicely\nresets and starts from the beginning again.\n\nThis allows for lseek and pread to work properly now.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4aeb69672d011fac5c8df671f3ca89f7987c104e",
      "tree": "d2a96af23b9d6ac742725bb17aafe3d4b377cb6a",
      "parents": [
        "2bccfffd1538f3523847583213567e2f7ce00926"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 09 10:00:28 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 11:42:30 2010 -0400"
      },
      "message": "tracing: Replace typecasted void pointer in set_ftrace_filter code\n\nThe set_ftrace_filter uses seq_file and reads from two lists. The\npointer returned by t_next() can either be of type struct dyn_ftrace\nor struct ftrace_func_probe. If there is a bug (there was one)\nthe wrong pointer may be used and the reference can cause an oops.\n\nThis patch makes t_next() and friends only return the iterator structure\nwhich now has a pointer of type struct dyn_ftrace and struct\nftrace_func_probe. The t_show() can now test if the pointer is NULL or\nnot and if the pointer exists, it is guaranteed to be of the correct type.\n\nNow if there\u0027s a bug, only wrong data will be shown but not an oops.\n\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2bccfffd1538f3523847583213567e2f7ce00926",
      "tree": "7062e0bfc46f66efa2ec3231a6c718a901a0a80c",
      "parents": [
        "bfa88ea7ee9e6b4fd673e45a8cc0a8e0b7ef4761"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Sep 09 08:43:22 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 14 11:42:29 2010 -0400"
      },
      "message": "tracing: Do not reset *pos in set_ftrace_filter\n\nAfter the filtered functions are read, the probed functions are read\nfrom the hash in set_ftrace_filter. When the hashed probed functions\nare read, the *pos passed in is reset. Instead of modifying the pos\ngiven to the read function, just record the pos where the filtered\nfunctions ended and subtract from that.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f2955b490b249ca56e465fd32cc355f84aedf8bd",
      "tree": "401faf98c61f4a0a65703644277521a10da98eec",
      "parents": [
        "3d96406c7da1ed5811ea52a3b0905f4f0e295376",
        "9efdda310cb26bdc28429cb831c3ec5fa270feb7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:31:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:31:24 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  tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread\n  perf symbols: Fix multiple initialization of symbol system\n  perf: Fix CPU hotplug\n  perf, trace: Fix module leak\n  tracing/kprobe: Fix handling of C-unlike argument names\n  tracing/kprobes: Fix handling of argument names\n  perf probe: Fix handling of arguments names\n  perf probe: Fix return probe support\n  tracing/kprobe: Fix a memory leak in error case\n  tracing: Do not allow llseek to set_ftrace_filter\n"
    },
    {
      "commit": "df09162550fbb53354f0c88e85b5d0e6129ee9cc",
      "tree": "e8ba6014c442cf72d587948733f8c29e0d330925",
      "parents": [
        "5e11637e2c929e34dcc0fbbfb48bdb638937701a"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Thu Sep 09 16:34:59 2010 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Sep 09 22:43:49 2010 -0400"
      },
      "message": "tracing: t_start: reset FTRACE_ITER_HASH in case of seek/pread\n\nBe sure to avoid entering t_show() with FTRACE_ITER_HASH set without\nhaving properly started the iterator to iterate the hash.  This case is\ndegenerate and, as discovered by Robert Swiecki, can cause t_hash_show()\nto misuse a pointer.  This causes a NULL ptr deref with possible security\nimplications.  Tracked as CVE-2010-3079.\n\nCc: Robert Swiecki \u003cswiecki@google.com\u003e\nCc: Eugene Teo \u003ceugene@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a4eaf7f14675cb512d69f0c928055e73d0c6d252",
      "tree": "e8a0f631fc28d4bd9becd2e9e2c71743c64ee3ec",
      "parents": [
        "fa407f35e0298d841e4088f95a7f9cf6e725c6d5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 16 14:37:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:30 2010 +0200"
      },
      "message": "perf: Rework the PMU methods\n\nReplace pmu::{enable,disable,start,stop,unthrottle} with\npmu::{add,del,start,stop}, all of which take a flags argument.\n\nThe new interface extends the capability to stop a counter while\nkeeping it scheduled on the PMU. We replace the throttled state with\nthe generic stopped state.\n\nThis also allows us to efficiently stop/start counters over certain\ncode paths (like IRQ handlers).\n\nIt also allows scheduling a counter without it starting, allowing for\na generic frozen state (useful for rotating stopped counters).\n\nThe stopped state is implemented in two different ways, depending on\nhow the architecture implemented the throttled state:\n\n 1) We disable the counter:\n    a) the pmu has per-counter enable bits, we flip that\n    b) we program a NOP event, preserving the counter state\n\n 2) We store the counter state and ignore all read/overflow events\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2aa61274efb9f532deaebc9812675a27af1994cb",
      "tree": "c2f70525dc152e0ddce60f1a3021473cc6a3f298",
      "parents": [
        "359d5106a2ff4ffa2ba129ec8f54743c341dabfc",
        "5e11637e2c929e34dcc0fbbfb48bdb638937701a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:40:06 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:40:08 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Pick up pending fixes before applying dependent new changes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9cb627d5f38830ca19aa0dca52d1d3a633018bf7",
      "tree": "38138b59d5b54c09314a01172586aa653cc3b528",
      "parents": [
        "da34634fd39958725310d2c30c9b4543945f968b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Sep 01 12:58:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:38:51 2010 +0200"
      },
      "message": "perf, trace: Fix module leak\n\nCommit 1c024eca (perf, trace: Optimize tracepoints by using\nper-tracepoint-per-cpu hlist to track events) caused a module\nrefcount leak.\n\nReported-And-Tested-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4C7E1F12.8030304@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79637a41e466bbe7dfe394bac3c9d86a92fd55b1",
      "tree": "0ee720d20572a3e1f901f78331b57612984f1e2e",
      "parents": [
        "899edae615c806f78880077bd46f04d7f23ae6e6",
        "b3bd3de66f60df4c9a2076e2886a622458929056"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 08 11:13:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 08 11:13:42 2010 -0700"
      },
      "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  gcc-4.6: kernel/*: Fix unused but set warnings\n  mutex: Fix annotations to include it in kernel-locking docbook\n  pid: make setpgid() system call use RCU read-side critical section\n  MAINTAINERS: Add RCU\u0027s public git tree\n"
    },
    {
      "commit": "da34634fd39958725310d2c30c9b4543945f968b",
      "tree": "034fa85a0f8ca36fe0e3caa8803b4a6fbe3b9319",
      "parents": [
        "aba91595cfcebd193425e20aabc407531526a1c5"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Fri Aug 27 20:39:12 2010 +0900"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Sep 08 11:47:19 2010 -0300"
      },
      "message": "tracing/kprobe: Fix handling of C-unlike argument names\n\nCheck the argument name whether it is invalid (not C-like symbol name). This\nmakes event format simple.\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLKML-Reference: \u003c20100827113912.22882.62313.stgit@ltc236.sdl.hitachi.co.jp\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "aba91595cfcebd193425e20aabc407531526a1c5",
      "tree": "5473ed5aebc93bb0aea03a17d7ed968ca0e95dce",
      "parents": [
        "367e94c10092469c896a226a77ef13cf6da757e4"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Fri Aug 27 20:39:06 2010 +0900"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Sep 08 11:47:19 2010 -0300"
      },
      "message": "tracing/kprobes: Fix handling of argument names\n\nSet \"argN\" name for each argument automatically if it has no specified name.\nSince dynamic trace event(kprobe_events) accepts special characters for its\nargument, its format can show those special characters (e.g. \u0027$\u0027, \u0027%\u0027, \u0027+\u0027).\nHowever, perf can\u0027t parse those format because of the character (especially\n\u0027%\u0027) mess up the format.  This sets \"argX\" name for those arguments if user\nomitted the argument names.\n\nE.g.\n # echo \u0027p do_fork %ax IP\u003d%ip $stack\u0027 \u003e tracing/kprobe_events\n # cat tracing/kprobe_events\n p:kprobes/p_do_fork_0 do_fork arg1\u003d%ax IP\u003d%ip arg3\u003d$stack\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLKML-Reference: \u003c20100827113906.22882.59312.stgit@ltc236.sdl.hitachi.co.jp\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "61a527362234ac3352a91ac67c50c6f7cd248eb1",
      "tree": "6d3ed6390f61d7819c11b459d86d5dac76ca7f0c",
      "parents": [
        "9c55cb12c1c172e2d51e85fbb5a4796ca86b77e7"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Fri Aug 27 20:38:46 2010 +0900"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Sep 08 11:47:18 2010 -0300"
      },
      "message": "tracing/kprobe: Fix a memory leak in error case\n\nFix a memory leak which happens when a field name conflicts with others. In\nerror case, free_trace_probe() will free all arguments until nr_args, so this\nincrements nr_args the begining of the loop instead of the end.\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLKML-Reference: \u003c20100827113846.22882.12670.stgit@ltc236.sdl.hitachi.co.jp\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "9c55cb12c1c172e2d51e85fbb5a4796ca86b77e7",
      "tree": "0f86d1e27fbfc31cba108e71643d686315468db9",
      "parents": [
        "4177c42a6301a34c20038ec2771a33dcc30bb338"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Sep 08 11:20:37 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 08 12:08:01 2010 -0400"
      },
      "message": "tracing: Do not allow llseek to set_ftrace_filter\n\nReading the file set_ftrace_filter does three things.\n\n1) shows whether or not filters are set for the function tracer\n2) shows what functions are set for the function tracer\n3) shows what triggers are set on any functions\n\n3 is independent from 1 and 2.\n\nThe way this file currently works is that it is a state machine,\nand as you read it, it may change state. But this assumption breaks\nwhen you use lseek() on the file. The state machine gets out of sync\nand the t_show() may use the wrong pointer and cause a kernel oops.\n\nLuckily, this will only kill the app that does the lseek, but the app\ndies while holding a mutex. This prevents anyone else from using the\nset_ftrace_filter file (or any other function tracing file for that matter).\n\nA real fix for this is to rewrite the code, but that is too much for\na -rc release or stable. This patch simply disables llseek on the\nset_ftrace_filter() file for now, and we can do the proper fix for the\nnext major release.\n\nReported-by: Robert Swiecki \u003cswiecki@google.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Tavis Ormandy \u003ctaviso@google.com\u003e\nCc: Eugene Teo \u003ceugene@redhat.com\u003e\nCc: vendor-sec@lst.de\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b3bd3de66f60df4c9a2076e2886a622458929056",
      "tree": "d0b1fa885acfa96536cf74f487acb28d63442b83",
      "parents": [
        "ef5dc121d5a0bb1fa477c5395277259f07d318a3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Aug 10 14:17:51 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 05 14:36:58 2010 +0200"
      },
      "message": "gcc-4.6: kernel/*: Fix unused but set warnings\n\nNo real bugs I believe, just some dead code.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: andi@firstfloor.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "09bfafac3e237415cc4b6adde49f9f28b3a42659",
      "tree": "980006ad889a1395140dba2a3718ead537975df3",
      "parents": [
        "7e9501fdecdee8151938e624b41978307cadddd2"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Tue Aug 10 19:32:37 2010 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Sep 02 15:24:53 2010 +0100"
      },
      "message": "ARM: 6314/1: ftrace: allow build without frame pointers on ARM\n\nWith a new enough GCC, ARM function tracing can be supported without the\nneed for frame pointers.  This is essential for Thumb-2 support, since\nframe pointers aren\u0027t available then.\n\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6195aa09e618d712f52bf4fa33b5293820eb93d",
      "tree": "a41ef0dce7ebb3e670b6e1a7214a4f558110178e",
      "parents": [
        "c9cf4a019cff198ee5638323e3b0ee18886467e8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Sep 01 12:23:12 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 01 12:23:12 2010 -0400"
      },
      "message": "ring-buffer: Place duplicate expression into a single function\n\nWhile discussing the strictness of the 80 character limit on the\nKernel Summit Discussion mailing list, I showed examples that I\nbroke that limit slightly with some algorithms. In discussing with\nJohn Linville, what looked better, I realized that two of the\n80 char breaking culprits were an identical expression.\n\nAs a clean up, this patch moves the identical expression into its\nown helper function and that is used instead. As a side effect,\nthe offending code is now under the 80 character limit. :-)\n\nThis clean up code also changes the expression from\n\n\t(A - B) - C  to  A - (B + C)\n\nThis makes the code look a little nicer too.\n\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3aaba20f26f58843e8f20611e5c0b1c06954310f",
      "tree": "ad15d7aa21af465ddf6091eb490d84312089f245",
      "parents": [
        "fa66f07aa1f0950e1dc78b7ab39728b3f8aa77a1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Aug 23 16:50:12 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 31 16:46:23 2010 -0400"
      },
      "message": "tracing: Fix a race in function profile\n\nWhile we are reading trace_stat/functionX and someone just\ndisabled function_profile at that time, we can trigger this:\n\n\tdivide error: 0000 [#1] PREEMPT SMP\n\t...\n\tEIP is at function_stat_show+0x90/0x230\n\t...\n\nThis fix just takes the ftrace_profile_lock and checks if\nrec-\u003ecounter is 0. If it\u0027s 0, we know the profile buffer\nhas been reset.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4C723644.4040708@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "98ee74a75ca0f047e75400afa712f7bf08268b8e",
      "tree": "c87b267f1e279173696f2294b3930940f1a5b570",
      "parents": [
        "7de5d895b2020260190db0021de646f3f22f755e",
        "5225c45899e872383ca39f5533d28ec63c54b39e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 27 02:28:40 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 27 02:30:07 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nConflicts:\n\ttools/perf/util/callchain.h\n\nMerge reason:\n\tFix a non-trivial conflict with latest fixes\n"
    },
    {
      "commit": "151772dbfad4dbe81721e40f9b3d588ea77bb7aa",
      "tree": "fea47f977d73063843d0e91e2a139c4f3fb71d6c",
      "parents": [
        "502adf5778f4151dcba3f64dd6ed322151f3712c"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Wed Aug 25 11:32:38 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 25 13:08:48 2010 +0200"
      },
      "message": "tracing/trace_stack: Fix stack trace on ppc64\n\nsave_stack_trace() stores the instruction pointer, not the\nfunction descriptor. On ppc64 the trace stack code currently\ndereferences the instruction pointer and shows 8 bytes of\ninstructions in our backtraces:\n\n # cat /sys/kernel/debug/tracing/stack_trace\n        Depth    Size   Location    (26 entries)\n        -----    ----   --------\n  0)     5424     112   0x6000000048000004\n  1)     5312     160   0x60000000ebad01b0\n  2)     5152     160   0x2c23000041c20030\n  3)     4992     240   0x600000007c781b79\n  4)     4752     160   0xe84100284800000c\n  5)     4592     192   0x600000002fa30000\n  6)     4400     256   0x7f1800347b7407e0\n  7)     4144     208   0xe89f0108f87f0070\n  8)     3936     272   0xe84100282fa30000\n\nSince we aren\u0027t dealing with function descriptors, use %pS\ninstead of %pF to fix it:\n\n # cat /sys/kernel/debug/tracing/stack_trace\n        Depth    Size   Location    (26 entries)\n        -----    ----   --------\n  0)     5424     112   ftrace_call+0x4/0x8\n  1)     5312     160   .current_io_context+0x28/0x74\n  2)     5152     160   .get_io_context+0x48/0xa0\n  3)     4992     240   .cfq_set_request+0x94/0x4c4\n  4)     4752     160   .elv_set_request+0x60/0x84\n  5)     4592     192   .get_request+0x2d4/0x468\n  6)     4400     256   .get_request_wait+0x7c/0x258\n  7)     4144     208   .__make_request+0x49c/0x610\n  8)     3936     272   .generic_make_request+0x390/0x434\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: rostedt@goodmis.org\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c20100825013238.GE28360@kryten\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8710ad38900153af7a3e6762e99c062cfa46443",
      "tree": "a0c0632274c4eb72f51e99a5861f71cffe65ea60",
      "parents": [
        "6016ee13db518ab1cd0cbf43fc2ad5712021e338",
        "86397dc3ccfc0e17b7550d05eaf15fe91f6498dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 19 12:48:09 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 19 12:48:09 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "6016ee13db518ab1cd0cbf43fc2ad5712021e338",
      "tree": "317d1ed2b103db13fef6bb692a73235de41d764b",
      "parents": [
        "7ae07ea3a48d30689ee037cb136bc21f0b37d8ae"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Aug 11 12:47:59 2010 +0900"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:33:05 2010 +0200"
      },
      "message": "perf, tracing: add missing __percpu markups\n\nftrace_event_call-\u003eperf_events, perf_trace_buf,\nfgraph_data-\u003ecpu_data and some local variables are percpu pointers\nmissing __percpu markups. Add them.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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: Stephane Eranian \u003ceranian@google.com\u003e\nLKML-Reference: \u003c1281498479-28551-1-git-send-email-namhyung@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "7ae07ea3a48d30689ee037cb136bc21f0b37d8ae",
      "tree": "2cb895a0794bcb2e45a4f48ef7e93302c1f6332c",
      "parents": [
        "927c7a9e92c4f69097a6e9e086d11fc2f8a5b40b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Aug 14 20:45:13 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:32:53 2010 +0200"
      },
      "message": "perf: Humanize the number of contexts\n\nInstead of hardcoding the number of contexts for the recursions\nbarriers, define a cpp constant to make the code more\nself-explanatory.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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: Stephane Eranian \u003ceranian@google.com\u003e\n"
    },
    {
      "commit": "86397dc3ccfc0e17b7550d05eaf15fe91f6498dd",
      "tree": "219d5c76e1e8e1e40033071b885cc827afe7bb3b",
      "parents": [
        "351af0725e5222e35741011d1ea62215c1ed06db"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Aug 17 13:53:06 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Aug 18 11:09:14 2010 -0400"
      },
      "message": "tracing: Clean up seqfile code for format file\n\nRemove the nasty hack that marks a pointer\u0027s LSB to distinguish common\nfields from event fields. Replace it with a more sane approach.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4C6A23C2.9020606@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d244b6bd41e09ecbb09c738cc2c108be227398c8",
      "tree": "848c6a8a0d6f83929daf43d63e241dc8072066ac",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73",
        "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Aug 16 11:17:30 2010 -0400"
      },
      "message": "Merge branch \u0027tip/perf/urgent-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into trace/tip/perf/urgent-4\n\nConflicts:\n\tkernel/trace/trace_events.c\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1aa54bca6ee0d07ebcafb8ca8074b624d80724aa",
      "tree": "815f3c1d184b61958ee48eb868ed28b1e5aab278",
      "parents": [
        "2a37a3df57c44e947271758a1aa4bea7bff9feab"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed Jul 28 01:18:01 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 13 15:23:16 2010 -0400"
      },
      "message": "tracing: Sanitize value returned from write(trace_marker, \"...\", len)\n\nWhen userspace code writes non-new-line-terminated string to trace_marker\nfile, write handler appends new-line and returns number of bytes written\nto trace buffer, so\nwrite(fd, \"abc\", 3) will return 4\n\nThat\u0027s unexpected and unfortunately it confuses glibc\u0027s fprintf function.\n\nExample:\nint main() {\n  fprintf(stderr, \"abc\");\n  return 0;\n}\n\n$ gcc test.c -o test\n$ echo mmiotrace \u003e /sys/kernel/debug/tracing/current_tracer\n$ ./test 2\u003e/sys/kernel/debug/tracing/trace_marker\n\nresults in infinite loop:\nwrite(fd, \"abc\", 3) \u003d 4\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\nwrite(fd, \"\", 1) \u003d 0\n(...)\n\n...and kernel trace buffer full of empty markers.\n\nFix it by sanitizing write return value.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nLKML-Reference: \u003c20100727231801.GB2826@joi.lan\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2a37a3df57c44e947271758a1aa4bea7bff9feab",
      "tree": "89d3e35a1c29f021d7ca0c468a391ec35f0db34b",
      "parents": [
        "465c6cca2668a2db2a4ffce3dca5714017873f2b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 03 15:21:34 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 12 16:59:29 2010 -0400"
      },
      "message": "tracing/events: Convert format output to seq_file\n\nTwo new events were added that broke the current format output.\n\nBoth from the SCSI system: scsi_dispatch_cmd_done and scsi_dispatch_cmd_timeout\n\nThe reason is that their print_fmt exceeded a page size. Since the output\nof the format used simple_read_from_buffer and trace_seq, it was limited\nto a page size in output.\n\nThis patch converts the printing of the format of an event into seq_file,\nwhich allows greater than a page size to be shown.\n\nI diffed all event formats comparing the output with and without this\npatch. All matched except for the above two, which showed just:\n\n  FORMAT TOO BIG\n\nwithout this patch, but now properly displays the output with this patch.\n\nv2: Remove updating *pos in seq start function.\n   [ Thanks to Li Zefan for pointing that out ]\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nCc: Tomohiro Kusumi \u003ckusumi.tomohiro@jp.fujitsu.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8d57a98ccd0b4489003473979da8f5a1363ba7a3",
      "tree": "2982997ce66bb6a92c020b7189966c3097095fd7",
      "parents": [
        "93caf8e69eac763f6a20cf253ace8e7fc1ab7953"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Aug 11 14:17:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "block: add secure discard\n\nSecure discard is the same as discard except that all copies of the\ndiscarded sectors (perhaps created by garbage collection) must also be\nerased.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nCc: Madhusudhan Chikkature \u003cmadhu.cr@ti.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6396fc3b3ff3f6b942992b653a62df11dcef9bea",
      "tree": "db3c7cbe833b43c653adc99f70941431c5ff7c4e",
      "parents": [
        "4785879e4d340e24e54f6de2ccfc42728b912808",
        "3d30701b58970425e1d45994d6cb82f828924fdd"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 11 09:36:51 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 11 09:36:51 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tfs/exofs/inode.c\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "fb8231a8b139035476f2a8aaac837d0099b66dad",
      "tree": "2875806beb96ea0cdab292146767a5085721dc6a",
      "parents": [
        "426d31071ac476ea62c62656b242930c17b58c00",
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 10 13:22:08 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 10 13:22:08 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tarch/arm/mach-omap1/board-nokia770.c\n"
    },
    {
      "commit": "426d31071ac476ea62c62656b242930c17b58c00",
      "tree": "9c68a1adc490e903c5a9cd192f54caa204bdc18d",
      "parents": [
        "eef35c2d41ddcc653c20d26b977acaa45c811e1f"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Sat Aug 07 12:30:03 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Aug 09 11:25:17 2010 +0200"
      },
      "message": "fix printk typo \u0027faild\u0027\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
      "tree": "8e3fce9f27fd058904c0a3247a5c5ebb8df9fbe8",
      "parents": [
        "cd816a0d84377c4e87f55cbe934a23417f9f5743",
        "5f202bd5ca64132cdd7f186656bc0221f257733d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  do_coredump: Do not take BKL\n  init: Remove the BKL from startup code\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "62c2a7d969f30163f733c81158254b3095b23e72",
      "tree": "3e5dd79d874b996757814562b874a18415599a61",
      "parents": [
        "6e9624b8caec290d28b4c6d9ec75749df6372b87"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: push BKL into blktrace ioctls\n\nThe blktrace driver currently needs the BKL, but\nwe should not need to take that in the block layer,\nso just push it down into the driver itself.\n\nIt is quite likely that the BKL is not actually\nrequired in blktrace code and could be removed\nin a follow-on patch.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b6d91daee5cac6402186ff224c3af39d79f4a0e",
      "tree": "b1518cf0b6c301178e0a320f80610cd5b3aa7625",
      "parents": [
        "33659ebbae262228eef4e0fe990f393d1f0ed941"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:20:39 2010 +0200"
      },
      "message": "block: unify flags for struct bio and struct request\n\nRemove the current bio flags and reuse the request flags for the bio, too.\nThis allows to more easily trace the type of I/O from the filesystem\ndown to the block driver.  There were two flags in the bio that were\nmissing in the requests:  BIO_RW_UNPLUG and BIO_RW_AHEAD.  Also I\u0027ve\nrenamed two request flags that had a superflous RW in them.\n\nNote that the flags are in bio.h despite having the REQ_ name - as\nblkdev.h includes bio.h that is the only way to go for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "33659ebbae262228eef4e0fe990f393d1f0ed941",
      "tree": "fcb537f09359c8dad3a6f6e16dc4319562dc42cc",
      "parents": [
        "7e005f79791dcd58436c88ded4a7f5aed1b82147"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:17:56 2010 +0200"
      },
      "message": "block: remove wrappers for request type/flags\n\nRemove all the trivial wrappers for the cmd_type and cmd_flags fields in\nstruct requests.  This allows much easier grepping for different request\ntypes instead of unwinding through macros.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b62ad9ab181a67207a4c8c373461b587c4861a68",
      "tree": "ace1572964d81f5f9bbc10b7960c1f742832d744",
      "parents": [
        "af390084359a5de20046c901529b2b6a50b941cb",
        "b29230769e3482bbd62a07d6d9485371ee66a18f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "message": "Merge branch \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  um: Fix read_persistent_clock fallout\n  kgdb: Do not access xtime directly\n  powerpc: Clean up obsolete code relating to decrementer and timebase\n  powerpc: Rework VDSO gettimeofday to prevent time going backwards\n  clocksource: Add __clocksource_updatefreq_hz/khz methods\n  x86: Convert common clocksources to use clocksource_register_hz/khz\n  timekeeping: Make xtime and wall_to_monotonic static\n  hrtimer: Cleanup direct access to wall_to_monotonic\n  um: Convert to use read_persistent_clock\n  timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n  powerpc: Cleanup xtime usage\n  powerpc: Simplify update_vsyscall\n  time: Kill off CONFIG_GENERIC_TIME\n  time: Implement timespec_add\n  x86: Fix vtime/file timestamp inconsistencies\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n\nMuch less trivial conflicts in arch/powerpc/kernel/time.c resolved as\nper Thomas\u0027 earlier merge commit 47916be4e28c (\"Merge branch\n\u0027powerpc.cherry-picks\u0027 into timers/clocksource\")\n"
    },
    {
      "commit": "18fab912d4fa70133df164d2dcf3310be0c38c34",
      "tree": "a577bc5d5465f67da5dd4b705059562ad55ed76e",
      "parents": [
        "575570f02761bd680ba5731c1dfd4701062e7fb2"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 28 14:14:01 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 06 14:34:45 2010 -0400"
      },
      "message": "tracing: Fix ring_buffer_read_page reading out of page boundary\n\nWith the configuration: CONFIG_DEBUG_PAGEALLOC\u003dy and Shaohua\u0027s patch:\n\n[PATCH]x86: make spurious_fault check correct pte bit\n\nFunction call graph trace with the following will trigger a page fault.\n\n# cd /sys/kernel/debug/tracing/\n# echo function_graph \u003e current_tracer\n# cat per_cpu/cpu1/trace_pipe_raw \u003e /dev/null\n\nBUG: unable to handle kernel paging request at ffff880006e99000\nIP: [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\nPGD 1b19063 PUD 1b1d063 PMD 3f067 PTE 6e99160\nOops: 0000 [#1] SMP DEBUG_PAGEALLOC\nlast sysfs file: /sys/devices/virtual/net/lo/operstate\nCPU 1\nModules linked in:\n\nPid: 1982, comm: cat Not tainted 2.6.35-rc6-aes+ #300 /Bochs\nRIP: 0010:[\u003cffffffff81085572\u003e]  [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\nRSP: 0018:ffff880006475e38  EFLAGS: 00010006\nRAX: 0000000000000ff0 RBX: ffff88000786c630 RCX: 000000000000001d\nRDX: ffff880006e98000 RSI: 0000000000000ff0 RDI: ffff880006e99000\nRBP: ffff880006475eb8 R08: 000000145d7008bd R09: 0000000000000000\nR10: 0000000000008000 R11: ffffffff815d9336 R12: ffff880006d08000\nR13: ffff880006e605d8 R14: 0000000000000000 R15: 0000000000000018\nFS:  00007f2b83e456f0(0000) GS:ffff880002100000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: ffff880006e99000 CR3: 00000000064a8000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess cat (pid: 1982, threadinfo ffff880006474000, task ffff880006e40770)\nStack:\n ffff880006475eb8 ffffffff8108730f 0000000000000ff0 000000145d7008bd\n\u003c0\u003e ffff880006e98010 ffff880006d08010 0000000000000296 ffff88000786c640\n\u003c0\u003e ffffffff81002956 0000000000000000 ffff8800071f4680 ffff8800071f4680\nCall Trace:\n [\u003cffffffff8108730f\u003e] ? ring_buffer_read_page+0x15a/0x24a\n [\u003cffffffff81002956\u003e] ? return_to_handler+0x15/0x2f\n [\u003cffffffff8108a575\u003e] tracing_buffers_read+0xb9/0x164\n [\u003cffffffff810debfe\u003e] vfs_read+0xaf/0x150\n [\u003cffffffff81002941\u003e] return_to_handler+0x0/0x2f\n [\u003cffffffff810248b0\u003e] __bad_area_nosemaphore+0x17e/0x1a1\n [\u003cffffffff81002941\u003e] return_to_handler+0x0/0x2f\n [\u003cffffffff810248e6\u003e] bad_area_nosemaphore+0x13/0x15\nCode: 80 25 b2 16 b3 00 fe c9 c3 55 48 89 e5 f0 80 0d a4 16 b3 00 02 c9 c3 55 31 c0 48 89 e5 48 83 3d 94 16 b3 00 01 c9 0f 94 c0 c3 55 \u003c8a\u003e 0f 48 89 e5 83 e1 1f b8 08 00 00 00 0f b6 d1 83 fa 1e 74 27\nRIP  [\u003cffffffff81085572\u003e] rb_event_length+0x1/0x3f\n RSP \u003cffff880006475e38\u003e\nCR2: ffff880006e99000\n---[ end trace a6877bb92ccb36bb ]---\n\nThe root cause is that ring_buffer_read_page() may read out of page\nboundary, because the boundary checking is done after reading. This is\nfixed via doing boundary checking before reading.\n\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nLKML-Reference: \u003c1280297641.2771.307.camel@yhuang-dev\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 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: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 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: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "575570f02761bd680ba5731c1dfd4701062e7fb2",
      "tree": "7789ba121ae95af2705fe9053fa1ae9e9fb04a5b",
      "parents": [
        "8a4fd31e0e8dc33f00b8949a12ac56310bac57bc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jul 27 16:06:34 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Aug 06 12:19:15 2010 -0400"
      },
      "message": "tracing: Fix an unallocated memory access in function_graph\n\nWith CONFIG_DEBUG_PAGEALLOC, I observed an unallocated memory access in\nfunction_graph trace. It appears we find a small size entry in ring buffer,\nbut we access it as a big size entry. The access overflows the page size\nand touches an unallocated page.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nLKML-Reference: \u003c1280217994.32400.76.camel@sli10-desk.sh.intel.com\u003e\n[ Added a comment to explain the problem - SDR ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "19063c776fe745fab11216422cf56489ee83b452",
      "tree": "a08994bd7badecc81ac04f4b6c4732986dea8588",
      "parents": [
        "955b61e597984745fb7d34c75708f6503b6aaeab"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n\nIn systems with more than one processor it is desirable to look at the\nper cpu trace buffers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "955b61e597984745fb7d34c75708f6503b6aaeab",
      "tree": "c928ca54a8231b0432e729d8b675e473a5db9104",
      "parents": [
        "3f0a55e3579a500ce9f5cdab70a5741f99769118"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:23 2010 -0500"
      },
      "message": "ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n\nAdd in a helper function to allow the kdb shell to dump the ftrace\nbuffer.\n\nModify trace.c to expose the capability to iterate over the ftrace\nbuffer in a read only capacity.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "9da79ab83ee33ddc1fdd0858fd3d70925a1bde99",
      "tree": "116f9d3c256a91ede964ebbfd3779949cc5953d4",
      "parents": [
        "b83f920e179101a54721e5ab1d6c3edfb9d4bcbb"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Jun 30 14:15:48 2010 +0530"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Aug 04 12:41:23 2010 -0300"
      },
      "message": "tracing/kprobes: unregister_trace_probe needs to be called under mutex\n\nComment in unregister_trace_probe() says probe_lock will be held when it\ngets called. However there is a case where it might called without the\nprobe_lock being held. Also since we are traversing the probe_list and\ndeleting an element from the probe_list, probe_lock should be held.\n\nThis was first pointed in uprobes traceevent review by Frederic\nWeisbecker here.  (http://lkml.org/lkml/2010/5/12/106)\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100630084548.GA10325@linux.vnet.ibm.com\u003e\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "669336e4cf3e1cb95800f3f5924558a76d723c21",
      "tree": "b2254ef3ca3dfa2cf102bb992275138e694a67bd",
      "parents": [
        "3a01736e70a7d629140695ba46a901266b4460cc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jul 20 17:29:54 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Aug 02 01:30:56 2010 +0200"
      },
      "message": "perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n\nWe use synchronize_sched() to ensure a tracepoint won\u0027t be called\nwhile/after we release the perf buffers it references.\n\nBut the tracepoint API has its own API for that:\ntracepoint_synchronize_unregister(). Use it instead as it\u0027s\nself-explanatory and eases maintainance.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "592913ecb87a9e06f98ddb55b298f1a66bf94c6b",
      "tree": "0f63f5535fe517faf418e0f7e69800fcf1e4d8db",
      "parents": [
        "ce3bf7ab22527183634a76512d9854a38615e4d5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:20 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:54 2010 +0200"
      },
      "message": "time: Kill off CONFIG_GENERIC_TIME\n\nNow that all arches have been converted over to use generic time via\nclocksources or arch_gettimeoffset(), we can remove the GENERIC_TIME\nconfig option and simplify the generic code.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-4-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3a01736e70a7d629140695ba46a901266b4460cc",
      "tree": "49ff8ce1e7c6a267f0ce84b5daddbe6666bc4253",
      "parents": [
        "4c21adf26f8fcf86a755b9b9f55c2e9fd241e1fb",
        "24a461d537f49f9da6533d83100999ea08c6c755"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 23 09:10:29 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "24a461d537f49f9da6533d83100999ea08c6c755",
      "tree": "b7aa6258df988a64d802eff0b15e92c394742a2e",
      "parents": [
        "a484e54fae891703cbe1c9ec1b536605f11f5482"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jul 10 12:06:44 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 22 14:56:41 2010 -0400"
      },
      "message": "trace: strlen() return doesn\u0027t account for the NULL\n\nWe need to add one to the strlen() return because of the NULL\ncharacter.  The type-\u003ename here generally comes from the kernel and I\ndon\u0027t think any of them come close to being MAX_TRACER_SIZE (100)\ncharacters long so this is basically a cleanup.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nLKML-Reference: \u003c20100710100644.GV19184@bicker\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef710e100c1068d3dd5774d2b34c5485219e06ce",
      "tree": "ed295053a31de472d4ed4338679c00ac8e8437c7",
      "parents": [
        "bc289ae98b75d93228d24f521ef02a076e506e94"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Jul 01 14:34:35 2010 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 21 10:20:17 2010 -0400"
      },
      "message": "tracing: Shrink max latency ringbuffer if unnecessary\n\nDocumentation/trace/ftrace.txt says\n\n  buffer_size_kb:\n\n        This sets or displays the number of kilobytes each CPU\n        buffer can hold. The tracer buffers are the same size\n        for each CPU. The displayed number is the size of the\n        CPU buffer and not total size of all buffers. The\n        trace buffers are allocated in pages (blocks of memory\n        that the kernel uses for allocation, usually 4 KB in size).\n        If the last page allocated has room for more bytes\n        than requested, the rest of the page will be used,\n        making the actual allocation bigger than requested.\n        ( Note, the size may not be a multiple of the page size\n          due to buffer management overhead. )\n\n        This can only be updated when the current_tracer\n        is set to \"nop\".\n\nBut it\u0027s incorrect. currently total memory consumption is\n\u0027buffer_size_kb x CPUs x 2\u0027.\n\nWhy two times difference is there? because ftrace implicitly allocate\nthe buffer for max latency too.\n\nThat makes sad result when admin want to use large buffer. (If admin\nwant full logging and makes detail analysis). example, If admin\nhave 24 CPUs machine and write 200MB to buffer_size_kb, the system\nconsume ~10GB memory (200MB x 24 x 2). umm.. 5GB memory waste is\nusually unacceptable.\n\nFortunatelly, almost all users don\u0027t use max latency feature.\nThe max latency buffer can be disabled easily.\n\nThis patch shrink buffer size of the max latency buffer if\nunnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLKML-Reference: \u003c20100701104554.DA2D.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc289ae98b75d93228d24f521ef02a076e506e94",
      "tree": "50d151d0fbde1b106932c0f80a2639839d261ca3",
      "parents": [
        "985023dee6e212493831431ba2e3ce8918f001b2"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Jun 03 18:26:24 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 20 22:05:34 2010 -0400"
      },
      "message": "tracing: Reduce latency and remove percpu trace_seq\n\n__print_flags() and __print_symbolic() use percpu trace_seq:\n\n1) Its memory is allocated at compile time, it wastes memory if we don\u0027t use tracing.\n2) It is percpu data and it wastes more memory for multi-cpus system.\n3) It disables preemption when it executes its core routine\n   \"trace_seq_printf(s, \"%s: \", #call);\" and introduces latency.\n\nSo we move this trace_seq to struct trace_iterator.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4C078350.7090106@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "985023dee6e212493831431ba2e3ce8918f001b2"
}
