)]}'
{
  "log": [
    {
      "commit": "ef26b1691d11e17af205a4ff9c91458d931d11db",
      "tree": "5db199f404ca18f6c9e8617b684e9165ca365e30",
      "parents": [
        "a77d2e081bbbccb38f42da45500dd089756efdfb",
        "7cff7ce94a7df2ccf5ac76b48ee0995fee2060df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:32:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:32:03 2009 -0800"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  include/linux/compiler-gcc4.h: Fix build bug - gcc-4.0.2 doesn\u0027t understand __builtin_object_size\n  x86/alternatives: No need for alternatives-asm.h to re-invent stuff already in asm.h\n  x86/alternatives: Check replacementlen \u003c\u003d instrlen at build time\n  x86, 64-bit: Set data segments to null after switching to 64-bit mode\n  x86: Clean up the loadsegment() macro\n  x86: Optimize loadsegment()\n  x86: Add missing might_fault() checks to copy_{to,from}_user()\n  x86-64: __copy_from_user_inatomic() adjustments\n  x86: Remove unused thread_return label from switch_to()\n  x86, 64-bit: Fix bstep_iret jump\n  x86: Don\u0027t use the strict copy checks when branch profiling is in use\n  x86, 64-bit: Move K8 B step iret fixup to fault entry asm\n  x86: Generate cmpxchg build failures\n  x86: Add a Kconfig option to turn the copy_from_user warnings into errors\n  x86: Turn the copy_from_user check into an (optional) compile time warning\n  x86: Use __builtin_memset and __builtin_memcpy for memset/memcpy\n  x86: Use __builtin_object_size() to validate the buffer size for copy_from_user()\n"
    },
    {
      "commit": "897e81bea1fcfcd2c5cdb720c9efdb25da9ff374",
      "tree": "92cf33ed2c35c1ece633f09365702f1c8e24d415",
      "parents": [
        "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
        "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:49 2009 -0800"
      },
      "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: (35 commits)\n  sched, cputime: Introduce thread_group_times()\n  sched, cputime: Cleanups related to task_times()\n  Revert \"sched, x86: Optimize branch hint in __switch_to()\"\n  sched: Fix isolcpus boot option\n  sched: Revert 498657a478c60be092208422fefa9c7b248729c2\n  sched, time: Define nsecs_to_jiffies()\n  sched: Remove task_{u,s,g}time()\n  sched: Introduce task_times() to replace task_{u,s}time() pair\n  sched: Limit the number of scheduler debug messages\n  sched.c: Call debug_show_all_locks() when dumping all tasks\n  sched, x86: Optimize branch hint in __switch_to()\n  sched: Optimize branch hint in context_switch()\n  sched: Optimize branch hint in pick_next_task_fair()\n  sched_feat_write(): Update ppos instead of file-\u003ef_pos\n  sched: Sched_rt_periodic_timer vs cpu hotplug\n  sched, kvm: Fix race condition involving sched_in_preempt_notifers\n  sched: More generic WAKE_AFFINE vs select_idle_sibling()\n  sched: Cleanup select_task_rq_fair()\n  sched: Fix granularity of task_u/stime()\n  sched: Fix/add missing update_rq_clock() calls\n  ...\n"
    },
    {
      "commit": "c3fa27d1367fac63ac8533d6f20ea851d0d70a10",
      "tree": "e7731554085e22b6b63411b1ebb401079f3e0bbb",
      "parents": [
        "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1",
        "d103d01e4b19f185d3c85f77402b605534c32e89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 15:30:21 2009 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (470 commits)\n  x86: Fix comments of register/stack access functions\n  perf tools: Replace %m with %a in sscanf\n  hw-breakpoints: Keep track of user disabled breakpoints\n  tracing/syscalls: Make syscall events print callbacks static\n  tracing: Add DEFINE_EVENT(), DEFINE_SINGLE_EVENT() support to docbook\n  perf: Don\u0027t free perf_mmap_data until work has been done\n  perf_event: Fix compile error\n  perf tools: Fix _GNU_SOURCE macro related strndup() build error\n  trace_syscalls: Remove unused syscall_name_to_nr()\n  trace_syscalls: Simplify syscall profile\n  trace_syscalls: Remove duplicate init_enter_##sname()\n  trace_syscalls: Add syscall_nr field to struct syscall_metadata\n  trace_syscalls: Remove enter_id exit_id\n  trace_syscalls: Set event_enter_##sname-\u003edata to its metadata\n  trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit\n  perf_event: Initialize data.period in perf_swevent_hrtimer()\n  perf probe: Simplify event naming\n  perf probe: Add --list option for listing current probe events\n  perf probe: Add argv_split() from lib/argv_split.c\n  perf probe: Move probe event utility functions to probe-event.c\n  ...\n"
    },
    {
      "commit": "96fa2b508d2d3fe040cf4ef2fffb955f0a537ea1",
      "tree": "3cec6d72a450735fe6b8ed996c7399f57c05a5cb",
      "parents": [
        "7a797cdcca2b3c0031e580203f18d6c9483aaec5",
        "b8007ef7422270864eae523cb38d7522a53a94d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:36 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (40 commits)\n  tracing: Separate raw syscall from syscall tracer\n  ring-buffer-benchmark: Add parameters to set produce/consumer priorities\n  tracing, function tracer: Clean up strstrip() usage\n  ring-buffer benchmark: Run producer/consumer threads at nice +19\n  tracing: Remove the stale include/trace/power.h\n  tracing: Only print objcopy version warning once from recordmcount\n  tracing: Prevent build warning: \u0027ftrace_graph_buf\u0027 defined but not used\n  ring-buffer: Move access to commit_page up into function used\n  tracing: do not disable interrupts for trace_clock_local\n  ring-buffer: Add multiple iterations between benchmark timestamps\n  kprobes: Sanitize struct kretprobe_instance allocations\n  tracing: Fix to use __always_unused attribute\n  compiler: Introduce __always_unused\n  tracing: Exit with error if a weak function is used in recordmcount.pl\n  tracing: Move conditional into update_funcs() in recordmcount.pl\n  tracing: Add regex for weak functions in recordmcount.pl\n  tracing: Move mcount section search to front of loop in recordmcount.pl\n  tracing: Fix objcopy revision check in recordmcount.pl\n  tracing: Check absolute path of input file in recordmcount.pl\n  tracing: Correct the check for number of arguments in recordmcount.pl\n  ...\n"
    },
    {
      "commit": "bb2166c898adb5fe29bc450004926802d2a16035",
      "tree": "dc0a1d1219ab7e7324fbca533676d9d3a6a02c56",
      "parents": [
        "0bf7969feae831ede7276f7cc73b586ce0902374",
        "34769945f7cd9ab470413ffe64426e3ad069f49e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:53:08 2009 -0800"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix spurious irq seqfile conversion\n  genirq: switch /proc/irq/*/spurious to seq_file\n  irq: Do not attempt to create subdirectories if /proc/irq/\u003cirq\u003e failed\n  irq: Remove unused debug_poll_all_shared_irqs()\n  irq: Fix docbook comments\n  irq: trivial: Fix typo in comment for #endif\n"
    },
    {
      "commit": "69f061e0c2ed47304b3eeac7fb7bd5268652dc50",
      "tree": "69bca9d5c7e7eb5e79dae030cbce713686e4d209",
      "parents": [
        "607781762e7aae9c976f0a9a8829d4ba3e2da4ab",
        "f84d49b218b7d4c6cba2e0b41f24bd4045403962"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:33 2009 -0800"
      },
      "message": "Merge branch \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: Print warning message when dropping signals\n  signal: Fix alternate signal stack check\n"
    },
    {
      "commit": "607781762e7aae9c976f0a9a8829d4ba3e2da4ab",
      "tree": "933dad6ecb0be49e9b1ef41b69d5aa256510720e",
      "parents": [
        "d0b093a8b5ae34ee8be1f7e0dd197fe4788fa1d5",
        "8bfb2f8e655b9d0c45fde679fcd5fd97e34513db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:52:14 2009 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)\n  rcu: Make RCU\u0027s CPU-stall detector be default\n  rcu: Add expedited grace-period support for preemptible RCU\n  rcu: Enable fourth level of TREE_RCU hierarchy\n  rcu: Rename \"quiet\" functions\n  rcu: Re-arrange code to reduce #ifdef pain\n  rcu: Eliminate unneeded function wrapping\n  rcu: Fix grace-period-stall bug on large systems with CPU hotplug\n  rcu: Eliminate __rcu_pending() false positives\n  rcu: Further cleanups of use of lastcomp\n  rcu: Simplify association of forced quiescent states with grace periods\n  rcu: Accelerate callback processing on CPUs not detecting GP end\n  rcu: Mark init-time-only rcu_bootup_announce() as __init\n  rcu: Simplify association of quiescent states with grace periods\n  rcu: Rename dynticks_completed to completed_fqs\n  rcu: Enable synchronize_sched_expedited() fastpath\n  rcu: Remove inline from forward-referenced functions\n  rcu: Fix note_new_gpnum() uses of -\u003egpnum\n  rcu: Fix synchronization for rcu_process_gp_end() uses of -\u003ecompleted counter\n  rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling of -\u003ecompleted counter\n  rcu: Cleanup: balance rcu_irq_enter()/rcu_irq_exit() calls\n  ...\n"
    },
    {
      "commit": "d0b093a8b5ae34ee8be1f7e0dd197fe4788fa1d5",
      "tree": "deaed4192d440b6afb7470b0c36e69d9d65dd119",
      "parents": [
        "3e72b810e30cdf4655279dd767eb798ac7a8fe5e",
        "5c828713358cb9df8aa174371edcbbb62203a490"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:50:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:50:22 2009 -0800"
      },
      "message": "Merge branch \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ratelimit: Make suppressed output messages more useful\n  printk: Remove ratelimit.h from kernel.h\n  ratelimit: Fix/allow use in atomic contexts\n  ratelimit: Use per ratelimit context locking\n"
    },
    {
      "commit": "3e72b810e30cdf4655279dd767eb798ac7a8fe5e",
      "tree": "a6c8daae5390b44750dfc4ca9bc984430dd16e74",
      "parents": [
        "9b269d4034c7855ac34f0985cc55ee29bd80e80a",
        "c08f782985eed9959438368e84ce1d7f2ed03d95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:59 2009 -0800"
      },
      "message": "Merge branch \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  mutex: Fix missing conditions to build mutex_spin_on_owner()\n  mutex: Better control mutex adaptive spinning config\n  locking, task_struct: Reduce size on TRACE_IRQFLAGS and 64bit\n  locking: Use __[SPIN|RW]_LOCK_UNLOCKED in [spin|rw]_lock_init()\n  locking: Remove unused prototype\n  locking: Reduce ifdefs in kernel/spinlock.c\n  locking: Make inlining decision Kconfig based\n"
    },
    {
      "commit": "9b269d4034c7855ac34f0985cc55ee29bd80e80a",
      "tree": "ec6c7f54fea5ecfb23eb5ec287732b92924012aa",
      "parents": [
        "7b626acb8f983eb83b396ab96cc24b18d635d487",
        "2ea6dec4a22a6f66f6633876212fd4d195cf8277"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:46 2009 -0800"
      },
      "message": "Merge branch \u0027core-ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  generic-ipi: Add smp_call_function_any()\n  generic-ipi: Fix misleading smp_call_function*() description\n"
    },
    {
      "commit": "7b626acb8f983eb83b396ab96cc24b18d635d487",
      "tree": "8c3320191311e6186d3aa722f1acd12acd47ece8",
      "parents": [
        "1ebb275afcf5a47092e995541d6c604eef96062a",
        "4528752f49c1f4025473d12bc5fa9181085c3f22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:49:07 2009 -0800"
      },
      "message": "Merge branch \u0027core-iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (63 commits)\n  x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking up the PCI tree\n  x86/amd-iommu: Remove amd_iommu_pd_table\n  x86/amd-iommu: Move reset_iommu_command_buffer out of locked code\n  x86/amd-iommu: Cleanup DTE flushing code\n  x86/amd-iommu: Introduce iommu_flush_device() function\n  x86/amd-iommu: Cleanup attach/detach_device code\n  x86/amd-iommu: Keep devices per domain in a list\n  x86/amd-iommu: Add device bind reference counting\n  x86/amd-iommu: Use dev-\u003earch-\u003eiommu to store iommu related information\n  x86/amd-iommu: Remove support for domain sharing\n  x86/amd-iommu: Rearrange dma_ops related functions\n  x86/amd-iommu: Move some pte allocation functions in the right section\n  x86/amd-iommu: Remove iommu parameter from dma_ops_domain_alloc\n  x86/amd-iommu: Use get_device_id and check_device where appropriate\n  x86/amd-iommu: Move find_protection_domain to helper functions\n  x86/amd-iommu: Simplify get_device_resources()\n  x86/amd-iommu: Let domain_for_device handle aliases\n  x86/amd-iommu: Remove iommu specific handling from dma_ops path\n  x86/amd-iommu: Remove iommu parameter from __(un)map_single\n  x86/amd-iommu: Make alloc_new_range aware of multiple IOMMUs\n  ...\n"
    },
    {
      "commit": "1ebb275afcf5a47092e995541d6c604eef96062a",
      "tree": "56722c2a688f4034e5157a0fceec98d6ac3b36f0",
      "parents": [
        "83fdbfbfe6e7e8906e3a3f8f6bc074d887e92109",
        "26bb7505cf7db3560286be9f6384b6d3911f78b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:47:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:47:17 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (31 commits)\n  GFS2: Fix glock refcount issues\n  writeback: remove unused nonblocking and congestion checks (gfs2)\n  GFS2: drop rindex glock to refresh rindex list\n  GFS2: Tag all metadata with jid\n  GFS2: Locking order fix in gfs2_check_blk_state\n  GFS2: Remove dirent_first() function\n  GFS2: Display nobarrier option in /proc/mounts\n  GFS2: add barrier/nobarrier mount options\n  GFS2: remove division from new statfs code\n  GFS2: Improve statfs and quota usability\n  GFS2: Use dquot_send_warning()\n  VFS: Export dquot_send_warning\n  GFS2: Add set_xquota support\n  GFS2: Add get_xquota support\n  GFS2: Clean up gfs2_adjust_quota() and do_glock()\n  GFS2: Remove constant argument from qd_get()\n  GFS2: Remove constant argument from qdsb_get()\n  GFS2: Add proper error reporting to quota sync via sysfs\n  GFS2: Add get_xstate quota function\n  GFS2: Remove obsolete code in quota.c\n  ...\n"
    },
    {
      "commit": "83fdbfbfe6e7e8906e3a3f8f6bc074d887e92109",
      "tree": "977e10a076d76fdb2622f089211f3d0954ba6873",
      "parents": [
        "d9b2c4d0b03c721808c0d259e43a27f1e80205bc",
        "c84d6efd363a3948eb32ec40d46bab6338580454"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:44:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:44:57 2009 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (30 commits)\n  TOMOYO: Add recursive directory matching operator support.\n  remove CONFIG_SECURITY_FILE_CAPABILITIES compile option\n  SELinux: print denials for buggy kernel with unknown perms\n  Silence the existing API for capability version compatibility check.\n  LSM: Move security_path_chmod()/security_path_chown() to after mutex_lock().\n  SELinux: header generation may hit infinite loop\n  selinux: Fix warnings\n  security: report the module name to security_module_request\n  Config option to set a default LSM\n  sysctl: require CAP_SYS_RAWIO to set mmap_min_addr\n  tpm: autoload tpm_tis based on system PnP IDs\n  tpm_tis: TPM_STS_DATA_EXPECT workaround\n  define convenient securebits masks for prctl users (v2)\n  tpm: fix header for modular build\n  tomoyo: improve hash bucket dispersion\n  tpm add default function definitions\n  LSM: imbed ima calls in the security hooks\n  SELinux: add .gitignore files for dynamic classes\n  security: remove root_plug\n  SELinux: fix locking issue introduced with c6d3aaa4e35c71a3\n  ...\n"
    },
    {
      "commit": "d9b2c4d0b03c721808c0d259e43a27f1e80205bc",
      "tree": "f17a4166f62ee14faa1401a6cbd353a4ab8c77cb",
      "parents": [
        "27d16d08717faeaa8afd1b736a096dbaab90f08e",
        "5fa9167a1bf5f5a4b7282f5e7ac56a4a5a1fa044"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:42:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:42:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (50 commits)\n  pcmcia: rework the irq_req_t typedef\n  pcmcia: remove deprecated handle_to_dev() macro\n  pcmcia: pcmcia_request_window() doesn\u0027t need a pointer to a pointer\n  pcmcia: remove unused \"window_t\" typedef\n  pcmcia: move some window-related code to pcmcia_ioctl.c\n  pcmcia: Change window_handle_t logic to unsigned long\n  pcmcia: Pass struct pcmcia_socket to pcmcia_get_mem_page()\n  pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page()\n  pcmcia: Pass struct pcmcia_device to pcmcia_release_window()\n  drivers/pcmcia: remove unnecessary kzalloc\n  pcmcia: correct handling for Zoomed Video registers in topic.h\n  pcmcia: fix printk formats\n  pcmcia: autoload module pcmcia\n  pcmcia/staging: update comedi drivers\n  PCMCIA: stop duplicating pci_irq in soc_pcmcia_socket\n  PCMCIA: ss: allow PCI IRQs \u003e 255\n  PCMCIA: soc_common: remove \u0027dev\u0027 member from soc_pcmcia_socket\n  PCMCIA: soc_common: constify soc_pcmcia_socket ops member\n  PCMCIA: sa1111: remove duplicated initializers\n  PCMCIA: sa1111: wrap soc_pcmcia_socket to contain sa1111 specific data\n  ...\n"
    },
    {
      "commit": "38938c879eb0c39edf85d5164aa0cffe2874304c",
      "tree": "fdcc22972a02219dcb385dae868f6e708523dfe7",
      "parents": [
        "22763c5cf3690a681551162c15d34d935308c8d7"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Fri Dec 04 17:44:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 05 09:10:12 2009 -0800"
      },
      "message": "Add support for GCC-4.5\u0027s __builtin_unreachable() to compiler.h (v2)\n\nStarting with version 4.5, GCC has a new built-in function\n__builtin_unreachable() that can be used in places like the kernel\u0027s\nBUG() where inline assembly is used to transfer control flow.  This\neliminated the need for an endless loop in these places.\n\nThe patch adds a new macro \u0027unreachable()\u0027 that will expand to either\n__builtin_unreachable() or an endless loop depending on the compiler\nversion.\n\nChange from v1: Simplify unreachable() for non-GCC 4.5 case.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ab7d13fcbd7ce1658c563e345990ba453719deb",
      "tree": "5db7f97c264883765da4a9c6324019f0cf746e44",
      "parents": [
        "2c77634965ee28c8b4790ffb5e83dd5ff7ac8988"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 06 16:20:51 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:58:47 2009 +0000"
      },
      "message": "GFS2: Tag all metadata with jid\n\nThere are two spare field in the header common to all GFS2\nmetadata. One is just the right size to fit a journal id\nin it, and this patch updates the journal code so that each\ntime a metadata block is modified, we tag it with the journal\nid of the node which is performing the modification.\n\nThe reason for this is that it should make it much easier to\ndebug issues which arise if we can tell which node was the\nlast to modify a particular metadata block.\n\nSince the field is updated before the block is written into\nthe journal, each journal should only contain metadata which\nis tagged with its own journal id. The one exception to this\nis the journal header block, which might have a different node\u0027s\nid in it, if that journal was recovered by another node in the\ncluster.\n\nThus each journal will contain a record of which nodes recovered\nit, via the journal header.\n\nThe other field in the metadata header could potentially be\nused to hold information about what kind of operation was\nperformed, but for the time being we just zero it on each\ntransaction so that if we use it for that in future, we\u0027ll\nknow that the information (where it exists) is reliable.\n\nI did consider using the other field to hold the journal\nsequence number, however since in GFS2\u0027s journaling we write\nthe modified data into the journal and not the original\ndata, this gives no information as to what action caused the\nmodification, so I think we can probably come up with a better\nuse for those 64 bits in the future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "86e931a35e93d94e6e91b57cc76456e16d188ea9",
      "tree": "55078897d1c3dfa43fed6458a7721af17362b4a3",
      "parents": [
        "e285c100362762f7440643be637dd332460fdc75"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 28 12:35:17 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:53:02 2009 +0000"
      },
      "message": "VFS: Export dquot_send_warning\n\nSending a message to userspace in a generic format to warn\nof events (e.g. quota exceeded) in the quota subsystem is\na generically useful feature. This patch makes some minor\nchanges to the send_message function from dquot.c renaming\nit quota_send_message, moving it to quota.c and exporting it\nfor use by filesystems which do not use the dquot code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "796bd9524731850967d437b7f47a86acc776ea89",
      "tree": "ddaf9a4bd69e6178257b4a488b174301c4d3f045",
      "parents": [
        "2646a1f61a3b5525914757f10fa12b5b94713648"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 29 12:27:23 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:43:23 2009 +0000"
      },
      "message": "VFS: Add forget_all_cached_acls()\n\nThis is required for cluster filesystems which want to use\ncached ACLs so that they can invalidate the cache when\nrequired.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "c84d6efd363a3948eb32ec40d46bab6338580454",
      "tree": "3ba7ac46e6626fe8ac843834588609eb6ccee5c6",
      "parents": [
        "7539cf4b92be4aecc573ea962135f246a7a33401",
        "22763c5cf3690a681551162c15d34d935308c8d7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@macbook.(none)",
        "time": "Thu Dec 03 12:03:40 2009 +0530"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@macbook.(none)",
        "time": "Thu Dec 03 12:03:40 2009 +0530"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "7cff7ce94a7df2ccf5ac76b48ee0995fee2060df",
      "tree": "d9bbec339e1f412c58eb435f88c1a8cf9450531b",
      "parents": [
        "99063c0bcebcc913165a5d168050326eba3e0996"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Oct 09 00:01:39 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 03 07:29:17 2009 +0100"
      },
      "message": "include/linux/compiler-gcc4.h: Fix build bug - gcc-4.0.2 doesn\u0027t understand __builtin_object_size\n\nMaybe 4.1.0 doesn\u0027t too, but this fixed it for me.\n\nCaused by:\n\n 4a31276: x86: Turn the copy_from_user check into an (optional) compile time warning\n 9f0cf4a: x86: Use __builtin_object_size() to validate the buffer size for copy_from_user()\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c200910090724.n997OQl6013538@imap1.linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "56f3f55cf9b604b924353ab6fcdac5fee5637ae3",
      "tree": "b031bd5d9833a27cec1c551e487810cc2bcb33c8",
      "parents": [
        "049e2d13b8e8a6d8be43e675a5ed9d4613819f65",
        "7716977b6ae5a0cdd0afab5c6035c4d0ce53f599"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 02 15:41:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 02 15:41:49 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:\n  mfd: Correct WM831X_MAX_ISEL_VALUE\n"
    },
    {
      "commit": "0cf55e1ec08bb5a22e068309e2d8ba1180ab4239",
      "tree": "6102662a9594d51155bee11666fe8517fcbe6039",
      "parents": [
        "d99ca3b977fc5a93141304f571475c2af9e6c1c5"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:28:07 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:40 2009 +0100"
      },
      "message": "sched, cputime: Introduce thread_group_times()\n\nThis is a real fix for problem of utime/stime values decreasing\ndescribed in the thread:\n\n   http://lkml.org/lkml/2009/11/3/522\n\nNow cputime is accounted in the following way:\n\n - {u,s}time in task_struct are increased every time when the thread\n   is interrupted by a tick (timer interrupt).\n\n - When a thread exits, its {u,s}time are added to signal-\u003e{u,s}time,\n   after adjusted by task_times().\n\n - When all threads in a thread_group exits, accumulated {u,s}time\n   (and also c{u,s}time) in signal struct are added to c{u,s}time\n   in signal struct of the group\u0027s parent.\n\nSo {u,s}time in task struct are \"raw\" tick count, while\n{u,s}time and c{u,s}time in signal struct are \"adjusted\" values.\n\nAnd accounted values are used by:\n\n - task_times(), to get cputime of a thread:\n   This function returns adjusted values that originates from raw\n   {u,s}time and scaled by sum_exec_runtime that accounted by CFS.\n\n - thread_group_cputime(), to get cputime of a thread group:\n   This function returns sum of all {u,s}time of living threads in\n   the group, plus {u,s}time in the signal struct that is sum of\n   adjusted cputimes of all exited threads belonged to the group.\n\nThe problem is the return value of thread_group_cputime(),\nbecause it is mixed sum of \"raw\" value and \"adjusted\" value:\n\n  group\u0027s {u,s}time \u003d foreach(thread){{u,s}time} + exited({u,s}time)\n\nThis misbehavior can break {u,s}time monotonicity.\nAssume that if there is a thread that have raw values greater\nthan adjusted values (e.g. interrupted by 1000Hz ticks 50 times\nbut only runs 45ms) and if it exits, cputime will decrease (e.g.\n-5ms).\n\nTo fix this, we could do:\n\n  group\u0027s {u,s}time \u003d foreach(t){task_times(t)} + exited({u,s}time)\n\nBut task_times() contains hard divisions, so applying it for\nevery thread should be avoided.\n\nThis patch fixes the above problem in the following way:\n\n - Modify thread\u0027s exit (\u003d __exit_signal()) not to use task_times().\n   It means {u,s}time in signal struct accumulates raw values instead\n   of adjusted values.  As the result it makes thread_group_cputime()\n   to return pure sum of \"raw\" values.\n\n - Introduce a new function thread_group_times(*task, *utime, *stime)\n   that converts \"raw\" values of thread_group_cputime() to \"adjusted\"\n   values, in same calculation procedure as task_times().\n\n - Modify group\u0027s exit (\u003d wait_task_zombie()) to use this introduced\n   thread_group_times().  It make c{u,s}time in signal struct to\n   have adjusted values like before this patch.\n\n - Replace some thread_group_cputime() by thread_group_times().\n   This replacements are only applied where conveys the \"adjusted\"\n   cputime to users, and where already uses task_times() near by it.\n   (i.e. sys_times(), getrusage(), and /proc/\u003cPID\u003e/stat.)\n\nThis patch have a positive side effect:\n\n - Before this patch, if a group contains many short-life threads\n   (e.g. runs 0.9ms and not interrupted by ticks), the group\u0027s\n   cputime could be invisible since thread\u0027s cputime was accumulated\n   after adjusted: imagine adjustment function as adj(ticks, runtime),\n     {adj(0, 0.9) + adj(0, 0.9) + ....} \u003d {0 + 0 + ....} \u003d 0.\n   After this patch it will not happen because the adjustment is\n   applied after accumulated.\n\nv2:\n - remove if()s, put new variables into signal_struct.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B162517.8040909@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d99ca3b977fc5a93141304f571475c2af9e6c1c5",
      "tree": "7665ebdafcef46c310055021562e6629f59eafd5",
      "parents": [
        "be8147e68625a1adb111acfd6b98a492be4b74d0"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Wed Dec 02 17:26:47 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 17:32:39 2009 +0100"
      },
      "message": "sched, cputime: Cleanups related to task_times()\n\n- Remove if({u,s}t)s because no one call it with NULL now.\n- Use cputime_{add,sub}().\n- Add ifndef-endif for prev_{u,s}time since they are used\n  only when !VIRT_CPU_ACCOUNTING.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nLKML-Reference: \u003c4B1624C7.7040302@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa1452e808732ae10e8b1267fd75fc2d028d634b",
      "tree": "c6c3031fa072b168fceef530f38e5166f21ed17d",
      "parents": [
        "a49ed0bf427a8328a3296eebedc7697fe5098dbf"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Nov 30 14:59:44 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 10:24:37 2009 +0100"
      },
      "message": "locking, task_struct: Reduce size on TRACE_IRQFLAGS and 64bit\n\nReorder task_struct field for TRACE_IRQFLAGS to remove padding\non 64-bit.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4B135F50.8070302@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b62fe019e39edfd1dbe3f224ecd0a87d9365223",
      "tree": "024a4935a646688874b579aa01e9b85f18c41c46",
      "parents": [
        "3a9089fd78367e2c6c815129030b790a0f5c2715"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 02 07:23:10 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 09:59:02 2009 +0100"
      },
      "message": "tracing/syscalls: Make syscall events print callbacks static\n\nenter_syscall_print_##sname and exit_syscall_print_##sname don\u0027t\nneed to have a global scope. Make them static.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1259734990-9034-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8592e6486a177a02f048567cb928bc3a1f9a86c3",
      "tree": "b33fda329271835bb879b6395efa5179b62a1b7b",
      "parents": [
        "b7b20df91d43d5e59578b8fc16e895c0c8cbd9b5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 02 12:56:46 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 02 09:55:33 2009 +0100"
      },
      "message": "sched: Revert 498657a478c60be092208422fefa9c7b248729c2\n\n498657a478c60be092208422fefa9c7b248729c2 incorrectly assumed\nthat preempt wasn\u0027t disabled around context_switch() and thus\nwas fixing imaginary problem.  It also broke KVM because it\ndepended on -\u003esched_in() to be called with irq enabled so that\nit can do smp calls from there.\n\nRevert the incorrect commit and add comment describing different\ncontexts under with the two callbacks are invoked.\n\nAvi: spotted transposed in/out in the added comment.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nCc: peterz@infradead.org\nCc: efault@gmx.de\nCc: rusty@rustcorp.com.au\nLKML-Reference: \u003c1259726212-30259-2-git-send-email-tj@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3bbe84e9d385205d638035ee9dcc4db1b486ea08",
      "tree": "e7261e9a3ca13f6e2fd34333e4ccab33b265c32e",
      "parents": [
        "a1301da0997bf73c44dbe584e9070a13adc89672"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:24:01 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:30 2009 +0100"
      },
      "message": "trace_syscalls: Simplify syscall profile\n\nuse only one prof_sysenter_enable() instead of\nprof_sysenter_enable_##sname()\n\nuse only one prof_sysenter_disable() instead of\nprof_sysenter_disable_##sname()\n\nuse only one prof_sysexit_enable() instead of\nprof_sysexit_enable_##sname()\n\nuse only one prof_sysexit_disable() instead of\nprof_sysexit_disable_##sname()\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D2A1.8060304@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a1301da0997bf73c44dbe584e9070a13adc89672",
      "tree": "64c7e580f553291bcaaf065fc0dbceee8daf9cd6",
      "parents": [
        "c252f65793874b56d50395ab604db465ce688665"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:23:55 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:30 2009 +0100"
      },
      "message": "trace_syscalls: Remove duplicate init_enter_##sname()\n\nuse only one init_syscall_trace instead of\nmany init_enter_##sname()/init_exit_##sname()\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D29B.6090708@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c252f65793874b56d50395ab604db465ce688665",
      "tree": "30bc32361d2b368679910270ec4e99e841fa099b",
      "parents": [
        "fcc19438dda38dacc8c144e2db3ebc6b9fd4f8b8"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:23:47 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:29 2009 +0100"
      },
      "message": "trace_syscalls: Add syscall_nr field to struct syscall_metadata\n\nAdd syscall_nr field to struct syscall_metadata,\nit helps us to get syscall number easier.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D293.6090800@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fcc19438dda38dacc8c144e2db3ebc6b9fd4f8b8",
      "tree": "0f82cd0ce19bc113e2ba631c14f2e8c04884d608",
      "parents": [
        "31c16b13349970b2684248c7d8608d2a96ae135d"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:23:36 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:29 2009 +0100"
      },
      "message": "trace_syscalls: Remove enter_id exit_id\n\nuse -\u003eenter_event-\u003eid instead of -\u003eenter_id\nuse -\u003eexit_event-\u003eid instead of -\u003eexit_id\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D288.7030001@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31c16b13349970b2684248c7d8608d2a96ae135d",
      "tree": "0f0a2bee35f604090b30d6724e13bb2faec8a6a5",
      "parents": [
        "bf56a4ea9f1683c5b223fd3a5dbea23f1fa91c34"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:23:30 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:28 2009 +0100"
      },
      "message": "trace_syscalls: Set event_enter_##sname-\u003edata to its metadata\n\nSet event_enter_##sname-\u003edata to its metadata,\nit makes codes simpler.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D282.7050709@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf56a4ea9f1683c5b223fd3a5dbea23f1fa91c34",
      "tree": "c6f54058fb427ab9c4f776c9414f85a60b6344b0",
      "parents": [
        "59d069eb5ae9b033ed1c124c92e1532c4a958991"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 01 16:23:20 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 01 17:33:28 2009 +0100"
      },
      "message": "trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit\n\nfix event_enter_##sname-\u003eevent\nfix event_exit_##sname-\u003eevent\n\nremove unused event_syscall_enter and event_syscall_exit\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B14D278.4090209@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f13a48bd798a159291ca583b95453171b88b7448",
      "tree": "a644293386e30ed5ab297e5943e57658e1d11e6a",
      "parents": [
        "df87f8c06c7f562ef9d93b9d674eebf2ffb96f6a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 01 15:36:11 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 01 08:20:31 2009 -0800"
      },
      "message": "SLOW_WORK: Move slow_work\u0027s proc file to debugfs\n\nMove slow_work\u0027s debugging proc file to debugfs.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nRequested-and-acked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7716977b6ae5a0cdd0afab5c6035c4d0ce53f599",
      "tree": "9534843e6f393dba12bb843e1d846dc19d5349b1",
      "parents": [
        "29e553631b2a0d4eebd23db630572e1027a9967a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Nov 30 13:24:18 2009 +0000"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Tue Dec 01 11:24:19 2009 +0100"
      },
      "message": "mfd: Correct WM831X_MAX_ISEL_VALUE\n\nThere was confusion between the array size and the highest ISEL\nvalue possible.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "6e80133f7f247f313da1638af4ce30f2bac303cc",
      "tree": "318afcc1c1c434135849cef50e3d89be505ad011",
      "parents": [
        "e3a41d7b99e7f97d9a50bec2a8f4eb237ce1d504",
        "4fa9f4ede88b4e2ff135b6e5717499d734508c62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 30 13:33:48 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache: (31 commits)\n  FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS\u003dn\n  SLOW_WORK: Fix GFS2 to #include \u003clinux/module.h\u003e before using THIS_MODULE\n  SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user()\n  CacheFiles: Don\u0027t log lookup/create failing with ENOBUFS\n  CacheFiles: Catch an overly long wait for an old active object\n  CacheFiles: Better showing of debugging information in active object problems\n  CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy\n  CacheFiles: Handle truncate unlocking the page we\u0027re reading\n  CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n  FS-Cache: Actually requeue an object when requested\n  FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n  FS-Cache: Make sure FSCACHE_COOKIE_LOOKING_UP cleared on lookup failure\n  FS-Cache: Add a retirement stat counter\n  FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n  FS-Cache: Handle read request vs lookup, creation or other cache failure\n  FS-Cache: Don\u0027t delete pending pages from the page-store tracking tree\n  FS-Cache: Fix lock misorder in fscache_write_op()\n  FS-Cache: The object-available state can\u0027t rely on the cookie to be available\n  FS-Cache: Permit cache retrieval ops to be interrupted in the initial wait phase\n  FS-Cache: Use radix tree preload correctly in tracking of pages to be stored\n  ...\n"
    },
    {
      "commit": "dd1853c3f493f6d22d9e5390b192a07b73d2ac0a",
      "tree": "af87226bcdc254ce2ab656530263e61f6552322b",
      "parents": [
        "5fa10b28e57f94a90535cfeafe89dcee9f47d540"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 27 04:55:54 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 27 06:22:59 2009 +0100"
      },
      "message": "hw-breakpoints: Use struct perf_event_attr to define kernel breakpoints\n\nKernel breakpoints are created using functions in which we pass\nbreakpoint parameters as individual variables: address, length\nand type.\n\nAlthough it fits well for x86, this just does not scale across\narchitectures that may support this api later as these may have\nmore or different needs. Pass in a perf_event_attr structure\ninstead because it is meant to evolve as much as possible into\na generic hardware breakpoint parameter structure.\n\nReported-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1259294154-5197-2-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fa10b28e57f94a90535cfeafe89dcee9f47d540",
      "tree": "951cf12a3b5b3a37546b4f6dd2994bebdac19dc0",
      "parents": [
        "b2e74a265ded1a185f762ebaab967e9e0d008dd8"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 27 04:55:53 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 27 06:22:58 2009 +0100"
      },
      "message": "hw-breakpoints: Use struct perf_event_attr to define user breakpoints\n\nIn-kernel user breakpoints are created using functions in which\nwe pass breakpoint parameters as individual variables: address,\nlength and type.\n\nAlthough it fits well for x86, this just does not scale across\narchictectures that may support this api later as these may have\nmore or different needs. Pass in a perf_event_attr structure\ninstead because it is meant to evolve as much as possible into\na generic hardware breakpoint parameter structure.\n\nReported-by: K.Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1259294154-5197-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b7b20df91d43d5e59578b8fc16e895c0c8cbd9b5",
      "tree": "9ad1a2347264db548a161575080ed3bdc32f6d51",
      "parents": [
        "d5b7c78e975302a1bab28263266c39ecb71acad4"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:49:27 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:20 2009 +0100"
      },
      "message": "sched, time: Define nsecs_to_jiffies()\n\nUse of msecs_to_jiffies() for nsecs_to_cputime() have some\nproblems:\n\n - The type of msecs_to_jiffies()\u0027s argument is unsigned int, so\n   it cannot convert msecs greater than UINT_MAX \u003d about 49.7 days.\n\n - msecs_to_jiffies() returns MAX_JIFFY_OFFSET if MSB of argument\n   is set, assuming that input was negative value.  So it cannot\n   convert msecs greater than INT_MAX \u003d about 24.8 days too.\n\nThis patch defines a new function nsecs_to_jiffies() that can\ndeal greater values, and that can deal all incoming values as\nunsigned.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Amrico Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohnstul@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c4B0E16E7.5070307@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5b7c78e975302a1bab28263266c39ecb71acad4",
      "tree": "47d9a18b2e81b3f93faf89b548b50beff29dd4fe",
      "parents": [
        "d180c5bccec02612256fd8076ff3c1fac3429553"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:49:05 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:20 2009 +0100"
      },
      "message": "sched: Remove task_{u,s,g}time()\n\nNow all task_{u,s}time() pairs are replaced by task_times().\nAnd task_gtime() is too simple to be an inline function.\n\nCleanup them all.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16D1.70902@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d180c5bccec02612256fd8076ff3c1fac3429553",
      "tree": "1ef4a45c81531645640380965916c68bbe7f6abb",
      "parents": [
        "16bc67edeb49b531940b2ba6c183780a1b5c472d"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Thu Nov 26 14:48:30 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 12:59:19 2009 +0100"
      },
      "message": "sched: Introduce task_times() to replace task_{u,s}time() pair\n\nFunctions task_{u,s}time() are called in pair in almost all\ncases.  However task_stime() is implemented to call task_utime()\nfrom its inside, so such paired calls run task_utime() twice.\n\nIt means we do heavy divisions (div_u64 + do_div) twice to get\nutime and stime which can be obtained at same time by one set\nof divisions.\n\nThis patch introduces a function task_times(*tsk, *utime,\n*stime) to retrieve utime and stime at once in better, optimized\nway.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Spencer Candland \u003cspencer@bluehost.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nLKML-Reference: \u003c4B0E16AE.906@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "16bc67edeb49b531940b2ba6c183780a1b5c472d",
      "tree": "71b4bc48e47e54f2c0b3126d8f81d2f31b707ea8",
      "parents": [
        "f6630114d9198aa959ac95c131334c020038f253",
        "047106adcc85e3023da210143a6ab8a55df9e0fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:42 2009 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Pick up fixes that did not make it into .32.0\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "091ad3658e3c76c5fb05f65bfb64a0246f8f31b5",
      "tree": "90f67be68a31e2001a4a73e0325a2a7798240a51",
      "parents": [
        "28b4e0d86acf59ae3bc422921138a4958458326e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:04:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 09:04:55 2009 +0100"
      },
      "message": "events: Rename TRACE_EVENT_TEMPLATE() to DECLARE_EVENT_CLASS()\n\nIt is not quite obvious at first sight what TRACE_EVENT_TEMPLATE\ndoes: does it define an event as well beyond defining a template?\n\nTo clarify this, rename it to DECLARE_EVENT_CLASS, which follows\nthe various \u0027DECLARE_*()\u0027 idioms we already have in the kernel:\n\n  DECLARE_EVENT_CLASS(class)\n\n    DEFINE_EVENT(class, event1)\n    DEFINE_EVENT(class, event2)\n    DEFINE_EVENT(class, event3)\n\nTo complete this logic we should also rename TRACE_EVENT() to:\n\n  DEFINE_SINGLE_EVENT(single_event)\n\n... but in a more quiet moment of the kernel cycle.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B0E286A.2000405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5bc9721684e9412f3e0465222f317c362a8ab47",
      "tree": "380e76f64fd58e1f68715514e4b37734f3098fb3",
      "parents": [
        "ff038f5c37c2070829004a0678372766c2b32180"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 18 20:36:26 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 24 18:23:53 2009 -0500"
      },
      "message": "tracing: Create new DEFINE_EVENT_PRINT\n\nAfter creating the TRACE_EVENT_TEMPLATE I started to look at other\ntrace points to see what duplication was made. I noticed that there\nare several trace points where they are almost identical except for\nthe name and the output format. Since TRACE_EVENT_TEMPLATE was successful\nin bringing down the size of trace events, I added a DEFINE_EVENT_PRINT.\n\nDEFINE_EVENT_PRINT is used just like DEFINE_EVENT is. That is, the\nDEFINE_EVENT_PRINT also uses a TRACE_EVENT_TEMPLATE, but it allows the\ndeveloper to overwrite the print format. If there are two or more\nTRACE_EVENTS that are identical except for the name and print, then\nthey can be converted to use a TRACE_EVENT_TEMPLATE. Since the\nTRACE_EVENT_TEMPLATE already does the print output, the first trace event\nwould have its print format held in the TRACE_EVENT_TEMPLATE and\nbe defined with a DEFINE_EVENT. The rest will use the DEFINE_EVENT_PRINT\nand override the print format.\n\nConverting the sched trace points to both DEFINE_EVENT and\nDEFINE_EVENT_PRINT. Five were converted to DEFINE_EVENT and two were\nconverted to DEFINE_EVENT_PRINT.\n\nI was able to get the following:\n\n$ size kernel/sched.o-*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  79299\t   6776\t   2520\t  88595\t  15a13\tkernel/sched.o-notrace\n 101941\t  11896\t   2584\t 116421\t  1c6c5\tkernel/sched.o-templ\n 104779\t  11896\t   2584\t 119259\t  1d1db\tkernel/sched.o-trace\n\nsched.o-notrace is the scheduler compiled with no trace points.\nsched.o-templ is with the use of DEFINE_EVENT and DEFINE_EVENT_PRINT\nsched.o-trace is the current trace events.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff038f5c37c2070829004a0678372766c2b32180",
      "tree": "69a48d73eb959ae3c9be3814c42e37a8ea188c41",
      "parents": [
        "fa7c27ee9394fc0d52404b2a89882e95868a60b9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 18 20:27:27 2009 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 24 17:52:11 2009 -0500"
      },
      "message": "tracing: Create new TRACE_EVENT_TEMPLATE\n\nThere are some places in the kernel that define several tracepoints and\nthey are all identical besides the name. The code to enable, disable and\nrecord is created for every trace point even if most of the code is\nidentical.\n\nThis patch adds TRACE_EVENT_TEMPLATE that lets the developer create\na template TRACE_EVENT and create trace points with DEFINE_EVENT, which\nis based off of a given template. Each trace point used by this\nwill share most of the code, and bring down the size of the kernel\nwhen there are several duplicate events.\n\nUsage is:\n\nTRACE_EVENT_TEMPLATE(name, proto, args, tstruct, assign, print);\n\nWhich would be the same as defining a normal TRACE_EVENT.\n\nTo create the trace events that the trace points will use:\n\nDEFINE_EVENT(template, name, proto, args) is done. The template\nis the name of the TRACE_EVENT_TEMPLATE to use. The name is the\nname of the trace point. The parameters proto and args must be the same\nas the proto and args of the template. If they are not the same,\nthen a compile error will result. I tried hard removing this duplication\nbut the C preprocessor is not powerful enough (or my CPP magic\nexperience points is not at a high enough level) to not need them.\n\nA lot of trace events are coming in with new XFS development. Most of\nthe trace points are identical except for the name. The following shows\nthe advantage of having TRACE_EVENT_TEMPLATE:\n\n$ size fs/xfs/xfs.o.*\n    text          data     bss     dec     hex filename\n  452114          2788    3520  458422   6feb6 fs/xfs/xfs.o.old\n  638482         38116    3744  680342   a6196 fs/xfs/xfs.o.template\n  996954         38116    4480 1039550   fdcbe fs/xfs/xfs.o.trace\n\nxfs.o.old is without any tracepoints.\nxfs.o.template uses the new TRACE_EVENT_TEMPLATE.\nxfs.o.trace uses the current TRACE_EVENT macros.\n\nRequested-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a49ed0bf427a8328a3296eebedc7697fe5098dbf",
      "tree": "b2add5cbe839899d58b2a43126e59b80801157ed",
      "parents": [
        "c9286b7e293a1ea054e857ff3f5a23d0ad8d4f36"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 16 19:57:50 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 24 14:41:13 2009 +0100"
      },
      "message": "locking: Use __[SPIN|RW]_LOCK_UNLOCKED in [spin|rw]_lock_init()\n\nSPIN_LOCK_UNLOCKED and RW_LOCK_UNLOCKED are deprecated. Replace them\nwith the __*_LOCK_UNLOCKED variants.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c9286b7e293a1ea054e857ff3f5a23d0ad8d4f36",
      "tree": "6bbbbc2c08f3cc2a2a7cb794cb818b169f965977",
      "parents": [
        "8e13c7b772387f55dc05c6a0e5b30010c3c46ff9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 16 19:50:38 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 24 14:41:12 2009 +0100"
      },
      "message": "locking: Remove unused prototype\n\ncommit 910067d1(remove generic__raw_read_trylock()) removed the\nimplementation but left the prototype around. Remove it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3a222e52e4d4be77cc4520a57af1a4a0d8222d1",
      "tree": "1c3d5df529a404636b996ef39c991c9b8813aa12",
      "parents": [
        "0bce95279909aa4cc401a2e3140b4295ca22e72a"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Nov 23 16:21:30 2009 -0600"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 24 15:06:47 2009 +1100"
      },
      "message": "remove CONFIG_SECURITY_FILE_CAPABILITIES compile option\n\nAs far as I know, all distros currently ship kernels with default\nCONFIG_SECURITY_FILE_CAPABILITIES\u003dy.  Since having the option on\nleaves a \u0027no_file_caps\u0027 option to boot without file capabilities,\nthe main reason to keep the option is that turning it off saves\nyou (on my s390x partition) 5k.  In particular, vmlinux sizes\ncame to:\n\nwithout patch fscaps\u003dn:\t\t \t53598392\nwithout patch fscaps\u003dy:\t\t \t53603406\nwith this patch applied:\t\t53603342\n\nwith the security-next tree.\n\nAgainst this we must weigh the fact that there is no simple way for\nuserspace to figure out whether file capabilities are supported,\nwhile things like per-process securebits, capability bounding\nsets, and adding bits to pI if CAP_SETPCAP is in pE are not supported\nwith SECURITY_FILE_CAPABILITIES\u003dn, leaving a bit of a problem for\napplications wanting to know whether they can use them and/or why\nsomething failed.\n\nIt also adds another subtly different set of semantics which we must\nmaintain at the risk of severe security regressions.\n\nSo this patch removes the SECURITY_FILE_CAPABILITIES compile\noption.  It drops the kernel size by about 50k over the stock\nSECURITY_FILE_CAPABILITIES\u003dy kernel, by removing the\ncap_limit_ptraced_target() function.\n\nChangelog:\n\tNov 20: remove cap_limit_ptraced_target() as it\u0027s logic\n\t\twas ifndef\u0027ed.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Andrew G. Morgan\" \u003cmorgan@kernel.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "fa7c27ee9394fc0d52404b2a89882e95868a60b9",
      "tree": "8f43c75075ebf05d20920d2d9877833473cdfffb",
      "parents": [
        "1b145ae58035f30353d78d25bea665091df9b438"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 23 22:30:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 24 00:09:53 2009 +0100"
      },
      "message": "hw-breakpoints: Fix misordered ifdef\n\nFix a misplaced ifdef. We need the perf event headers also in\noff-case to avoid the following build error:\n\n include/linux/hw_breakpoint.h:94: error: expected declaration specifiers or \u0027...\u0027 before \u0027perf_callback_t\u0027\n include/linux/hw_breakpoint.h:102: error: expected declaration specifiers or \u0027...\u0027 before \u0027perf_callback_t\u0027\n include/linux/hw_breakpoint.h:109: error: expected declaration specifiers or \u0027...\u0027 before \u0027perf_callback_t\u0027\n include/linux/hw_breakpoint.h:116: error: expected declaration specifiers or \u0027...\u0027 before \u0027perf_callback_t\u0027\n\nReported-by: Kisskb-bot by Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1259011812-8093-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6db4876575f3fdd5b1df2cbff826df95ab9af6a",
      "tree": "440da08b2437502804102cbfb2ea412eff2113b7",
      "parents": [
        "ba6909b719a5ccc0c8100d2895bb7ff557b2eeae"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 23 15:42:32 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 18:18:30 2009 +0100"
      },
      "message": "hw-breakpoints: Include only linux/perf_event.h from kernel part of bp headers\n\nAs userspace only needs the breakpoints enum types from the\nbreakpoints headers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258987355-8751-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ed7c92d68a5387ba5f7030dc76eab03558e27f5",
      "tree": "38d758819c41261275c2dbd6f64976f824c5fd27",
      "parents": [
        "f67218c3e93abaf0f480bb94b53d234853ffe4de"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 23 11:37:29 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 23 11:49:57 2009 +0100"
      },
      "message": "perf_events: Undo some recursion damage\n\nMake perf_swevent_get_recursion_context return a context number\nand disable preemption.\n\nThis could be used to remove the IRQ disable from the trace bit\nand index the per-cpu buffer with.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20091123103819.993226816@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ebb237bece23275d1da149b61a342f0d4d06a08",
      "tree": "5f3d99f6ce2e1e98736e5708eecb5bf217f78fde",
      "parents": [
        "9f680ab41485edfdc96331b70afa7513aa0a7720"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Nov 22 08:53:50 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 18:58:16 2009 +0100"
      },
      "message": "rcu: Re-arrange code to reduce #ifdef pain\n\nRemove #ifdefs from kernel/rcupdate.c and\ninclude/linux/rcupdate.h by moving code to\ninclude/linux/rcutiny.h, include/linux/rcutree.h, and\nkernel/rcutree.c.\n\nAlso remove some definitions that are no longer used.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1258908830885-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f680ab41485edfdc96331b70afa7513aa0a7720",
      "tree": "620b34f8129c0ea4ddee033c9875a9f60bfba2ae",
      "parents": [
        "b668c9cf3e58739dac54a1d6f42f2b4bdd980b3e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Nov 22 08:53:49 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 18:58:16 2009 +0100"
      },
      "message": "rcu: Eliminate unneeded function wrapping\n\nThe functions rcu_init() is a wrapper for __rcu_init(), and also\nsets up the CPU-hotplug notifier for rcu_barrier_cpu_hotplug().\nBut TINY_RCU doesn\u0027t need CPU-hotplug notification, and the\nrcu_barrier_cpu_hotplug() is a simple wrapper for\nrcu_cpu_notify().\n\nSo push rcu_init() out to kernel/rcutree.c and kernel/rcutiny.c\nand get rid of the wrapper function rcu_barrier_cpu_hotplug().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c12589088302320-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5093ebad5f2348076fdc3dac7d2358b1ad7f85f7",
      "tree": "e9904d9b799945c2dde0b5b4aa6b6ea408e688ff",
      "parents": [
        "b3a75542d329ce4e1c66b293cefeb4429a2af043"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 22 05:21:35 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 09:03:43 2009 +0100"
      },
      "message": "hw-breakpoints: Separate the kernel part from breakpoint headers\n\nSo that we can include this header from userspace tools, like\nperf tools, to get the breakpoint types and len definitions.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258863695-10464-4-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ce71b9df8893ec954e56c5979df6da274f20f65e",
      "tree": "76e8a5e33393c2f4fca4083628fc142dcbb55250",
      "parents": [
        "e25613683bd5c46d3e8c8ae6416dccc9f357dcdc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 22 05:26:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 09:03:42 2009 +0100"
      },
      "message": "tracing: Use the perf recursion protection from trace event\n\nWhen we commit a trace to perf, we first check if we are\nrecursing in the same buffer so that we don\u0027t mess-up the buffer\nwith a recursing trace. But later on, we do the same check from\nperf to avoid commit recursion. The recursion check is desired\nearly before we touch the buffer but we want to do this check\nonly once.\n\nThen export the recursion protection from perf and use it from\nthe trace events before submitting a trace.\n\nv2: Put appropriate Reported-by tag\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c1258864015-10579-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59ed446f792cc07d37b1536b9c4664d14e25e425",
      "tree": "707c009e252b082ffac5c5209f4bdc013b1b5c62",
      "parents": [
        "2b8988c9f7defe319cffe0cd362a7cd356c86f62"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 20 22:19:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 21 14:11:40 2009 +0100"
      },
      "message": "perf: Fix event scaling for inherited counters\n\nProperly account the full hierarchy of counters for both the\ncount (we already did so) and the scale times (new).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20091120212509.153379276@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "453f19eea7dbad837425e9b07d84568d14898794",
      "tree": "3b1d757a72512b5ab566649b9eda59e032734993",
      "parents": [
        "ef6ae724253429ac70d81e65d052f6a346d330bd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 20 22:19:43 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 21 14:11:35 2009 +0100"
      },
      "message": "perf: Allow for custom overflow handlers\n\nin-kernel perf users might wish to have custom actions on the\nsample interrupt.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20091120212508.222339539@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "96200591a34f8ecb98481c626125df43a2463b55",
      "tree": "314c376b01f254d04f9aaf449b1f9147ad177fa6",
      "parents": [
        "7031281e02bf951a2259849217193fb9d75a9762",
        "68efa37df779b3e04280598e8b5b3a1919b65fee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 21 14:07:23 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 21 14:07:23 2009 +0100"
      },
      "message": "Merge branch \u0027tracing/hw-breakpoints\u0027 into perf/core\n\nConflicts:\n\tarch/x86/kernel/kprobes.c\n\tkernel/trace/Makefile\n\nMerge reason: hw-breakpoints perf integration is looking\n              good in testing and in reviews, plus conflicts\n              are mounting up - so merge \u0026 resolve.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ced24c8973f79113444d1e00ee8bd9e74fbf43e",
      "tree": "aeab7b72d009b15f918b0dfeb17bfc5a1603b071",
      "parents": [
        "b2f125bcf5eac41a6d74f75ac573b77753213b74"
      ],
      "author": {
        "name": "Kevin Wells",
        "email": "kevin.wells@nxp.com",
        "time": "Thu Nov 12 00:23:00 2009 +0100"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Fri Nov 20 00:25:42 2009 +0000"
      },
      "message": "i2c: i2c-pnx: Made buf type unsigned to prevent sign extension\n\nMade buf type unsigned to prevent sign extension\n\nSigned-off-by: Kevin Wells \u003ckevin.wells@nxp.com\u003e\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\n"
    },
    {
      "commit": "308efab5e231d1510cd35931d87629bf5171caae",
      "tree": "f477e28706603dac927e352f2b0c23034f981808",
      "parents": [
        "5854d9c8d18359b1fc2f23c0ef2d51dd53281bd6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Nov 19 13:30:36 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 19 13:43:06 2009 -0800"
      },
      "message": "vt: Fix use of \"new\" in a struct field\n\nAs this struct is exposed to user space and the API was added for this\nrelease it\u0027s a bit of a pain for the C++ world and we still have time to\nfix it. Rename the fields before we end up with that pain in an actual\nrelease.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nReported-by: Olivier Goffart\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fee096deb4f33897937b974cb2c5168bab7935be",
      "tree": "c86e5ed5b3435ff0f0266f343b19f8cc7be63340",
      "parents": [
        "d0e27b7808dc667f3015be0b6888f6d680e222c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:12:05 2009 +0000"
      },
      "message": "CacheFiles: Catch an overly long wait for an old active object\n\nCatch an overly long wait for an old, dying active object when we want to\nreplace it with a new one.  The probability is that all the slow-work threads\nare hogged, and the delete can\u0027t get a look in.\n\nWhat we do instead is:\n\n (1) if there\u0027s nothing in the slow work queue, we sleep until either the dying\n     object has finished dying or there is something in the slow work queue\n     behind which we can queue our object.\n\n (2) if there is something in the slow work queue, we return ETIMEDOUT to\n     fscache_lookup_object(), which then puts us back on the slow work queue,\n     presumably behind the deletion that we\u0027re blocked by.  We are then\n     deferred for a while until we work our way back through the queue -\n     without blocking a slow-work thread unnecessarily.\n\nA backtrace similar to the following may appear in the log without this patch:\n\n\tINFO: task kslowd004:5711 blocked for more than 120 seconds.\n\t\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n\tkslowd004     D 0000000000000000     0  5711      2 0x00000080\n\t ffff88000340bb80 0000000000000046 ffff88002550d000 0000000000000000\n\t ffff88002550d000 0000000000000007 ffff88000340bfd8 ffff88002550d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff88002550d2a8\n\tCall Trace:\n\t [\u003cffffffff81058e21\u003e] ? trace_hardirqs_on+0xd/0xf\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffffa011c4e1\u003e] cachefiles_wait_bit+0x9/0xd [cachefiles]\n\t [\u003cffffffff81353153\u003e] __wait_on_bit+0x43/0x76\n\t [\u003cffffffff8111ae39\u003e] ? ext3_xattr_get+0x1ec/0x270\n\t [\u003cffffffff813531ef\u003e] out_of_line_wait_on_bit+0x69/0x74\n\t [\u003cffffffffa011c4d8\u003e] ? cachefiles_wait_bit+0x0/0xd [cachefiles]\n\t [\u003cffffffff8104c125\u003e] ? wake_bit_function+0x0/0x2e\n\t [\u003cffffffffa011bc79\u003e] cachefiles_mark_object_active+0x203/0x23b [cachefiles]\n\t [\u003cffffffffa011c209\u003e] cachefiles_walk_to_object+0x558/0x827 [cachefiles]\n\t [\u003cffffffffa011a429\u003e] cachefiles_lookup_object+0xac/0x12a [cachefiles]\n\t [\u003cffffffffa00aa1e9\u003e] fscache_lookup_object+0x1c7/0x214 [fscache]\n\t [\u003cffffffffa00aafc5\u003e] fscache_object_state_machine+0xa5/0x52d [fscache]\n\t [\u003cffffffffa00ab4ac\u003e] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\t1 lock held by kslowd004/5711:\n\t #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#7/1){+.+.+.}, at: [\u003cffffffffa011be64\u003e] cachefiles_walk_to_object+0x1b3/0x827 [cachefiles]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a17754fb8c28af19cd70dcbec6d5b0773b94e0c1",
      "tree": "d7c25b217c684153eadbac78ab9b1bbff08b75f6",
      "parents": [
        "868411be3f445a83fafbd734f3e426400138add5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:52 2009 +0000"
      },
      "message": "CacheFiles: Don\u0027t write a full page if there\u0027s only a partial page to cache\n\ncachefiles_write_page() writes a full page to the backing file for the last\npage of the netfs file, even if the netfs file\u0027s last page is only a partial\npage.\n\nThis causes the EOF on the backing file to be extended beyond the EOF of the\nnetfs, and thus the backing file will be truncated by cachefiles_attr_changed()\ncalled from cachefiles_lookup_object().\n\nSo we need to limit the write we make to the backing file on that last page\nsuch that it doesn\u0027t push the EOF too far.\n\nAlso, if a backing file that has a partial page at the end is expanded, we\ndiscard the partial page and refetch it on the basis that we then have a hole\nin the file with invalid data, and should the power go out...  A better way to\ndeal with this could be to record a note that the partial page contains invalid\ndata until the correct data is written into it.\n\nThis isn\u0027t a problem for netfs\u0027s that discard the whole backing file if the\nfile size changes (such as NFS).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "60d543ca724be155c2b6166e36a00c80b21bd810",
      "tree": "90ec6edd77ddb7666dbf7069aa2e001f155cea49",
      "parents": [
        "d461d26dde901b0523c46b0317e7fccf574a3933"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:45 2009 +0000"
      },
      "message": "FS-Cache: Start processing an object\u0027s operations on that object\u0027s death\n\nStart processing an object\u0027s operations when that object moves into the DYING\nstate as the object cannot be destroyed until all its outstanding operations\nhave completed.\n\nFurthermore, make sure that read and allocation operations handle being woken\nup on a dead object.  Such events are recorded in the Allocs.abt and\nRetrvls.abt statistics as viewable through /proc/fs/fscache/stats.\n\nThe code for waiting for object activation for the read and allocation\noperations is also extracted into its own function as it is much the same in\nall cases, differing only in the stats incremented.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "201a15428bd54f83eccec8b7c64a04b8f9431204",
      "tree": "326fcce64ce96657253fd141a3f4a767ac95418a",
      "parents": [
        "e3d4d28b1c8cc7c26536a50b43d86ccd39878550"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:35 2009 +0000"
      },
      "message": "FS-Cache: Handle pages pending storage that get evicted under OOM conditions\n\nHandle netfs pages that the vmscan algorithm wants to evict from the pagecache\nunder OOM conditions, but that are waiting for write to the cache.  Under these\nconditions, vmscan calls the releasepage() function of the netfs, asking if a\npage can be discarded.\n\nThe problem is typified by the following trace of a stuck process:\n\n\tkslowd005     D 0000000000000000     0  4253      2 0x00000080\n\t ffff88001b14f370 0000000000000046 ffff880020d0d000 0000000000000007\n\t 0000000000000006 0000000000000001 ffff88001b14ffd8 ffff880020d0d2a8\n\t 000000000000ddf0 00000000000118c0 00000000000118c0 ffff880020d0d2a8\n\tCall Trace:\n\t [\u003cffffffffa00782d8\u003e] __fscache_wait_on_page_write+0x8b/0xa7 [fscache]\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffffa0078240\u003e] ? __fscache_check_page_write+0x63/0x70 [fscache]\n\t [\u003cffffffffa00b671d\u003e] nfs_fscache_release_page+0x4e/0xc4 [nfs]\n\t [\u003cffffffffa00927f0\u003e] nfs_release_page+0x3c/0x41 [nfs]\n\t [\u003cffffffff810885d3\u003e] try_to_release_page+0x32/0x3b\n\t [\u003cffffffff81093203\u003e] shrink_page_list+0x316/0x4ac\n\t [\u003cffffffff8109372b\u003e] shrink_inactive_list+0x392/0x67c\n\t [\u003cffffffff813532fa\u003e] ? __mutex_unlock_slowpath+0x100/0x10b\n\t [\u003cffffffff81058df0\u003e] ? trace_hardirqs_on_caller+0x10c/0x130\n\t [\u003cffffffff8135330e\u003e] ? mutex_unlock+0x9/0xb\n\t [\u003cffffffff81093aa2\u003e] shrink_list+0x8d/0x8f\n\t [\u003cffffffff81093d1c\u003e] shrink_zone+0x278/0x33c\n\t [\u003cffffffff81052d6c\u003e] ? ktime_get_ts+0xad/0xba\n\t [\u003cffffffff81094b13\u003e] try_to_free_pages+0x22e/0x392\n\t [\u003cffffffff81091e24\u003e] ? isolate_pages_global+0x0/0x212\n\t [\u003cffffffff8108e743\u003e] __alloc_pages_nodemask+0x3dc/0x5cf\n\t [\u003cffffffff81089529\u003e] grab_cache_page_write_begin+0x65/0xaa\n\t [\u003cffffffff8110f8c0\u003e] ext3_write_begin+0x78/0x1eb\n\t [\u003cffffffff81089ec5\u003e] generic_file_buffered_write+0x109/0x28c\n\t [\u003cffffffff8103cb69\u003e] ? current_fs_time+0x22/0x29\n\t [\u003cffffffff8108a509\u003e] __generic_file_aio_write+0x350/0x385\n\t [\u003cffffffff8108a588\u003e] ? generic_file_aio_write+0x4a/0xae\n\t [\u003cffffffff8108a59e\u003e] generic_file_aio_write+0x60/0xae\n\t [\u003cffffffff810b2e82\u003e] do_sync_write+0xe3/0x120\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810b18e1\u003e] ? __dentry_open+0x1a5/0x2b8\n\t [\u003cffffffff810b1a76\u003e] ? dentry_open+0x82/0x89\n\t [\u003cffffffffa00e693c\u003e] cachefiles_write_page+0x298/0x335 [cachefiles]\n\t [\u003cffffffffa0077147\u003e] fscache_write_op+0x178/0x2c2 [fscache]\n\t [\u003cffffffffa0075656\u003e] fscache_op_execute+0x7a/0xd1 [fscache]\n\t [\u003cffffffff81082093\u003e] slow_work_execute+0x18f/0x2d1\n\t [\u003cffffffff8108239a\u003e] slow_work_thread+0x1c5/0x308\n\t [\u003cffffffff8104c0f1\u003e] ? autoremove_wake_function+0x0/0x34\n\t [\u003cffffffff810821d5\u003e] ? slow_work_thread+0x0/0x308\n\t [\u003cffffffff8104be91\u003e] kthread+0x7a/0x82\n\t [\u003cffffffff8100beda\u003e] child_rip+0xa/0x20\n\t [\u003cffffffff8100b87c\u003e] ? restore_args+0x0/0x30\n\t [\u003cffffffff8102ef83\u003e] ? tg_shares_up+0x171/0x227\n\t [\u003cffffffff8104be17\u003e] ? kthread+0x0/0x82\n\t [\u003cffffffff8100bed0\u003e] ? child_rip+0x0/0x20\n\nIn the above backtrace, the following is happening:\n\n (1) A page storage operation is being executed by a slow-work thread\n     (fscache_write_op()).\n\n (2) FS-Cache farms the operation out to the cache to perform\n     (cachefiles_write_page()).\n\n (3) CacheFiles is then calling Ext3 to perform the actual write, using Ext3\u0027s\n     standard write (do_sync_write()) under KERNEL_DS directly from the netfs\n     page.\n\n (4) However, for Ext3 to perform the write, it must allocate some memory, in\n     particular, it must allocate at least one page cache page into which it\n     can copy the data from the netfs page.\n\n (5) Under OOM conditions, the memory allocator can\u0027t immediately come up with\n     a page, so it uses vmscan to find something to discard\n     (try_to_free_pages()).\n\n (6) vmscan finds a clean netfs page it might be able to discard (possibly the\n     one it\u0027s trying to write out).\n\n (7) The netfs is called to throw the page away (nfs_release_page()) - but it\u0027s\n     called with __GFP_WAIT, so the netfs decides to wait for the store to\n     complete (__fscache_wait_on_page_write()).\n\n (8) This blocks a slow-work processing thread - possibly against itself.\n\nThe system ends up stuck because it can\u0027t write out any netfs pages to the\ncache without allocating more memory.\n\nTo avoid this, we make FS-Cache cancel some writes that aren\u0027t in the middle of\nactually being performed.  This means that some data won\u0027t make it into the\ncache this time.  To support this, a new FS-Cache function is added\nfscache_maybe_release_page() that replaces what the netfs releasepage()\nfunctions used to do with respect to the cache.\n\nThe decisions fscache_maybe_release_page() makes are counted and displayed\nthrough /proc/fs/fscache/stats on a line labelled \"VmScan\".  There are four\ncounters provided: \"nos\u003dN\" - pages that weren\u0027t pending storage; \"gon\u003dN\" -\npages that were pending storage when we first looked, but weren\u0027t by the time\nwe got the object lock; \"bsy\u003dN\" - pages that we ignored as they were actively\nbeing written when we looked; and \"can\u003dN\" - pages that we cancelled the storage\nof.\n\nWhat I\u0027d really like to do is alter the behaviour of the cancellation\nheuristics, depending on how necessary it is to expel pages.  If there are\nplenty of other pages that aren\u0027t waiting to be written to the cache that\ncould be ejected first, then it would be nice to hold up on immediate\ncancellation of cache writes - but I don\u0027t see a way of doing that.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "1bccf513ac49d44604ba1cddcc29f5886e70f1b6",
      "tree": "096ba75a3d02018c5f6e1857aaf1d41471733850",
      "parents": [
        "6897e3df8fc37bd4a58bbcdef8306da7fc175584"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:25 2009 +0000"
      },
      "message": "FS-Cache: Fix lock misorder in fscache_write_op()\n\nFS-Cache has two structs internally for keeping track of the internal state of\na cached file: the fscache_cookie struct, which represents the netfs\u0027s state,\nand fscache_object struct, which represents the cache\u0027s state.  Each has a\npointer that points to the other (when both are in existence), and each has a\nspinlock for pointer maintenance.\n\nSince netfs operations approach these structures from the cookie side, they get\nthe cookie lock first, then the object lock.  Cache operations, on the other\nhand, approach from the object side, and get the object lock first.  It is not\nthen permitted for a cache operation to get the cookie lock whilst it is\nholding the object lock lest deadlock occur; instead, it must do one of two\nthings:\n\n (1) increment the cookie usage counter, drop the object lock and then get both\n     locks in order, or\n\n (2) simply hold the object lock as certain parts of the cookie may not be\n     altered whilst the object lock is held.\n\nIt is also not permitted to follow either pointer without holding the lock at\nthe end you start with.  To break the pointers between the cookie and the\nobject, both locks must be held.\n\nfscache_write_op(), however, violates the locking rules: It attempts to get the\ncookie lock without (a) checking that the cookie pointer is a valid pointer,\nand (b) holding the object lock to protect the cookie pointer whilst it follows\nit.  This is so that it can access the pending page store tree without\ninterference from __fscache_write_page().\n\nThis is fixed by splitting the cookie lock, such that the page store tracking\ntree is protected by its own lock, and checking that the cookie pointer is\nnon-NULL before we attempt to follow it whilst holding the object lock.\n\nThe new lock is subordinate to both the cookie lock and the object lock, and so\nshould be taken after those.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4fbf4291aa15926cd4fdca0ffe9122e89d0459db",
      "tree": "ec2195c39ef8117acea598af4a5c20c77f67aa0b",
      "parents": [
        "440f0affe247e9990c8f8778f1861da4fd7d5e50"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:04 2009 +0000"
      },
      "message": "FS-Cache: Allow the current state of all objects to be dumped\n\nAllow the current state of all fscache objects to be dumped by doing:\n\n\tcat /proc/fs/fscache/objects\n\nBy default, all objects and all fields will be shown.  This can be restricted\nby adding a suitable key to one of the caller\u0027s keyrings (such as the session\nkeyring):\n\n\tkeyctl add user fscache:objlist \"\u003crestrictions\u003e\" @s\n\nThe \u003crestrictions\u003e are:\n\n\tK\tShow hexdump of object key (don\u0027t show if not given)\n\tA\tShow hexdump of object aux data (don\u0027t show if not given)\n\nAnd paired restrictions:\n\n\tC\tShow objects that have a cookie\n\tc\tShow objects that don\u0027t have a cookie\n\tB\tShow objects that are busy\n\tb\tShow objects that aren\u0027t busy\n\tW\tShow objects that have pending writes\n\tw\tShow objects that don\u0027t have pending writes\n\tR\tShow objects that have outstanding reads\n\tr\tShow objects that don\u0027t have outstanding reads\n\tS\tShow objects that have slow work queued\n\ts\tShow objects that don\u0027t have slow work queued\n\nIf neither side of a restriction pair is given, then both are implied.  For\nexample:\n\n\tkeyctl add user fscache:objlist KB @s\n\nshows objects that are busy, and lists their object keys, but does not dump\ntheir auxiliary data.  It also implies \"CcWwRrSs\", but as \u0027B\u0027 is given, \u0027b\u0027 is\nnot implied.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "440f0affe247e9990c8f8778f1861da4fd7d5e50",
      "tree": "0012732ac8af0245005403d9a3b0a2b1209edf32",
      "parents": [
        "3bde31a4ac225cb5805be02eff6eaaf7e0766ccd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:11:01 2009 +0000"
      },
      "message": "FS-Cache: Annotate slow-work runqueue proc lines for FS-Cache work items\n\nAnnotate slow-work runqueue proc lines for FS-Cache work items.  Objects\ninclude the object ID and the state.  Operations include the object ID, the\noperation ID and the operation type and state.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3bde31a4ac225cb5805be02eff6eaaf7e0766ccd",
      "tree": "9fb757ab7d46e0c37fb5e88d3185f1861fbc794e",
      "parents": [
        "31ba99d304494cb28fa8671ccc769c5543e1165d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:57 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:57 2009 +0000"
      },
      "message": "SLOW_WORK: Allow a requeueable work item to sleep till the thread is needed\n\nAdd a function to allow a requeueable work item to sleep till the thread\nprocessing it is needed by the slow-work facility to perform other work.\n\nSometimes a work item can\u0027t progress immediately, but must wait for the\ncompletion of another work item that\u0027s currently being processed by another\nslow-work thread.\n\nIn some circumstances, the waiting item could instead - theoretically - put\nitself back on the queue and yield its thread back to the slow-work facility,\nthus waiting till it gets processing time again before attempting to progress.\nThis would allow other work items processing time on that thread.\n\nHowever, this only works if there is something on the queue for it to queue\nbehind - otherwise it will just get a thread again immediately, and will end\nup cycling between the queue and the thread, eating up valuable CPU time.\n\nSo, slow_work_sleep_till_thread_needed() is provided such that an item can put\nitself on a wait queue that will wake it up when the event it is actually\ninterested in occurs, then call this function in lieu of calling schedule().\n\nThis function will then sleep until either the item\u0027s event occurs or another\nwork item appears on the queue.  If another work item is queued, but the\nitem\u0027s event hasn\u0027t occurred, then the work item should requeue itself and\nyield the thread back to the slow-work facility by returning.\n\nThis can be used by CacheFiles for an object that is being created on one\nthread to wait for an object being deleted on another thread where there is\nnothing on the queue for the creation to go and wait behind.  As soon as an\nitem appears on the queue that could be given thread time instead, CacheFiles\ncan stick the creating object back on the queue and return to the slow-work\nfacility - assuming the object deletion didn\u0027t also complete.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "31ba99d304494cb28fa8671ccc769c5543e1165d",
      "tree": "ea2d839fb70798cf6a3b55ccc87f749e14e14f1d",
      "parents": [
        "8fba10a42d191de612e60e7009c8f0313f90a9b3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:53 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:53 2009 +0000"
      },
      "message": "SLOW_WORK: Allow the owner of a work item to determine if it is queued or not\n\nAdd a function (slow_work_is_queued()) to permit the owner of a work item to\ndetermine if the item is queued or not.\n\nThe work item is counted as being queued if it is actually on the queue, not\njust if it is pending.  If it is executing and pending, then it is not on the\nqueue, but will rather be put back on the queue when execution finishes.\n\nThis permits a caller to quickly work out if it may be able to put another,\ndependent work item on the queue behind it, or whether it will have to wait\ntill that is finished.\n\nThis can be used by CacheFiles to work out whether the creation a new object\ncan be immediately deferred when it has to wait for an old object to be\ndeleted, or whether a wait must take place.  If a wait is necessary, then the\nslow-work thread can otherwise get blocked, preventing the deletion from\ntaking place.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "8fba10a42d191de612e60e7009c8f0313f90a9b3",
      "tree": "1e772fcc7ad3eb5bb3ca1c6cd156171295e6db25",
      "parents": [
        "6b8268b17a1ffc942bc72d7d00274e433d6b6719"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:51 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:51 2009 +0000"
      },
      "message": "SLOW_WORK: Allow the work items to be viewed through a /proc file\n\nAllow the executing and queued work items to be viewed through a /proc file\nfor debugging purposes.  The contents look something like the following:\n\n    THR PID   ITEM ADDR        FL MARK  DESC\n    \u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      0  3005 ffff880023f52348  a 952ms FSC: OBJ17d3: LOOK\n      1  3006 ffff880024e33668  2 160ms FSC: OBJ17e5 OP60d3b: Write1/Store fl\u003d2\n      2  3165 ffff8800296dd180  a 424ms FSC: OBJ17e4: LOOK\n      3  4089 ffff8800262c8d78  a 212ms FSC: OBJ17ea: CRTN\n      4  4090 ffff88002792bed8  2 388ms FSC: OBJ17e8 OP60d36: Write1/Store fl\u003d2\n      5  4092 ffff88002a0ef308  2 388ms FSC: OBJ17e7 OP60d2e: Write1/Store fl\u003d2\n      6  4094 ffff88002abaf4b8  2 132ms FSC: OBJ17e2 OP60d4e: Write1/Store fl\u003d2\n      7  4095 ffff88002bb188e0  a 388ms FSC: OBJ17e9: CRTN\n    vsq     - ffff880023d99668  1 308ms FSC: OBJ17e0 OP60f91: Write1/EnQ fl\u003d2\n    vsq     - ffff8800295d1740  1 212ms FSC: OBJ16be OP4d4b6: Write1/EnQ fl\u003d2\n    vsq     - ffff880025ba3308  1 160ms FSC: OBJ179a OP58dec: Write1/EnQ fl\u003d2\n    vsq     - ffff880024ec83e0  1 160ms FSC: OBJ17ae OP599f2: Write1/EnQ fl\u003d2\n    vsq     - ffff880026618e00  1 160ms FSC: OBJ17e6 OP60d33: Write1/EnQ fl\u003d2\n    vsq     - ffff880025a2a4b8  1 132ms FSC: OBJ16a2 OP4d583: Write1/EnQ fl\u003d2\n    vsq     - ffff880023cbe6d8  9 212ms FSC: OBJ17eb: LOOK\n    vsq     - ffff880024d37590  9 212ms FSC: OBJ17ec: LOOK\n    vsq     - ffff880027746cb0  9 212ms FSC: OBJ17ed: LOOK\n    vsq     - ffff880024d37ae8  9 212ms FSC: OBJ17ee: LOOK\n    vsq     - ffff880024d37cb0  9 212ms FSC: OBJ17ef: LOOK\n    vsq     - ffff880025036550  9 212ms FSC: OBJ17f0: LOOK\n    vsq     - ffff8800250368e0  9 212ms FSC: OBJ17f1: LOOK\n    vsq     - ffff880025036aa8  9 212ms FSC: OBJ17f2: LOOK\n\nIn the \u0027THR\u0027 column, executing items show the thread they\u0027re occupying and\nqueued threads indicate which queue they\u0027re on.  \u0027PID\u0027 shows the process ID of\na slow-work thread that\u0027s executing something.  \u0027FL\u0027 shows the work item flags.\n\u0027MARK\u0027 indicates how long since an item was queued or began executing.  Lastly,\nthe \u0027DESC\u0027 column permits the owner of an item to give some information.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6b8268b17a1ffc942bc72d7d00274e433d6b6719",
      "tree": "bd293facd4b805fc05588fcaf024e964a0bb1cca",
      "parents": [
        "0160950297c08f8233c89b9f9e7dd59cfb080809"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 19 18:10:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:47 2009 +0000"
      },
      "message": "SLOW_WORK: Add delayed_slow_work support\n\nThis adds support for starting slow work with a delay, similar\nto the functionality we have for workqueues.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "0160950297c08f8233c89b9f9e7dd59cfb080809",
      "tree": "4910bfb7ab5b4000a1679fd165d217ff48226268",
      "parents": [
        "4d8bb2cbccf6dccaada509aafeb01c6205c9d8c4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 19 18:10:43 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:43 2009 +0000"
      },
      "message": "SLOW_WORK: Add support for cancellation of slow work\n\nAdd support for cancellation of queued slow work and delayed slow work items.\nThe cancellation functions will wait for items that are pending or undergoing\nexecution to be discarded by the slow work facility.\n\nAttempting to enqueue work that is in the process of being cancelled will\nresult in ECANCELED.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3d7a641e544e428191667e8b1f83f96fa46dbd65",
      "tree": "172aa672eca96b94f5531885b82abb82b43c7d8a",
      "parents": [
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Nov 19 18:10:23 2009 +0000"
      },
      "message": "SLOW_WORK: Wait for outstanding work items belonging to a module to clear\n\nWait for outstanding slow work items belonging to a module to clear when\nunregistering that module as a user of the facility.  This prevents the put_ref\ncode of a work item from being taken away before it returns.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "486bfe5c7ca6184f35b93b9f2bf3fa3baa1b65e4",
      "tree": "3cec2570aca8ec88da087398d0bdd52054dfa697",
      "parents": [
        "5cbb0601bfddfc55d6ea409651313c13e3d6e90a",
        "70e3bb504ccfe6ba725ab120bdb516d205d834f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 18 14:54:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 18 14:54:45 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)\n  cxgb3: fix premature page unmap\n  ibm_newemac: Fix EMACx_TRTR[TRT] bit shifts\n  vlan: Fix register_vlan_dev() error path\n  gro: Fix illegal merging of trailer trash\n  sungem: Fix Serdes detection.\n  net: fix mdio section mismatch warning\n  ppp: fix BUG on non-linear SKB (multilink receive)\n  ixgbe: Fixing EEH handler to handle more than one error\n  net: Fix the rollback test in dev_change_name()\n  Revert \"isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation.\"\n  TI Davinci EMAC : Fix Console Hang when bringing the interface down\n  smsc911x: Fix Console Hang when bringing the interface down.\n  mISDN: fix error return in HFCmulti_init()\n  forcedeth: mac address fix\n  r6040: fix version printing\n  Bluetooth: Fix regression with L2CAP configuration in Basic Mode\n  Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET\n  Bluetooth: Set general bonding security for ACL by default\n  r8169: Fix receive buffer length when MTU is between 1515 and 1536\n  can: add the missing netlink get_xstats_size callback\n  ...\n"
    },
    {
      "commit": "2ea6dec4a22a6f66f6633876212fd4d195cf8277",
      "tree": "f630c63a9e20fab5b31caa88368293a203103408",
      "parents": [
        "72f279b256d520e321a850880d094bc0bcbf45d6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 17 14:27:27 2009 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 18 14:52:25 2009 +0100"
      },
      "message": "generic-ipi: Add smp_call_function_any()\n\nAndrew points out that acpi-cpufreq uses cpumask_any, when it really\nwould prefer to use the same CPU if possible (to avoid an IPI).  In\ngeneral, this seems a good idea to offer.\n\n[ tglx: Documented selection preference and Inlined the UP case to\n  \tavoid the copy of smp_call_function_single() and the extra\n  \tEXPORT ]\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Zhao Yakui \u003cyakui.zhao@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6ad696d2cf535772dff659298ec7e7260e344595",
      "tree": "2f4d4d088a7bc8203473dcb96a1d1f0591f3de94",
      "parents": [
        "9398180097e359646d46083c3e079a54e20bee82"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Nov 17 14:06:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "mm: allow memory hotplug and hibernation in the same kernel\n\nAllow memory hotplug and hibernation in the same kernel\n\nMemory hotplug and hibernation were exclusive in Kconfig.  This is\nobviously a problem for distribution kernels who want to support both in\nthe same image.\n\nAfter some discussions with Rafael and others the only problem is with\nparallel memory hotadd or removal while a hibernation operation is in\nprocess.  It was also working for s390 before.\n\nThis patch removes the Kconfig level exclusion, and simply makes the\nmemory add / remove functions grab the pm_mutex to exclude against\nhibernation.\n\nFixes a regression - old kernels didn\u0027t exclude memory hotadd and\nhibernation.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82abc2a97a4a3c7635c40e6dff571816062ec506",
      "tree": "bdafbd1d1030a1d4717b52d07d8d0c3a37e8a693",
      "parents": [
        "cb20c28a9c41052c2d7220325dae60c16f417ded",
        "18dafac1a4c6c88867a50f9a82492976f20383d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 09:15:18 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:\n  nilfs2: deleted inconsistent comment in nilfs_load_inode_block()\n  nilfs2: deleted struct nilfs_dat_group_desc\n  nilfs2: fix lock order reversal in chcp operation\n"
    },
    {
      "commit": "a7b63425a41cd6a8d50f76fef0660c5110f97e91",
      "tree": "be17ee121f1c8814d8d39c9f3e0205d9397fab54",
      "parents": [
        "35039eb6b199749943547c8572be6604edf00229",
        "3726cc75e581c157202da93bb2333cce25c15c98"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 17 10:16:43 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 17 10:17:47 2009 +0100"
      },
      "message": "Merge branch \u0027perf/core\u0027 into perf/probes\n\nResolved merge conflict in tools/perf/Makefile\n\nMerge reason: we want to queue up a dependent patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "99f4c9de2b707795acb215e2e94df7ea266042b5",
      "tree": "6123682a8e0d880feebb690a55b3fb442ef3dee8",
      "parents": [
        "62ad33f67003b9a7b6013f0511579b9805e11626",
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 17 07:51:02 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 17 07:51:07 2009 +0100"
      },
      "message": "Merge commit \u0027v2.6.32-rc7\u0027 into core/iommu\n\nMerge reason: Add fixes we\u0027ll depend on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "559fdc3c1b624edb1933a875022fe7e27934d11c",
      "tree": "b722805dbebd9584ffb981e2be84385ee0e22c67",
      "parents": [
        "7255fe2a42c612f2b8fe4c347f0a5f0c97d85a46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 16 12:45:14 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 16 13:27:45 2009 +0100"
      },
      "message": "perf_event: Optimize perf_output_lock()\n\nThe purpose of perf_output_{un,}lock() is to:\n\n 1) avoid publishing incomplete data\n    [ possible when publishing a head that is ahead of an entry\n      that is still being written ]\n\n 2) guarantee fwd progress\n    [ a simple refcount on pending writers doesn\u0027t need to drop to\n      0, making it so would end up implementing something like forced\n      quiecent states of RCU ]\n\nTo satisfy the above without undue complexity it serializes\nbetween CPUs, this means that a pending writer can only be the\nsame cpu in a nested context, and since (under normal operation)\na cpu always makes progress we\u0027re good -- if the head is only\npublished when the bottom  most writer completes.\n\nNow we don\u0027t need to disable IRQs in order to serialize between\nCPUs, disabling preemption ought to be sufficient, esp since we\nalready deal with nesting due to NMIs.\n\nThis avoids potentially expensive (and needless) local IRQ\ndisable/enable ops.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1258373161.26714.254.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e29d4363174949a7a4e46f670993d7ff43342c1c",
      "tree": "ee0752cb07190784c1738cfa4bf4a2f4522f3ce6",
      "parents": [
        "5bfa2a17f2b79eb6a63c5d47ce89d5798bba086a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:23:47 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 15 22:23:47 2009 -0800"
      },
      "message": "Revert \"isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation.\"\n\nThis reverts commit 38783e671399b5405f1fd177d602c400a9577ae6.\n\nIt causes kernel bugzilla #14594\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ffa798d947f5f5e40690cc9d38e678080a34f87",
      "tree": "a9e25ba4431de513d4c83201429e9ff301cbaf50",
      "parents": [
        "39dc78b6510323848e3356452f7dab9499736978",
        "c86e2eaded39843e1bf4f07d1adfab4494f20894",
        "c5659b74f052150791750234f92dcfb29d27efa5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 15 09:51:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 15 09:51:24 2009 +0100"
      },
      "message": "Merge branches \u0027perf/powerpc\u0027 and \u0027perf/bench\u0027 into perf/core\n\nMerge reason: Both \u0027perf bench\u0027 and the pending PowerPC changes\n              are now ready for the next merge window.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39dc78b6510323848e3356452f7dab9499736978",
      "tree": "cf8a8fede74e41b203fd00e3ccd21ead2e851442",
      "parents": [
        "4c49b12853fbb5eff4849b7b6a1e895776f027a1",
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 15 09:50:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 15 09:50:41 2009 +0100"
      },
      "message": "Merge commit \u0027v2.6.32-rc7\u0027 into perf/core\n\nMerge reason: pick up perf fixlets\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1a7af63108f07637504300671a72432c34e10021",
      "tree": "9cd2e6b79a02ea5c4287adbf063500a51121311b",
      "parents": [
        "c1ea985c710f41e97f1c72c29bbf367375370f0b"
      ],
      "author": {
        "name": "Jiro SEKIBA",
        "email": "jir@unicus.jp",
        "time": "Sun Nov 15 13:49:44 2009 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Sun Nov 15 17:17:38 2009 +0900"
      },
      "message": "nilfs2: deleted struct nilfs_dat_group_desc\n\nstruct nilfs_dat_group_desc is not used both in kernel and user spaces.\nstruct nilfs_palloc_group_desc is used instead.\n\nSigned-off-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "6959450e567c1f17d3ce8489099fc56c3721d577",
      "tree": "603c327a7b8e246cea3e51ab87ac11660c309060",
      "parents": [
        "94a15564ac63af6bb2ff8d4d04f86d5e7ee0278a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Nov 14 20:46:38 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 15 09:03:10 2009 +0100"
      },
      "message": "swiotlb: Remove duplicate swiotlb_force extern declarations\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: tony.luck@intel.com\nLKML-Reference: \u003c1258199198-16657-4-git-send-email-fujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd4ca27d3dedfff09000586e4ae67771608696a0",
      "tree": "8ebf6b0b4b2e52585c4853d192c47d1866ec7ec6",
      "parents": [
        "0e70613b1c26bf23909d0e778de52d0cc6d88835",
        "3d4c3aa938fcbfee1c7a6d66ee23288448fb97e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 13:00:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 14 13:00:17 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: psmouse - remove unneeded \u0027\\n\u0027 from psmouse.proto parameter\n  Input: atkbd - restore LED state at reconnect\n  Input: force LED reset on resume\n  Input: fix locking in memoryless force-feedback devices\n"
    },
    {
      "commit": "4c49b12853fbb5eff4849b7b6a1e895776f027a1",
      "tree": "77af066a0e0798725818d546d758ea14d442e944",
      "parents": [
        "67178767b936fb47a3a5e88097cff41ccbda7acb"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Fri Nov 13 21:47:33 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 10:23:52 2009 +0100"
      },
      "message": "perf_event: Fix invalid type in ioctl definition\n\nu64 is invalid in userspace headers, including ioctl\ndefinitions; use __u64 instead\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c20091113214733.7cd76be9@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "688bcaff291cf2fe2734e43f2793d4d05b850518",
      "tree": "95078fb51e922800c568b1a33b65608f924eb154",
      "parents": [
        "687b16fb617bd446439425a368ad7c7bbd202c73"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 01:12:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 01:29:17 2009 +0100"
      },
      "message": "hw-breakpoints: Fix build on !perf architectures\n\nthe arch/alpha build fails with:\n\n In file included from tip/kernel/exit.c:52:\n tip/include/linux/hw_breakpoint.h: In function \u0027hw_breakpoint_addr\u0027:\n tip/include/linux/hw_breakpoint.h:21: error: \u0027struct perf_event\u0027 has no member named \u0027attr\u0027\n [...]\n\nMove these helper inlines inside the CONFIG_HAVE_HW_BREAKPOINT ifdef.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258114575-32655-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "687b16fb617bd446439425a368ad7c7bbd202c73",
      "tree": "1c0eaf832ed47273daa435b4329bed104accea85",
      "parents": [
        "59d8eb53ea9947db7cad8ebc31b0fb54f23a9851"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 13 13:16:15 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 00:27:38 2009 +0100"
      },
      "message": "hw-breakpoints: Provide an off-case for counter_arch_bp()\n\nIf an arch doesn\u0027t support the hw breakpoints, counter_arch_bp()\nhas no off case to cover the missing breakpoint info structure\nfrom the perf event. The result is a build error in non-x86\nconfigs.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1258114575-32655-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6beb000923882f6204ea2cfcd932e568e900803f",
      "tree": "1849bb1e7493bbf5e538d74cec18c6d6f4b16ced",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 09 15:21:34 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:53:28 2009 +0100"
      },
      "message": "locking: Make inlining decision Kconfig based\n\ncommit 892a7c67 (locking: Allow arch-inlined spinlocks) implements the\nselection of which lock functions are inlined based on defines in\narch/.../spinlock.h: #define __always_inline__LOCK_FUNCTION\n\nDespite of the name __always_inline__* the lock functions can be built\nout of line depending on config options. Also if the arch does not set\nsome inline defines the generic code might set them; again depending on\nconfig options.\n\nThis makes it unnecessary hard to figure out when and which lock\nfunctions are inlined. Aside of that it makes it way harder and\nmessier for -rt to manipulate the lock functions.\n\nConvert the inlining decision to CONFIG switches. Each lock function\nis inlined depending on CONFIG_INLINE_*. The configs implement the\nexisting dependencies. The architecture code can select ARCH_INLINE_*\nto signal that it wants the corresponding lock function inlined.\nARCH_INLINE_* is necessary as Kconfig ignores \"depends on\"\nrestrictions when a config element is selected.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091109151428.504477141@linutronix.de\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "b87e5e2b8ed9336566100c8c796ab6dd52436881",
      "tree": "a55dc24691745c5a2029b8596352a62554864d28",
      "parents": [
        "80647b959f97fa20a4714dde3e07b7f69d896556"
      ],
      "author": {
        "name": "Lennert Buytenhek",
        "email": "buytenh@wantstofly.org",
        "time": "Wed Nov 11 14:26:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:57 2009 -0800"
      },
      "message": "serial: add support for the Lava Quattro PCI quad-port 16550A card\n\nThis seems to be a different model (with a different PCI ID) than the\n\"Quatro\" card that is also in the list.\n\nSigned-off-by: Lennert Buytenhek \u003cbuytenh@wantstofly.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5c15d0b37ab1cd3969b8ce7828ab41c79f36f77",
      "tree": "a12aaef93ef8cc75eb5488294c64c5bf9d01546c",
      "parents": [
        "9d0ed60fe9cd1fbf57f755cd27a23ae9114d7210"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Wed Nov 11 14:26:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:56 2009 -0800"
      },
      "message": "fb: remove fb_save_state() and fb_restore_state operations\n\nRemove fb_save_state() and fb_restore_state operations from frame buffer layer.\nThey are used only in two drivers:\n1. savagefb  - and cause bug #11248\n2. uvesafb\n\nUsage of these operations is misunderstood in both drivers so kill these\noperations, fix the bug #11248 and avoid confusion in the future.\n\nTested on Savage 3D/MV card and the patch fixes the bug #11248.\n\nThe frame buffer layer uses these funtions during switch between graphics\nand text mode of the console, but these drivers saves state before\nswitching of the frame buffer (in the fb_open) and after releasing it (in\nthe fb_release).  This defeats the purpose of these operations.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d11248\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nReported-by: Jochen Hein \u003cjochen@jochen.org\u003e\nTested-by: Jochen Hein \u003cjochen@jochen.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe8bc91c4c30122b357d197117705cfd4fabaf28",
      "tree": "33e2895847d812204209444db4093af9a2c3623d",
      "parents": [
        "ea0174a7137c8ca9f130ca681f3a99c872da6778"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Oct 16 19:26:15 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 11 15:22:49 2009 +0100"
      },
      "message": "ext3: Wait for proper transaction commit on fsync\n\nWe cannot rely on buffer dirty bits during fsync because pdflush can come\nbefore fsync is called and clear dirty bits without forcing a transaction\ncommit. What we do is that we track which transaction has last changed\nthe inode and which transaction last changed allocation and force it to\ndisk on fsync.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bf3204cbff7d2606e758afb0994e8da6ae1c6c26",
      "tree": "01951b829d2af6a52b82bec35cc05261dcf77fe2",
      "parents": [
        "558a5e296a02266ef43d6e933ee35df9976de987"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Nov 06 21:39:07 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 10 21:13:32 2009 -0800"
      },
      "message": "Input: fix locking in memoryless force-feedback devices\n\nNow that input core acquires dev-\u003eevent_lock spinlock and disables\ninterrupts when propagating input events, using spin_lock_bh() in\nff-memless driver is not allowed. Actually, the timer_lock itself\nis not needed anymore, we should simply use dev-\u003eevent_lock\nas well.\n\nAlso do a small cleanup in force-feedback core.\n\nReported-by: kerneloops.org\nReported-by: http://www.kerneloops.org/searchweek.php?search\u003dml_ff_set_gain\nReported-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ad32e8cb86e7894aac51c8963eaa9f36bb8a4e14",
      "tree": "4dce812e83de8bd130fd141afc1229b38b483736",
      "parents": [
        "5740afdb68abadc473fd5392df733558a58c1254"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Nov 10 19:46:19 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 12:32:00 2009 +0100"
      },
      "message": "swiotlb: Defer swiotlb init printing, export swiotlb_print_info()\n\nThis enables us to avoid printing swiotlb memory info when we\ninitialize swiotlb. After swiotlb initialization, we could find\nthat we don\u0027t need swiotlb.\n\nThis patch removes the code to print swiotlb memory info in\nswiotlb_init() and exports the function to do that.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: chrisw@sous-sol.org\nCc: dwmw2@infradead.org\nCc: joerg.roedel@amd.com\nCc: muli@il.ibm.com\nCc: tony.luck@intel.com\nCc: benh@kernel.crashing.org\nLKML-Reference: \u003c1257849980-22640-9-git-send-email-fujita.tomonori@lab.ntt.co.jp\u003e\n[ -v2: merge up conflict ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5740afdb68abadc473fd5392df733558a58c1254",
      "tree": "82f87512446607118d48b0e6db9f011abd5e1124",
      "parents": [
        "9f993ac3f708b661207ed7de521f245586217a68"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Nov 10 19:46:18 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 12:31:52 2009 +0100"
      },
      "message": "swiotlb: Add swiotlb_free() function\n\nswiotlb_free() function frees all allocated memory for swiotlb.\n\nWe need to initialize swiotlb before IOMMU initialization (x86\nand powerpc needs to allocate memory from bootmem allocator). If\nIOMMU initialization is successful, we need to free swiotlb\nresource (don\u0027t want to waste 64MB).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: chrisw@sous-sol.org\nCc: dwmw2@infradead.org\nCc: joerg.roedel@amd.com\nCc: muli@il.ibm.com\nLKML-Reference: \u003c1257849980-22640-8-git-send-email-fujita.tomonori@lab.ntt.co.jp\u003e\n[ -v2: build fix for the !CONFIG_SWIOTLB case ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f993ac3f708b661207ed7de521f245586217a68",
      "tree": "f9565a41efe0cc2dfde6d84c8a6bdf310799ffea",
      "parents": [
        "9d5ce73a64be2be8112147a3e0b551ad9cd1247b"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Nov 10 19:46:17 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 12:31:43 2009 +0100"
      },
      "message": "bootmem: Add free_bootmem_late()\n\nAdd a new function for freeing bootmem after the bootmem\nallocator has been released and the unreserved pages given to\nthe page allocator.\n\nThis allows us to reserve bootmem and then release it if we\nlater discover it was not needed.\n\n( This new API will be used by the swiotlb code to recover\n  a significant amount of RAM (64MB). )\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: chrisw@sous-sol.org\nCc: dwmw2@infradead.org\nCc: joerg.roedel@amd.com\nCc: muli@il.ibm.com\nCc: hannes@cmpxchg.org\nCc: tj@kernel.org\nCc: akpm@linux-foundation.org\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c1257849980-22640-7-git-send-email-fujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d5ce73a64be2be8112147a3e0b551ad9cd1247b",
      "tree": "8593dc2ca29e95b1a25e6f677459f3fe5c68dee9",
      "parents": [
        "ea1b0d3945c7374849235b6ecaea1191ee1d9d50"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Nov 10 19:46:16 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 12:31:36 2009 +0100"
      },
      "message": "x86: intel-iommu: Convert detect_intel_iommu to use iommu_init hook\n\nThis changes detect_intel_iommu() to set intel_iommu_init() to\niommu_init hook if detect_intel_iommu() finds the IOMMU.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: chrisw@sous-sol.org\nCc: dwmw2@infradead.org\nCc: joerg.roedel@amd.com\nCc: muli@il.ibm.com\nLKML-Reference: \u003c1257849980-22640-6-git-send-email-fujita.tomonori@lab.ntt.co.jp\u003e\n[ -v2: build fix for the !CONFIG_DMAR case ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd8dbf2e6880e30c00b18600c962d0cb5a03c555",
      "tree": "24835aaf40cec5ceb2aeecccde9240ee173f70f1",
      "parents": [
        "6e65f92ff0d6f18580737321718d09035085a3fb"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Nov 03 16:35:32 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 10 09:33:46 2009 +1100"
      },
      "message": "security: report the module name to security_module_request\n\nFor SELinux to do better filtering in userspace we send the name of the\nmodule along with the AVC denial when a program is denied module_request.\n\nExample output:\n\ntype\u003dSYSCALL msg\u003daudit(11/03/2009 10:59:43.510:9) : arch\u003dx86_64 syscall\u003dwrite success\u003dyes exit\u003d2 a0\u003d3 a1\u003d7fc28c0d56c0 a2\u003d2 a3\u003d7fffca0d7440 items\u003d0 ppid\u003d1727 pid\u003d1729 auid\u003dunset uid\u003droot gid\u003droot euid\u003droot suid\u003droot fsuid\u003droot egid\u003droot sgid\u003droot fsgid\u003droot tty\u003d(none) ses\u003dunset comm\u003drpc.nfsd exe\u003d/usr/sbin/rpc.nfsd subj\u003dsystem_u:system_r:nfsd_t:s0 key\u003d(null)\ntype\u003dAVC msg\u003daudit(11/03/2009 10:59:43.510:9) : avc:  denied  { module_request } for  pid\u003d1729 comm\u003drpc.nfsd kmod\u003d\"net-pf-10\" scontext\u003dsystem_u:system_r:nfsd_t:s0 tcontext\u003dsystem_u:system_r:kernel_t:s0 tclass\u003dsystem\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "24f1e32c60c45c89a997c73395b69c8af6f0a84e",
      "tree": "4f30f16e18cb4abbcf96b3b331e6a3f01bfa26e6",
      "parents": [
        "2da3e160cb3d226d87b907fab26850d838ed8d7c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 09 19:22:48 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 08 15:34:42 2009 +0100"
      },
      "message": "hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf events\n\nThis patch rebase the implementation of the breakpoints API on top of\nperf events instances.\n\nEach breakpoints are now perf events that handle the\nregister scheduling, thread/cpu attachment, etc..\n\nThe new layering is now made as follows:\n\n       ptrace       kgdb      ftrace   perf syscall\n          \\          |          /         /\n           \\         |         /         /\n                                        /\n            Core breakpoint API        /\n                                      /\n                     |               /\n                     |              /\n\n              Breakpoints perf events\n\n                     |\n                     |\n\n               Breakpoints PMU ---- Debug Register constraints handling\n                                    (Part of core breakpoint API)\n                     |\n                     |\n\n             Hardware debug registers\n\nReasons of this rewrite:\n\n- Use the centralized/optimized pmu registers scheduling,\n  implying an easier arch integration\n- More powerful register handling: perf attributes (pinned/flexible\n  events, exclusive/non-exclusive, tunable period, etc...)\n\nImpact:\n\n- New perf ABI: the hardware breakpoints counters\n- Ptrace breakpoints setting remains tricky and still needs some per\n  thread breakpoints references.\n\nTodo (in the order):\n\n- Support breakpoints perf counter events for perf tools (ie: implement\n  perf_bpcounter_event())\n- Support from perf tools\n\nChanges in v2:\n\n- Follow the perf \"event \" rename\n- The ptrace regression have been fixed (ptrace breakpoint perf events\n  weren\u0027t released when a task ended)\n- Drop the struct hw_breakpoint and store generic fields in\n  perf_event_attr.\n- Separate core and arch specific headers, drop\n  asm-generic/hw_breakpoint.h and create linux/hw_breakpoint.h\n- Use new generic len/type for breakpoint\n- Handle off case: when breakpoints api is not supported by an arch\n\nChanges in v3:\n\n- Fix broken CONFIG_KVM, we need to propagate the breakpoint api\n  changes to kvm when we exit the guest and restore the bp registers\n  to the host.\n\nChanges in v4:\n\n- Drop the hw_breakpoint_restore() stub as it is only used by KVM\n- EXPORT_SYMBOL_GPL hw_breakpoint_restore() as KVM can be built as a\n  module\n- Restore the breakpoints unconditionally on kvm guest exit:\n  TIF_DEBUG_THREAD doesn\u0027t anymore cover every cases of running\n  breakpoints and vcpu-\u003earch.switch_db_regs might not always be\n  set when the guest used debug registers.\n  (Waiting for a reliable optimization)\n\nChanges in v5:\n\n- Split-up the asm-generic/hw-breakpoint.h moving to\n  linux/hw_breakpoint.h into a separate patch\n- Optimize the breakpoints restoring while switching from kvm guest\n  to host. We only want to restore the state if we have active\n  breakpoints to the host, otherwise we don\u0027t care about messed-up\n  address registers.\n- Add asm/hw_breakpoint.h to Kbuild\n- Fix bad breakpoint type in trace_selftest.c\n\nChanges in v6:\n\n- Fix wrong header inclusion in trace.h (triggered a build\n  error with CONFIG_FTRACE_SELFTEST\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "444a2a3bcd6d5bed5c823136f68fcc93c0fe283f",
      "tree": "6a57308586b4e723238646074e79298845803520",
      "parents": [
        "09879b99d44d701c603935ef2549004405d7f8f9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 06 04:13:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 08 10:31:42 2009 +0100"
      },
      "message": "tracing, perf_events: Protect the buffer from recursion in perf\n\nWhile tracing using events with perf, if one enables the\nlockdep:lock_acquire event, it will infect every other perf\ntrace events.\n\nBasically, you can enable whatever set of trace events through\nperf but if this event is part of the set, the only result we\ncan get is a long list of lock_acquire events of rcu read lock,\nand only that.\n\nThis is because of a recursion inside perf.\n\n1) When a trace event is triggered, it will fill a per cpu\n   buffer and submit it to perf.\n\n2) Perf will commit this event but will also protect some data\n   using rcu_read_lock\n\n3) A recursion appears: rcu_read_lock triggers a lock_acquire\n   event that will fill the per cpu event and then submit the\n   buffer to perf.\n\n4) Perf detects a recursion and ignores it\n\n5) Perf continues its work on the previous event, but its buffer\n   has been overwritten by the lock_acquire event, it has then\n   been turned into a lock_acquire event of rcu read lock\n\nSuch scenario also happens with lock_release with\nrcu_read_unlock().\n\nWe could turn the rcu_read_lock() into __rcu_read_lock() to drop\nthe lock debugging from perf fast path, but that would make us\nlose the rcu debugging and that doesn\u0027t prevent from other\npossible kind of recursion from perf in the future.\n\nThis patch adds a recursion protection based on a counter on the\nperf trace per cpu buffers to solve the problem.\n\n-v2: Fixed lost whitespace, added reviewed-by tag\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c1257477185-7838-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "afa08974fe80c198b8650f73ed8ab59135ca10d0"
}
