)]}'
{
  "log": [
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "dc43d9fa73d82083656fb9c02f4823bcdcfb9f91",
      "tree": "f5303b6d7ff3e0157ab3312b5dc3182785972fec",
      "parents": [
        "80775068dbcf849dca81316e43bcc309985956ac",
        "50c31e4a2497ea17747b587e8f96b278f07f5483"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:04:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 17:04:04 2011 -0700"
      },
      "message": "Merge branch \u0027x86-mtrr-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mtrr-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, mtrr: Use pci_dev-\u003erevision\n  x86, mtrr: use stop_machine APIs for doing MTRR rendezvous\n  stop_machine: implement stop_machine_from_inactive_cpu()\n  stop_machine: reorganize stop_cpus() implementation\n  x86, mtrr: lock stop machine during MTRR rendezvous sequence\n"
    },
    {
      "commit": "112ec469663e09ffc815761254b52f3ca787ce83",
      "tree": "18a7d2300dc10b7c2c994107681dffc927589701",
      "parents": [
        "a99a7d1436f9375662f35ccac8f1a1e1b0302a11",
        "cbaa51524b3224813814607177a00c350ee35d12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:52:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:52:18 2011 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  time: Fix stupid KERN_WARN compile issue\n  rtc: Avoid accumulating time drift in suspend/resume\n  time: Avoid accumulating time drift in suspend/resume\n  time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime\n"
    },
    {
      "commit": "bdc7ccfc0631797636837b10df7f87bc1e2e4ae3",
      "tree": "70f09f8ffee07486d41ca254b8abb05692713d1e",
      "parents": [
        "4d4abdcb1dee03a4f9d6d2021622ed07e14dfd17",
        "0f3171438fc917b9f6b8b60dbb7a3fff9a0f68fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:45:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:45:02 2011 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)\n  sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair\n  sched: Replace use of entity_key()\n  sched: Separate group-scheduling code more clearly\n  sched: Reorder root_domain to remove 64 bit alignment padding\n  sched: Do not attempt to destroy uninitialized rt_bandwidth\n  sched: Remove unused function cpu_cfs_rq()\n  sched: Fix (harmless) typo \u0027CONFG_FAIR_GROUP_SCHED\u0027\n  sched, cgroup: Optimize load_balance_fair()\n  sched: Don\u0027t update shares twice on on_rq parent\n  sched: update correct entity\u0027s runtime in check_preempt_wakeup()\n  xtensa: Use generic config PREEMPT definition\n  h8300: Use generic config PREEMPT definition\n  m32r: Use generic PREEMPT config\n  sched: Skip autogroup when looking for all rt sched groups\n  sched: Simplify mutex_spin_on_owner()\n  sched: Remove rcu_read_lock() from wake_affine()\n  sched: Generalize sleep inside spinlock detection\n  sched: Make sleeping inside spinlock detection working in !CONFIG_PREEMPT\n  sched: Isolate preempt counting in its own config option\n  sched: Remove pointless in_atomic() definition check\n  ...\n"
    },
    {
      "commit": "4d4abdcb1dee03a4f9d6d2021622ed07e14dfd17",
      "tree": "4ed4c74b70240451065165fda5fb2059f8c6b1e5",
      "parents": [
        "0342cbcfced2ee937d7c8e1c63f3d3082da7c7dc",
        "7fcfd1abd6480d3b9ef17f5759c175e036e835cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:39 2011 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (123 commits)\n  perf: Remove the nmi parameter from the oprofile_perf backend\n  x86, perf: Make copy_from_user_nmi() a library function\n  perf: Remove perf_event_attr::type check\n  x86, perf: P4 PMU - Fix typos in comments and style cleanup\n  perf tools: Make test use the preset debugfs path\n  perf tools: Add automated tests for events parsing\n  perf tools: De-opt the parse_events function\n  perf script: Fix display of IP address for non-callchain path\n  perf tools: Fix endian conversion reading event attr from file header\n  perf tools: Add missing \u0027node\u0027 alias to the hw_cache[] array\n  perf probe: Support adding probes on offline kernel modules\n  perf probe: Add probed module in front of function\n  perf probe: Introduce debuginfo to encapsulate dwarf information\n  perf-probe: Move dwarf library routines to dwarf-aux.{c, h}\n  perf probe: Remove redundant dwarf functions\n  perf probe: Move strtailcmp to string.c\n  perf probe: Rename DIE_FIND_CB_FOUND to DIE_FIND_CB_END\n  tracing/kprobe: Update symbol reference when loading module\n  tracing/kprobes: Support module init function probing\n  kprobes: Return -ENOENT if probe point doesn\u0027t exist\n  ...\n"
    },
    {
      "commit": "0342cbcfced2ee937d7c8e1c63f3d3082da7c7dc",
      "tree": "fb98291d321a50de2dfd99f9bcaa33274f0c3952",
      "parents": [
        "391d6276db9fbdedfbc30e1b56390414f0e55988",
        "7f70893173b056df691b2ee7546bb44fd9abae6a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:44:08 2011 -0700"
      },
      "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:\n  rcu: Fix wrong check in list_splice_init_rcu()\n  net,rcu: Convert call_rcu(xt_rateest_free_rcu) to kfree_rcu()\n  sysctl,rcu: Convert call_rcu(free_head) to kfree\n  vmalloc,rcu: Convert call_rcu(rcu_free_vb) to kfree_rcu()\n  vmalloc,rcu: Convert call_rcu(rcu_free_va) to kfree_rcu()\n  ipc,rcu: Convert call_rcu(ipc_immediate_free) to kfree_rcu()\n  ipc,rcu: Convert call_rcu(free_un) to kfree_rcu()\n  security,rcu: Convert call_rcu(sel_netport_free) to kfree_rcu()\n  security,rcu: Convert call_rcu(sel_netnode_free) to kfree_rcu()\n  ia64,rcu: Convert call_rcu(sn_irq_info_free) to kfree_rcu()\n  block,rcu: Convert call_rcu(disk_free_ptbl_rcu_cb) to kfree_rcu()\n  scsi,rcu: Convert call_rcu(fc_rport_free_rcu) to kfree_rcu()\n  audit_tree,rcu: Convert call_rcu(__put_tree) to kfree_rcu()\n  security,rcu: Convert call_rcu(whitelist_item_free) to kfree_rcu()\n  md,rcu: Convert call_rcu(free_conf) to kfree_rcu()\n"
    },
    {
      "commit": "391d6276db9fbdedfbc30e1b56390414f0e55988",
      "tree": "d22cd2482f5452d616ee981e954074ffc6ae094d",
      "parents": [
        "75b56ec294b074d70f8a676ab02611a3fea76cab",
        "dd4e5d3ac4a76b868daf30e35bd572def96c30ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:49 2011 -0700"
      },
      "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  lockdep: Fix trace_[soft,hard]irqs_[on,off]() recursion\n  printk: Fix console_sem vs logbuf_lock unlock race\n  printk: Release console_sem after logbuf_lock\n"
    },
    {
      "commit": "75b56ec294b074d70f8a676ab02611a3fea76cab",
      "tree": "d5299adb43ac6fc8dcc50c3e438c7f0cdd452b1c",
      "parents": [
        "6d16d6d9bb6f93e6f8506cfb3e91795d6443d54f",
        "efbe2eee6dc0f179be84292bf269528b3ec365e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:21 2011 -0700"
      },
      "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  lockdep: Fix lockdep_no_validate against IRQ states\n  mutex: Make mutex_destroy() an inline function\n  plist: Remove the need to supply locks to plist heads\n  lockup detector: Fix reference to the non-existent CONFIG_DETECT_SOFTLOCKUP option\n"
    },
    {
      "commit": "431bf99d26157d56689e5de65bd27ce9f077fc3f",
      "tree": "b15e357039956fcdd0e0e6177d2fc99bb3cfa822",
      "parents": [
        "72f96e0e38d7e29ba16dcfd824ecaebe38b8293e",
        "7ae033cc0dfce68d8e0c83aca60837cf2bf0d2e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:01:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:01:57 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (51 commits)\n  PM: Improve error code of pm_notifier_call_chain()\n  PM: Add \"RTC\" to PM trace time stamps to avoid confusion\n  PM / Suspend: Export suspend_set_ops, suspend_valid_only_mem\n  PM / Suspend: Add .suspend_again() callback to suspend_ops\n  PM / OPP: Introduce function to free cpufreq table\n  ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active\n  PM / Domains: Take .power_off() error code into account\n  ARM / shmobile: Use genpd_queue_power_off_work()\n  ARM / shmobile: Use pm_genpd_poweroff_unused()\n  PM / Domains: Introduce function to power off all unused PM domains\n  OMAP: PM: disable idle on suspend for GPIO and UART\n  OMAP: PM: omap_device: add API to disable idle on suspend\n  OMAP: PM: omap_device: add system PM methods for PM domain handling\n  OMAP: PM: omap_device: conditionally use PM domain runtime helpers\n  PM / Runtime: Add new helper function: pm_runtime_status_suspended()\n  PM / Domains: Queue up power off work only if it is not pending\n  PM / Domains: Improve handling of wakeup devices during system suspend\n  PM / Domains: Do not restore all devices on power off error\n  PM / Domains: Allow callbacks to execute all runtime PM helpers\n  PM / Domains: Do not execute device callbacks under locks\n  ...\n"
    },
    {
      "commit": "5a791ea4fa4495f7136679cb5366f6544148e613",
      "tree": "dc27644add7d5f1165db19c28c25ae842e5f96b2",
      "parents": [
        "8209f53d79444747782a28520187abaf689761f2",
        "9c5a2ba70251ecaab18c7a83e38b3c620223476c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:07:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:07:15 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-3.1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: separate out drain_workqueue() from destroy_workqueue()\n  workqueue: remove cancel_rearming_delayed_work[queue]()\n"
    },
    {
      "commit": "8209f53d79444747782a28520187abaf689761f2",
      "tree": "726270ea29e037f026d77a99787b9d844531ac42",
      "parents": [
        "22a3b9771117d566def0150ea787fcc95f16e724",
        "eac1b5e57d7abc836e78fd3fbcf77dbeed01edc9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:06:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 15:06:50 2011 -0700"
      },
      "message": "Merge branch \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc\n\n* \u0027ptrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc: (39 commits)\n  ptrace: do_wait(traced_leader_killed_by_mt_exec) can block forever\n  ptrace: fix ptrace_signal() \u0026\u0026 STOP_DEQUEUED interaction\n  connector: add an event for monitoring process tracers\n  ptrace: dont send SIGSTOP on auto-attach if PT_SEIZED\n  ptrace: mv send-SIGSTOP from do_fork() to ptrace_init_task()\n  ptrace_init_task: initialize child-\u003ejobctl explicitly\n  has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/\n  ptrace: make former thread ID available via PTRACE_GETEVENTMSG after PTRACE_EVENT_EXEC stop\n  ptrace: wait_consider_task: s/same_thread_group/ptrace_reparented/\n  ptrace: kill real_parent_is_ptracer() in in favor of ptrace_reparented()\n  ptrace: ptrace_reparented() should check same_thread_group()\n  redefine thread_group_leader() as exit_signal \u003e\u003d 0\n  do not change dead_task-\u003eexit_signal\n  kill task_detached()\n  reparent_leader: check EXIT_DEAD instead of task_detached()\n  make do_notify_parent() __must_check, update the callers\n  __ptrace_detach: avoid task_detached(), check do_notify_parent()\n  kill tracehook_notify_death()\n  make do_notify_parent() return bool\n  ptrace: s/tracehook_tracer_task()/ptrace_parent()/\n  ...\n"
    },
    {
      "commit": "951cc93a7493a81a47e20231441bc6cf17c98a37",
      "tree": "f53934f0f225e0215a85c8c59af4c6513e89e3f1",
      "parents": [
        "a7e1aabb28e8154ce987b622fd78d80a1ca39361",
        "415b3334a21aa67806c52d1acf4e72e14f7f402f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 14:43:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 14:43:13 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1287 commits)\n  icmp: Fix regression in nexthop resolution during replies.\n  net: Fix ppc64 BPF JIT dependencies.\n  acenic: include NET_SKB_PAD headroom to incoming skbs\n  ixgbe: convert to ndo_fix_features\n  ixgbe: only enable WoL for magic packet by default\n  ixgbe: remove ifdef check for non-existent define\n  ixgbe: Pass staterr instead of re-reading status and error bits from descriptor\n  ixgbe: Move interrupt related values out of ring and into q_vector\n  ixgbe: add structure for containing RX/TX rings to q_vector\n  ixgbe: inline the ixgbe_maybe_stop_tx function\n  ixgbe: Update ATR to use recorded TX queues instead of CPU for routing\n  igb: Fix for DH89xxCC near end loopback test\n  e1000: always call e1000_check_for_link() on e1000_ce4100 MACs.\n  netxen: add fw version compatibility check\n  be2net: request native mode each time the card is reset\n  ipv4: Constrain UFO fragment sizes to multiples of 8 bytes\n  virtio_net: Fix panic in virtnet_remove\n  ipv6: make fragment identifications less predictable\n  ipv6: unshare inetpeers\n  can: make function can_get_bittiming static\n  ...\n"
    },
    {
      "commit": "0f3171438fc917b9f6b8b60dbb7a3fff9a0f68fd",
      "tree": "9164575614f17bbce9a03128af460e997189a808",
      "parents": [
        "2bd2d6f2dc952fc44fc52887de36e51896da96b9"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Fri Jul 22 09:14:31 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 22 12:47:22 2011 +0200"
      },
      "message": "sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair\n\nNo need to define a new \"cfs_rq\" variable in the \"for\" block.\nJust use the one at the top of the function.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311297271.3938.1352.camel@minggr.sh.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "033b1142f4bd44a116d1356fe4a0510437ceddf9",
      "tree": "d2a971a7dc9f3a1af8035e38419c4c4ad8c22632",
      "parents": [
        "f5caadbb3d8fc0b71533e880c684b2230bdb76ac",
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 21 13:38:42 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 21 13:38:42 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/bluetooth/l2cap_core.c\n"
    },
    {
      "commit": "f5caadbb3d8fc0b71533e880c684b2230bdb76ac",
      "tree": "7a23a2b44f6e043d9cb6ad4245b78da4bd2e14b0",
      "parents": [
        "0ca87f05ba8bdc6791c14878464efc901ad71e99",
        "0f598f0b4c3b2259366cfa8adc01bd8e714c82d0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 21 12:39:35 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 21 12:39:35 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6\n"
    },
    {
      "commit": "efbe2eee6dc0f179be84292bf269528b3ec365e9",
      "tree": "40996bc1d349f1747a5dd0261bdc1c84db2631de",
      "parents": [
        "4582c0a4866ea70c35aa9279e1f91834d3348a93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 07 11:39:45 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 20:43:16 2011 +0200"
      },
      "message": "lockdep: Fix lockdep_no_validate against IRQ states\n\nThomas noticed that a lock marked with lockdep_set_novalidate_class()\nwill still trigger warnings for IRQ inversions. Cure this by skipping\nthose when marking irq state.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-2dp5vmpsxeraqm42kgww6ge2@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9985c20f9e4aee6857c08246b273a3695a52b929",
      "tree": "e2942d148c4cbd51ddcaa8c9b8e47229a31f6e34",
      "parents": [
        "f53173e47dee5f7514d264796bec58d43ed0f67f"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Thu Jun 30 08:09:55 2011 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 20:41:55 2011 +0200"
      },
      "message": "perf: Remove perf_event_attr::type check\n\nPMU type id can be allocated dynamically, so perf_event_attr::type check\nwhen copying attribute from userspace to kernel is not valid.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1309421396-17438-4-git-send-email-ming.m.lin@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bd2d6f2dc952fc44fc52887de36e51896da96b9",
      "tree": "0b08e0ae13cad776cb216a4b85b1eb8d6eda6611",
      "parents": [
        "acb5a9ba3bd7cd8b3264f67a3789a9587d3b935b"
      ],
      "author": {
        "name": "Stephan Baerwolf",
        "email": "stephan.baerwolf@tu-ilmenau.de",
        "time": "Wed Jul 20 14:46:59 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:55 2011 +0200"
      },
      "message": "sched: Replace use of entity_key()\n\n\"entity_key()\" is only used in \"__enqueue_entity()\" and\nits only function is to subtract a tasks vruntime by\nits groups minvruntime.\nBefore this patch a rbtree enqueue-decision is done by\ncomparing two tasks in the style:\n\n\t\"if (entity_key(cfs_rq, se) \u003c entity_key(cfs_rq, entry))\"\n\nwhich would be\n\n\t\"if (se-\u003evruntime-cfs_rq-\u003emin_vruntime \u003c entry-\u003evruntime-cfs_rq-\u003emin_vruntime)\"\n\nor (if reducing cfs_rq-\u003emin_vruntime out)\n\n\t\"if (se-\u003evruntime \u003c entry-\u003evruntime)\"\n\nwhich is\n\n\t\"if (entity_before(se, entry))\"\n\nSo we do not need \"entity_key()\".\nIf \"entity_before()\" is inline we will also save one subtraction (only one,\nbecause \"entity_key(cfs_rq, se)\"  was cached in \"key\")\n\nSigned-off-by: Stephan Baerwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-ns12mnd2h5w8rb9agd8hnsfk@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "acb5a9ba3bd7cd8b3264f67a3789a9587d3b935b",
      "tree": "aa384f35760185200183a0a6f53ec8e4ce1d553f",
      "parents": [
        "26a148eb9c790149750f7e77da0d96029443d400"
      ],
      "author": {
        "name": "Jan H. Schönherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Thu Jul 14 18:32:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:54 2011 +0200"
      },
      "message": "sched: Separate group-scheduling code more clearly\n\nClean up cfs/rt runqueue initialization by moving group scheduling\nrelated code into the corresponding functions.\n\nAlso, keep group scheduling as an add-on, so that things are only done\nadditionally, i. e. remove the init_*_rq() calls from init_tg_*_entry().\n(This removes a redundant initalization during sched_init()).\n\nIn case of group scheduling rt_rq-\u003ehighest_prio.curr is now initialized\ntwice, but adding another #ifdef seems not worth it.\n\nSigned-off-by: Jan H. Schönherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310661163-16606-1-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26a148eb9c790149750f7e77da0d96029443d400",
      "tree": "25d64457be424e6072dd5d7a75c868615dc3b063",
      "parents": [
        "99bc52429f11d1f4f81495ac8237085aaeb6bccf"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri Jul 15 11:41:31 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:52 2011 +0200"
      },
      "message": "sched: Reorder root_domain to remove 64 bit alignment padding\n\nReorder root_domain to remove 8 bytes of alignment padding on 64 bit\nbuilds, this shrinks the size from 1736 to 1728 bytes, therefore using\none fewer cachelines.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310726492.1977.5.camel@castor.rsk\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "99bc52429f11d1f4f81495ac8237085aaeb6bccf",
      "tree": "af5b2f44ceb1382b836dc9171fe296b3d35dd48d",
      "parents": [
        "045176d22f08bc0b650a028df0f62fc3c2747699"
      ],
      "author": {
        "name": "Bianca Lutz",
        "email": "sowilo@cs.tu-berlin.de",
        "time": "Wed Jul 13 20:13:36 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:51 2011 +0200"
      },
      "message": "sched: Do not attempt to destroy uninitialized rt_bandwidth\n\nIf a task group is to be created and alloc_fair_sched_group() fails,\nthen the rt_bandwidth of the corresponding task group is not yet\ninitialized. The caller, sched_create_group(), starts a clean up\nprocedure which calls free_rt_sched_group() which unconditionally\ndestroys the not yet initialized rt_bandwidth.\n\nThis crashes or hangs the system in lock_hrtimer_base(): UP systems\ndereference a NULL pointer, while SMP systems loop endlessly on a\ncondition that cannot become true.\n\nThis patch simply avoids the destruction of rt_bandwidth when the\ninitialization code path was not reached.\n\n(This was discovered by accident with a custom kernel modification.)\n\nSigned-off-by: Bianca Lutz \u003csowilo@cs.tu-berlin.de\u003e\nSigned-off-by: Jan Schoenherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310580816-10861-7-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "045176d22f08bc0b650a028df0f62fc3c2747699",
      "tree": "8dc6dd7afa8b953a593f7302314aa032bd472b36",
      "parents": [
        "5f817d676b7b7ac4a29f5ed93063ae7a24550c12"
      ],
      "author": {
        "name": "Jan Schoenherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Wed Jul 13 20:13:32 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:49 2011 +0200"
      },
      "message": "sched: Remove unused function cpu_cfs_rq()\n\nThe last reference to cpu_cfs_rq() was removed with commit 88ec22d3\n(\"sched: Remove the cfs_rq dependency from set_task_cpu()\"). Thus,\nremove this function, too.\n\nSigned-off-by: Jan Schoenherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310580816-10861-3-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f817d676b7b7ac4a29f5ed93063ae7a24550c12",
      "tree": "5d8c29ac72afb80627ef547f3fa961314494cfe9",
      "parents": [
        "9763b67fb9f3050c6da739105888327587c30c4d"
      ],
      "author": {
        "name": "Jan Schoenherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Wed Jul 13 20:13:31 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:48 2011 +0200"
      },
      "message": "sched: Fix (harmless) typo \u0027CONFG_FAIR_GROUP_SCHED\u0027\n\nThis patch fixes a typo located in a comment.\n\nSigned-off-by: Jan Schoenherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310580816-10861-2-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9763b67fb9f3050c6da739105888327587c30c4d",
      "tree": "822e6a5243c3d872f86d9c9b980896bc4cd8a491",
      "parents": [
        "9598c82dcacadc3b9daa8170613fd054c6124d30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 13 13:09:25 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:46 2011 +0200"
      },
      "message": "sched, cgroup: Optimize load_balance_fair()\n\nUse for_each_leaf_cfs_rq() instead of list_for_each_entry_rcu(), this\nachieves that load_balance_fair() only iterates those task_groups that\nactually have tasks on busiest, and that we iterate bottom-up, trying to\nmove light groups before the heavier ones.\n\nNo idea if it will actually work out to be beneficial in practice, does\nanybody have a cgroup workload that might show a difference one way or\nthe other?\n\n[ Also move update_h_load to sched_fair.c, loosing #ifdef-ery ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/1310557009.2586.28.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9598c82dcacadc3b9daa8170613fd054c6124d30",
      "tree": "1d6c8b5c1aa9882bf9f5f64b68356baf625d23f8",
      "parents": [
        "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Jul 06 22:30:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:44 2011 +0200"
      },
      "message": "sched: Don\u0027t update shares twice on on_rq parent\n\nIn dequeue_task_fair() we bail on dequeue when we encounter a parenting entity\nwith additional weight.  However, we perform a double shares update on this\nentity as we continue the shares update traversal from this point, despite\ndequeue_entity() having already updated its queuing cfs_rq.\nAvoid this by starting from the parent when we resume.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110707053059.797714697@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59",
      "tree": "d787a387a2a2e3d8c0476b79ae57dd217098763f",
      "parents": [
        "994bf1c92270e3d7731ea08f1d1bd7a668314e60"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Tue Jul 05 19:07:21 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:43 2011 +0200"
      },
      "message": "sched: update correct entity\u0027s runtime in check_preempt_wakeup()\n\nWhile looking at check_preempt_wakeup() I realized that we are\npotentially updating the wrong entity in the fair-group scheduling\ncase. In this case the current task\u0027s cfs_rq may not be the same as\nthe one used for the comparison between the waking task and the\nexisting task\u0027s vruntime.\n\nThis potentially results in us using a stale vruntime in the\npre-emption decision, providing a small false preference for the\nprevious task. The effects of this are bounded since we always\nperform a hierarchal update on the tick.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/CAPM31R+2Ke2urUZKao5W92_LupdR4AYEv-EZWiJ3tG\u003dtEes2cw@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "994bf1c92270e3d7731ea08f1d1bd7a668314e60",
      "tree": "4409a21eab486e53fbe350a66e8a4f28b7a720c0",
      "parents": [
        "bd96efe17d945f0bad56d592f8686dc6309905e7",
        "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 17:59:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:00:01 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest scheduler fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a35241803eeb0e9fd3fe27835d6b2775c73b641",
      "tree": "09f15db936084e239279844bcb6db6608e2bb06f",
      "parents": [
        "f701e5b73a1a79ea62ffd45d9e2bed4c7d5c1fd2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jul 21 17:06:53 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jul 21 17:06:53 2011 +0200"
      },
      "message": "ptrace: fix ptrace_signal() \u0026\u0026 STOP_DEQUEUED interaction\n\nSimple test-case,\n\n\tint main(void)\n\t{\n\t\tint pid, status;\n\n\t\tpid \u003d fork();\n\t\tif (!pid) {\n\t\t\tpause();\n\t\t\tassert(0);\n\t\t\treturn 0x23;\n\t\t}\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, 0,0) \u003d\u003d 0);\n\t\tassert(wait(\u0026status) \u003d\u003d pid);\n\t\tassert(WIFSTOPPED(status) \u0026\u0026 WSTOPSIG(status) \u003d\u003d SIGSTOP);\n\n\t\tkill(pid, SIGCONT);\t// \u003c--- also clears STOP_DEQUEUD\n\n\t\tassert(ptrace(PTRACE_CONT, pid, 0,0) \u003d\u003d 0);\n\t\tassert(wait(\u0026status) \u003d\u003d pid);\n\t\tassert(WIFSTOPPED(status) \u0026\u0026 WSTOPSIG(status) \u003d\u003d SIGCONT);\n\n\t\tassert(ptrace(PTRACE_CONT, pid, 0, SIGSTOP) \u003d\u003d 0);\n\t\tassert(wait(\u0026status) \u003d\u003d pid);\n\t\tassert(WIFSTOPPED(status) \u0026\u0026 WSTOPSIG(status) \u003d\u003d SIGSTOP);\n\n\t\tkill(pid, SIGKILL);\n\t\treturn 0;\n\t}\n\nWithout the patch it hangs. After the patch SIGSTOP \"injected\" by the\ntracer is not ignored and stops the tracee.\n\nNote also that if this test-case uses, say, SIGWINCH instead of SIGCONT,\neverything works without the patch. This can\u0027t be right, and this is\nconfusing.\n\nThe problem is that SIGSTOP (or any other sig_kernel_stop() signal) has\nno effect without JOBCTL_STOP_DEQUEUED. This means it is simply ignored\nafter PTRACE_CONT unless JOBCTL_STOP_DEQUEUED was set \"by accident\", say\nit wasn\u0027t cleared after initial SIGSTOP sent by PTRACE_ATTACH.\n\nAt first glance we could change ptrace_signal() to add STOP_DEQUEUED\nafter return from ptrace_stop(), but this is not right in case when the\ntracer does not change the reported SIGSTOP and SIGCONT comes in between.\nThis is even more wrong with PT_SEIZED, SIGCONT adds JOBCTL_TRAP_NOTIFY\nwhich will be \"lost\" during the TRAP_STOP | TRAP_NOTIFY report.\n\nSo lets add STOP_DEQUEUED _before_ we report the signal. It has no effect\nunless sig_kernel_stop() \u003d\u003d T after the tracer resumes us, and in the\nlatter case the pending STOP_DEQUEUED means no SIGCONT in between, we\nshould stop.\n\nNote also that if SIGCONT was sent, PT_SEIZED tracee will correctly\nreport PTRACE_EVENT_STOP/SIGTRAP and thus the tracer can notice the fact\nSIGSTOP was cancelled.\n\nAlso, move the current-\u003eptrace check from ptrace_signal() to its caller,\nget_signal_to_deliver(), this looks more natural.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "40bcea7bbe8fe452a2d272e2ffd3dea281eec9ff",
      "tree": "aedb6d02e53e3cf84cc32fd81db84032cee205e1",
      "parents": [
        "492f73a303b488ffd67097b2351d54aa6e6c7c73",
        "14a8fd7ceea6915c613746203d6e9a2bf273f16c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:32:40 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:32:40 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "492f73a303b488ffd67097b2351d54aa6e6c7c73",
      "tree": "6e6c16fbd628bb5eb577cfc70a488ca286563e58",
      "parents": [
        "e08fbb78f03fe2c4f88824faf6f51ce6af185e11",
        "f7bc8b61f65726ff98f52e286b28e294499d7a08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:29:14 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 09:29:21 2011 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: pick up the latest fixes - they won\u0027t make v3.0.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "11b80f459adaf91a712f95e7734a17655a36bf30",
      "tree": "b325ce2cb09cbe9e7d98879c71054621dbb97c3c",
      "parents": [
        "bd5fe6c5eb9c548d7f07fe8f89a150bb6705e8e3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:44 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:47 2011 -0400"
      },
      "message": "rw_semaphore: remove up/down_read_non_owner\n\nNow that the last users is gone these can be removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f",
      "tree": "489c64380668e8c5a29d3f36f37554e4b081a647",
      "parents": [
        "acc11eab70591744369722280c9ce162a6193494",
        "d1e9ae47a0285d3f1699e8219ce50f656243b93f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: align __lock_task_sighand() irq disabling and RCU\n  softirq,rcu: Inform RCU of irq_exit() activity\n  sched: Add irq_{enter,exit}() to scheduler_ipi()\n  rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n  rcu: Streamline code produced by __rcu_read_unlock()\n  rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n  rcu: decrease rcu_report_exp_rnp coupling with scheduler\n"
    },
    {
      "commit": "cbaa51524b3224813814607177a00c350ee35d12",
      "tree": "34f0fabff444e5dde2ee2b92d841abb97daf41b1",
      "parents": [
        "3dcad5ff08f65ae30832220a0e0ee2eac3502a1a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jul 20 15:42:55 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jul 20 15:42:55 2011 -0700"
      },
      "message": "time: Fix stupid KERN_WARN compile issue\n\nTerribly embarassing. Don\u0027t know how I committed this, but its\nKERN_WARNING not KERN_WARN.\n\nThis fixes the following compile error:\nkernel/time/timekeeping.c: In function ‘__timekeeping_inject_sleeptime’:\nkernel/time/timekeeping.c:608: error: ‘KERN_WARN’ undeclared (first use in this function)\nkernel/time/timekeeping.c:608: error: (Each undeclared identifier is reported only once\nkernel/time/timekeeping.c:608: error: for each function it appears in.)\nkernel/time/timekeeping.c:608: error: expected ‘)’ before string constant\nmake[2]: *** [kernel/time/timekeeping.o] Error 1\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a95cded32de3deae13af34715200532e6823cc9f",
      "tree": "b6085f03d7fac7993a655e3796b4286c4db96694",
      "parents": [
        "22a3c7d188c2b7bfc8e949bf9fad215c094ba78b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun May 01 23:21:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:18 2011 -0700"
      },
      "message": "sysctl,rcu: Convert call_rcu(free_head) to kfree\n\nThe RCU callback free_head just calls kfree(), so we can use kfree_rcu()\ninstead of call_rcu().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "3b097c46964b07479855b01056c61540b8cadd50",
      "tree": "67df2b10ea2692000e7e5df18499e6ba51e1952c",
      "parents": [
        "6034f7e603cd2dae8ed9a1d8d2ccfeb6b5c48d73"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 15 18:03:53 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:11 2011 -0700"
      },
      "message": "audit_tree,rcu: Convert call_rcu(__put_tree) to kfree_rcu()\n\nThe rcu callback __put_tree() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(__put_tree).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "d1e9ae47a0285d3f1699e8219ce50f656243b93f",
      "tree": "2f5a68b5ba1677bcd49ee759f09ffc5ccccb1455",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b",
        "a841796f11c90d53dbac773be56b04fbee8af272"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "a841796f11c90d53dbac773be56b04fbee8af272",
      "tree": "9401a53faddecc7c1644565d0e22630028f82bca",
      "parents": [
        "ec433f0c51527426989ea8a38a856d810d739414"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 19 03:25:36 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 11:04:54 2011 -0700"
      },
      "message": "signal: align __lock_task_sighand() irq disabling and RCU\n\nThe __lock_task_sighand() function calls rcu_read_lock() with interrupts\nand preemption enabled, but later calls rcu_read_unlock() with interrupts\ndisabled.  It is therefore possible that this RCU read-side critical\nsection will be preempted and later RCU priority boosted, which means that\nrcu_read_unlock() will call rt_mutex_unlock() in order to deboost itself, but\nwith interrupts disabled. This results in lockdep splats, so this commit\nnests the RCU read-side critical section within the interrupt-disabled\nregion of code.  This prevents the RCU read-side critical section from\nbeing preempted, and thus prevents the attempt to deboost with interrupts\ndisabled.\n\nIt is quite possible that a better long-term fix is to make rt_mutex_unlock()\ndisable irqs when acquiring the rt_mutex structure\u0027s -\u003ewait_lock.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ec433f0c51527426989ea8a38a856d810d739414",
      "tree": "001550d7b18b3f2b5326da3f9dfd893e31c8dc1c",
      "parents": [
        "c5d753a55ac92e09816d410cd17093813f1a904b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:32:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:12 2011 -0700"
      },
      "message": "softirq,rcu: Inform RCU of irq_exit() activity\n\nThe rcu_read_unlock_special() function relies on in_irq() to exclude\nscheduler activity from interrupt level.  This fails because exit_irq()\ncan invoke the scheduler after clearing the preempt_count() bits that\nin_irq() uses to determine that it is at interrupt level.  This situation\ncan result in failures as follows:\n\n $task\t\t\tIRQ\t\tSoftIRQ\n\n rcu_read_lock()\n\n /* do stuff */\n\n \u003cpreempt\u003e |\u003d UNLOCK_BLOCKED\n\n rcu_read_unlock()\n   --t-\u003ercu_read_lock_nesting\n\n\t\t\tirq_enter();\n\t\t\t/* do stuff, don\u0027t use RCU */\n\t\t\tirq_exit();\n\t\t\t  sub_preempt_count(IRQ_EXIT_OFFSET);\n\t\t\t  invoke_softirq()\n\n\t\t\t\t\tttwu();\n\t\t\t\t\t  spin_lock_irq(\u0026pi-\u003elock)\n\t\t\t\t\t  rcu_read_lock();\n\t\t\t\t\t  /* do stuff */\n\t\t\t\t\t  rcu_read_unlock();\n\t\t\t\t\t    rcu_read_unlock_special()\n\t\t\t\t\t      rcu_report_exp_rnp()\n\t\t\t\t\t        ttwu()\n\t\t\t\t\t          spin_lock_irq(\u0026pi-\u003elock) /* deadlock */\n\n   rcu_read_unlock_special(t);\n\nEd can simply trigger this \u0027easy\u0027 because invoke_softirq() immediately\ndoes a ttwu() of ksoftirqd/# instead of doing the in-place softirq stuff\nfirst, but even without that the above happens.\n\nCure this by also excluding softirqs from the\nrcu_read_unlock_special() handler and ensuring the force_irqthreads\nksoftirqd/# wakeup is done from full softirq context.\n\n[ Alternatively, delaying the -\u003ercu_read_lock_nesting decrement\n  until after the special handling would make the thing more robust\n  in the face of interrupts as well.  And there is a separate patch\n  for that. ]\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c5d753a55ac92e09816d410cd17093813f1a904b",
      "tree": "162c63edcc463e18d50fb5b5be479785f02222c4",
      "parents": [
        "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:07:25 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "sched: Add irq_{enter,exit}() to scheduler_ipi()\n\nEnsure scheduler_ipi() calls irq_{enter,exit} when it does some actual\nwork. Traditionally we never did any actual work from the resched IPI\nand all magic happened in the return from interrupt path.\n\nNow that we do do some work, we need to ensure irq_{enter,exit} are\ncalled so that we don\u0027t confuse things.\n\nThis affects things like timekeeping, NO_HZ and RCU, basically\neverything with a hook in irq_enter/exit.\n\nExplicit examples of things going wrong are:\n\n  sched_clock_cpu() -- has a callback when leaving NO_HZ state to take\n                    a new reading from GTOD and TSC. Without this\n                    callback, time is stuck in the past.\n\n  RCU -- needs in_irq() to work in order to avoid some nasty deadlocks\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f",
      "tree": "2e8349c57b1f0563a27be49410f413b643ded1a9",
      "parents": [
        "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 17 21:14:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n\nThe addition of RCU read-side critical sections within runqueue and\npriority-inheritance lock critical sections introduced some deadlock\ncycles, for example, involving interrupts from __rcu_read_unlock()\nwhere the interrupt handlers call wake_up().  This situation can cause\nthe instance of __rcu_read_unlock() invoked from interrupt to do some\nof the processing that would otherwise have been carried out by the\ntask-level instance of __rcu_read_unlock().  When the interrupt-level\ninstance of __rcu_read_unlock() is called with a scheduler lock held\nfrom interrupt-entry/exit situations where in_irq() returns false,\ndeadlock can result.\n\nThis commit resolves these deadlocks by using negative values of\nthe per-task -\u003ercu_read_lock_nesting counter to indicate that an\ninstance of __rcu_read_unlock() is in flight, which in turn prevents\ninstances from interrupt handlers from doing any special processing.\nThis patch is inspired by Steven Rostedt\u0027s earlier patch that similarly\nmade __rcu_read_unlock() guard against interrupt-mediated recursion\n(see https://lkml.org/lkml/2011/7/15/326), but this commit refines\nSteven\u0027s approach to avoid the need for preemption disabling on the\n__rcu_read_unlock() fastpath and to also avoid the need for manipulating\na separate per-CPU variable.\n\nThis patch avoids need for preempt_disable() by instead using negative\nvalues of the per-task -\u003ercu_read_lock_nesting counter.  Note that nested\nrcu_read_lock()/rcu_read_unlock() pairs are still permitted, but they will\nnever see -\u003ercu_read_lock_nesting go to zero, and will therefore never\ninvoke rcu_read_unlock_special(), thus preventing them from seeing the\nRCU_READ_UNLOCK_BLOCKED bit should it be set in -\u003ercu_read_unlock_special.\nThis patch also adds a check for -\u003ercu_read_unlock_special being negative\nin rcu_check_callbacks(), thus preventing the RCU_READ_UNLOCK_NEED_QS\nbit from being set should a scheduling-clock interrupt occur while\n__rcu_read_unlock() is exiting from an outermost RCU read-side critical\nsection.\n\nOf course, __rcu_read_unlock() can be preempted during the time that\n-\u003ercu_read_lock_nesting is negative.  This could result in the setting\nof the RCU_READ_UNLOCK_BLOCKED bit after __rcu_read_unlock() checks it,\nand would also result it this task being queued on the corresponding\nrcu_node structure\u0027s blkd_tasks list.  Therefore, some later RCU read-side\ncritical section would enter rcu_read_unlock_special() to clean up --\nwhich could result in deadlock if that critical section happened to be in\nthe scheduler where the runqueue or priority-inheritance locks were held.\n\nThis situation is dealt with by making rcu_preempt_note_context_switch()\ncheck for negative -\u003ercu_read_lock_nesting, thus refraining from\nqueuing the task (and from setting RCU_READ_UNLOCK_BLOCKED) if we are\nalready exiting from the outermost RCU read-side critical section (in\nother words, we really are no longer actually in that RCU read-side\ncritical section).  In addition, rcu_preempt_note_context_switch()\ninvokes rcu_read_unlock_special() to carry out the cleanup in this case,\nwhich clears out the -\u003ercu_read_unlock_special bits and dequeues the task\n(if necessary), in turn avoiding needless delay of the current RCU grace\nperiod and needless RCU priority boosting.\n\nIt is still illegal to call rcu_read_unlock() while holding a scheduler\nlock if the prior RCU read-side critical section has ever had either\npreemption or irqs enabled.  However, the common use case is legal,\nnamely where then entire RCU read-side critical section executes with\nirqs disabled, for example, when the scheduler lock is held across the\nentire lifetime of the RCU read-side critical section.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d110235d2c331c4f79e0879f51104be79e17a469",
      "tree": "d56bb05a1274f9e7c6a20467d2d04713c185e7ce",
      "parents": [
        "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 20 18:42:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:54:33 2011 +0200"
      },
      "message": "sched: Avoid creating superfluous NUMA domains on non-NUMA systems\n\nWhen creating sched_domains, stop when we\u0027ve covered the entire\ntarget span instead of continuing to create domains, only to\nlater find they\u0027re redundant and throw them away again.\n\nThis avoids single node systems from touching funny NUMA\nsched_domain creation code and reduces the risks of the new\nSD_OVERLAP code.\n\nRequested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: mahesh@linux.vnet.ibm.com\nCc: benh@kernel.crashing.org\nCc: linuxppc-dev@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1311180177.29152.57.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c",
      "tree": "414bf6bdbad3f04f629fa2a72254ea85acf723f4",
      "parents": [
        "9c3f75cbd144014bea6af866a154cc2e73ab2287"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 15 10:35:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:41 2011 +0200"
      },
      "message": "sched: Allow for overlapping sched_domain spans\n\nAllow for sched_domain spans that overlap by giving such domains their\nown sched_group list instead of sharing the sched_groups amongst\neach-other.\n\nThis is needed for machines with more than 16 nodes, because\nsched_domain_node_span() will generate a node mask from the\n16 nearest nodes without regard if these masks have any overlap.\n\nCurrently sched_domains have a sched_group that maps to their child\nsched_domain span, and since there is no overlap we share the\nsched_group between the sched_domains of the various CPUs. If however\nthere is overlap, we would need to link the sched_group list in\ndifferent ways for each cpu, and hence sharing isn\u0027t possible.\n\nIn order to solve this, allocate private sched_groups for each CPU\u0027s\nsched_domain but have the sched_groups share a sched_group_power\nstructure such that we can uniquely track the power.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6657719390cd05be45f4e3b501d8bb46889c0a19",
      "tree": "8d2d97f645b05badd134526659f5d9adc7ab9234",
      "parents": [
        "1ba106818615faddb63ba782f85f3498b9eb61c6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 28 15:41:10 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:07 2011 -0400"
      },
      "message": "make sure that nsproxy_cache is initialized early enough\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3bfa784a6539f91a27d7ffdd408efdb638e3bebd",
      "tree": "2fb293076c98a4bbc18fd2ddad7fdc4cea08c384",
      "parents": [
        "1b5d783c94c328d406e801566f161adcfb018dda"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 12:55:10 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:11 2011 -0400"
      },
      "message": "kill file_permission() completely\n\nconvert the last remaining caller to inode_permission()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2",
      "tree": "fe53c0731f5c3a6e56e2358eee9b8f17c3af83f4",
      "parents": [
        "7765be2fec0f476fcd61812d5f9406b04c765020"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 21 05:57:18 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:53 2011 -0700"
      },
      "message": "rcu: Streamline code produced by __rcu_read_unlock()\n\nGiven some common flag combinations, particularly -Os, gcc will inline\nrcu_read_unlock_special() despite its being in an unlikely() clause.\nUse noinline to prohibit this misoptimization.\n\nIn addition, move the second barrier() in __rcu_read_unlock() so that\nit is not on the common-case code path.  This will allow the compiler to\ngenerate better code for the common-case path through __rcu_read_unlock().\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\n"
    },
    {
      "commit": "7765be2fec0f476fcd61812d5f9406b04c765020",
      "tree": "e89ccb3fbd5655090b05f608f8e1d39924f23a9a",
      "parents": [
        "131906b0062ddde7f85bbe67754983c754648bd8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jul 14 12:24:11 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:52 2011 -0700"
      },
      "message": "rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n\nThe RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task\nwrite to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure\u0027s\n-\u003ercu_read_unlock_special field, but, as noted by Steven Rostedt, without\ncorrectly synchronizing all accesses to -\u003ercu_read_unlock_special.\nThis could result in bits in -\u003ercu_read_unlock_special being spuriously\nset and cleared due to conflicting accesses, which in turn could result\nin deadlocks between the rcu_node structure\u0027s -\u003elock and the scheduler\u0027s\nrq and pi locks.  These deadlocks would result from RCU incorrectly\nbelieving that the just-ended RCU read-side critical section had been\npreempted and/or boosted.  If that RCU read-side critical section was\nexecuted with either rq or pi locks held, RCU\u0027s ensuing (incorrect)\ncalls to the scheduler would cause the scheduler to attempt to once\nagain acquire the rq and pi locks, resulting in deadlock.  More complex\ndeadlock cycles are also possible, involving multiple rq and pi locks\nas well as locks from multiple rcu_node structures.\n\nThis commit fixes synchronization by creating -\u003ercu_boosted field in\ntask_struct that is accessed and modified only when holding the -\u003elock\nin the rcu_node structure on which the task is queued (on that rcu_node\nstructure\u0027s -\u003eblkd_tasks list).  This results in tasks accessing only\ntheir own current-\u003ercu_read_unlock_special fields, making unsynchronized\naccess once again legal, and keeping the rcu_read_unlock() fastpath free\nof atomic instructions and memory barriers.\n\nThe reason that the rcu_read_unlock() fastpath does not need to access\nthe new current-\u003ercu_boosted field is that this new field cannot\nbe non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the\ncurrent-\u003ercu_read_unlock_special field.  Therefore, rcu_read_unlock()\nneed only test current-\u003ercu_read_unlock_special: if that is zero, then\ncurrent-\u003ercu_boosted must also be zero.\n\nThis bug does not affect TINY_PREEMPT_RCU because this implementation\nof RCU accesses current-\u003ercu_read_unlock_special with irqs disabled,\nthus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on.\n\nMaybe-reported-by: Dave Jones \u003cdavej@redhat.com\u003e\nMaybe-reported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "131906b0062ddde7f85bbe67754983c754648bd8",
      "tree": "1b92eacb707befb294b4d9985f10aa44715cba16",
      "parents": [
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jul 17 02:05:49 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:51 2011 -0700"
      },
      "message": "rcu: decrease rcu_report_exp_rnp coupling with scheduler\n\nPREEMPT_RCU read-side critical sections blocking an expedited grace\nperiod invoke rcu_report_exp_rnp().  When the last such critical section\nhas completed, rcu_report_exp_rnp() invokes the scheduler to wake up the\ntask that invoked synchronize_rcu_expedited() -- needlessly holding the\nroot rcu_node structure\u0027s lock while doing so, thus needlessly providing\na way for RCU and the scheduler to deadlock.\n\nThis commit therefore releases the root rcu_node structure\u0027s lock before\ncalling wake_up().\n\nReported-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f701e5b73a1a79ea62ffd45d9e2bed4c7d5c1fd2",
      "tree": "10940ea680a1c8c69cbd9f9aa9aca23a1199aa0e",
      "parents": [
        "d184d6eb1dc3c9869e25a8e422be5c55ab0db4ac"
      ],
      "author": {
        "name": "Vladimir Zapolskiy",
        "email": "vzapolskiy@gmail.com",
        "time": "Fri Jul 15 20:45:18 2011 +0300"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jul 18 21:38:33 2011 +0200"
      },
      "message": "connector: add an event for monitoring process tracers\n\nThis change adds a procfs connector event, which is emitted on every\nsuccessful process tracer attach or detach.\n\nIf some process connects to other one, kernelspace connector reports\nprocess id and thread group id of both these involved processes. On\ndisconnection null process id is returned.\n\nSuch an event allows to create a simple automated userspace mechanism\nto be aware about processes connecting to others, therefore predefined\nprocess policies can be applied to them if needed.\n\nNote, a detach signal is emitted only in case, if a tracer process\nexplicitly executes PTRACE_DETACH request. In other cases like tracee\nor tracer exit detach event from proc connector is not reported.\n\nSigned-off-by: Vladimir Zapolskiy \u003cvzapolskiy@gmail.com\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "dcace06cc29df927a74a6bc0e57b9bef87704377",
      "tree": "9a04518032869b1ed79933026379ea0d7081e43a",
      "parents": [
        "6634ae1033ceaeca5877dd75723210f8c2648c17"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jul 08 19:13:54 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 17 20:23:51 2011 +0200"
      },
      "message": "ptrace: mv send-SIGSTOP from do_fork() to ptrace_init_task()\n\nIf the new child is traced, do_fork() adds the pending SIGSTOP.\nIt assumes that either it is traced because of auto-attach or the\ntracer attached later, in both cases sigaddset/set_thread_flag is\ncorrect even if SIGSTOP is already pending.\n\nNow that we have PTRACE_SEIZE this is no longer right in the latter\ncase. If the tracer does PTRACE_SEIZE after copy_process() makes the\nchild visible the queued SIGSTOP is wrong.\n\nWe could check PT_SEIZED bit and change ptrace_attach() to set both\nPT_PTRACED and PT_SEIZED bits simultaneously but see the next patch,\nwe need to know whether this child was auto-attached or not anyway.\n\nSo this patch simply moves this code to ptrace_init_task(), this\nway we can never race with ptrace_attach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "961c4675c75112717705fa5c0c53cb9664051479",
      "tree": "d424199346b5dc1c5d27fe920a66a6ea11989d89",
      "parents": [
        "bb188d7e64deb0e9cf13a99f44ae0065de5352d6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jul 07 21:33:54 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 17 20:23:50 2011 +0200"
      },
      "message": "has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/\n\nhas_stopped_jobs() naively checks task_is_stopped(group_leader). This\nwas always wrong even without ptrace, group_leader can be dead. And\ngiven that ptrace can change the state to TRACED this is wrong even\nin the single-threaded case.\n\nChange the code to check SIGNAL_STOP_STOPPED and simplify the code,\nretval + break/continue doesn\u0027t make this trivial code more readable.\n\nWe could probably add the usual \"|| signal-\u003egroup_stop_count\" check\nbut I don\u0027t think this makes sense, the task can start the group-stop\nright after the check anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "ba1389d74f34c0c6e95cc135a332cd29c29d9c20",
      "tree": "53813843d22cfcfe6d466a5daa44c646f8157980",
      "parents": [
        "f0c077a8b7f9dce590c760a7b2f3c417dffa52d1",
        "5ca80817e231723f1399bff495854ba2171103ca"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:09 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:09 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into for-linus\n\n* pm-domains: (33 commits)\n  ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active\n  PM / Domains: Take .power_off() error code into account\n  ARM / shmobile: Use genpd_queue_power_off_work()\n  ARM / shmobile: Use pm_genpd_poweroff_unused()\n  PM / Domains: Introduce function to power off all unused PM domains\n  PM / Domains: Queue up power off work only if it is not pending\n  PM / Domains: Improve handling of wakeup devices during system suspend\n  PM / Domains: Do not restore all devices on power off error\n  PM / Domains: Allow callbacks to execute all runtime PM helpers\n  PM / Domains: Do not execute device callbacks under locks\n  PM / Domains: Make failing pm_genpd_prepare() clean up properly\n  PM / Domains: Set device state to \"active\" during system resume\n  ARM: mach-shmobile: sh7372 A3RV requires A4LC\n  PM / Domains: Export pm_genpd_poweron() in header\n  ARM: mach-shmobile: sh7372 late pm domain off\n  ARM: mach-shmobile: Runtime PM late init callback\n  ARM: mach-shmobile: sh7372 D4 support\n  ARM: mach-shmobile: sh7372 A4MP support\n  ARM: mach-shmobile: sh7372: make sure that fsi is peripheral of spu2\n  ARM: mach-shmobile: sh7372 A3SG support\n  ...\n"
    },
    {
      "commit": "f0c077a8b7f9dce590c760a7b2f3c417dffa52d1",
      "tree": "ef6d08aa3ca1d79000db7d7479d98bda04a11c78",
      "parents": [
        "1d8047a6f7973470bb1de4606a6e00c0bbee3cc6"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Jul 08 20:53:36 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:20 2011 +0200"
      },
      "message": "PM: Improve error code of pm_notifier_call_chain()\n\nThis enables pm_notifier_call_chain() to get the actual error code\nin the callback rather than always assume -EINVAL by converting all\nPM notifier calls to return encapsulate error code with\nnotifier_from_errno().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a5e4fd8783a2bec861ecf1138cdc042269ff59aa",
      "tree": "0662c2283c8d8601aa152f70a0d0abbe128fec9b",
      "parents": [
        "3b5fe85252326217cd96f24a7bda4460d8f71bee"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@ti.com",
        "time": "Mon Jun 27 01:01:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:19 2011 +0200"
      },
      "message": "PM / Suspend: Export suspend_set_ops, suspend_valid_only_mem\n\nSome platforms wish to implement their PM core suspend code as\nmodules.  To do so, these functions need to be exported to modules.\n\n[rjw: Replaced EXPORT_SYMBOL with EXPORT_SYMBOL_GPL]\n\nReported-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3b5fe85252326217cd96f24a7bda4460d8f71bee",
      "tree": "cfcf577a53b88109d36f73577a8177279444a09f",
      "parents": [
        "99f381d3549432a250fe846a2a82d61a032804b0"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Sun Jun 12 15:57:05 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:19 2011 +0200"
      },
      "message": "PM / Suspend: Add .suspend_again() callback to suspend_ops\n\nA system or a device may need to control suspend/wakeup events. It may\nwant to wakeup the system after a predefined amount of time or at a\npredefined event decided while entering suspend for polling or delayed\nwork. Then, it may want to enter suspend again if its predefined wakeup\ncondition is the only wakeup reason and there is no outstanding events;\nthus, it does not wakeup the userspace unnecessary or unnecessary\ndevices and keeps suspended as long as possible (saving the power).\n\nEnabling a system to wakeup after a specified time can be easily\nachieved by using RTC. However, to enter suspend again immediately\nwithout invoking userland and unrelated devices, we need additional\nfeatures in the suspend framework.\n\nSuch need comes from:\n\n 1. Monitoring a critical device status without interrupts that can\nwakeup the system. (in-suspend polling)\n An example is ambient temperature monitoring that needs to shut down\nthe system or a specific device function if it is too hot or cold. The\ntemperature of a specific device may be needed to be monitored as well;\ne.g., a charger monitors battery temperature in order to stop charging\nif overheated.\n\n 2. Execute critical \"delayed work\" at suspend.\n A driver or a system/board may have a delayed work (or any similar\nthings) that it wants to execute at the requested time.\n For example, some chargers want to check the battery voltage some\ntime (e.g., 30 seconds) after the battery is fully charged and the\ncharger has stopped. Then, the charger restarts charging if the voltage\nhas dropped more than a threshold, which is smaller than \"restart-charger\"\nvoltage, which is a threshold to restart charging regardless of the\ntime passed.\n\nThis patch allows to add \"suspend_again\" callback at struct\nplatform_suspend_ops and let the \"suspend_again\" callback return true if\nthe system is required to enter suspend again after the current instance\nof wakeup. Device-wise suspend_again implemented at dev_pm_ops or\nsyscore is not done because: a) suspend_again feature is usually under\nplatform-wise decision and controls the behavior of the whole platform\nand b) There are very limited devices related to the usage cases of\nsuspend_again; chargers and temperature sensors are mentioned so far.\n\nWith suspend_again callback registered at struct platform_suspend_ops\nsuspend_ops in kernel/power/suspend.c with suspend_set_ops by the\nplatform, the suspend framework tries to enter suspend again by\nlooping suspend_enter() if suspend_again has returned true and there has\nbeen no errors in the suspending sequence or pending wakeups (by\npm_wakeup_pending).\n\nTested at Exynos4-NURI.\n\n[rjw: Fixed up kerneldoc comment for suspend_enter().]\n\nSigned-off-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7f6878a3d707b947603e09d95df0c3a98987e3a4",
      "tree": "aa707653884ae1a7eac99c1b3c772c2eb89eb642",
      "parents": [
        "614243181050436785f5a621749a7da2336a7916"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:27:03 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:45:32 2011 -0400"
      },
      "message": "tracing/kprobe: Update symbol reference when loading module\n\nSince the address of a module-local variable can only be\nsolved after the target module is loaded, the symbol\nfetch-argument should be updated when loading target\nmodule.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072703.6528.75042.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "614243181050436785f5a621749a7da2336a7916",
      "tree": "d64445cc0bc14420b993e82bd4bb4723ea8e34fa",
      "parents": [
        "bc81d48d13d8839fae6833c95794c403b2133f36"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:56 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:17:14 2011 -0400"
      },
      "message": "tracing/kprobes: Support module init function probing\n\nTo support probing module init functions, kprobe-tracer allows\nuser to define a probe on non-existed function when it is given\nwith a module name. This also enables user to set a probe on\na function on a specific module, even if a same name (but different)\nfunction is locally defined in another module.\n\nThe module name must be in the front of function name and separated\nby a \u0027:\u0027. e.g. btrfs:btrfs_init_sysfs\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072656.6528.89970.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bc81d48d13d8839fae6833c95794c403b2133f36",
      "tree": "ebb87fb7664549eba344489e80cef1b64555bba0",
      "parents": [
        "1538f888f1e793de04e0f90372352ac1b05833cf"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:50 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:11:47 2011 -0400"
      },
      "message": "kprobes: Return -ENOENT if probe point doesn\u0027t exist\n\nReturn -ENOENT if probe point doesn\u0027t exist, but still returns\n-EINVAL if both of kprobe-\u003eaddr and kprobe-\u003esymbol_name are\nspecified or both are not specified.\n\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nLink: http://lkml.kernel.org/r/20110627072650.6528.67329.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1538f888f1e793de04e0f90372352ac1b05833cf",
      "tree": "42c064993df39faf3f285e276f588fc2518016f2",
      "parents": [
        "7143f168e2aa4bc7f8a8bcfe46d8dc52f7be869a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:44 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jul 15 15:10:58 2011 -0400"
      },
      "message": "tracing/kprobes: Merge trace probe enable/disable functions\n\nMerge redundant enable/disable functions into enable_trace_probe()\nand disable_trace_probe().\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: yrl.pp-manager.tt@hitachi.com\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110627072644.6528.26910.stgit@fedora15\n\n[ converted kprobe selftest to use  enable_trace_probe ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
      "tree": "d5fb84d4bec0dc62b1ec1a19a01718620caa9918",
      "parents": [
        "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu:\n  rcu: Prevent RCU callbacks from executing before scheduler initialized\n"
    },
    {
      "commit": "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
      "tree": "0777bdbb0424a6ce948c817247757a4ba3b01a32",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 11 16:28:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:02 2011 -0700"
      },
      "message": "sched: Fix 32bit race\n\nCommit 3fe1698b7fe0 (\"sched: Deal with non-atomic min_vruntime reads\non 32bit\") forgot to initialize min_vruntime_copy which could lead to\nan infinite while loop in task_waking_fair() under some circumstances\n(early boot, lucky timing).\n\n[ This bug was also reported by others that blamed it on the RCU\n  initialization problems ]\n\nReported-and-tested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7bc8b61f65726ff98f52e286b28e294499d7a08",
      "tree": "88ef0c943d27aa9f69824d87faa990731cc2ebfe",
      "parents": [
        "04da85b86188f224cc9b391b5bdd92a3ba20ffcf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 23:02:27 2011 -0400"
      },
      "message": "ftrace: Fix regression where ftrace breaks when modules are loaded\n\nEnabling function tracer to trace all functions, then load a module and\nthen disable function tracing will cause ftrace to fail.\n\nThis can also happen by enabling function tracing on the command line:\n\n  ftrace\u003dfunction\n\nand during boot up, modules are loaded, then you disable function tracing\nwith \u0027echo nop \u003e current_tracer\u0027 you will trigger a bug in ftrace that\nwill shut itself down.\n\nThe reason is, the new ftrace code keeps ref counts of all ftrace_ops that\nare registered for tracing. When one or more ftrace_ops are registered,\nall the records that represent the functions that the ftrace_ops will\ntrace have a ref count incremented. If this ref count is not zero,\nwhen the code modification runs, that function will be enabled for tracing.\nIf the ref count is zero, that function will be disabled from tracing.\n\nTo make sure the accounting was working, FTRACE_WARN_ON()s were added\nto updating of the ref counts.\n\nIf the ref count hits its max (\u003e 2^30 ftrace_ops added), or if\nthe ref count goes below zero, a FTRACE_WARN_ON() is triggered which\ndisables all modification of code.\n\nSince it is common for ftrace_ops to trace all functions in the kernel,\ninstead of creating \u003e 20,000 hash items for the ftrace_ops, the hash\ncount is just set to zero, and it represents that the ftrace_ops is\nto trace all functions. This is where the issues arrise.\n\nIf you enable function tracing to trace all functions, and then add\na module, the modules function records do not get the ref count updated.\nWhen the function tracer is disabled, all function records ref counts\nare subtracted. Since the modules never had their ref counts incremented,\nthey go below zero and the FTRACE_WARN_ON() is triggered.\n\nThe solution to this is rather simple. When modules are loaded, and\ntheir functions are added to the the ftrace pool, look to see if any\nftrace_ops are registered that trace all functions. And for those,\nupdate the ref count for the module function records.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7143f168e2aa4bc7f8a8bcfe46d8dc52f7be869a",
      "tree": "cd13a0d2524b9ef4c6f807d01912147539c924b8",
      "parents": [
        "f91298709790b9a483752ca3c967845537df2af3"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon Jun 27 16:26:36 2011 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 17:44:43 2011 -0400"
      },
      "message": "tracing/kprobes: Rename probe_* to trace_probe_*\n\nRename probe_* to trace_probe_* for avoiding namespace\nconfliction. This also fixes improper names of find_probe_event()\nand cleanup_all_probes() to find_trace_probe() and\nrelease_all_trace_probes() respectively.\n\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110627072636.6528.60374.stgit@fedora15\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f91298709790b9a483752ca3c967845537df2af3",
      "tree": "f7392e3d37b9aa78ef04bdf89bc0d45d2db401e3",
      "parents": [
        "4a9bd3f134decd6d16ead8d288342d57aad486be"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Sat Jul 09 00:17:12 2011 +0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 17:25:04 2011 -0400"
      },
      "message": "perf, x86: P4 PMU - Introduce event alias feature\n\nInstead of hw_nmi_watchdog_set_attr() weak function\nand appropriate x86_pmu::hw_watchdog_set_attr() call\nwe introduce even alias mechanism which allow us\nto drop this routines completely and isolate quirks\nof Netburst architecture inside P4 PMU code only.\n\nThe main idea remains the same though -- to allow\nnmi-watchdog and perf top run simultaneously.\n\nNote the aliasing mechanism applies to generic\nPERF_COUNT_HW_CPU_CYCLES event only because arbitrary\nevent (say passed as RAW initially) might have some\nadditional bits set inside ESCR register changing\nthe behaviour of event and we can\u0027t guarantee anymore\nthat alias event will give the same result.\n\nP.S. Thanks a huge to Don and Steven for for testing\n     and early review.\n\nAcked-by: Don Zickus \u003cdzickus@redhat.com\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Stephane Eranian \u003ceranian@google.com\u003e\nCC: Lin Ming \u003cming.m.lin@intel.com\u003e\nCC: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110708201712.GS23657@sun\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4a9bd3f134decd6d16ead8d288342d57aad486be",
      "tree": "ca9eca5fcbe93dc8a433d839221505ad8fba5296",
      "parents": [
        "259032bfe379281bf7cba512b7705bdb4ce41db5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 14 16:36:53 2011 -0400"
      },
      "message": "tracing: Have dynamic size event stack traces\n\nCurrently the stack trace per event in ftace is only 8 frames.\nThis can be quite limiting and sometimes useless. Especially when\nthe \"ignore frames\" is wrong and we also use up stack frames for\nthe event processing itself.\n\nChange this to be dynamic by adding a percpu buffer that we can\nwrite a large stack frame into and then copy into the ring buffer.\n\nFor interrupts and NMIs that come in while another event is being\nprocess, will only get to use the 8 frame stack. That should be enough\nas the task that it interrupted will have the full stack frame anyway.\n\nRequested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6331c28c962561aee59e5a493b7556a4bb585957",
      "tree": "33292a3127aa831ee8ec2394e790bc2a8817beee",
      "parents": [
        "072126f4529196f71a97960248bca54fd4554c2d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:11:02 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:25:09 2011 -0400"
      },
      "message": "ftrace: Fix dynamic selftest failure on some archs\n\nArchs that do not implement CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST, will\nfail the dynamic ftrace selftest.\n\nThe function tracer has a quick \u0027off\u0027 variable that will prevent\nthe call back functions from being called. This variable is called\nfunction_trace_stop. In x86, this is implemented directly in the mcount\nassembly, but for other archs, an intermediate function is used called\nftrace_test_stop_func().\n\nIn dynamic ftrace, the function pointer variable ftrace_trace_function is\nused to update the caller code in the mcount caller. But for archs that\ndo not have CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST set, it only calls\nftrace_test_stop_func() instead, which in turn calls __ftrace_trace_function.\n\nWhen more than one ftrace_ops is registered, the function it calls is\nftrace_ops_list_func(), which will iterate over all registered ftrace_ops\nand call the callbacks that have their hash matching.\n\nThe issue happens when two ftrace_ops are registered for different functions\nand one is then unregistered. The __ftrace_trace_function is then pointed\nto the remaining ftrace_ops callback function directly. This mean it will\nbe called for all functions that were registered to trace by both ftrace_ops\nthat were registered.\n\nThis is not an issue for archs with CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST,\nbecause the update of ftrace_trace_function doesn\u0027t happen until after all\nfunctions have been updated, and then the mcount caller is updated. But\nfor those archs that do use the ftrace_test_stop_func(), the update is\nimmediate.\n\nThe dynamic selftest fails because it hits this situation, and the\nftrace_ops that it registers fails to only trace what it was suppose to\nand instead traces all other functions.\n\nThe solution is to delay the setting of __ftrace_trace_function until\nafter all the functions have been updated according to the registered\nftrace_ops. Also, function_trace_stop is set during the update to prevent\nfunction tracing from calling code that is caused by the function tracer\nitself.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "072126f4529196f71a97960248bca54fd4554c2d",
      "tree": "cb1275288f49b59e4643abb85855ad6889aba94f",
      "parents": [
        "41fb61c2d08107ce96a5dcb3a6289b2afd3e135c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:08:31 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:10:05 2011 -0400"
      },
      "message": "ftrace: Update filter when tracing enabled in set_ftrace_filter()\n\nCurrently, if set_ftrace_filter() is called when the ftrace_ops is\nactive, the function filters will not be updated. They will only be updated\nwhen tracing is disabled and re-enabled.\n\nUpdate the functions immediately during set_ftrace_filter().\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "41fb61c2d08107ce96a5dcb3a6289b2afd3e135c",
      "tree": "ca3ae1796ca1d3f01f2bb62eba1fbc93db1affae",
      "parents": [
        "4376cac66778b25e599be3f5d54f33f58ba8ead7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:03:44 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jul 13 22:00:50 2011 -0400"
      },
      "message": "ftrace: Balance records when updating the hash\n\nWhenever the hash of the ftrace_ops is updated, the record counts\nmust be balance. This requires disabling the records that are set\nin the original hash, and then enabling the records that are set\nin the updated hash.\n\nMoving the update into ftrace_hash_move() removes the bug where the\nhash was updated but the records were not, which results in ftrace\ntriggering a warning and disabling itself because the ftrace_ops filter\nis updated while the ftrace_ops was registered, and then the failure\nhappens when the ftrace_ops is unregistered.\n\nThe current code will not trigger this bug, but new code will.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b0d304172f49061b4ff78f9e2b02719ac69c8a7e",
      "tree": "882123e565ced895910490514f6e676c708b5001",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 10 15:57:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 13 08:17:56 2011 -0700"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that\nare not yet initialized.  Therefore, when these callbacks are invoked,\nhard hangs and crashes ensue.  This commit therefore prevents RCU\ncallbacks from being invoked until after the scheduler is fully up and\nrunning, as in after multiple tasks have been spawned.\n\nIt might well turn out that a better approach is to identify the specific\nRCU callbacks that are causing this problem, but that discussion will\nwait until such time as someone really needs an RCU callback to be invoked\n(as opposed to merely registered) during early boot.\n\nReported-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nReported-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nTested-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\n"
    },
    {
      "commit": "d93a881dd7d71ad0e6504af232be2795044ab686",
      "tree": "71fc6918e676a0cf53d585f5a253646a49b60c83",
      "parents": [
        "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
        "24109afd17426e1a2b72141e4a2b730057e1a0ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  pcmcia: pxa2xx/vpac270: free gpios on exist rather than requesting\n  ARM: pxa/raumfeld: fix device name for codec ak4104\n  ARM: pxa/raumfeld: display initialisation fixes\n  ARM: pxa/raumfeld: adapt to upcoming hardware change\n  ARM: pxa: fix gpio_to_chip() clash with gpiolib namespace\n  genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n  arm: mach-vt8500: add forgotten irq_data conversion\n  ARM: pxa168: correct nand pmu setting\n  ARM: pxa910: correct nand pmu setting\n  ARM: pxa: fix PGSR register address calculation\n"
    },
    {
      "commit": "732375c6a5a4cc825b676c922d547aba96b8ce15",
      "tree": "35002255d0e52ad478ffa7134b73c35452c502a0",
      "parents": [
        "8edbb83e5bc3c7d5d76861fc61872105288d2610"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Jul 07 17:27:59 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 08 14:02:53 2011 +0200"
      },
      "message": "plist: Remove the need to supply locks to plist heads\n\nThis was legacy code brought over from the RT tree and\nis no longer necessary.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Daniel Walker \u003cdwalker@codeaurora.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/1310084879-10351-2-git-send-email-dima@android.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4376cac66778b25e599be3f5d54f33f58ba8ead7",
      "tree": "9cf05820586f140bafcde67cd2cd80a4391ef7eb",
      "parents": [
        "e4a3f541f0b67fdad98b326c851dfe7f4b6b6dad"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jun 24 23:28:13 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 22:39:38 2011 -0400"
      },
      "message": "ftrace: Do not disable interrupts for modules in mcount update\n\nWhen I mounted an NFS directory, it caused several modules to be loaded. At the\ntime I was running the preemptirqsoff tracer, and it showed the following\noutput:\n\n# tracer: preemptirqsoff\n#\n# preemptirqsoff latency trace v1.1.5 on 2.6.33.9-rt30-mrg-test\n# --------------------------------------------------------------------\n# latency: 1177 us, #4/4, CPU#3 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)\n#    -----------------\n#    | task: modprobe-19370 (uid:0 nice:0 policy:0 rt_prio:0)\n#    -----------------\n#  \u003d\u003e started at: ftrace_module_notify\n#  \u003d\u003e ended at:   ftrace_module_notify\n#\n#\n#                  _------\u003d\u003e CPU#\n#                 / _-----\u003d\u003e irqs-off\n#                | / _----\u003d\u003e need-resched\n#                || / _---\u003d\u003e hardirq/softirq\n#                ||| / _--\u003d\u003e preempt-depth\n#                |||| /_--\u003d\u003e lock-depth\n#                |||||/     delay\n#  cmd     pid   |||||| time  |   caller\n#     \\   /      ||||||   \\   |   /\nmodprobe-19370   3d....    0us!: ftrace_process_locs \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1176us : ftrace_process_locs \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1178us : trace_hardirqs_on \u003c-ftrace_module_notify\nmodprobe-19370   3d.... 1178us : \u003cstack trace\u003e\n \u003d\u003e ftrace_process_locs\n \u003d\u003e ftrace_module_notify\n \u003d\u003e notifier_call_chain\n \u003d\u003e __blocking_notifier_call_chain\n \u003d\u003e blocking_notifier_call_chain\n \u003d\u003e sys_init_module\n \u003d\u003e system_call_fastpath\n\nThat\u0027s over 1ms that interrupts are disabled on a Real-Time kernel!\n\nLooking at the cause (being the ftrace author helped), I found that the\ninterrupts are disabled before the code modification of mcounts into nops. The\ninterrupts only need to be disabled on start up around this code, not when\nmodules are being loaded.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e4a3f541f0b67fdad98b326c851dfe7f4b6b6dad",
      "tree": "e93b858ab3313374d23c4ebadc5077816f1894f2",
      "parents": [
        "e08fbb78f03fe2c4f88824faf6f51ce6af185e11"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 14 19:02:29 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 22:26:27 2011 -0400"
      },
      "message": "tracing: Still trace filtered irq functions when irq trace is disabled\n\nIf a function is set to be traced by the set_graph_function, but the\noption funcgraph-irqs is zero, and the traced function happens to be\ncalled from a interrupt, it will not be traced.\n\nThe point of funcgraph-irqs is to not trace interrupts when we are\npreempted by an irq, not to not trace functions we want to trace that\nhappen to be *in* a irq.\n\nLuckily the current-\u003etrace_recursion element is perfect to add a flag\nto help us be able to trace functions within an interrupt even when\nwe are not tracing interrupts that preempt the trace.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "31cb852809c86541c817538c98003678546dfa58",
      "tree": "324808c5a9def43a7f15c0fda97f58ee01f03c42",
      "parents": [
        "2a9d6df425d7b46b23cbc8673b2dfefa4678abdb",
        "4d4cf23cdde2f8f9324f5684a7f349e182039529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Fix free_unnecessary_pages()\n"
    },
    {
      "commit": "27a3b735b70651f28db03e5f92775a40661ba7a6",
      "tree": "9f300b93aa34381aa1d3121e9d53e8c8e1623a24",
      "parents": [
        "85746e429f8e5dc8c5c0beadc0f099cb1feab93e",
        "161b6ae0e067e421b20bb35caf66bdb405c929ac",
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
        "e4c2fb0d5776b58049d2556b456144a4db3fe5a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  debugobjects: Fix boot crash when kmemleak and debugobjects enabled\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  jump_label: Fix jump_label update for modules\n  oprofile, x86: Fix race in nmi handler while starting counters\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Disable (revert) SCHED_LOAD_SCALE increase\n  sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n"
    },
    {
      "commit": "659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5",
      "tree": "a875904f1c457f321563060491956266a57c6514",
      "parents": [
        "d30e1521b2afb5e6f21ca8bc1a4b6ec2afc93597"
      ],
      "author": {
        "name": "Simon Guinot",
        "email": "sguinot@lacie.com",
        "time": "Wed Jul 06 12:41:31 2011 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 07 16:02:26 2011 +0000"
      },
      "message": "genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n\nThis fixes a regression introduced by e59347a \"arm: orion:\nUse generic irq chip\".\n\nDepending on the device, interrupts acknowledgement is done by setting\nor by clearing a dedicated register. Replace irq_gc_ack() with some\n{set,clr}_bit variants allows to handle both cases.\n\nNote that this patch affects the following SoCs: Davinci, Samsung and\nOrion. Except for this last, the change is minor: irq_gc_ack() is just\nrenamed into irq_gc_ack_set_bit().\n\nFor the Orion SoCs, the edge GPIO interrupts support is currently\nbroken. irq_gc_ack() try to acknowledge a such interrupt by setting\nthe corresponding cause register bit. The Orion GPIO device expect the\nopposite. To fix this issue, the irq_gc_ack_clr_bit() variant is used.\n\nTested on Network Space v2.\n\nReported-by: Joey Oravec \u003cjoravec@drewtech.com\u003e\nSigned-off-by: Simon Guinot \u003csguinot@lacie.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "43dd61c9a09bd413e837df829e6bfb42159be52a",
      "tree": "613b8ceaf798c87a4fac4ff66dc2ac0e13c3e46b",
      "parents": [
        "40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jul 07 11:09:22 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:30:08 2011 -0400"
      },
      "message": "ftrace: Fix regression of :mod:module function enabling\n\nThe new code that allows different utilities to pick and choose\nwhat functions they trace broke the :mod: hook that allows users\nto trace only functions of a particular module.\n\nThe reason is that the :mod: hook bypasses the hash that is setup\nto allow individual users to trace their own functions and uses\nthe global hash directly. But if the global hash has not been\nset up, it will cause a bug:\n\necho \u0027*:mod:radeon\u0027 \u003e /sys/kernel/debug/set_ftrace_filter\n\nproduces:\n\n [drm:drm_mode_getfb] *ERROR* invalid framebuffer id\n [drm:radeon_crtc_page_flip] *ERROR* failed to reserve new rbo buffer before flip\n BUG: unable to handle kernel paging request at ffffffff8160ec90\n IP: [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n PGD 1a05067 PUD 1a09063 PMD 80000000016001e1\n Oops: 0003 [#1] SMP Jul  7 04:02:28 phyllis kernel: [55303.858604] CPU 1\n Modules linked in: cryptd aes_x86_64 aes_generic binfmt_misc rfcomm bnep ip6table_filter hid radeon r8169 ahci libahci mii ttm drm_kms_helper drm video i2c_algo_bit intel_agp intel_gtt\n\n Pid: 10344, comm: bash Tainted: G        WC  3.0.0-rc5 #1 Dell Inc. Inspiron N5010/0YXXJJ\n RIP: 0010:[\u003cffffffff810d9136\u003e]  [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n RSP: 0018:ffff88003a96bda8  EFLAGS: 00010246\n RAX: ffff8801301735c0 RBX: ffffffff8160ec80 RCX: 0000000000306ee0\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880137c92940\n RBP: ffff88003a96bdb8 R08: ffff880137c95680 R09: 0000000000000000\n R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff81c9df78\n R13: ffff8801153d1000 R14: 0000000000000000 R15: 0000000000000000\n FS: 00007f329c18a700(0000) GS:ffff880137c80000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: ffffffff8160ec90 CR3: 000000003002b000 CR4: 00000000000006e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n Process bash (pid: 10344, threadinfo ffff88003a96a000, task ffff88012fcfc470)\n Stack:\n  0000000000000fd0 00000000000000fc ffff88003a96be38 ffffffff810d92f5\n  ffff88011c4c4e00 ffff880000000000 000000000b69f4d0 ffffffff8160ec80\n  ffff8800300e6f06 0000000081130295 0000000000000282 ffff8800300e6f00\n Call Trace:\n  [\u003cffffffff810d92f5\u003e] match_records+0x155/0x1b0\n  [\u003cffffffff810d940c\u003e] ftrace_mod_callback+0xbc/0x100\n  [\u003cffffffff810dafdf\u003e] ftrace_regex_write+0x16f/0x210\n  [\u003cffffffff810db09f\u003e] ftrace_filter_write+0xf/0x20\n  [\u003cffffffff81166e48\u003e] vfs_write+0xc8/0x190\n  [\u003cffffffff81167001\u003e] sys_write+0x51/0x90\n  [\u003cffffffff815c7e02\u003e] system_call_fastpath+0x16/0x1b\n Code: 48 8b 33 31 d2 48 85 f6 75 33 49 89 d4 4c 03 63 08 49 8b 14 24 48 85 d2 48 89 10 74 04 48 89 42 08 49 89 04 24 4c 89 60 08 31 d2\n RIP [\u003cffffffff810d9136\u003e] add_hash_entry+0x66/0xd0\n  RSP \u003cffff88003a96bda8\u003e\n CR2: ffffffff8160ec90\n ---[ end trace a5d031828efdd88e ]---\n\nReported-by: Brian Marete \u003cmarete@toshnix.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "40ee4dffff061399eb9358e0c8fcfbaf8de4c8fe",
      "tree": "88b61ccc46994332d6f59cc1e6b2848fffc9a990",
      "parents": [
        "e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 14:32:51 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:22:29 2011 -0400"
      },
      "message": "tracing: Have \"enable\" file use refcounts like the \"filter\" file\n\nThe \"enable\" file for the event system can be removed when a module\nis unloaded and the event system only has events from that module.\nAs the event system nr_events count goes to zero, it may be freed\nif its ref_count is also set to zero.\n\nLike the \"filter\" file, the \"enable\" file may be opened by a task and\nreferenced later, after a module has been unloaded and the events for\nthat event system have been removed.\n\nAlthough the \"filter\" file referenced the event system structure,\nthe \"enable\" file only references a pointer to the event system\nname. Since the name is freed when the event system is removed,\nit is possible that an access to the \"enable\" file may reference\na freed pointer.\n\nUpdate the \"enable\" file to use the subsystem_open() routine that\nthe \"filter\" file uses, to keep a reference to the event system\nstructure while the \"enable\" file is opened.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e9dbfae53eeb9fc3d4bb7da3df87fa9875f5da02",
      "tree": "2a389b9c6a5fe08d4fb3a9ca96e753244963e1d9",
      "parents": [
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jul 05 11:36:06 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jul 07 11:19:18 2011 -0400"
      },
      "message": "tracing: Fix bug when reading system filters on module removal\n\nThe event system is freed when its nr_events is set to zero. This happens\nwhen a module created an event system and then later the module is\nremoved. Modules may share systems, so the system is allocated when\nit is created and freed when the modules are unloaded and all the\nevents under the system are removed (nr_events set to zero).\n\nThe problem arises when a task opened the \"filter\" file for the\nsystem. If the module is unloaded and it removed the last event for\nthat system, the system structure is freed. If the task that opened\nthe filter file accesses the \"filter\" file after the system has\nbeen freed, the system will access an invalid pointer.\n\nBy adding a ref_count, and using it to keep track of what\nis using the event system, we can free it after all users\nare finished with the event system.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4d4cf23cdde2f8f9324f5684a7f349e182039529",
      "tree": "f84a26d15f1112cc7c452d1fdac3bd70857774e0",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "message": "PM / Hibernate: Fix free_unnecessary_pages()\n\nThere is a bug in free_unnecessary_pages() that causes it to\nattempt to free too many pages in some cases, which triggers the\nBUG_ON() in memory_bm_clear_bit() for copy_bm.  Namely, if\ncount_data_pages() is initially greater than alloc_normal, we get\nto_free_normal equal to 0 and \"save\" greater from 0.  In that case,\nif the sum of \"save\" and count_highmem_pages() is greater than\nalloc_highmem, we subtract a positive number from to_free_normal.\nHence, since to_free_normal was 0 before the subtraction and is\nan unsigned int, the result is converted to a huge positive number\nthat is used as the number of pages to free.\n\nFix this bug by checking if to_free_normal is actually greater\nthan or equal to the number we\u0027re going to subtract from it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "23c570a67448e803408191f529ed9a83fd34a25a",
      "tree": "8705e1ad863d745c42d8eb95a8c3f53f26fd0e38",
      "parents": [
        "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Tue Jul 05 23:44:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:54:08 2011 -0700"
      },
      "message": "resource: ability to resize an allocated resource\n\nProvides the ability to resize a resource that is already allocated.\nThis functionality is put in place to support reallocation needs of\npci resources.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "931da6137e8e8c622f59251e8b645467aea293f1",
      "tree": "2169cbd29d5d9a4cbc7104b2a744a95ba746c50d",
      "parents": [
        "5d67be97f8903d05ce53597fb5f3bc25a45e8026",
        "1fd8df2c3970c9e7e4e262354154ee39e58bdd7c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 05 11:55:43 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "b7b95920aa2e89e655afe9913ee0e55855ceda90",
      "tree": "6f7f30252e2b4b518d76906706a745107288a701",
      "parents": [
        "d4f2d87a8b46c14c4307c690c92bd08229f66ecf"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:37 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:56 2011 +0200"
      },
      "message": "PM: Allow the clocks management code to be used during system suspend\n\nThe common clocks management code in drivers/base/power/clock_ops.c\nis going to be used during system-wide power transitions as well as\nfor runtime PM, so it shouldn\u0027t depend on CONFIG_PM_RUNTIME.\nHowever, the suspend/resume functions provided by it for\nCONFIG_PM_RUNTIME unset, to be used during system-wide power\ntransitions, should not behave in the same way as their counterparts\ndefined for CONFIG_PM_RUNTIME set, because in that case the clocks\nare managed differently at run time.\n\nThe names of the functions still contain the word \"runtime\" after\nthis change, but that is going to be modified by a separate patch\nlater.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "f721889ff65afa6243c463832c74dee3bed418d5",
      "tree": "350bcb4fd7964167189fce93d0a9352f2958b1a4",
      "parents": [
        "dc6e4e56e6ef473a696a1ab24f80b79b9aceb92d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:12:45 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:55 2011 +0200"
      },
      "message": "PM / Domains: Support for generic I/O PM domains (v8)\n\nIntroduce common headers, helper functions and callbacks allowing\nplatforms to use simple generic power domains for runtime power\nmanagement.\n\nIntroduce struct generic_pm_domain to be used for representing\npower domains that each contain a number of devices and may be\nparent domains or subdomains with respect to other power domains.\nAmong other things, this structure includes callbacks to be\nprovided by platforms for performing specific tasks related to\npower management (i.e. -\u003estop_device() may disable a device\u0027s\nclocks, while -\u003estart_device() may enable them, -\u003epower_off() is\nsupposed to remove power from the entire power domain\nand -\u003epower_on() is supposed to restore it).\n\nIntroduce functions that can be used as power domain runtime PM\ncallbacks, pm_genpd_runtime_suspend() and pm_genpd_runtime_resume(),\nas well as helper functions for the initialization of a power\ndomain represented by a struct generic_power_domain object,\nadding a device to or removing a device from it and adding or\nremoving subdomains.\n\nIntroduce configuration option CONFIG_PM_GENERIC_DOMAINS to be\nselected by the platforms that want to use the new code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "1ecc818c51b1f6886825dae3885792d5e49ec798",
      "tree": "2179ae53fa86ea6a42d01ff4efc1a3f6a32e76f2",
      "parents": [
        "1c09ab0d257317f97e8629a3d0c8713d6dd9de4c",
        "d902db1eb60387040fe541573083e47469db50ac"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 13:20:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 13:20:51 2011 +0200"
      },
      "message": "Merge branch \u0027sched/core-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into sched/core\n"
    },
    {
      "commit": "26ca5c11fb45ae2b2ac7e3574b8db6b3a3c7d350",
      "tree": "01f430828eaacf7ba3e0eb541f8d946f3d855696",
      "parents": [
        "0af3ac1fdb9d5c297b4b07c9e0172531d42b6716"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 29 18:42:37 2011 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:40 2011 +0200"
      },
      "message": "perf: export perf_event_refresh() to modules\n\nKVM needs one-shot samples, since a PMC programmed to -X will fire after X\nevents and then again after 2^40 events (i.e. variable period).\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1309362157-6596-4-git-send-email-avi@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dc0da86967d5463708631d02a70cfed5b104884",
      "tree": "e09071a62f2457b710ff69df3be1bff39340a4c6",
      "parents": [
        "89d6c0b5bdbb1927775584dcf532d98b3efe1477"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 29 18:42:35 2011 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:38 2011 +0200"
      },
      "message": "perf: Add context field to perf_event\n\nThe perf_event overflow handler does not receive any caller-derived\nargument, so many callers need to resort to looking up the perf_event\nin their local data structure.  This is ugly and doesn\u0027t scale if a\nsingle callback services many perf_events.\n\nFix by adding a context parameter to perf_event_create_kernel_counter()\n(and derived hardware breakpoints APIs) and storing it in the perf_event.\nThe field can be accessed from the callback as event-\u003eoverflow_handler_context.\nAll callers are updated.\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1309362157-6596-2-git-send-email-avi@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7ac67ea021b4603095d2aa458bc41641238f22c",
      "tree": "e79d13a1096e751061af285265b1862d7e6dca70",
      "parents": [
        "a8b0ca17b80e92faab46ee7179ba9e99ccb61233"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 27 16:47:16 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:35 2011 +0200"
      },
      "message": "perf: Remove the perf_output_begin(.sample) argument\n\nSince only samples call perf_output_sample() its much saner (and more\ncorrect) to put the sample logic in there than in the\nperf_output_begin()/perf_output_end() pair.\n\nSaves a useless argument, reduces conditionals and shrinks\nstruct perf_output_handle, win!\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-2crpvsx3cqu67q3zqjbnlpsc@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8b0ca17b80e92faab46ee7179ba9e99ccb61233",
      "tree": "a4a6282139f26458f80dcbe21c709a9290e84143",
      "parents": [
        "1880c4ae182afb5650c5678949ecfe7ff66a724e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 27 14:41:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:35 2011 +0200"
      },
      "message": "perf: Remove the nmi parameter from the swevent and overflow interface\n\nThe nmi parameter indicated if we could do wakeups from the current\ncontext, if not, we would set some state and self-IPI and let the\nresulting interrupt do the wakeup.\n\nFor the various event classes:\n\n  - hardware: nmi\u003d0; PMI is in fact an NMI or we run irq_work_run from\n    the PMI-tail (ARM etc.)\n  - tracepoint: nmi\u003d0; since tracepoint could be from NMI context.\n  - software: nmi\u003d[0,1]; some, like the schedule thing cannot\n    perform wakeups, and hence need 0.\n\nAs one can see, there is very little nmi\u003d1 usage, and the down-side of\nnot using it is that on some platforms some software events can have a\njiffy delay in wakeup (when arch_irq_work_raise isn\u0027t implemented).\n\nThe up-side however is that we can remove the nmi parameter and save a\nbunch of conditionals in fast paths.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Don Zickus \u003cdzickus@redhat.com\u003e\nLink: http://lkml.kernel.org/n/tip-agjev8eu666tvknpb3iaj0fg@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1880c4ae182afb5650c5678949ecfe7ff66a724e",
      "tree": "57306c05aca1e2a2ce5d07e8c29ad76b6b403879",
      "parents": [
        "0d6412085b7ff58612af52e51ffa864f0df4b8fd"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Thu Jun 23 16:49:18 2011 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:34 2011 +0200"
      },
      "message": "perf, x86: Add hw_watchdog_set_attr() in a sake of nmi-watchdog on P4\n\nDue to restriction and specifics of Netburst PMU we need a separated\nevent for NMI watchdog. In particular every Netburst event\nconsumes not just a counter and a config register, but also an\nadditional ESCR register.\n\nSince ESCR registers are grouped upon counters (i.e. if ESCR is occupied\nfor some event there is no room for another event to enter until its\nreleased) we need to pick up the \"least\" used ESCR (or the most available\none) for nmi-watchdog purposes -- so MSR_P4_CRU_ESCR2/3 was chosen.\n\nWith this patch nmi-watchdog and perf top should be able to run simultaneously.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCC: Lin Ming \u003cming.m.lin@intel.com\u003e\nCC: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-and-reviewed-by: Don Zickus \u003cdzickus@redhat.com\u003e\nTested-and-reviewed-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110623124918.GC13050@sun\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d6412085b7ff58612af52e51ffa864f0df4b8fd",
      "tree": "b0aa2622aa0262b1238b07fad38d76c9c61d6e32",
      "parents": [
        "c4794295917ebeda8013b6cb9c8d71ab4f74a1fa"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "emunson@mgebm.net",
        "time": "Fri Jun 24 12:26:26 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:34 2011 +0200"
      },
      "message": "events: Ensure that timers are updated without requiring read() call\n\nThe event tracing infrastructure exposes two timers which should be updated\neach time the value of the counter is updated.  Currently, these counters are\nonly updated when userspace calls read() on the fd associated with an event.\nThis means that counters which are read via the mmap\u0027d page exclusively never\nhave their timers updated.  This patch adds ensures that the timers are updated\neach time the values in the mmap\u0027d page are updated.\n\nSigned-off-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1308932786-5111-1-git-send-email-emunson@mgebm.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c4794295917ebeda8013b6cb9c8d71ab4f74a1fa",
      "tree": "bb422e3368f2ad686e69229b416536b2bcb1df8e",
      "parents": [
        "b7526f0ca6dc68f57ca467ce503151b1d476a3e4"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "emunson@mgebm.net",
        "time": "Thu Jun 23 16:34:38 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:33 2011 +0200"
      },
      "message": "events: Move lockless timer calculation into helper function\n\nTake the timer calculation from perf_output_read and move it to a helper\nfunction for any place that needs timer values but cannot take the ctx-\u003elock.\n\nSigned-off-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1308861279-15216-2-git-send-email-emunson@mgebm.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b7526f0ca6dc68f57ca467ce503151b1d476a3e4",
      "tree": "979237e480c349409410f38aba502b06794a6b44",
      "parents": [
        "28009ce4a8130af7260a9271901b4419834ad152"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "emunson@mgebm.net",
        "time": "Thu Jun 23 16:34:37 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:33 2011 +0200"
      },
      "message": "events: Add note to update_event_times comment about holding ctx-\u003elock\n\nSigned-off-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1308861279-15216-1-git-send-email-emunson@mgebm.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ec8363dfc1451f8c8f86825731fe712798ada02",
      "tree": "12db5b26a3ffa179ef119ac945c4d9a6fb1ced88",
      "parents": [
        "0f933625e7b6c3d91878ae95e341bf1984db7eaf"
      ],
      "author": {
        "name": "Vince Weaver",
        "email": "vweaver1@eecs.utk.edu",
        "time": "Wed Jun 01 15:15:36 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 11:06:32 2011 +0200"
      },
      "message": "perf_events: Fix perf buffer watermark setting\n\nSince 2.6.36 (specifically commit d57e34fdd60b (\"perf: Simplify the\nring-buffer logic: make perf_buffer_alloc() do everything needed\"),\nthe perf_buffer_init_code() has been mis-setting the buffer watermark\nif perf_event_attr.wakeup_events has a non-zero value.\n\nThis is because perf_event_attr.wakeup_events is a union with\nperf_event_attr.wakeup_watermark.\n\nThis commit re-enables the check for perf_event_attr.watermark being\nset before continuing with setting a non-default watermark.\n\nThis bug is most noticable when you are trying to use PERF_IOC_REFRESH\nwith a value larger than one and perf_event_attr.wakeup_events is set to\none.  In this case the buffer watermark will be set to 1 and you will\nget extraneous POLL_IN overflows rather than POLL_HUP as expected.\n\n[ avoid using attr.wakeup_events when attr.watermark is set ]\n\nSigned-off-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.00.1106011506390.5384@cl320.eecs.utk.edu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c09ab0d257317f97e8629a3d0c8713d6dd9de4c",
      "tree": "81562207cd4b6f6579275d61ea92a7d7b6bbd9ef",
      "parents": [
        "307bf9803f25a8a3f53c1012110fb74e2f893eb0"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Tue Jun 28 10:51:31 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:08 2011 +0200"
      },
      "message": "sched: Skip autogroup when looking for all rt sched groups\n\nSince commit ec514c48 (\"sched: Fix rt_rq runtime leakage bug\")\n\u0027cat /proc/sched_debug\u0027 will print data of root_task_group.rt_rq\nmultiple times.\n\nThis is because autogroup does not have its own rt group, instead\nrt group of autogroup is linked to root_task_group.\n\nSo skip it when we are looking for all rt sched groups, and it\nwill also save some noop operation against root_task_group when\n__disable_runtime()/__enable_runtime().\n\n-v2: Based on Cheng Xu\u0027s idea which uses less code.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Cheng Xu \u003cchengxu@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTi\u003d87P3RoTF_UEtamNfc_XGxQXE__Q@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "307bf9803f25a8a3f53c1012110fb74e2f893eb0",
      "tree": "72146cbf22ea0e7d36a0734cca9d46291c40ca89",
      "parents": [
        "2a46dae38087e62dd5fb08a6dadf1407717ed13c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 10 15:08:55 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:07 2011 +0200"
      },
      "message": "sched: Simplify mutex_spin_on_owner()\n\nIt does not make sense to rcu_read_lock/unlock() in every loop\niteration while spinning on the mutex.\n\nMove the rcu protection outside the loop. Also simplify the\nreturn path to always check for lock-\u003eowner \u003d\u003d NULL which\nmeets the requirements of both owner changed and need_resched()\ncaused loop exits.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1106101458350.11814@ionos\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a46dae38087e62dd5fb08a6dadf1407717ed13c",
      "tree": "1840acef6c5003aee8744b64fec3a13002ba0abd",
      "parents": [
        "36b2e922b5acd291051fab25bc7535274ce49532"
      ],
      "author": {
        "name": "Nikunj A. Dadhania",
        "email": "nikunj@linux.vnet.ibm.com",
        "time": "Tue Jun 07 15:43:22 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:06 2011 +0200"
      },
      "message": "sched: Remove rcu_read_lock() from wake_affine()\n\nwake_affine() is only called from one path: select_task_rq_fair(),\nwhich already has the RCU read lock held.\n\nSigned-off-by: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110607101251.777.34547.stgit@IBM-009124035060.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "36b2e922b5acd291051fab25bc7535274ce49532",
      "tree": "ef4cdd6894075bb419cc31625b037f2b9212962f",
      "parents": [
        "e197f094b7da7d94812492cfcd706d143f1020e5",
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:34:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:34:24 2011 +0200"
      },
      "message": "Merge commit \u0027v3.0-rc5\u0027 into sched/core\n\nMerge reason: Move to a (much) newer base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10e6962765f8213941eaa1cbb9de425ff0689e2e",
      "tree": "c277e4ac5b2b7156152454578c39e90da5127dd8",
      "parents": [
        "af07ce3e77d3b24ab1d71fcc5833d41800f23b2b",
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:28:42 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:28:46 2011 +0200"
      },
      "message": "Merge commit \u0027v3.0-rc5\u0027 into perf/core\n\nMerge reason: Pick up the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd62287e364c0d15d517c6ced4e4808b54711475",
      "tree": "12544d4a0b84f378691be2a1d3d48a46f42595fc",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Jun 04 15:03:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:25:03 2011 +0200"
      },
      "message": "sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n\nCommit c8b28116 (\"sched: Increase SCHED_LOAD_SCALE resolution\")\nintended to have no user-visible effect, but allows setting\ncpu.shares to \u003c MIN_SHARES, which the user then sees.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nLink: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "131ad62d8fc06d9d0a5c61d9526876352c2f2bbd"
}
