)]}'
{
  "log": [
    {
      "commit": "d0ff9348810c5bc9fc7a3f022bdfae9b44b62f00",
      "tree": "36b638024e87545a83c63d2fb9bece4af692d5aa",
      "parents": [
        "d58c6ff0b779c5adae2a8596fde69cb45f2a5d68",
        "dd6c5cd8fedddc9605209098e2fa4e82c7af22aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:18:56 2013 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:18:56 2013 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull VFS fixes from Al Viro:\n \"Several fixes + obvious cleanup (you\u0027ve missed a couple of open-coded\n  can_lookup() back then)\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  snd_pcm_link(): fix a leak...\n  use can_lookup() instead of direct checks of -\u003ei_op-\u003elookup\n  move exit_task_namespaces() outside of exit_notify()\n  fput: task_work_add() can fail if the caller has passed exit_task_work()\n  ncpfs: fix rmdir returns Device or resource busy\n"
    },
    {
      "commit": "8aac62706adaaf0fab02c4327761561c8bda9448",
      "tree": "e55ad95dd0631d99703ecdd0571c54dc27e94f34",
      "parents": [
        "e7b2c4069252732d52f1de6d1f7c82d99a156659"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 14 21:09:49 2013 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 15 05:39:08 2013 +0400"
      },
      "message": "move exit_task_namespaces() outside of exit_notify()\n\nexit_notify() does exit_task_namespaces() after\nforget_original_parent(). This was needed to ensure that -\u003ensproxy\ncan\u0027t be cleared prematurely, an exiting child we are going to\nreparent can do do_notify_parent() and use the parent\u0027s (ours) pid_ns.\n\nHowever, after 32084504 \"pidns: use task_active_pid_ns in\ndo_notify_parent\" -\u003ensproxy !\u003d NULL is no longer needed, we rely\non task_active_pid_ns().\n\nMove exit_task_namespaces() from exit_notify() to do_exit(), after\nexit_fs() and before exit_task_work().\n\nThis solves the problem reported by Andrey, free_ipc_ns()-\u003eshm_destroy()\ndoes fput() which needs task_work_add().\n\nNote: this particular problem can be fixed if we change fput(), and\nthat change makes sense anyway. But there is another reason to move\nthe callsite. The original reason for exit_task_namespaces() from\nthe middle of exit_notify() was subtle and it has already gone away,\nnow this looks confusing. And this allows us do simplify exit_notify(),\nwe can avoid unlock/lock(tasklist) and we can use -\u003eexit_state instead\nof PF_EXITING in forget_original_parent().\n\nReported-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cb7e9704d58dab4b1b4284903e6bf973ade3863e",
      "tree": "bd66e94c4e34a9b89d4265591eb683a4fe8dad96",
      "parents": [
        "dcae7f2dfcc6c948c313d72df6a0d7e466c6707a",
        "971394f389992f8462c4e5ae0e3b49a10a9534a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 13 12:36:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 13 12:36:42 2013 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu\n\nPull RCU fixes from Paul McKenney:\n \"I must confess that this past merge window was not RCU\u0027s best showing.\n  This series contains three more fixes for RCU regressions:\n\n   1.   A fix to __DECLARE_TRACE_RCU() that causes it to act as an\n        interrupt from idle rather than as a task switch from idle.\n        This change is needed due to the recent use of _rcuidle()\n        tracepoints that can be invoked from interrupt handlers as well\n        as from idle.  Without this fix, invoking _rcuidle() tracepoints\n        from interrupt handlers results in splats and (more seriously)\n        confusion on RCU\u0027s part as to whether a given CPU is idle or not.\n        This confusion can in turn result in too-short grace periods and\n        therefore random memory corruption.\n\n   2.   A fix to a subtle deadlock that could result due to RCU doing\n        a wakeup while holding one of its rcu_node structure\u0027s locks.\n        Although the probability of occurrence is low, it really\n        does happen.  The fix, courtesy of Steven Rostedt, uses\n        irq_work_queue() to avoid the deadlock.\n\n   3.   A fix to a silent deadlock (invisible to lockdep) due to the\n        interaction of timeouts posted by RCU debug code enabled by\n        CONFIG_PROVE_RCU_DELAY\u003dy, grace-period initialization, and CPU\n        hotplug operations.  This will not occur in production kernels,\n        but really does occur in randconfig testing.  Diagnosis courtesy\n        of Steven Rostedt\"\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:\n  rcu: Fix deadlock with CPU hotplug, RCU GP init, and timer migration\n  rcu: Don\u0027t call wakeup() with rcu_node structure -\u003elock held\n  trace: Allow idle-safe tracepoints to be called from irq\n"
    },
    {
      "commit": "a568fa1c91d4f0e565345119d0b942cc7f74ca3d",
      "tree": "8d57522244da002e44b2f79cc2b376799630ba83",
      "parents": [
        "1a9c3d68d65f4b5ce32f7d67ccc730396e04cdd2",
        "c2853c8df57f49620d26f317d7d43347c29bfc2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:53 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (updates from Andrew Morton)\n\nMerge misc fixes from Andrew Morton:\n \"Bunch of fixes and one little addition to math64.h\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (27 commits)\n  include/linux/math64.h: add div64_ul()\n  mm: memcontrol: fix lockless reclaim hierarchy iterator\n  frontswap: fix incorrect zeroing and allocation size for frontswap_map\n  kernel/audit_tree.c:audit_add_tree_rule(): protect `rule\u0027 from kill_rules()\n  mm: migration: add migrate_entry_wait_huge()\n  ocfs2: add missing lockres put in dlm_mig_lockres_handler\n  mm/page_alloc.c: fix watermark check in __zone_watermark_ok()\n  drivers/misc/sgi-gru/grufile.c: fix info leak in gru_get_config_info()\n  aio: fix io_destroy() regression by using call_rcu()\n  rtc-at91rm9200: use shadow IMR on at91sam9x5\n  rtc-at91rm9200: add shadow interrupt mask\n  rtc-at91rm9200: refactor interrupt-register handling\n  rtc-at91rm9200: add configuration support\n  rtc-at91rm9200: add match-table compile guard\n  fs/ocfs2/namei.c: remove unecessary ERROR when removing non-empty directory\n  swap: avoid read_swap_cache_async() race to deadlock while waiting on discard I/O completion\n  drivers/rtc/rtc-twl.c: fix missing device_init_wakeup() when booted with device tree\n  cciss: fix broken mutex usage in ioctl\n  audit: wait_for_auditd() should use TASK_UNINTERRUPTIBLE\n  drivers/rtc/rtc-cmos.c: fix accidentally enabling rtc channel\n  ...\n"
    },
    {
      "commit": "736f3203a06eafd0944103775a98584082744c6b",
      "tree": "e0d42a615dd56a7e8ae301e3ccbb8a074b33273e",
      "parents": [
        "30dad30922ccc733cfdbfe232090cf674dc374dc"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Wed Jun 12 14:05:07 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:46 2013 -0700"
      },
      "message": "kernel/audit_tree.c:audit_add_tree_rule(): protect `rule\u0027 from kill_rules()\n\naudit_add_tree_rule() must set \u0027rule-\u003etree \u003d NULL;\u0027 firstly, to protect\nthe rule itself freed in kill_rules().\n\nThe reason is when it is killed, the \u0027rule\u0027 itself may have already\nreleased, we should not access it.  one example: we add a rule to an\ninode, just at the same time the other task is deleting this inode.\n\nThe work flow for adding a rule:\n\n    audit_receive() -\u003e (need audit_cmd_mutex lock)\n      audit_receive_skb() -\u003e\n        audit_receive_msg() -\u003e\n          audit_receive_filter() -\u003e\n            audit_add_rule() -\u003e\n              audit_add_tree_rule() -\u003e (need audit_filter_mutex lock)\n                ...\n                unlock audit_filter_mutex\n                get_tree()\n                ...\n                iterate_mounts() -\u003e (iterate all related inodes)\n                  tag_mount() -\u003e\n                    tag_trunk() -\u003e\n                      create_trunk() -\u003e (assume it is 1st rule)\n                        fsnotify_add_mark() -\u003e\n                          fsnotify_add_inode_mark() -\u003e  (add mark to inode-\u003ei_fsnotify_marks)\n                        ...\n                        get_tree(); (each inode will get one)\n                ...\n                lock audit_filter_mutex\n\nThe work flow for deleting an inode:\n\n    __destroy_inode() -\u003e\n     fsnotify_inode_delete() -\u003e\n       __fsnotify_inode_delete() -\u003e\n        fsnotify_clear_marks_by_inode() -\u003e  (get mark from inode-\u003ei_fsnotify_marks)\n          fsnotify_destroy_mark() -\u003e\n           fsnotify_destroy_mark_locked() -\u003e\n             audit_tree_freeing_mark() -\u003e\n               evict_chunk() -\u003e\n                 ...\n                 tree-\u003egoner \u003d 1\n                 ...\n                 kill_rules() -\u003e   (assume current-\u003eaudit_context \u003d\u003d NULL)\n                   call_rcu() -\u003e   (rule-\u003etree !\u003d NULL)\n                     audit_free_rule_rcu() -\u003e\n                       audit_free_rule()\n                 ...\n                 audit_schedule_prune() -\u003e  (assume current-\u003eaudit_context \u003d\u003d NULL)\n                   kthread_run() -\u003e    (need audit_cmd_mutex and audit_filter_mutex lock)\n                     prune_one() -\u003e    (delete it from prue_list)\n                       put_tree(); (match the original get_tree above)\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f000cfdde5de4fc15dead5ccf524359c07eadf2b",
      "tree": "f9632725a04ee92a5f1c0839253fe1769e97c84c",
      "parents": [
        "ebf8d6c8630bfd3e24683306599cb953c9a2842c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 12 14:04:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:45 2013 -0700"
      },
      "message": "audit: wait_for_auditd() should use TASK_UNINTERRUPTIBLE\n\naudit_log_start() does wait_for_auditd() in a loop until\naudit_backlog_wait_time passes or audit_skb_queue has a room.\n\nIf signal_pending() is true this becomes a busy-wait loop, schedule() in\nTASK_INTERRUPTIBLE won\u0027t block.\n\nThanks to Guy for fully investigating and explaining the problem.\n\n(akpm: that\u0027ll cause the system to lock up on a non-preemptible\nuniprocessor kernel)\n\n(Guy: \"Our customer was in fact running a uniprocessor machine, and they\nreported a system hang.\")\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReported-by: Guy Streeter \u003cstreeter@redhat.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "637241a900cbd982f744d44646b48a273d609b34",
      "tree": "0c8e84af9e6a37bd61f9fc9b7a668472df53df46",
      "parents": [
        "cf7df378aa4ff7da3a44769b7ff6e9eef1a9f3db"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Jun 12 14:04:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:44 2013 -0700"
      },
      "message": "kmsg: honor dmesg_restrict sysctl on /dev/kmsg\n\nThe dmesg_restrict sysctl currently covers the syslog method for access\ndmesg, however /dev/kmsg isn\u0027t covered by the same protections.  Most\npeople haven\u0027t noticed because util-linux dmesg(1) defaults to using the\nsyslog method for access in older versions.  With util-linux dmesg(1)\ndefaults to reading directly from /dev/kmsg.\n\nTo fix /dev/kmsg, let\u0027s compare the existing interfaces and what they\nallow:\n\n - /proc/kmsg allows:\n  - open (SYSLOG_ACTION_OPEN) if CAP_SYSLOG since it uses a destructive\n    single-reader interface (SYSLOG_ACTION_READ).\n  - everything, after an open.\n\n - syslog syscall allows:\n  - anything, if CAP_SYSLOG.\n  - SYSLOG_ACTION_READ_ALL and SYSLOG_ACTION_SIZE_BUFFER, if\n    dmesg_restrict\u003d\u003d0.\n  - nothing else (EPERM).\n\nThe use-cases were:\n - dmesg(1) needs to do non-destructive SYSLOG_ACTION_READ_ALLs.\n - sysklog(1) needs to open /proc/kmsg, drop privs, and still issue the\n   destructive SYSLOG_ACTION_READs.\n\nAIUI, dmesg(1) is moving to /dev/kmsg, and systemd-journald doesn\u0027t\nclear the ring buffer.\n\nBased on the comments in devkmsg_llseek, it sounds like actions besides\nreading aren\u0027t going to be supported by /dev/kmsg (i.e.\nSYSLOG_ACTION_CLEAR), so we have a strict subset of the non-destructive\nsyslog syscall actions.\n\nTo this end, move the check as Josh had done, but also rename the\nconstants to reflect their new uses (SYSLOG_FROM_CALL becomes\nSYSLOG_FROM_READER, and SYSLOG_FROM_FILE becomes SYSLOG_FROM_PROC).\nSYSLOG_FROM_READER allows non-destructive actions, and SYSLOG_FROM_PROC\nallows destructive actions after a capabilities-constrained\nSYSLOG_ACTION_OPEN check.\n\n - /dev/kmsg allows:\n  - open if CAP_SYSLOG or dmesg_restrict\u003d\u003d0\n  - reading/polling, after open\n\nAddresses https://bugzilla.redhat.com/show_bug.cgi?id\u003d903192\n\n[akpm@linux-foundation.org: use pr_warn_once()]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nTested-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: Kay Sievers \u003ckay@vrfy.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf7df378aa4ff7da3a44769b7ff6e9eef1a9f3db",
      "tree": "c9d93d55f6ff87eb47621d2c47d9ca2bff5f3a9a",
      "parents": [
        "16e53dbf10a2d7e228709a7286310e629ede5e45"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Wed Jun 12 14:04:37 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:44 2013 -0700"
      },
      "message": "reboot: rigrate shutdown/reboot to boot cpu\n\nWe recently noticed that reboot of a 1024 cpu machine takes approx 16\nminutes of just stopping the cpus.  The slowdown was tracked to commit\nf96972f2dc63 (\"kernel/sys.c: call disable_nonboot_cpus() in\nkernel_restart()\").\n\nThe current implementation does all the work of hot removing the cpus\nbefore halting the system.  We are switching to just migrating to the\nboot cpu and then continuing with shutdown/reboot.\n\nThis also has the effect of not breaking x86\u0027s command line parameter\nfor specifying the reboot cpu.  Note, this code was shamelessly copied\nfrom arch/x86/kernel/reboot.c with bits removed pertaining to the\nreboot_cpu command line parameter.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nTested-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Russ Anderson \u003crja@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16e53dbf10a2d7e228709a7286310e629ede5e45",
      "tree": "4b606e077ba322764c584493243bbede219f737f",
      "parents": [
        "77293e215edef7871a39de4b326f777bc39278ca"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Jun 12 14:04:36 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:44 2013 -0700"
      },
      "message": "CPU hotplug: provide a generic helper to disable/enable CPU hotplug\n\nThere are instances in the kernel where we would like to disable CPU\nhotplug (from sysfs) during some important operation.  Today the freezer\ncode depends on this and the code to do it was kinda tailor-made for\nthat.\n\nRestructure the code and make it generic enough to be useful for other\nusecases too.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Russ Anderson \u003crja@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45d53766b94b0b773e0090219c1aa3a313f4bb45",
      "tree": "e8965eff333f92564246b6392a22a62a4c034630",
      "parents": [
        "8d7a8fe2ce2f242953aef46226eaa8a4a1a2c380",
        "58e8eedf18577c7eac722d5d1f190507ea263d1b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 08:29:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 08:29:11 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing fix from Steven Rostedt:\n \"Yoshihiro Yunomae fixed a regression in the output format when using\n  one of the counter clocks.\n\n  The new multibuffer code changed the trace_clock file to update the\n  trace instances tr-\u003eclock_id but the actual traces still used the\n  value from the obsolete global variable trace_clock_id\"\n\n* tag \u0027trace-fixes-v3.10-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Fix outputting formats of x86-tsc and counter when use trace_clock\n"
    },
    {
      "commit": "58e8eedf18577c7eac722d5d1f190507ea263d1b",
      "tree": "6a44f69cf8711a4853fc4e921e77cc64784fa9f9",
      "parents": [
        "f17a5194859a82afe4164e938b92035b86c55794"
      ],
      "author": {
        "name": "Yoshihiro YUNOMAE",
        "email": "yoshihiro.yunomae.ez@hitachi.com",
        "time": "Tue Apr 23 10:32:39 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 11 13:58:46 2013 -0400"
      },
      "message": "tracing: Fix outputting formats of x86-tsc and counter when use trace_clock\n\nOutputting formats of x86-tsc and counter should be a raw format, but after\napplying the patch(2b6080f28c7cc3efc8625ab71495aae89aeb63a0), the format was\nchanged to nanosec. This is because the global variable trace_clock_id was used.\nWhen we use multiple buffers, clock_id of each sub-buffer should be used. Then,\nthis patch uses tr-\u003eclock_id instead of the global variable trace_clock_id.\n\n[ Basically, this fixes a regression where the multibuffer code changed the\n  trace_clock file to update tr-\u003eclock_id but the traces still use the old\n  global trace_clock_id variable, negating the file\u0027s effect. The global\n  trace_clock_id variable is obsolete and removed. - SR ]\n\nLink: http://lkml.kernel.org/r/20130423013239.22334.7394.stgit@yunodevel\n\nSigned-off-by: Yoshihiro YUNOMAE \u003cyoshihiro.yunomae.ez@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "34376a50fb1fa095b9d0636fa41ed2e73125f214",
      "tree": "d6bfe7027fd066762dcc0e66820f707ce18e1371",
      "parents": [
        "1b79821fe7855c34030bc2f177660874e0a0ab62"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Thu Jun 06 14:29:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 10 17:46:57 2013 -0700"
      },
      "message": "Fix lockup related to stop_machine being stuck in __do_softirq.\n\nThe stop machine logic can lock up if all but one of the migration\nthreads make it through the disable-irq step and the one remaining\nthread gets stuck in __do_softirq.  The reason __do_softirq can hang is\nthat it has a bail-out based on jiffies timeout, but in the lockup case,\njiffies itself is not incremented.\n\nTo work around this, re-add the max_restart counter in __do_irq and stop\nprocessing irqs after 10 restarts.\n\nThanks to Tejun Heo and Rusty Russell and others for helping me track\nthis down.\n\nThis was introduced in 3.9 by commit c10d73671ad3 (\"softirq: reduce\nlatencies\").\n\nIt may be worth looking into ath9k to see if it has issues with its irq\nhandler at a later date.\n\nThe hang stack traces look something like this:\n\n    ------------[ cut here ]------------\n    WARNING: at kernel/watchdog.c:245 watchdog_overflow_callback+0x9c/0xa7()\n    Watchdog detected hard LOCKUP on cpu 2\n    Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]\n    Pid: 23, comm: migration/2 Tainted: G         C   3.9.4+ #11\n    Call Trace:\n     \u003cNMI\u003e   warn_slowpath_common+0x85/0x9f\n      warn_slowpath_fmt+0x46/0x48\n      watchdog_overflow_callback+0x9c/0xa7\n      __perf_event_overflow+0x137/0x1cb\n      perf_event_overflow+0x14/0x16\n      intel_pmu_handle_irq+0x2dc/0x359\n      perf_event_nmi_handler+0x19/0x1b\n      nmi_handle+0x7f/0xc2\n      do_nmi+0xbc/0x304\n      end_repeat_nmi+0x1e/0x2e\n     \u003c\u003cEOE\u003e\u003e\n      cpu_stopper_thread+0xae/0x162\n      smpboot_thread_fn+0x258/0x260\n      kthread+0xc7/0xcf\n      ret_from_fork+0x7c/0xb0\n    ---[ end trace 4947dfa9b0a4cec3 ]---\n    BUG: soft lockup - CPU#1 stuck for 22s! [migration/1:17]\n    Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]\n    irq event stamp: 835637905\n    hardirqs last  enabled at (835637904): __do_softirq+0x9f/0x257\n    hardirqs last disabled at (835637905): apic_timer_interrupt+0x6d/0x80\n    softirqs last  enabled at (5654720): __do_softirq+0x1ff/0x257\n    softirqs last disabled at (5654725): irq_exit+0x5f/0xbb\n    CPU 1\n    Pid: 17, comm: migration/1 Tainted: G        WC   3.9.4+ #11 To be filled by O.E.M. To be filled by O.E.M./To be filled by O.E.M.\n    RIP: tasklet_hi_action+0xf0/0xf0\n    Process migration/1\n    Call Trace:\n     \u003cIRQ\u003e\n      __do_softirq+0x117/0x257\n      irq_exit+0x5f/0xbb\n      smp_apic_timer_interrupt+0x8a/0x98\n      apic_timer_interrupt+0x72/0x80\n     \u003cEOI\u003e\n      printk+0x4d/0x4f\n      stop_machine_cpu_stop+0x22c/0x274\n      cpu_stopper_thread+0xae/0x162\n      smpboot_thread_fn+0x258/0x260\n      kthread+0xc7/0xcf\n      ret_from_fork+0x7c/0xb0\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Pekka Riikonen \u003cpriikone@iki.fi\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "971394f389992f8462c4e5ae0e3b49a10a9534a3",
      "tree": "ec82a1a13dacd76ce3ec56b0c48acc953f7bd7d5",
      "parents": [
        "016a8d5be6ddcc72ef0432d82d9f6fa34f61b907"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jun 02 07:13:57 2013 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 10 13:37:12 2013 -0700"
      },
      "message": "rcu: Fix deadlock with CPU hotplug, RCU GP init, and timer migration\n\nIn Steven Rostedt\u0027s words:\n\n\u003e I\u0027ve been debugging the last couple of days why my tests have been\n\u003e locking up. One of my tracing tests, runs all available tracers. The\n\u003e lockup always happened with the mmiotrace, which is used to trace\n\u003e interactions between priority drivers and the kernel. But to do this\n\u003e easily, when the tracer gets registered, it disables all but the boot\n\u003e CPUs. The lockup always happened after it got done disabling the CPUs.\n\u003e\n\u003e Then I decided to try this:\n\u003e\n\u003e while :; do\n\u003e \tfor i in 1 2 3; do\n\u003e \t\techo 0 \u003e /sys/devices/system/cpu/cpu$i/online\n\u003e \tdone\n\u003e \tfor i in 1 2 3; do\n\u003e \t\techo 1 \u003e /sys/devices/system/cpu/cpu$i/online\n\u003e \tdone\n\u003e done\n\u003e\n\u003e Well, sure enough, that locked up too, with the same users. Doing a\n\u003e sysrq-w (showing all blocked tasks):\n\u003e\n\u003e [ 2991.344562]   task                        PC stack   pid father\n\u003e [ 2991.344562] rcu_preempt     D ffff88007986fdf8     0    10      2 0x00000000\n\u003e [ 2991.344562]  ffff88007986fc98 0000000000000002 ffff88007986fc48 0000000000000908\n\u003e [ 2991.344562]  ffff88007986c280 ffff88007986ffd8 ffff88007986ffd8 00000000001d3c80\n\u003e [ 2991.344562]  ffff880079248a40 ffff88007986c280 0000000000000000 00000000fffd4295\n\u003e [ 2991.344562] Call Trace:\n\u003e [ 2991.344562]  [\u003cffffffff815437ba\u003e] schedule+0x64/0x66\n\u003e [ 2991.344562]  [\u003cffffffff81541750\u003e] schedule_timeout+0xbc/0xf9\n\u003e [ 2991.344562]  [\u003cffffffff8154bec0\u003e] ? ftrace_call+0x5/0x2f\n\u003e [ 2991.344562]  [\u003cffffffff81049513\u003e] ? cascade+0xa8/0xa8\n\u003e [ 2991.344562]  [\u003cffffffff815417ab\u003e] schedule_timeout_uninterruptible+0x1e/0x20\n\u003e [ 2991.344562]  [\u003cffffffff810c980c\u003e] rcu_gp_kthread+0x502/0x94b\n\u003e [ 2991.344562]  [\u003cffffffff81062791\u003e] ? __init_waitqueue_head+0x50/0x50\n\u003e [ 2991.344562]  [\u003cffffffff810c930a\u003e] ? rcu_gp_fqs+0x64/0x64\n\u003e [ 2991.344562]  [\u003cffffffff81061cdb\u003e] kthread+0xb1/0xb9\n\u003e [ 2991.344562]  [\u003cffffffff81091e31\u003e] ? lock_release_holdtime.part.23+0x4e/0x55\n\u003e [ 2991.344562]  [\u003cffffffff81061c2a\u003e] ? __init_kthread_worker+0x58/0x58\n\u003e [ 2991.344562]  [\u003cffffffff8154c1dc\u003e] ret_from_fork+0x7c/0xb0\n\u003e [ 2991.344562]  [\u003cffffffff81061c2a\u003e] ? __init_kthread_worker+0x58/0x58\n\u003e [ 2991.344562] kworker/0:1     D ffffffff81a30680     0    47      2 0x00000000\n\u003e [ 2991.344562] Workqueue: events cpuset_hotplug_workfn\n\u003e [ 2991.344562]  ffff880078dbbb58 0000000000000002 0000000000000006 00000000000000d8\n\u003e [ 2991.344562]  ffff880078db8100 ffff880078dbbfd8 ffff880078dbbfd8 00000000001d3c80\n\u003e [ 2991.344562]  ffff8800779ca5c0 ffff880078db8100 ffffffff81541fcf 0000000000000000\n\u003e [ 2991.344562] Call Trace:\n\u003e [ 2991.344562]  [\u003cffffffff81541fcf\u003e] ? __mutex_lock_common+0x3d4/0x609\n\u003e [ 2991.344562]  [\u003cffffffff815437ba\u003e] schedule+0x64/0x66\n\u003e [ 2991.344562]  [\u003cffffffff81543a39\u003e] schedule_preempt_disabled+0x18/0x24\n\u003e [ 2991.344562]  [\u003cffffffff81541fcf\u003e] __mutex_lock_common+0x3d4/0x609\n\u003e [ 2991.344562]  [\u003cffffffff8103d11b\u003e] ? get_online_cpus+0x3c/0x50\n\u003e [ 2991.344562]  [\u003cffffffff8103d11b\u003e] ? get_online_cpus+0x3c/0x50\n\u003e [ 2991.344562]  [\u003cffffffff815422ff\u003e] mutex_lock_nested+0x3b/0x40\n\u003e [ 2991.344562]  [\u003cffffffff8103d11b\u003e] get_online_cpus+0x3c/0x50\n\u003e [ 2991.344562]  [\u003cffffffff810af7e6\u003e] rebuild_sched_domains_locked+0x6e/0x3a8\n\u003e [ 2991.344562]  [\u003cffffffff810b0ec6\u003e] rebuild_sched_domains+0x1c/0x2a\n\u003e [ 2991.344562]  [\u003cffffffff810b109b\u003e] cpuset_hotplug_workfn+0x1c7/0x1d3\n\u003e [ 2991.344562]  [\u003cffffffff810b0ed9\u003e] ? cpuset_hotplug_workfn+0x5/0x1d3\n\u003e [ 2991.344562]  [\u003cffffffff81058e07\u003e] process_one_work+0x2d4/0x4d1\n\u003e [ 2991.344562]  [\u003cffffffff81058d3a\u003e] ? process_one_work+0x207/0x4d1\n\u003e [ 2991.344562]  [\u003cffffffff8105964c\u003e] worker_thread+0x2e7/0x3b5\n\u003e [ 2991.344562]  [\u003cffffffff81059365\u003e] ? rescuer_thread+0x332/0x332\n\u003e [ 2991.344562]  [\u003cffffffff81061cdb\u003e] kthread+0xb1/0xb9\n\u003e [ 2991.344562]  [\u003cffffffff81061c2a\u003e] ? __init_kthread_worker+0x58/0x58\n\u003e [ 2991.344562]  [\u003cffffffff8154c1dc\u003e] ret_from_fork+0x7c/0xb0\n\u003e [ 2991.344562]  [\u003cffffffff81061c2a\u003e] ? __init_kthread_worker+0x58/0x58\n\u003e [ 2991.344562] bash            D ffffffff81a4aa80     0  2618   2612 0x10000000\n\u003e [ 2991.344562]  ffff8800379abb58 0000000000000002 0000000000000006 0000000000000c2c\n\u003e [ 2991.344562]  ffff880077fea140 ffff8800379abfd8 ffff8800379abfd8 00000000001d3c80\n\u003e [ 2991.344562]  ffff8800779ca5c0 ffff880077fea140 ffffffff81541fcf 0000000000000000\n\u003e [ 2991.344562] Call Trace:\n\u003e [ 2991.344562]  [\u003cffffffff81541fcf\u003e] ? __mutex_lock_common+0x3d4/0x609\n\u003e [ 2991.344562]  [\u003cffffffff815437ba\u003e] schedule+0x64/0x66\n\u003e [ 2991.344562]  [\u003cffffffff81543a39\u003e] schedule_preempt_disabled+0x18/0x24\n\u003e [ 2991.344562]  [\u003cffffffff81541fcf\u003e] __mutex_lock_common+0x3d4/0x609\n\u003e [ 2991.344562]  [\u003cffffffff81530078\u003e] ? rcu_cpu_notify+0x2f5/0x86e\n\u003e [ 2991.344562]  [\u003cffffffff81530078\u003e] ? rcu_cpu_notify+0x2f5/0x86e\n\u003e [ 2991.344562]  [\u003cffffffff815422ff\u003e] mutex_lock_nested+0x3b/0x40\n\u003e [ 2991.344562]  [\u003cffffffff81530078\u003e] rcu_cpu_notify+0x2f5/0x86e\n\u003e [ 2991.344562]  [\u003cffffffff81091c99\u003e] ? __lock_is_held+0x32/0x53\n\u003e [ 2991.344562]  [\u003cffffffff81548912\u003e] notifier_call_chain+0x6b/0x98\n\u003e [ 2991.344562]  [\u003cffffffff810671fd\u003e] __raw_notifier_call_chain+0xe/0x10\n\u003e [ 2991.344562]  [\u003cffffffff8103cf64\u003e] __cpu_notify+0x20/0x32\n\u003e [ 2991.344562]  [\u003cffffffff8103cf8d\u003e] cpu_notify_nofail+0x17/0x36\n\u003e [ 2991.344562]  [\u003cffffffff815225de\u003e] _cpu_down+0x154/0x259\n\u003e [ 2991.344562]  [\u003cffffffff81522710\u003e] cpu_down+0x2d/0x3a\n\u003e [ 2991.344562]  [\u003cffffffff81526351\u003e] store_online+0x4e/0xe7\n\u003e [ 2991.344562]  [\u003cffffffff8134d764\u003e] dev_attr_store+0x20/0x22\n\u003e [ 2991.344562]  [\u003cffffffff811b3c5f\u003e] sysfs_write_file+0x108/0x144\n\u003e [ 2991.344562]  [\u003cffffffff8114c5ef\u003e] vfs_write+0xfd/0x158\n\u003e [ 2991.344562]  [\u003cffffffff8114c928\u003e] SyS_write+0x5c/0x83\n\u003e [ 2991.344562]  [\u003cffffffff8154c494\u003e] tracesys+0xdd/0xe2\n\u003e\n\u003e As well as held locks:\n\u003e\n\u003e [ 3034.728033] Showing all locks held in the system:\n\u003e [ 3034.728033] 1 lock held by rcu_preempt/10:\n\u003e [ 3034.728033]  #0:  (rcu_preempt_state.onoff_mutex){+.+...}, at: [\u003cffffffff810c9471\u003e] rcu_gp_kthread+0x167/0x94b\n\u003e [ 3034.728033] 4 locks held by kworker/0:1/47:\n\u003e [ 3034.728033]  #0:  (events){.+.+.+}, at: [\u003cffffffff81058d3a\u003e] process_one_work+0x207/0x4d1\n\u003e [ 3034.728033]  #1:  (cpuset_hotplug_work){+.+.+.}, at: [\u003cffffffff81058d3a\u003e] process_one_work+0x207/0x4d1\n\u003e [ 3034.728033]  #2:  (cpuset_mutex){+.+.+.}, at: [\u003cffffffff810b0ec1\u003e] rebuild_sched_domains+0x17/0x2a\n\u003e [ 3034.728033]  #3:  (cpu_hotplug.lock){+.+.+.}, at: [\u003cffffffff8103d11b\u003e] get_online_cpus+0x3c/0x50\n\u003e [ 3034.728033] 1 lock held by mingetty/2563:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e [ 3034.728033] 1 lock held by mingetty/2565:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e [ 3034.728033] 1 lock held by mingetty/2569:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e [ 3034.728033] 1 lock held by mingetty/2572:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e [ 3034.728033] 1 lock held by mingetty/2575:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e [ 3034.728033] 7 locks held by bash/2618:\n\u003e [ 3034.728033]  #0:  (sb_writers#5){.+.+.+}, at: [\u003cffffffff8114bc3f\u003e] file_start_write+0x2a/0x2c\n\u003e [ 3034.728033]  #1:  (\u0026buffer-\u003emutex#2){+.+.+.}, at: [\u003cffffffff811b3b93\u003e] sysfs_write_file+0x3c/0x144\n\u003e [ 3034.728033]  #2:  (s_active#54){.+.+.+}, at: [\u003cffffffff811b3c3e\u003e] sysfs_write_file+0xe7/0x144\n\u003e [ 3034.728033]  #3:  (x86_cpu_hotplug_driver_mutex){+.+.+.}, at: [\u003cffffffff810217c2\u003e] cpu_hotplug_driver_lock+0x17/0x19\n\u003e [ 3034.728033]  #4:  (cpu_add_remove_lock){+.+.+.}, at: [\u003cffffffff8103d196\u003e] cpu_maps_update_begin+0x17/0x19\n\u003e [ 3034.728033]  #5:  (cpu_hotplug.lock){+.+.+.}, at: [\u003cffffffff8103cfd8\u003e] cpu_hotplug_begin+0x2c/0x6d\n\u003e [ 3034.728033]  #6:  (rcu_preempt_state.onoff_mutex){+.+...}, at: [\u003cffffffff81530078\u003e] rcu_cpu_notify+0x2f5/0x86e\n\u003e [ 3034.728033] 1 lock held by bash/2980:\n\u003e [ 3034.728033]  #0:  (\u0026ldata-\u003eatomic_read_lock){+.+...}, at: [\u003cffffffff8131e28a\u003e] n_tty_read+0x252/0x7e8\n\u003e\n\u003e Things looked a little weird. Also, this is a deadlock that lockdep did\n\u003e not catch. But what we have here does not look like a circular lock\n\u003e issue:\n\u003e\n\u003e Bash is blocked in rcu_cpu_notify():\n\u003e\n\u003e 1961\t\t/* Exclude any attempts to start a new grace period. */\n\u003e 1962\t\tmutex_lock(\u0026rsp-\u003eonoff_mutex);\n\u003e\n\u003e\n\u003e kworker is blocked in get_online_cpus(), which makes sense as we are\n\u003e currently taking down a CPU.\n\u003e\n\u003e But rcu_preempt is not blocked on anything. It is simply sleeping in\n\u003e rcu_gp_kthread (really rcu_gp_init) here:\n\u003e\n\u003e 1453\t#ifdef CONFIG_PROVE_RCU_DELAY\n\u003e 1454\t\t\tif ((prandom_u32() % (rcu_num_nodes * 8)) \u003d\u003d 0 \u0026\u0026\n\u003e 1455\t\t\t    system_state \u003d\u003d SYSTEM_RUNNING)\n\u003e 1456\t\t\t\tschedule_timeout_uninterruptible(2);\n\u003e 1457\t#endif /* #ifdef CONFIG_PROVE_RCU_DELAY */\n\u003e\n\u003e And it does this while holding the onoff_mutex that bash is waiting for.\n\u003e\n\u003e Doing a function trace, it showed me where it happened:\n\u003e\n\u003e [  125.940066] rcu_pree-10      3.... 28384115273: schedule_timeout_uninterruptible \u003c-rcu_gp_kthread\n\u003e [...]\n\u003e [  125.940066] rcu_pree-10      3d..3 28384202439: sched_switch: prev_comm\u003drcu_preempt prev_pid\u003d10 prev_prio\u003d120 prev_state\u003dD \u003d\u003d\u003e next_comm\u003dwatchdog/3 next_pid\u003d38 next_prio\u003d120\n\u003e\n\u003e The watchdog ran, and then:\n\u003e\n\u003e [  125.940066] watchdog-38      3d..3 28384692863: sched_switch: prev_comm\u003dwatchdog/3 prev_pid\u003d38 prev_prio\u003d120 prev_state\u003dP \u003d\u003d\u003e next_comm\u003dmodprobe next_pid\u003d2848 next_prio\u003d118\n\u003e\n\u003e Not sure what modprobe was doing, but shortly after that:\n\u003e\n\u003e [  125.940066] modprobe-2848    3d..3 28385041749: sched_switch: prev_comm\u003dmodprobe prev_pid\u003d2848 prev_prio\u003d118 prev_state\u003dR+ \u003d\u003d\u003e next_comm\u003dmigration/3 next_pid\u003d40 next_prio\u003d0\n\u003e\n\u003e Where the migration thread took down the CPU:\n\u003e\n\u003e [  125.940066] migratio-40      3d..3 28389148276: sched_switch: prev_comm\u003dmigration/3 prev_pid\u003d40 prev_prio\u003d0 prev_state\u003dP \u003d\u003d\u003e next_comm\u003dswapper/3 next_pid\u003d0 next_prio\u003d120\n\u003e\n\u003e which finally did:\n\u003e\n\u003e [  125.940066]   \u003cidle\u003e-0       3...1 28389282142: arch_cpu_idle_dead \u003c-cpu_startup_entry\n\u003e [  125.940066]   \u003cidle\u003e-0       3...1 28389282548: native_play_dead \u003c-arch_cpu_idle_dead\n\u003e [  125.940066]   \u003cidle\u003e-0       3...1 28389282924: play_dead_common \u003c-native_play_dead\n\u003e [  125.940066]   \u003cidle\u003e-0       3...1 28389283468: idle_task_exit \u003c-play_dead_common\n\u003e [  125.940066]   \u003cidle\u003e-0       3...1 28389284644: amd_e400_remove_cpu \u003c-play_dead_common\n\u003e\n\u003e\n\u003e CPU 3 is now offline, the rcu_preempt thread that ran on CPU 3 is still\n\u003e doing a schedule_timeout_uninterruptible() and it registered it\u0027s\n\u003e timeout to the timer base for CPU 3. You would think that it would get\n\u003e migrated right? The issue here is that the timer migration happens at\n\u003e the CPU notifier for CPU_DEAD. The problem is that the rcu notifier for\n\u003e CPU_DOWN is blocked waiting for the onoff_mutex to be released, which is\n\u003e held by the thread that just put itself into a uninterruptible sleep,\n\u003e that wont wake up until the CPU_DEAD notifier of the timer\n\u003e infrastructure is called, which wont happen until the rcu notifier\n\u003e finishes. Here\u0027s our deadlock!\n\nThis commit breaks this deadlock cycle by substituting a shorter udelay()\nfor the previous schedule_timeout_uninterruptible(), while at the same\ntime increasing the probability of the delay.  This maintains the intensity\nof the testing.\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "016a8d5be6ddcc72ef0432d82d9f6fa34f61b907",
      "tree": "3f89d85633928acfde3a6a390ef62dcda0d3a3f4",
      "parents": [
        "d62840995a99c9766803d54e9d7923f247a1c1db"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 17:32:53 2013 -0400"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 10 13:37:11 2013 -0700"
      },
      "message": "rcu: Don\u0027t call wakeup() with rcu_node structure -\u003elock held\n\nThis commit fixes a lockdep-detected deadlock by moving a wake_up()\ncall out from a rnp-\u003elock critical section.  Please see below for\nthe long version of this story.\n\nOn Tue, 2013-05-28 at 16:13 -0400, Dave Jones wrote:\n\n\u003e [12572.705832] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [12572.750317] [ INFO: possible circular locking dependency detected ]\n\u003e [12572.796978] 3.10.0-rc3+ #39 Not tainted\n\u003e [12572.833381] -------------------------------------------------------\n\u003e [12572.862233] trinity-child17/31341 is trying to acquire lock:\n\u003e [12572.870390]  (rcu_node_0){..-.-.}, at: [\u003cffffffff811054ff\u003e] rcu_read_unlock_special+0x9f/0x4c0\n\u003e [12572.878859]\n\u003e but task is already holding lock:\n\u003e [12572.894894]  (\u0026ctx-\u003elock){-.-...}, at: [\u003cffffffff811390ed\u003e] perf_lock_task_context+0x7d/0x2d0\n\u003e [12572.903381]\n\u003e which lock already depends on the new lock.\n\u003e\n\u003e [12572.927541]\n\u003e the existing dependency chain (in reverse order) is:\n\u003e [12572.943736]\n\u003e -\u003e #4 (\u0026ctx-\u003elock){-.-...}:\n\u003e [12572.960032]        [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12572.968337]        [\u003cffffffff816ebc90\u003e] _raw_spin_lock+0x40/0x80\n\u003e [12572.976633]        [\u003cffffffff8113c987\u003e] __perf_event_task_sched_out+0x2e7/0x5e0\n\u003e [12572.984969]        [\u003cffffffff81088953\u003e] perf_event_task_sched_out+0x93/0xa0\n\u003e [12572.993326]        [\u003cffffffff816ea0bf\u003e] __schedule+0x2cf/0x9c0\n\u003e [12573.001652]        [\u003cffffffff816eacfe\u003e] schedule_user+0x2e/0x70\n\u003e [12573.009998]        [\u003cffffffff816ecd64\u003e] retint_careful+0x12/0x2e\n\u003e [12573.018321]\n\u003e -\u003e #3 (\u0026rq-\u003elock){-.-.-.}:\n\u003e [12573.034628]        [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12573.042930]        [\u003cffffffff816ebc90\u003e] _raw_spin_lock+0x40/0x80\n\u003e [12573.051248]        [\u003cffffffff8108e6a7\u003e] wake_up_new_task+0xb7/0x260\n\u003e [12573.059579]        [\u003cffffffff810492f5\u003e] do_fork+0x105/0x470\n\u003e [12573.067880]        [\u003cffffffff81049686\u003e] kernel_thread+0x26/0x30\n\u003e [12573.076202]        [\u003cffffffff816cee63\u003e] rest_init+0x23/0x140\n\u003e [12573.084508]        [\u003cffffffff81ed8e1f\u003e] start_kernel+0x3f1/0x3fe\n\u003e [12573.092852]        [\u003cffffffff81ed856f\u003e] x86_64_start_reservations+0x2a/0x2c\n\u003e [12573.101233]        [\u003cffffffff81ed863d\u003e] x86_64_start_kernel+0xcc/0xcf\n\u003e [12573.109528]\n\u003e -\u003e #2 (\u0026p-\u003epi_lock){-.-.-.}:\n\u003e [12573.125675]        [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12573.133829]        [\u003cffffffff816ebe9b\u003e] _raw_spin_lock_irqsave+0x4b/0x90\n\u003e [12573.141964]        [\u003cffffffff8108e881\u003e] try_to_wake_up+0x31/0x320\n\u003e [12573.150065]        [\u003cffffffff8108ebe2\u003e] default_wake_function+0x12/0x20\n\u003e [12573.158151]        [\u003cffffffff8107bbf8\u003e] autoremove_wake_function+0x18/0x40\n\u003e [12573.166195]        [\u003cffffffff81085398\u003e] __wake_up_common+0x58/0x90\n\u003e [12573.174215]        [\u003cffffffff81086909\u003e] __wake_up+0x39/0x50\n\u003e [12573.182146]        [\u003cffffffff810fc3da\u003e] rcu_start_gp_advanced.isra.11+0x4a/0x50\n\u003e [12573.190119]        [\u003cffffffff810fdb09\u003e] rcu_start_future_gp+0x1c9/0x1f0\n\u003e [12573.198023]        [\u003cffffffff810fe2c4\u003e] rcu_nocb_kthread+0x114/0x930\n\u003e [12573.205860]        [\u003cffffffff8107a91d\u003e] kthread+0xed/0x100\n\u003e [12573.213656]        [\u003cffffffff816f4b1c\u003e] ret_from_fork+0x7c/0xb0\n\u003e [12573.221379]\n\u003e -\u003e #1 (\u0026rsp-\u003egp_wq){..-.-.}:\n\u003e [12573.236329]        [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12573.243783]        [\u003cffffffff816ebe9b\u003e] _raw_spin_lock_irqsave+0x4b/0x90\n\u003e [12573.251178]        [\u003cffffffff810868f3\u003e] __wake_up+0x23/0x50\n\u003e [12573.258505]        [\u003cffffffff810fc3da\u003e] rcu_start_gp_advanced.isra.11+0x4a/0x50\n\u003e [12573.265891]        [\u003cffffffff810fdb09\u003e] rcu_start_future_gp+0x1c9/0x1f0\n\u003e [12573.273248]        [\u003cffffffff810fe2c4\u003e] rcu_nocb_kthread+0x114/0x930\n\u003e [12573.280564]        [\u003cffffffff8107a91d\u003e] kthread+0xed/0x100\n\u003e [12573.287807]        [\u003cffffffff816f4b1c\u003e] ret_from_fork+0x7c/0xb0\n\nNotice the above call chain.\n\nrcu_start_future_gp() is called with the rnp-\u003elock held. Then it calls\nrcu_start_gp_advance, which does a wakeup.\n\nYou can\u0027t do wakeups while holding the rnp-\u003elock, as that would mean\nthat you could not do a rcu_read_unlock() while holding the rq lock, or\nany lock that was taken while holding the rq lock. This is because...\n(See below).\n\n\u003e [12573.295067]\n\u003e -\u003e #0 (rcu_node_0){..-.-.}:\n\u003e [12573.309293]        [\u003cffffffff810b8d36\u003e] __lock_acquire+0x1786/0x1af0\n\u003e [12573.316568]        [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12573.323825]        [\u003cffffffff816ebc90\u003e] _raw_spin_lock+0x40/0x80\n\u003e [12573.331081]        [\u003cffffffff811054ff\u003e] rcu_read_unlock_special+0x9f/0x4c0\n\u003e [12573.338377]        [\u003cffffffff810760a6\u003e] __rcu_read_unlock+0x96/0xa0\n\u003e [12573.345648]        [\u003cffffffff811391b3\u003e] perf_lock_task_context+0x143/0x2d0\n\u003e [12573.352942]        [\u003cffffffff8113938e\u003e] find_get_context+0x4e/0x1f0\n\u003e [12573.360211]        [\u003cffffffff811403f4\u003e] SYSC_perf_event_open+0x514/0xbd0\n\u003e [12573.367514]        [\u003cffffffff81140e49\u003e] SyS_perf_event_open+0x9/0x10\n\u003e [12573.374816]        [\u003cffffffff816f4dd4\u003e] tracesys+0xdd/0xe2\n\nNotice the above trace.\n\nperf took its own ctx-\u003elock, which can be taken while holding the rq\nlock. While holding this lock, it did a rcu_read_unlock(). The\nperf_lock_task_context() basically looks like:\n\nrcu_read_lock();\nraw_spin_lock(ctx-\u003elock);\nrcu_read_unlock();\n\nNow, what looks to have happened, is that we scheduled after taking that\nfirst rcu_read_lock() but before taking the spin lock. When we scheduled\nback in and took the ctx-\u003elock, the following rcu_read_unlock()\ntriggered the \"special\" code.\n\nThe rcu_read_unlock_special() takes the rnp-\u003elock, which gives us a\npossible deadlock scenario.\n\n\tCPU0\t\tCPU1\t\tCPU2\n\t----\t\t----\t\t----\n\n\t\t\t\t     rcu_nocb_kthread()\n    lock(rq-\u003elock);\n\t\t    lock(ctx-\u003elock);\n\t\t\t\t     lock(rnp-\u003elock);\n\n\t\t\t\t     wake_up();\n\n\t\t\t\t     lock(rq-\u003elock);\n\n\t\t    rcu_read_unlock();\n\n\t\t    rcu_read_unlock_special();\n\n\t\t    lock(rnp-\u003elock);\n    lock(ctx-\u003elock);\n\n**** DEADLOCK ****\n\n\u003e [12573.382068]\n\u003e other info that might help us debug this:\n\u003e\n\u003e [12573.403229] Chain exists of:\n\u003e   rcu_node_0 --\u003e \u0026rq-\u003elock --\u003e \u0026ctx-\u003elock\n\u003e\n\u003e [12573.424471]  Possible unsafe locking scenario:\n\u003e\n\u003e [12573.438499]        CPU0                    CPU1\n\u003e [12573.445599]        ----                    ----\n\u003e [12573.452691]   lock(\u0026ctx-\u003elock);\n\u003e [12573.459799]                                lock(\u0026rq-\u003elock);\n\u003e [12573.467010]                                lock(\u0026ctx-\u003elock);\n\u003e [12573.474192]   lock(rcu_node_0);\n\u003e [12573.481262]\n\u003e  *** DEADLOCK ***\n\u003e\n\u003e [12573.501931] 1 lock held by trinity-child17/31341:\n\u003e [12573.508990]  #0:  (\u0026ctx-\u003elock){-.-...}, at: [\u003cffffffff811390ed\u003e] perf_lock_task_context+0x7d/0x2d0\n\u003e [12573.516475]\n\u003e stack backtrace:\n\u003e [12573.530395] CPU: 1 PID: 31341 Comm: trinity-child17 Not tainted 3.10.0-rc3+ #39\n\u003e [12573.545357]  ffffffff825b4f90 ffff880219f1dbc0 ffffffff816e375b ffff880219f1dc00\n\u003e [12573.552868]  ffffffff816dfa5d ffff880219f1dc50 ffff88023ce4d1f8 ffff88023ce4ca40\n\u003e [12573.560353]  0000000000000001 0000000000000001 ffff88023ce4d1f8 ffff880219f1dcc0\n\u003e [12573.567856] Call Trace:\n\u003e [12573.575011]  [\u003cffffffff816e375b\u003e] dump_stack+0x19/0x1b\n\u003e [12573.582284]  [\u003cffffffff816dfa5d\u003e] print_circular_bug+0x200/0x20f\n\u003e [12573.589637]  [\u003cffffffff810b8d36\u003e] __lock_acquire+0x1786/0x1af0\n\u003e [12573.596982]  [\u003cffffffff810918f5\u003e] ? sched_clock_cpu+0xb5/0x100\n\u003e [12573.604344]  [\u003cffffffff810b9851\u003e] lock_acquire+0x91/0x1f0\n\u003e [12573.611652]  [\u003cffffffff811054ff\u003e] ? rcu_read_unlock_special+0x9f/0x4c0\n\u003e [12573.619030]  [\u003cffffffff816ebc90\u003e] _raw_spin_lock+0x40/0x80\n\u003e [12573.626331]  [\u003cffffffff811054ff\u003e] ? rcu_read_unlock_special+0x9f/0x4c0\n\u003e [12573.633671]  [\u003cffffffff811054ff\u003e] rcu_read_unlock_special+0x9f/0x4c0\n\u003e [12573.640992]  [\u003cffffffff811390ed\u003e] ? perf_lock_task_context+0x7d/0x2d0\n\u003e [12573.648330]  [\u003cffffffff810b429e\u003e] ? put_lock_stats.isra.29+0xe/0x40\n\u003e [12573.655662]  [\u003cffffffff813095a0\u003e] ? delay_tsc+0x90/0xe0\n\u003e [12573.662964]  [\u003cffffffff810760a6\u003e] __rcu_read_unlock+0x96/0xa0\n\u003e [12573.670276]  [\u003cffffffff811391b3\u003e] perf_lock_task_context+0x143/0x2d0\n\u003e [12573.677622]  [\u003cffffffff81139070\u003e] ? __perf_event_enable+0x370/0x370\n\u003e [12573.684981]  [\u003cffffffff8113938e\u003e] find_get_context+0x4e/0x1f0\n\u003e [12573.692358]  [\u003cffffffff811403f4\u003e] SYSC_perf_event_open+0x514/0xbd0\n\u003e [12573.699753]  [\u003cffffffff8108cd9d\u003e] ? get_parent_ip+0xd/0x50\n\u003e [12573.707135]  [\u003cffffffff810b71fd\u003e] ? trace_hardirqs_on_caller+0xfd/0x1c0\n\u003e [12573.714599]  [\u003cffffffff81140e49\u003e] SyS_perf_event_open+0x9/0x10\n\u003e [12573.721996]  [\u003cffffffff816f4dd4\u003e] tracesys+0xdd/0xe2\n\nThis commit delays the wakeup via irq_work(), which is what\nperf and ftrace use to perform wakeups in critical sections.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "81db4dbf592b486ac2bc7cabfb328ee2a6c4725d",
      "tree": "bb42fbbee400f55b13f49f30b392367798602652",
      "parents": [
        "c3e58a7945c8f1e4ec09ef93832a3839c5a70be2",
        "67dd331c5d811b2e50c935a24c82f31b61c6dcd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:51:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:51:21 2013 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fixes from Thomas Gleixner:\n\n - Trivial: unused variable removal\n\n - Posix-timers: Add the clock ID to the new proc interface to make it\n   useful.  The interface is new and should be functional when we reach\n   the final 3.10 release.\n\n - Cure a false positive warning in the tick code introduced by the\n   overhaul in 3.10\n\n - Fix for a persistent clock detection regression introduced in this\n   cycle\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Correct run-time detection of persistent_clock.\n  ntp: Remove unused variable flags in __hardpps\n  posix-timers: Show clock ID in proc file\n  tick: Cure broadcast false positive pending bit warning\n"
    },
    {
      "commit": "c3e58a7945c8f1e4ec09ef93832a3839c5a70be2",
      "tree": "2aeb7cc115fed9cf41be6b8f732a3a5917a1c87e",
      "parents": [
        "50b4b9c3e84a6ef2ba02e6e41ec221b0c84abf56",
        "d94ea3f6d21e8b4398285516cc307c81d7374ec9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:50:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:50:42 2013 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux\n\nPull irqdomain bug fixes from Grant Likely:\n \"This branch contains a set of straight forward bug fixes to the\n  irqdomain code and to a couple of drivers that make use of it.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux:\n  irqchip: Return -EPERM for reserved IRQs\n  irqdomain: document the simple domain first_irq\n  kernel/irq/irqdomain.c: before use \u0027irq_data\u0027, need check it whether valid.\n  irqdomain: export irq_domain_add_simple\n"
    },
    {
      "commit": "94a63da0ac1a67bfb8b30aec1086523c5031ea5a",
      "tree": "c5931a9a34fc24267f494ee3e773e10dd3bd81ba",
      "parents": [
        "275e31b10ce20613aedceaa5160129c64b260a98"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@linaro.org",
        "time": "Thu Jun 06 12:10:23 2013 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Sat Jun 08 21:15:09 2013 +0100"
      },
      "message": "irqdomain: document the simple domain first_irq\n\nThe first_irq needs to be zero to get a linear domain and that\ncomes with special semantics. We want to simplify this going\nforward but some documentation never hurts.\n\nSigned-off-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@linaro.org\u003e\n"
    },
    {
      "commit": "275e31b10ce20613aedceaa5160129c64b260a98",
      "tree": "07e207a672bc8adf3c732d3a1194c9bfce2bb69f",
      "parents": [
        "346dbb79ea0118ebb0df372b35cab9d5805216cd"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Tue May 14 19:02:45 2013 +0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Sat Jun 08 21:15:09 2013 +0100"
      },
      "message": "kernel/irq/irqdomain.c: before use \u0027irq_data\u0027, need check it whether valid.\n\nSince irq_data may be NULL, if so, we WARN_ON(), and continue, \u0027hwirq\u0027\nwhich related with \u0027irq_data\u0027 has to initialize later, or it will cause\nissue.\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@linaro.org\u003e\n"
    },
    {
      "commit": "346dbb79ea0118ebb0df372b35cab9d5805216cd",
      "tree": "94ebb8e00d6f9c1a012a7576483f085cdc668524",
      "parents": [
        "d683b96b072dc4680fc74964eca77e6a23d1fa6e"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Apr 25 19:28:54 2013 +0200"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Sat Jun 08 21:15:08 2013 +0100"
      },
      "message": "irqdomain: export irq_domain_add_simple\n\nAll other irq_domain_add_* functions are exported already, and apparently\nthis one got left out by mistake, which causes build errors for ARM\nallmodconfig kernels:\n\nERROR: \"irq_domain_add_simple\" [drivers/gpio/gpio-rcar.ko] undefined!\nERROR: \"irq_domain_add_simple\" [drivers/gpio/gpio-em.ko] undefined!\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Simon Horman \u003chorms+renesas@verge.net.au\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@linaro.org\u003e\n"
    },
    {
      "commit": "14d0ee051753f30e23033bdb153110f00b03c8ce",
      "tree": "88a19ee630628e8904b96b586521d3f3755c14b8",
      "parents": [
        "ea7f665612fcc73da6b7698f468cd5fc03a30d47",
        "f17a5194859a82afe4164e938b92035b86c55794"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 18:46:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 18:46:51 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10-rc3-v3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing fixes from Steven Rostedt:\n \"This contains 4 fixes.\n\n  The first two fix the case where full RCU debugging is enabled,\n  enabling function tracing causes a live lock of the system.  This is\n  due to the added debug checks in rcu_dereference_raw() that is used by\n  the function tracer.  These checks are also traced by the function\n  tracer as well as cause enough overhead to the function tracer to slow\n  down the system enough that the time to finish an interrupt can take\n  longer than when the next interrupt is triggered, causing a live lock\n  from the timer interrupt.\n\n  Talking this over with Paul McKenney, we came up with a fix that adds\n  a new rcu_dereference_raw_notrace() that does not perform these added\n  checks, and let the function tracer use that.\n\n  The third commit fixes a failed compile when branch tracing is\n  enabled, due to the conversion of the trace_test_buffer() selftest\n  that the branch trace wasn\u0027t converted for.\n\n  The forth patch fixes a bug caught by the RCU lockdep code where a\n  rcu_read_lock() is performed when rcu is disabled (either going to or\n  from idle, or user space).  This happened on the irqsoff tracer as it\n  calls task_uid().  The fix here was to use current_uid() when possible\n  that doesn\u0027t use rcu locking.  Which luckily, is always used when\n  irqsoff calls this code.\"\n\n* tag \u0027trace-fixes-v3.10-rc3-v3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Use current_uid() for critical time tracing\n  tracing: Fix bad parameter passed in branch selftest\n  ftrace: Use the rcu _notrace variants for rcu_dereference_raw() and friends\n  rcu: Add _notrace variation of rcu_dereference_raw() and hlist_for_each_entry_rcu()\n"
    },
    {
      "commit": "f17a5194859a82afe4164e938b92035b86c55794",
      "tree": "d900ce9c7a19c37bb2840942c495da81ea748114",
      "parents": [
        "0184d50f9fd17658c232d6ee6d465a87f989d706"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 30 21:10:37 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 06 12:35:30 2013 -0400"
      },
      "message": "tracing: Use current_uid() for critical time tracing\n\nThe irqsoff tracer records the max time that interrupts are disabled.\nThere are hooks in the assembly code that calls back into the tracer when\ninterrupts are disabled or enabled.\n\nWhen they are enabled, the tracer checks if the amount of time they\nwere disabled is larger than the previous recorded max interrupts off\ntime. If it is, it creates a snapshot of the currently running trace\nto store where the last largest interrupts off time was held and how\nit happened.\n\nDuring testing, this RCU lockdep dump appeared:\n\n[ 1257.829021] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ 1257.829021] [ INFO: suspicious RCU usage. ]\n[ 1257.829021] 3.10.0-rc1-test+ #171 Tainted: G        W\n[ 1257.829021] -------------------------------\n[ 1257.829021] /home/rostedt/work/git/linux-trace.git/include/linux/rcupdate.h:780 rcu_read_lock() used illegally while idle!\n[ 1257.829021]\n[ 1257.829021] other info that might help us debug this:\n[ 1257.829021]\n[ 1257.829021]\n[ 1257.829021] RCU used illegally from idle CPU!\n[ 1257.829021] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[ 1257.829021] RCU used illegally from extended quiescent state!\n[ 1257.829021] 2 locks held by trace-cmd/4831:\n[ 1257.829021]  #0:  (max_trace_lock){......}, at: [\u003cffffffff810e2b77\u003e] stop_critical_timing+0x1a3/0x209\n[ 1257.829021]  #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff810dae5a\u003e] __update_max_tr+0x88/0x1ee\n[ 1257.829021]\n[ 1257.829021] stack backtrace:\n[ 1257.829021] CPU: 3 PID: 4831 Comm: trace-cmd Tainted: G        W    3.10.0-rc1-test+ #171\n[ 1257.829021] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007\n[ 1257.829021]  0000000000000001 ffff880065f49da8 ffffffff8153dd2b ffff880065f49dd8\n[ 1257.829021]  ffffffff81092a00 ffff88006bd78680 ffff88007add7500 0000000000000003\n[ 1257.829021]  ffff88006bd78680 ffff880065f49e18 ffffffff810daebf ffffffff810dae5a\n[ 1257.829021] Call Trace:\n[ 1257.829021]  [\u003cffffffff8153dd2b\u003e] dump_stack+0x19/0x1b\n[ 1257.829021]  [\u003cffffffff81092a00\u003e] lockdep_rcu_suspicious+0x109/0x112\n[ 1257.829021]  [\u003cffffffff810daebf\u003e] __update_max_tr+0xed/0x1ee\n[ 1257.829021]  [\u003cffffffff810dae5a\u003e] ? __update_max_tr+0x88/0x1ee\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810dbf85\u003e] update_max_tr_single+0x11d/0x12d\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e2b15\u003e] stop_critical_timing+0x141/0x209\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] ? trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e3057\u003e] time_hardirqs_on+0x2a/0x2f\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff8109550c\u003e] trace_hardirqs_on_caller+0x16/0x197\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810029b4\u003e] do_notify_resume+0x92/0x97\n[ 1257.829021]  [\u003cffffffff8154bdca\u003e] int_signal+0x12/0x17\n\nWhat happened was entering into the user code, the interrupts were enabled\nand a max interrupts off was recorded. The trace buffer was saved along with\nvarious information about the task: comm, pid, uid, priority, etc.\n\nThe uid is recorded with task_uid(tsk). But this is a macro that uses rcu_read_lock()\nto retrieve the data, and this happened to happen where RCU is blind (user_enter).\n\nAs only the preempt and irqs off tracers can have this happen, and they both\nonly have the tsk \u003d\u003d current, if tsk \u003d\u003d current, use current_uid() instead of\ntask_uid(), as current_uid() does not use RCU as only current can change its uid.\n\nThis fixes the RCU suspicious splat.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7d80fea4263d9a83ffedea448afa8510b05d04d0",
      "tree": "202118fd64ea1a661e3945e1a5bf13ef2d6f90eb",
      "parents": [
        "338e33acd820fa89b8a2d5b6574233784702f618",
        "2a0ff3fbe39bc93f719ff857e5a359d9780579ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 03 17:57:16 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 03 17:57:16 2013 +0900"
      },
      "message": "Merge branch \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup fixes from Tejun Heo:\n\n - Fix for yet another xattr bug which may lead to NULL deref.\n\n - A subtle bug in for_each_descendant_pre().  This bug requires quite\n   specific conditions to trigger and isn\u0027t too likely to actually\n   happen in the wild, but maybe that just makes it that much more\n   nastier.\n\n - A warning message added for silly cgroup re-mount (not -o remount,\n   but unmount followed by mount) behavior.\n\n* \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: warn about mismatching options of a new mount of an existing hierarchy\n  cgroup: fix a subtle bug in descendant pre-order walk\n  cgroup: initialize xattr before calling d_instantiate()\n"
    },
    {
      "commit": "484b002e28ca328195829ddc06fa9082c8ad41f8",
      "tree": "f407d16112b9916854e4c3a22d4d9ea8dae90048",
      "parents": [
        "3655b22de04e3635fe3a2d7b9529cb12609a9bd0",
        "5187b28ff08249ab8a162e802209ed04e271ca02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 31 09:44:10 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 31 09:44:10 2013 +0900"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 fixes from Peter Anvin:\n\n - Three EFI-related fixes\n\n - Two early memory initialization fixes\n\n - build fix for older binutils\n\n - fix for an eager FPU performance regression -- currently we don\u0027t\n   allow the use of the FPU at interrupt time *at all* in eager mode,\n   which is clearly wrong.\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Allow FPU to be used at interrupt time even with eagerfpu\n  x86, crc32-pclmul: Fix build with older binutils\n  x86-64, init: Fix a possible wraparound bug in switchover in head_64.S\n  x86, range: fix missing merge during add range\n  x86, efi: initial the local variable of DataSize to zero\n  efivar: fix oops in efivar_update_sysfs_entries() caused by memory reuse\n  efivarfs: Never return ENOENT from firmware again\n"
    },
    {
      "commit": "0184d50f9fd17658c232d6ee6d465a87f989d706",
      "tree": "fdf81c6309458bf0a2a1af17115c42a2270889a9",
      "parents": [
        "1bb539ca36e21c2f4fce0865e11df384bc7b7656"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 29 15:56:49 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 29 16:00:03 2013 -0400"
      },
      "message": "tracing: Fix bad parameter passed in branch selftest\n\nThe branch selftest calls trace_test_buffer(), but with the new code\nit expects the first parameter to be a pointer to a struct trace_buffer.\nAll self tests were changed but the branch selftest was missed.\n\nThis caused either a crash or failed test when the branch selftest was\nenabled.\n\nLink: http://lkml.kernel.org/r/20130529141333.GA24064@localhost\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "67dd331c5d811b2e50c935a24c82f31b61c6dcd3",
      "tree": "0980dd54ec6ea9566be374738baacafd8b9c7492",
      "parents": [
        "15ef0298deb3929eb6ad6d2334fd2059fd53807c",
        "0d6bd9953f739dad96d9a0de65383e479ab4e10d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 29 09:55:01 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 29 09:55:01 2013 +0200"
      },
      "message": "Merge branch \u0027fortglx/3.10/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/urgent\n"
    },
    {
      "commit": "1bb539ca36e21c2f4fce0865e11df384bc7b7656",
      "tree": "dc428dcb96afce5b34e671d0c4c08975807c0c4f",
      "parents": [
        "12bcbe66d7b3cc9f9f86cd02f925666eaa3c2107"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 14:38:43 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 28 22:48:00 2013 -0400"
      },
      "message": "ftrace: Use the rcu _notrace variants for rcu_dereference_raw() and friends\n\nAs rcu_dereference_raw() under RCU debug config options can add quite a\nbit of checks, and that tracing uses rcu_dereference_raw(), these checks\nhappen with the function tracer. The function tracer also happens to trace\nthese debug checks too. This added overhead can livelock the system.\n\nHave the function tracer use the new RCU _notrace equivalents that do\nnot do the debug checks for RCU.\n\nLink: http://lkml.kernel.org/r/20130528184209.467603904@goodmis.org\n\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2a0ff3fbe39bc93f719ff857e5a359d9780579ff",
      "tree": "49012c76db1739295a183043a065e1af6f8d4f19",
      "parents": [
        "7805d000db30a3787a4c969bab6ae4d8a5fd8ce6"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Sun May 26 21:33:09 2013 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 29 07:59:39 2013 +0900"
      },
      "message": "cgroup: warn about mismatching options of a new mount of an existing hierarchy\n\nWith the new __DEVEL__sane_behavior mount option was introduced,\nif the root cgroup is alive with no xattr function, to mount a\nnew cgroup with xattr will be rejected in terms of design which\njust fine.  However, if the root cgroup does not mounted with\n__DEVEL__sane_hehavior, to create a new cgroup with xattr option\nwill succeed although after that the EA function does not works\nas expected but will get ENOTSUPP for setting up attributes under\neither cgroup. e.g.\n\nsetfattr: /cgroup2/test: Operation not supported\n\nInstead of keeping silence in this case, it\u0027s better to drop a log\nentry in warning level.  That would be helpful to understand the\nreason behind the scene from the user\u0027s perspective, and this is\nessentially an improvement does not break the backward compatibilities.\n\nWith this fix, above mount attemption will keep up works as usual but\nthe following line cound be found at the system log:\n\n[ ...] cgroup: new mount options do not match the existing superblock\n\ntj: minor formatting / message updates.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReported-by: Alexey Kodanev \u003calexey.kodanev@oracle.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "0d6bd9953f739dad96d9a0de65383e479ab4e10d",
      "tree": "0f053972369289c5368f67af03a420b8c725828d",
      "parents": [
        "aa848233f740abbabfa7669daca0ab94aaa37bcd"
      ],
      "author": {
        "name": "Zoran Markovic",
        "email": "zoran.markovic@linaro.org",
        "time": "Fri May 17 11:24:05 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue May 28 13:45:19 2013 -0700"
      },
      "message": "timekeeping: Correct run-time detection of persistent_clock.\n\nSince commit 31ade30692dc9680bfc95700d794818fa3f754ac, timekeeping_init()\nchecks for presence of persistent clock by attempting to read a non-zero\ntime value. This is an issue on platforms where persistent_clock (instead\nis implemented as a free-running counter (instead of an RTC) starting\nfrom zero on each boot and running during suspend. Examples are some ARM\nplatforms (e.g. PandaBoard).\n\nAn attempt to read such a clock during timekeeping_init() may return zero\nvalue and falsely declare persistent clock as missing. Additionally, in\nthe above case suspend times may be accounted twice (once from\ntimekeeping_resume() and once from rtc_resume()), resulting in a gradual\ndrift of system time.\n\nThis patch does a run-time correction of the issue by doing the same check\nduring timekeeping_suspend().\n\nA better long-term solution would have to return error when trying to read\nnon-existing clock and zero when trying to read an uninitialized clock, but\nthat would require changing all persistent_clock implementations.\n\nThis patch addresses the immediate breakage, for now.\n\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Feng Tang \u003cfeng.tang@intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Zoran Markovic \u003czoran.markovic@linaro.org\u003e\n[jstultz: Tweaked commit message and subject]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "aa848233f740abbabfa7669daca0ab94aaa37bcd",
      "tree": "28f36ed9f8037bde52a030c115ae137d546d8d20",
      "parents": [
        "c7788792a5e7b0d5d7f96d0766b4cb6112d47d75"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Fri May 03 23:27:07 2013 +0200"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue May 28 13:45:19 2013 -0700"
      },
      "message": "ntp: Remove unused variable flags in __hardpps\n\nkernel/time/ntp.c: In function ‘__hardpps’:\nkernel/time/ntp.c:877: warning: unused variable ‘flags’\n\ncommit a076b2146fabb0894cae5e0189a8ba3f1502d737 (\"ntp: Remove ntp_lock,\nusing the timekeeping locks to protect ntp state\") removed its users,\nbut not the actual variable.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "e3bf756eb988ff03ac57fda3934c440fe4db6a73",
      "tree": "53dbd9a0375dd8b190d326ef032661921c9f1975",
      "parents": [
        "3c48dd49646f156158c1a96ec637b9f987f517fe",
        "6721cb60022629ae76365551f05d9658b8d14c55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 28 09:39:04 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 28 09:39:04 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing fixes from Steven Rostedt:\n \"Two more fixes:\n\n  The first one was reported by Mauro Carvalho Chehab, where if a poll()\n  is done against a trace buffer for a CPU that has never been online,\n  it will crash the kernel, as buffers are only created when a CPU comes\n  on line, but the trace files are for all possible CPUs.\n\n  This fix is to check if the buffer was allocated and if not return\n  -EINVAL.\n\n  That was the simple fix, the real fix is a bit more complex and not\n  for a -rc release.  We could have the files created when the CPUs come\n  online.  That would require some design changes.\n\n  The second one was reported by Peter Zijlstra.  If the kernel command\n  line has ftrace\u003dnop, it will lock up the system on boot up.  This is\n  because the new design for 3.10 has the nop tracer bootstrap the\n  tracing subsystem.  When ftrace\u003d\u003ctrace\u003e is defined, when a that tracer\n  is registered, it starts the tracing, but uses the nop tracer to clear\n  things out.  What happened here was that ftrace\u003dnop caused the\n  registering of nop to start it and use nop before it was initialized.\n\n  The only thing nop needs to have done to initialize it is to have the\n  tracer point its current_tracer structure member to the nop tracer.\n  Doing that before registering the nop tracer makes everything work.\"\n\n* tag \u0027trace-fixes-v3.10-rc3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  ring-buffer: Do not poll non allocated cpu buffers\n  tracing: Fix crash when ftrace\u003dnop on the kernel command line\n"
    },
    {
      "commit": "6721cb60022629ae76365551f05d9658b8d14c55",
      "tree": "00d16ebb628161995b02939460d3f7b8d0f5ac53",
      "parents": [
        "ca1643186d3dce6171d8f171e516b02496360a9e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 14:21:36 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@rostedt.homelinux.com",
        "time": "Tue May 28 10:53:20 2013 -0400"
      },
      "message": "ring-buffer: Do not poll non allocated cpu buffers\n\nThe tracing infrastructure sets up for possible CPUs, but it uses\nthe ring buffer polling, it is possible to call the ring buffer\npolling code with a CPU that hasn\u0027t been allocated. This will cause\na kernel oops when it access a ring buffer cpu buffer that is part\nof the possible cpus but hasn\u0027t been allocated yet as the CPU has never\nbeen online.\n\nReported-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nTested-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2938d2757fc99c26aa678ce4eba910c4a77c3a55",
      "tree": "67a083021705f6cac75f6bea2fa83e975807c624",
      "parents": [
        "e4aa937ec75df0eea0bee03bffa3303ad36c986b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:33:01 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:33:01 2013 +0200"
      },
      "message": "tick: Cure broadcast false positive pending bit warning\n\ncommit 26517f3e (tick: Avoid programming the local cpu timer if\nbroadcast pending) added a warning if the cpu enters broadcast mode\nagain while the pending bit is still set. Meelis reported that the\nwarning triggers. There are two corner cases which have been not\nconsidered:\n\n1) cpuidle calls clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n   twice. That can result in the following scenario\n\n   CPU0                    CPU1\n                           cpuidle_idle_call()\n                             clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n                               set cpu in tick_broadcast_oneshot_mask\n\n   broadcast interrupt\n     event expired for cpu1\n     set pending bit\n\n                             acpi_idle_enter_simple()\n                               clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n                                 WARN_ON(pending bit)\n\n  Move the WARN_ON into the section where we enter broadcast mode so\n  it wont provide false positives on the second call.\n\n2) safe_halt() enables interrupts, so a broadcast interrupt can be\n   delivered befor the broadcast mode is disabled. That sets the\n   pending bit for the CPU which receives the broadcast\n   interrupt. Though the interrupt is delivered right away from the\n   broadcast handler and leaves the pending bit stale.\n\n   Clear the pending bit for the current cpu in the broadcast handler.\n\nReported-and-tested-by: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305271841130.4220@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "387b8b3e37cb1c257fb607787f73815c30d22859",
      "tree": "b04787d3b3ba3908ccc0a705b3c5251a039fcb9e",
      "parents": [
        "6900807c6b95dcb004902302b8ac5dbfbf6feb89"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@infradead.org",
        "time": "Fri May 24 15:55:25 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:52 2013 -0700"
      },
      "message": "auditfilter.c: fix kernel-doc warnings\n\nFix kernel-doc warnings in kernel/auditfilter.c:\n\n  Warning(kernel/auditfilter.c:1029): Excess function parameter \u0027loginuid\u0027 description in \u0027audit_receive_filter\u0027\n  Warning(kernel/auditfilter.c:1029): Excess function parameter \u0027sessionid\u0027 description in \u0027audit_receive_filter\u0027\n  Warning(kernel/auditfilter.c:1029): Excess function parameter \u0027sid\u0027 description in \u0027audit_receive_filter\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@infradead.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17fdfd0851617b6c18c0913364caf2a54171ce85",
      "tree": "e2c2859f18604e6e1d5406eb08bf2451019be848",
      "parents": [
        "a8432588fc1e406e800e8bf88bebf4cd390b7f46",
        "6ed0106667d76589cb648c27edb4f4ffbf9d59ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 10:46:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 10:46:55 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing fix from Steven Rostedt:\n \"Masami Hiramatsu fixed another bug.  This time returning a proper\n  result in event_enable_func().  After checking the return status of\n  try_module_get(), it returned the status of try_module_get().\n\n  But try_module_get() returns 0 on failure, which is success for\n  event_enable_func()\"\n\n* tag \u0027trace-fixes-v3.10-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing: Return -EBUSY when event_enable_func() fails to get module\n"
    },
    {
      "commit": "7805d000db30a3787a4c969bab6ae4d8a5fd8ce6",
      "tree": "5178e1adaa4f398d2c1367fb38633191e81764e5",
      "parents": [
        "d6cbf35dac8a3dadb9103379820c96d7c85df3d9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 24 10:50:24 2013 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 24 10:50:24 2013 +0900"
      },
      "message": "cgroup: fix a subtle bug in descendant pre-order walk\n\nWhen cgroup_next_descendant_pre() initiates a walk, it checks whether\nthe subtree root doesn\u0027t have any children and if not returns NULL.\nLater code assumes that the subtree isn\u0027t empty.  This is broken\nbecause the subtree may become empty inbetween, which can lead to the\ntraversal escaping the subtree by walking to the sibling of the\nsubtree root.\n\nThere\u0027s no reason to have the early exit path.  Remove it along with\nthe later assumption that the subtree isn\u0027t empty.  This simplifies\nthe code a bit and fixes the subtle bug.\n\nWhile at it, fix the comment of cgroup_for_each_descendant_pre() which\nwas incorrectly referring to -\u003ecss_offline() instead of\n-\u003ecss_online().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "ca1643186d3dce6171d8f171e516b02496360a9e",
      "tree": "35e8b4bacd61a022ca8d3259cc01606b924ab109",
      "parents": [
        "6ed0106667d76589cb648c27edb4f4ffbf9d59ca"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 11:51:10 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 23 11:57:25 2013 -0400"
      },
      "message": "tracing: Fix crash when ftrace\u003dnop on the kernel command line\n\nIf ftrace\u003d\u003ctracer\u003e is on the kernel command line, when that tracer is\nregistered, it will be initiated by tracing_set_tracer() to execute that\ntracer.\n\nThe nop tracer is just a stub tracer that is used to have no tracer\nenabled. It is assigned at early bootup as it is the default tracer.\n\nBut if ftrace\u003dnop is on the kernel command line, the registering of the\nnop tracer will call tracing_set_tracer() which will try to execute\nthe nop tracer. But it expects tr-\u003ecurrent_trace to be assigned something\nas it usually is assigned to the nop tracer. As it hasn\u0027t been assigned\nto anything yet, it causes the system to crash.\n\nThe simple fix is to move the tr-\u003ecurrent_trace \u003d nop before registering\nthe nop tracer. The functionality is still the same as the nop tracer\ndoesn\u0027t do anything anyway.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8f05bde9bd6da80365495369738ab869c1f8bcac",
      "tree": "926ed74048ae5554c8c959143307fa836a337db3",
      "parents": [
        "f71df63380cc9367c4a866d4cf9a2b0cfe352ad6",
        "89c837351db0b9b52fd572ec8b0445a42e59b75c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 18 10:21:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 18 10:21:32 2013 -0700"
      },
      "message": "Merge tag \u0027kmemleak-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64\n\nPull kmemleak patches from Catalin Marinas:\n \"Kmemleak now scans all the writable and non-executable module sections\n  to avoid false positives (previously it was only scanning specific\n  sections and missing .ref.data).\"\n\n* tag \u0027kmemleak-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:\n  kmemleak: No need for scanning specific module sections\n  kmemleak: Scan all allocated, writeable and not executable module sections\n"
    },
    {
      "commit": "fbe06b7bae7c9cf6ab05168fce5ee93b2f4bae7c",
      "tree": "a740e8823520c183d965e4b51a2394c25ee5fa2c",
      "parents": [
        "8f710dd34a46500e135203816c71c3ec567c46fd"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri May 17 11:49:10 2013 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri May 17 11:49:10 2013 -0700"
      },
      "message": "x86, range: fix missing merge during add range\n\nChristian found v3.9 does not work with E350 with EFI is enabled.\n\n[    1.658832] Trying to unpack rootfs image as initramfs...\n[    1.679935] BUG: unable to handle kernel paging request at ffff88006e3fd000\n[    1.686940] IP: [\u003cffffffff813661df\u003e] memset+0x1f/0xb0\n[    1.692010] PGD 1f77067 PUD 1f7a067 PMD 61420067 PTE 0\n\nbut early memtest report all memory could be accessed without problem.\n\nearly page table is set in following sequence:\n[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]\n[    0.000000] init_memory_mapping: [mem 0x6e600000-0x6e7fffff]\n[    0.000000] init_memory_mapping: [mem 0x6c000000-0x6e5fffff]\n[    0.000000] init_memory_mapping: [mem 0x00100000-0x6bffffff]\n[    0.000000] init_memory_mapping: [mem 0x6e800000-0x6ea07fff]\nbut later efi_enter_virtual_mode try set mapping again wrongly.\n[    0.010644] pid_max: default: 32768 minimum: 301\n[    0.015302] init_memory_mapping: [mem 0x640c5000-0x6e3fcfff]\nthat means it fails with pfn_range_is_mapped.\n\nIt turns out that we have a bug in add_range_with_merge and it does not\nmerge range properly when new add one fill the hole between two exsiting\nranges. In the case when [mem 0x00100000-0x6bffffff] is the hole between\n[mem 0x00000000-0x000fffff] and [mem 0x6c000000-0x6e7fffff].\n\nFix the add_range_with_merge by calling itself recursively.\n\nReported-by: \"Christian König\" \u003cchristian.koenig@amd.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLink: http://lkml.kernel.org/r/CAE9FiQVofGoSk7q5-0irjkBxemqK729cND4hov-1QCBJDhxpgQ@mail.gmail.com\nCc: \u003cstable@vger.kernel.org\u003e v3.9\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "89c837351db0b9b52fd572ec8b0445a42e59b75c",
      "tree": "8ca801aa87cc74ce286c6e75b010752e409f4856",
      "parents": [
        "06c9494c0e9bdfcaa14d6d2b096a0ff7abe8494f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 20:46:23 2013 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri May 17 09:53:36 2013 +0100"
      },
      "message": "kmemleak: No need for scanning specific module sections\n\nAs kmemleak now scans all module sections that are allocated, writable\nand non executable, there\u0027s no need to scan individual sections that\nmight reference data.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "06c9494c0e9bdfcaa14d6d2b096a0ff7abe8494f",
      "tree": "22da52e773d30408d0372eeb20f18821d2834cca",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 20:33:01 2013 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri May 17 09:53:07 2013 +0100"
      },
      "message": "kmemleak: Scan all allocated, writeable and not executable module sections\n\nInstead of just picking data sections by name (names that start\nwith .data, .bss or .ref.data), use the section flags and scan all\nsections that are allocated, writable and not executable. Which should\ncover all sections of a module that might reference data.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[catalin.marinas@arm.com: removed unused \u0027name\u0027 variable]\n[catalin.marinas@arm.com: collapsed \u0027if\u0027 blocks]\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "4a007ed926fd4cbb4afe4566dbfd252cc49f22fe",
      "tree": "0e71b161d387881fb8c197125a3bff6e444aa300",
      "parents": [
        "ff89acc563a0bd49965674f56552ad6620415fe2",
        "1be0c25da56e860992af972a60321563ca2cfcd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 16 12:03:28 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 16 12:03:28 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue fixes from Tejun Heo:\n \"Three more workqueue regression fixes.\n\n   - Fix unbalanced unlock in trylock failure path of manage_workers().\n     This shouldn\u0027t happen often in the wild but is possible.\n\n   - While making schedule_work() and friends inline, they become\n     unavailable to !GPL modules.  Allow !GPL modules to access basic\n     stuff - system_wq and queue_*work_on() - so that schedule_work()\n     and friends can be used.\n\n   - During boot, the unbound NUMA support code allocates a cpumask for\n     each possible node using alloc_cpumask_var_node(), which ends up\n     trying to allocate node-specific memory even for offline nodes\n     triggering BUG in the memory alloc code.  Use NUMA_NO_NODE for\n     offline nodes.\"\n\n* \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: don\u0027t perform NUMA-aware allocations on offline nodes in wq_numa_init()\n  workqueue: Make schedule_work() available again to non GPL modules\n  workqueue: correct handling of the pool spin_lock\n"
    },
    {
      "commit": "ff89acc563a0bd49965674f56552ad6620415fe2",
      "tree": "7c0f0ff183689f482e3cb03a67bc31bf89f826df",
      "parents": [
        "264b83c07a84223f0efd0d1db9ccc66d6f88288f",
        "615ee5443ff9bedd356dc6865f3e9c276ce434ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 16 12:02:07 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 16 12:02:07 2013 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu\n\nPull RCU fixes from Paul McKenney:\n \"A couple of fixes for RCU regressions:\n\n   - A boneheaded boolean-logic bug that resulted in excessive delays on\n     boot, hibernation and suspend that was reported by Borislav Petkov,\n     Bjørn Mork, and Joerg Roedel.  The fix inserts a single \"!\".\n\n   - A fix for a boot-time splat due to allocating from bootmem too late\n     in boot, fix courtesy of Sasha Levin with additional help from\n     Yinghai Lu.\"\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:\n  rcu: Don\u0027t allocate bootmem from rcu_init()\n  rcu: Fix comparison sense in rcu_needs_cpu()\n"
    },
    {
      "commit": "264b83c07a84223f0efd0d1db9ccc66d6f88288f",
      "tree": "509dd304b80cf3d53f03c03fcbbc99d05fec7924",
      "parents": [
        "5c64e3a45d43c6e3fa87cbe02e10059171d10812"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu May 16 17:43:55 2013 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 16 12:01:11 2013 -0700"
      },
      "message": "usermodehelper: check subprocess_info-\u003epath !\u003d NULL\n\nargv_split(empty_or_all_spaces) happily succeeds, it simply returns\nargc \u003d\u003d 0 and argv[0] \u003d\u003d NULL. Change call_usermodehelper_exec() to\ncheck sub_info-\u003epath !\u003d NULL to avoid the crash.\n\nThis is the minimal fix, todo:\n\n - perhaps we should change argv_split() to return NULL or change the\n   callers.\n\n - kill or justify -\u003epath[0] check\n\n - narrow the scope of helper_lock()\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-By: Lucas De Marchi \u003clucas.demarchi@intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ed0106667d76589cb648c27edb4f4ffbf9d59ca",
      "tree": "703a6db004b022ddebdfaf186c66e5bfabc03e5f",
      "parents": [
        "b62fdd97fcae17e483b005bafd13fadbd9840672"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 16 20:48:49 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 16 11:01:16 2013 -0400"
      },
      "message": "tracing: Return -EBUSY when event_enable_func() fails to get module\n\nSince try_module_get() returns false( \u003d 0) when it fails to\npindown a module, event_enable_func() returns 0 which means\n\"succeed\". This can cause a kernel panic when the entry\nis removed, because the event is already released.\n\nThis fixes the bug by returning -EBUSY, because the reason\nwhy it fails is that the module is being removed at that time.\n\nLink: http://lkml.kernel.org/r/20130516114848.13508.97899.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1be0c25da56e860992af972a60321563ca2cfcd1",
      "tree": "8faa4eea13174184f254c8762c77a77c9ae39400",
      "parents": [
        "ad7b1f841f8a54c6d61ff181451f55b68175e15a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 15 14:24:24 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 15 14:24:24 2013 -0700"
      },
      "message": "workqueue: don\u0027t perform NUMA-aware allocations on offline nodes in wq_numa_init()\n\nwq_numa_init() builds per-node cpumasks which are later used to make\nunbound workqueues NUMA-aware.  The cpumasks are allocated using\nalloc_cpumask_var_node() for all possible nodes.  Unfortunately, on\nmachines with off-line nodes, this leads to NUMA-aware allocations on\nexisting bug offline nodes, which in turn triggers BUG in the memory\nallocation code.\n\nFix it by using NUMA_NO_NODE for cpumask allocations for offline\nnodes.\n\n  kernel BUG at include/linux/gfp.h:323!\n  invalid opcode: 0000 [#1] SMP\n  Modules linked in:\n  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0+ #1\n  Hardware name: ProLiant BL465c G7, BIOS A19 12/10/2011\n  task: ffff880234608000 ti: ffff880234602000 task.ti: ffff880234602000\n  RIP: 0010:[\u003cffffffff8117495d\u003e]  [\u003cffffffff8117495d\u003e] new_slab+0x2ad/0x340\n  RSP: 0000:ffff880234603bf8  EFLAGS: 00010246\n  RAX: 0000000000000000 RBX: ffff880237404b40 RCX: 00000000000000d0\n  RDX: 0000000000000001 RSI: 0000000000000003 RDI: 00000000002052d0\n  RBP: ffff880234603c28 R08: 0000000000000000 R09: 0000000000000001\n  R10: 0000000000000001 R11: ffffffff812e3aa8 R12: 0000000000000001\n  R13: ffff8802378161c0 R14: 0000000000030027 R15: 00000000000040d0\n  FS:  0000000000000000(0000) GS:ffff880237800000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n  CR2: ffff88043fdff000 CR3: 00000000018d5000 CR4: 00000000000007f0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n  Stack:\n   ffff880234603c28 0000000000000001 00000000000000d0 ffff8802378161c0\n   ffff880237404b40 ffff880237404b40 ffff880234603d28 ffffffff815edba1\n   ffff880237816140 0000000000000000 ffff88023740e1c0\n  Call Trace:\n   [\u003cffffffff815edba1\u003e] __slab_alloc+0x330/0x4f2\n   [\u003cffffffff81174b25\u003e] kmem_cache_alloc_node_trace+0xa5/0x200\n   [\u003cffffffff812e3aa8\u003e] alloc_cpumask_var_node+0x28/0x90\n   [\u003cffffffff81a0bdb3\u003e] wq_numa_init+0x10d/0x1be\n   [\u003cffffffff81a0bec8\u003e] init_workqueues+0x64/0x341\n   [\u003cffffffff810002ea\u003e] do_one_initcall+0xea/0x1a0\n   [\u003cffffffff819f1f31\u003e] kernel_init_freeable+0xb7/0x1ec\n   [\u003cffffffff815d50de\u003e] kernel_init+0xe/0xf0\n   [\u003cffffffff815ff89c\u003e] ret_from_fork+0x7c/0xb0\n  Code: 45  84 ac 00 00 00 f0 41 80 4d 00 40 e9 f6 fe ff ff 66 0f 1f 84 00 00 00 00 00 e8 eb 4b ff ff 49 89 c5 e9 05 fe ff ff \u003c0f\u003e 0b 4c 8b 73 38 44 89 ff 81 cf 00 00 20 00 4c 89 f6 48 c1 ee\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-Tested-by: Lingzhu Xiang \u003clxiang@redhat.com\u003e\n"
    },
    {
      "commit": "c240a539df4e2d50f86e2f31813ff6b7334cd493",
      "tree": "3a2f654b33fcfc9ee5a9c881e85f70c97f858336",
      "parents": [
        "ae3b29e67ca361f0876dad6be2061699de95d126",
        "b62fdd97fcae17e483b005bafd13fadbd9840672"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:08:57 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:08:57 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing fixes from Steven Rostedt:\n \"This includes a fix to a memory leak when adding filters to traces.\n\n  Also, Masami Hiramatsu fixed up some minor bugs that were discovered\n  by sparse.\"\n\n* tag \u0027trace-fixes-v3.10-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing/kprobes: Make print_*probe_event static\n  tracing/kprobes: Fix a sparse warning for incorrect type in assignment\n  tracing/kprobes: Use rcu_dereference_raw for tp-\u003efiles\n  tracing: Fix leaks of filter preds\n"
    },
    {
      "commit": "652df602f8c5e99a3cec7d8e0c114e29d93b342f",
      "tree": "e52dd062e3a471760015e40ee5bbe5cedcd963b9",
      "parents": [
        "cc51bf6e6d8b03bd459818492e0bc3bef09dcd74",
        "52d857a8784a09576215c71cebf368d61c12a754"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:07:02 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:07:02 2013 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Thomas Gleixner:\n\n - Fix for a task exit cleanup race caused by a missing a preempt\n   disable\n\n - Cleanup of the event notification functions with a massive reduction\n   of duplicated code\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf: Factor out auxiliary events notification\n  perf: Fix EXIT event notification\n"
    },
    {
      "commit": "cc51bf6e6d8b03bd459818492e0bc3bef09dcd74",
      "tree": "1df4cddf95a656e829242dfb89f29cf22259ca70",
      "parents": [
        "37cae5e24981f4619372e6a29456d34e4cbdc5e2",
        "b4f711ee03d28f776fd2324fd0bd999cc428e4d2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:05:17 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:05:17 2013 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fixes from Thomas Gleixner:\n\n - Cure for not using zalloc in the first place, which leads to random\n   crashes with CPUMASK_OFF_STACK.\n\n - Revert a user space visible change which broke udev\n\n - Add a missing cpu_online early return introduced by the new full\n   dyntick conversions\n\n - Plug a long standing race in the timer wheel cpu hotplug code.\n   Sigh...\n\n - Cleanup NOHZ per cpu data on cpu down to prevent stale data on cpu\n   up.\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons\n  timer: Don\u0027t reinitialize the cpu base lock during CPU_UP_PREPARE\n  tick: Don\u0027t invoke tick_nohz_stop_sched_tick() if the cpu is offline\n  tick: Cleanup NOHZ per cpu data on cpu down\n  tick: Use zalloc_cpumask_var for allocating offstack cpumasks\n"
    },
    {
      "commit": "37cae5e24981f4619372e6a29456d34e4cbdc5e2",
      "tree": "d234d751ccb5f46a2632aa9ccffbd0cdbad31941",
      "parents": [
        "d21572c5157174c8b13e892e19e09d70e06b4807",
        "b47430d3adbedbfdb5979ba4874f5dadf94f16b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:04:00 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 15 14:04:00 2013 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core fixes from Thomas Gleixner:\n\n - Two fixlets for the fallout of the generic idle task conversion\n\n - Documentation update\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  rcu/idle: Wrap cpu-idle poll mode within rcu_idle_enter/exit\n  idle: Fix hlt/nohlt command-line handling in new generic idle\n  kthread: Document ways of reducing OS jitter due to per-CPU kthreads\n"
    },
    {
      "commit": "b62fdd97fcae17e483b005bafd13fadbd9840672",
      "tree": "59604faf8121c8007154c6df62c572e70e8f0925",
      "parents": [
        "3d1fc7b0880c4db612a3d3211a808659e28af588"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:39 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:24 2013 -0400"
      },
      "message": "tracing/kprobes: Make print_*probe_event static\n\nAccording to sparse warning, print_*probe_event static because\nthose functions are not directly called from outside.\n\nLink: http://lkml.kernel.org/r/20130513115839.6545.83067.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3d1fc7b0880c4db612a3d3211a808659e28af588",
      "tree": "12e965b6e43ec621325a0c142996c56a341bd637",
      "parents": [
        "c02c7e65d9b13670e34bc523744cf4f6e99c198a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:37 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:23 2013 -0400"
      },
      "message": "tracing/kprobes: Fix a sparse warning for incorrect type in assignment\n\nFix a sparse warning about the rcu operated pointer is\ndefined without __rcu address space.\n\nLink: http://lkml.kernel.org/r/20130513115837.6545.23322.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c02c7e65d9b13670e34bc523744cf4f6e99c198a",
      "tree": "186f0a0e169e83b9c7d899ace2e028b7293459c5",
      "parents": [
        "60705c89460fdc7227f2d153b68b3f34814738a4"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Mon May 13 20:58:34 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:50:22 2013 -0400"
      },
      "message": "tracing/kprobes: Use rcu_dereference_raw for tp-\u003efiles\n\nUse rcu_dereference_raw() for accessing tp-\u003efiles. Because the\nwrite-side uses rcu_assign_pointer() for memory barrier,\nthe read-side also has to use rcu_dereference_raw() with\nread memory barrier.\n\nLink: http://lkml.kernel.org/r/20130513115834.6545.17022.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "60705c89460fdc7227f2d153b68b3f34814738a4",
      "tree": "e4eddb24dc8ecd3edeaf3b3342539c0e21165437",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 14 15:40:48 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 15 13:49:18 2013 -0400"
      },
      "message": "tracing: Fix leaks of filter preds\n\nSpecial preds are created when folding a series of preds that\ncan be done in serial. These are allocated in an ops field of\nthe pred structure. But they were never freed, causing memory\nleaks.\n\nThis was discovered using the kmemleak checker:\n\nunreferenced object 0xffff8800797fd5e0 (size 32):\n  comm \"swapper/0\", pid 1, jiffies 4294690605 (age 104.608s)\n  hex dump (first 32 bytes):\n    00 00 01 00 03 00 05 00 07 00 09 00 0b 00 0d 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff814b52af\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff8111ff84\u003e] kmemleak_alloc_recursive.constprop.42+0x16/0x18\n    [\u003cffffffff81120e68\u003e] __kmalloc+0xd7/0x125\n    [\u003cffffffff810d47eb\u003e] kcalloc.constprop.24+0x2d/0x2f\n    [\u003cffffffff810d4896\u003e] fold_pred_tree_cb+0xa9/0xf4\n    [\u003cffffffff810d3781\u003e] walk_pred_tree+0x47/0xcc\n    [\u003cffffffff810d5030\u003e] replace_preds.isra.20+0x6f8/0x72f\n    [\u003cffffffff810d50b5\u003e] create_filter+0x4e/0x8b\n    [\u003cffffffff81b1c30d\u003e] ftrace_test_event_filter+0x5a/0x155\n    [\u003cffffffff8100028d\u003e] do_one_initcall+0xa0/0x137\n    [\u003cffffffff81afbedf\u003e] kernel_init_freeable+0x14d/0x1dc\n    [\u003cffffffff814b24b7\u003e] kernel_init+0xe/0xdb\n    [\u003cffffffff814d539c\u003e] ret_from_fork+0x7c/0xb0\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: stable@vger.kernel.org # 2.6.39+\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "615ee5443ff9bedd356dc6865f3e9c276ce434ea",
      "tree": "19f437a4d527a5b54f4337eb75029840f7765962",
      "parents": [
        "6faf72834d9d0c0dc6632604eaeffb621e87fcf9"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Tue Mar 26 11:35:16 2013 -0400"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed May 15 10:41:12 2013 -0700"
      },
      "message": "rcu: Don\u0027t allocate bootmem from rcu_init()\n\nWhen rcu_init() is called we already have slab working, allocating\nbootmem at that point results in warnings and an allocation from\nslab.  This commit therefore changes alloc_bootmem_cpumask_var() to\nalloc_cpumask_var() in rcu_bootup_announce_oddness(), which is called\nfrom rcu_init().\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nTested-by: Robin Holt \u003cholt@sgi.com\u003e\n\n[paulmck: convert to zalloc_cpumask_var(), as suggested by Yinghai Lu.]\n"
    },
    {
      "commit": "b4f711ee03d28f776fd2324fd0bd999cc428e4d2",
      "tree": "8d8b659c2514648be0bfe51f0de65110da008f22",
      "parents": [
        "42a5cf46cd56f46267d2a9fcf2655f4078cd3042"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Apr 24 11:32:56 2013 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 14 20:54:06 2013 +0200"
      },
      "message": "time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons\n\nKay Sievers noted that the ALWAYS_USE_PERSISTENT_CLOCK config,\nwhich enables some minor compile time optimization to avoid\nuncessary code in mostly the suspend/resume path could cause\nproblems for userland.\n\nIn particular, the dependency for RTC_HCTOSYS on\n!ALWAYS_USE_PERSISTENT_CLOCK, which avoids setting the time\ntwice and simplifies suspend/resume, has the side effect\nof causing the /sys/class/rtc/rtcN/hctosys flag to always be\nzero, and this flag is commonly used by udev to setup the\n/dev/rtc symlink to /dev/rtcN, which can cause pain for\nolder applications.\n\nWhile the udev rules could use some work to be less fragile,\nbreaking userland should strongly be avoided. Additionally\nthe compile time optimizations are fairly minor, and the code\nbeing optimized is likely to be reworked in the future, so\nlets revert this change.\n\nReported-by: Kay Sievers \u003ckay@vrfy.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.9\nCc: Feng Tang \u003cfeng.tang@intel.com\u003e\nCc: Jason Gunthorpe \u003cjgunthorpe@obsidianresearch.com\u003e\nLink: http://lkml.kernel.org/r/1366828376-18124-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ad7b1f841f8a54c6d61ff181451f55b68175e15a",
      "tree": "6c413da4c6374ce569623cb395e5b8f57c02e530",
      "parents": [
        "8f174b1175a10903ade40f36eb6c896412877ca0"
      ],
      "author": {
        "name": "Marc Dionne",
        "email": "marc.c.dionne@gmail.com",
        "time": "Mon May 06 17:44:55 2013 -0400"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 14 11:52:51 2013 -0700"
      },
      "message": "workqueue: Make schedule_work() available again to non GPL modules\n\nCommit 8425e3d5bdbe (\"workqueue: inline trivial wrappers\") changed\nschedule_work() and schedule_delayed_work() to inline wrappers,\nbut these rely on some symbols that are EXPORT_SYMBOL_GPL, while\nthe original functions were EXPORT_SYMBOL.  This has the effect of\nchanging the licensing requirement for these functions and making\nthem unavailable to non GPL modules.\n\nMake them available again by removing the restriction on the\nrequired symbols.\n\nSigned-off-by: Marc Dionne \u003cmarc.dionne@your-file-system.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "8f174b1175a10903ade40f36eb6c896412877ca0",
      "tree": "b6f1c9c7317ecc1092f582aca0160fdfb77c624e",
      "parents": [
        "d3251859168b0b12841e1b90d6d768ab478dc23d"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Wed May 01 00:07:00 2013 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 14 11:48:15 2013 -0700"
      },
      "message": "workqueue: correct handling of the pool spin_lock\n\nWhen we fail to mutex_trylock(), we release the pool spin_lock and do\nmutex_lock(). After that, we should regrab the pool spin_lock, but,\nregrabbing is missed in current code. So correct it.\n\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6faf72834d9d0c0dc6632604eaeffb621e87fcf9",
      "tree": "f72dcd0bfd3b3a43852fd745d580faff6d520141",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 13 06:53:37 2013 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 14 10:53:41 2013 -0700"
      },
      "message": "rcu: Fix comparison sense in rcu_needs_cpu()\n\nCommit c0f4dfd4f (rcu: Make RCU_FAST_NO_HZ take advantage of numbered\ncallbacks) introduced a bug that can result in excessively long grace\nperiods.  This bug reverse the senes of the \"if\" statement checking\nfor lazy callbacks, so that RCU takes a lazy approach when there are\nin fact non-lazy callbacks.  This can result in excessive boot, suspend,\nand resume times.\n\nThis commit therefore fixes the sense of this \"if\" statement.\n\nReported-by: Borislav Petkov \u003cbp@alien8.de\u003e\nReported-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nReported-by: Joerg Roedel \u003cjoro@8bytes.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nTested-by: Joerg Roedel \u003cjoro@8bytes.org\u003e\n"
    },
    {
      "commit": "7fb30d2b606beb78cda805647faf4d3cdfb39c42",
      "tree": "bdc82e9f3bc812dceb87d59108031eeab860cf2f",
      "parents": [
        "a2c7a54fcc36dc3d0d461e883d9535f8f52f5a3f",
        "d3251859168b0b12841e1b90d6d768ab478dc23d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 14 09:06:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 14 09:06:29 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue fix from Tejun Heo:\n \"A fix for a workqueue_congested() regression that broke fscache\"\n\n* \u0027for-3.10-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: workqueue_congested() shouldn\u0027t translate WORK_CPU_UNBOUND into node number\n"
    },
    {
      "commit": "42a5cf46cd56f46267d2a9fcf2655f4078cd3042",
      "tree": "d2f1c59ce75918b53b773e9b702a811e725e4756",
      "parents": [
        "f7ea0fd639c2c48d3c61b6eec75362be290c6874"
      ],
      "author": {
        "name": "Tirupathi Reddy",
        "email": "tirupath@codeaurora.org",
        "time": "Tue May 14 13:59:02 2013 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 14 17:59:18 2013 +0200"
      },
      "message": "timer: Don\u0027t reinitialize the cpu base lock during CPU_UP_PREPARE\n\nAn inactive timer\u0027s base can refer to a offline cpu\u0027s base.\n\nIn the current code, cpu_base\u0027s lock is blindly reinitialized each\ntime a CPU is brought up. If a CPU is brought online during the period\nthat another thread is trying to modify an inactive timer on that CPU\nwith holding its timer base lock, then the lock will be reinitialized\nunder its feet. This leads to following SPIN_BUG().\n\n\u003c0\u003e BUG: spinlock already unlocked on CPU#3, kworker/u:3/1466\n\u003c0\u003e lock: 0xe3ebe000, .magic: dead4ead, .owner: kworker/u:3/1466, .owner_cpu: 1\n\u003c4\u003e [\u003cc0013dc4\u003e] (unwind_backtrace+0x0/0x11c) from [\u003cc026e794\u003e] (do_raw_spin_unlock+0x40/0xcc)\n\u003c4\u003e [\u003cc026e794\u003e] (do_raw_spin_unlock+0x40/0xcc) from [\u003cc076c160\u003e] (_raw_spin_unlock+0x8/0x30)\n\u003c4\u003e [\u003cc076c160\u003e] (_raw_spin_unlock+0x8/0x30) from [\u003cc009b858\u003e] (mod_timer+0x294/0x310)\n\u003c4\u003e [\u003cc009b858\u003e] (mod_timer+0x294/0x310) from [\u003cc00a5e04\u003e] (queue_delayed_work_on+0x104/0x120)\n\u003c4\u003e [\u003cc00a5e04\u003e] (queue_delayed_work_on+0x104/0x120) from [\u003cc04eae00\u003e] (sdhci_msm_bus_voting+0x88/0x9c)\n\u003c4\u003e [\u003cc04eae00\u003e] (sdhci_msm_bus_voting+0x88/0x9c) from [\u003cc04d8780\u003e] (sdhci_disable+0x40/0x48)\n\u003c4\u003e [\u003cc04d8780\u003e] (sdhci_disable+0x40/0x48) from [\u003cc04bf300\u003e] (mmc_release_host+0x4c/0xb0)\n\u003c4\u003e [\u003cc04bf300\u003e] (mmc_release_host+0x4c/0xb0) from [\u003cc04c7aac\u003e] (mmc_sd_detect+0x90/0xfc)\n\u003c4\u003e [\u003cc04c7aac\u003e] (mmc_sd_detect+0x90/0xfc) from [\u003cc04c2504\u003e] (mmc_rescan+0x7c/0x2c4)\n\u003c4\u003e [\u003cc04c2504\u003e] (mmc_rescan+0x7c/0x2c4) from [\u003cc00a6a7c\u003e] (process_one_work+0x27c/0x484)\n\u003c4\u003e [\u003cc00a6a7c\u003e] (process_one_work+0x27c/0x484) from [\u003cc00a6e94\u003e] (worker_thread+0x210/0x3b0)\n\u003c4\u003e [\u003cc00a6e94\u003e] (worker_thread+0x210/0x3b0) from [\u003cc00aad9c\u003e] (kthread+0x80/0x8c)\n\u003c4\u003e [\u003cc00aad9c\u003e] (kthread+0x80/0x8c) from [\u003cc000ea80\u003e] (kernel_thread_exit+0x0/0x8)\n\nAs an example, this particular crash occurred when CPU #3 is executing\nmod_timer() on an inactive timer whose base is refered to offlined CPU\n#2.  The code locked the timer_base corresponding to CPU #2. Before it\ncould proceed, CPU #2 came online and reinitialized the spinlock\ncorresponding to its base. Thus now CPU #3 held a lock which was\nreinitialized. When CPU #3 finally ended up unlocking the old cpu_base\ncorresponding to CPU #2, we hit the above SPIN_BUG().\n\nCPU #0\t\tCPU #3\t\t\t\t       CPU #2\n------\t\t-------\t\t\t\t       -------\n.....\t\t ......\t\t\t\t      \u003cOffline\u003e\n\t\tmod_timer()\n\t\t lock_timer_base\n\t\t   spin_lock_irqsave(\u0026base-\u003elock)\n\ncpu_up(2)\t .....\t\t\t\t        ......\n\t\t\t\t\t\t\tinit_timers_cpu()\n....\t\t .....\t\t\t\t    \tspin_lock_init(\u0026base-\u003elock)\n.....\t\t   spin_unlock_irqrestore(\u0026base-\u003elock)  ......\n\t\t   \u003cspin_bug\u003e\n\nAllocation of per_cpu timer vector bases is done only once under\n\"tvec_base_done[]\" check. In the current code, spinlock_initialization\nof base-\u003elock isn\u0027t under this check. When a CPU is up each time the\nbase lock is reinitialized. Move base spinlock initialization under\nthe check.\n\nSigned-off-by: Tirupathi Reddy \u003ctirupath@codeaurora.org\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/1368520142-4136-1-git-send-email-tirupath@codeaurora.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b47430d3adbedbfdb5979ba4874f5dadf94f16b1",
      "tree": "d08e2c0e3de3b5beab6bed07045be3e2a61271c3",
      "parents": [
        "485cf5dac2966b93ef2b6211cf2fd42d66c823e6"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Tue May 14 04:01:27 2013 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 14 17:43:29 2013 +0200"
      },
      "message": "rcu/idle: Wrap cpu-idle poll mode within rcu_idle_enter/exit\n\nBjørn Mork reported the following warning when running powertop.\n\n[   49.289034] ------------[ cut here ]------------\n[   49.289055] WARNING: at kernel/rcutree.c:502 rcu_eqs_exit_common.isra.48+0x3d/0x125()\n[   49.289244] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-bisect-rcu-warn+ #107\n[   49.289251]  ffffffff8157d8c8 ffffffff81801e28 ffffffff8137e4e3 ffffffff81801e68\n[   49.289260]  ffffffff8103094f ffffffff81801e68 0000000000000000 ffff88023afcd9b0\n[   49.289268]  0000000000000000 0140000000000000 ffff88023bee7700 ffffffff81801e78\n[   49.289276] Call Trace:\n[   49.289285]  [\u003cffffffff8137e4e3\u003e] dump_stack+0x19/0x1b\n[   49.289293]  [\u003cffffffff8103094f\u003e] warn_slowpath_common+0x62/0x7b\n[   49.289300]  [\u003cffffffff8103097d\u003e] warn_slowpath_null+0x15/0x17\n[   49.289306]  [\u003cffffffff810a9006\u003e] rcu_eqs_exit_common.isra.48+0x3d/0x125\n[   49.289314]  [\u003cffffffff81079b49\u003e] ? trace_hardirqs_off_caller+0x37/0xa6\n[   49.289320]  [\u003cffffffff810a9692\u003e] rcu_idle_exit+0x85/0xa8\n[   49.289327]  [\u003cffffffff8107076e\u003e] trace_cpu_idle_rcuidle+0xae/0xff\n[   49.289334]  [\u003cffffffff810708b1\u003e] cpu_startup_entry+0x72/0x115\n[   49.289341]  [\u003cffffffff813689e5\u003e] rest_init+0x149/0x150\n[   49.289347]  [\u003cffffffff8136889c\u003e] ? csum_partial_copy_generic+0x16c/0x16c\n[   49.289355]  [\u003cffffffff81a82d34\u003e] start_kernel+0x3f0/0x3fd\n[   49.289362]  [\u003cffffffff81a8274c\u003e] ? repair_env_string+0x5a/0x5a\n[   49.289368]  [\u003cffffffff81a82481\u003e] x86_64_start_reservations+0x2a/0x2c\n[   49.289375]  [\u003cffffffff81a82550\u003e] x86_64_start_kernel+0xcd/0xd1\n[   49.289379] ---[ end trace 07a1cc95e29e9036 ]---\n\nThe warning is that \u0027rdtp-\u003edynticks\u0027 has an unexpected value, which roughly\ntranslates to - the calls to rcu_idle_enter() and rcu_idle_exit() were not\nmade in the correct order, or otherwise messed up.\n\nAnd Bjørn\u0027s painstaking debugging indicated that this happens when the idle\nloop enters the poll mode. Looking at the poll function cpu_idle_poll(), and\nthe implementation of trace_cpu_idle_rcuidle(), the problem becomes very clear:\ncpu_idle_poll() lacks calls to rcu_idle_enter/exit(), and trace_cpu_idle_rcuidle()\ncalls them in the reverse order - first rcu_idle_exit(), and then rcu_idle_enter().\nHence the even/odd alternative sequencing of rdtp-\u003edynticks goes for a toss.\n\nAnd powertop readily triggers this because powertop uses the idle-tracing\ninfrastructure extensively.\n\nSo, to fix this, wrap the code in cpu_idle_poll() within rcu_idle_enter/exit(),\nso that it blends properly with the calls inside trace_cpu_idle_rcuidle() and\nthus get the function ordering right.\n\nReported-and-tested-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/519169BF.4080208@linux.vnet.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f7ea0fd639c2c48d3c61b6eec75362be290c6874",
      "tree": "9b9d22393afbaa246272d896d2641fb0c33887be",
      "parents": [
        "4b0c0f294f60abcdd20994a8341a95c8ac5eeb96"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 13 21:40:27 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 14 17:40:31 2013 +0200"
      },
      "message": "tick: Don\u0027t invoke tick_nohz_stop_sched_tick() if the cpu is offline\n\ncommit 5b39939a4 (nohz: Move ts-\u003eidle_calls incrementation into strict\nidle logic) moved code out of tick_nohz_stop_sched_tick() and missed\nto bail out when the cpu is offline. That\u0027s causing subsequent\nfailures as an offline CPU is supposed to die and not to fiddle with\nnohz magic.\n\nReturn false in can_stop_idle_tick() if the cpu is offline.\n\nReported-and-tested-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nReported-and-tested-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: x86@kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305132138160.2863@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d6cbf35dac8a3dadb9103379820c96d7c85df3d9",
      "tree": "bd25f2bebf2620ab87440e1e8b167e7bf3cdca20",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Tue May 14 19:44:20 2013 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 14 08:24:15 2013 -0700"
      },
      "message": "cgroup: initialize xattr before calling d_instantiate()\n\ncgroup_create_file() calls d_instantiate(), which may decide to look\nat the xattrs on the file. Smack always does this and SELinux can be\nconfigured to do so.\n\nBut cgroup_add_file() didn\u0027t initialize xattrs before calling\ncgroup_create_file(), which finally leads to dereferencing NULL\ndentry-\u003ed_fsdata.\n\nThis bug has been there since cgroup xattr was introduced.\n\nCc: \u003cstable@vger.kernel.org\u003e # 3.8.x\nReported-by: Ivan Bulatovic \u003ccombuster@archlinux.us\u003e\nReported-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "4b0c0f294f60abcdd20994a8341a95c8ac5eeb96",
      "tree": "cdfb352f5cf66f5e5bb79fa9a975aabd891e1f62",
      "parents": [
        "fbd44a607a1a5019bc32c3615cead8c5ee8f89c9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 03 15:02:50 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 12 12:20:09 2013 +0200"
      },
      "message": "tick: Cleanup NOHZ per cpu data on cpu down\n\nPrarit reported a crash on CPU offline/online. The reason is that on\nCPU down the NOHZ related per cpu data of the dead cpu is not cleaned\nup. If at cpu online an interrupt happens before the per cpu tick\ndevice is registered the irq_enter() check potentially sees stale data\nand dereferences a NULL pointer.\n\nCleanup the data after the cpu is dead.\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: stable@vger.kernel.org\nCc: Mike Galbraith \u003cbitbucket@online.de\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305031451561.2886@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "26b840ae5d5140fe7b2226098826c449e63de072",
      "tree": "0f4a6f1575a7f0e49f63da7920258e1e89359036",
      "parents": [
        "607eeb0b836aa24a6972a460a213c4f87902d403",
        "b8820084f2130b3dcfb09c78ac16cdd2194a345b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 17:04:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 17:04:59 2013 -0700"
      },
      "message": "Merge tag \u0027trace-fixes-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace\n\nPull tracing/kprobes update from Steven Rostedt:\n \"The majority of these changes are from Masami Hiramatsu bringing\n  kprobes up to par with the latest changes to ftrace (multi buffering\n  and the new function probes).\n\n  He also discovered and fixed some bugs in doing so.  When pulling in\n  his patches, I also found a few minor bugs as well and fixed them.\n\n  This also includes a compile fix for some archs that select the ring\n  buffer but not tracing.\n\n  I based this off of the last patch you took from me that fixed the\n  merge conflict error, as that was the commit that had all the changes\n  I needed for this set of changes.\"\n\n* tag \u0027trace-fixes-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:\n  tracing/kprobes: Support soft-mode disabling\n  tracing/kprobes: Support ftrace_event_file base multibuffer\n  tracing/kprobes: Pass trace_probe directly from dispatcher\n  tracing/kprobes: Increment probe hit-count even if it is used by perf\n  tracing/kprobes: Use bool for retprobe checker\n  ftrace: Fix function probe when more than one probe is added\n  ftrace: Fix the output of enabled_functions debug file\n  ftrace: Fix locking in register_ftrace_function_probe()\n  tracing: Add helper function trace_create_new_event() to remove duplicate code\n  tracing: Modify soft-mode only if there\u0027s no other referrer\n  tracing: Indicate enabled soft-mode in enable file\n  tracing/kprobes: Fix to increment return event probe hit-count\n  ftrace: Cleanup regex_lock and ftrace_lock around hash updating\n  ftrace, kprobes: Fix a deadlock on ftrace_regex_lock\n  ftrace: Have ftrace_regex_write() return either read or error\n  tracing: Return error if register_ftrace_function_probe() fails for event_enable_func()\n  tracing: Don\u0027t succeed if event_enable_func did not register anything\n  ring-buffer: Select IRQ_WORK\n"
    },
    {
      "commit": "c4cc75c3321cad6f20d1e5325293890255c8a663",
      "tree": "f515d034c9d6947bed0467840678aff823747596",
      "parents": [
        "2dbd3cac87250a0d44e07acc86c4224a08522709",
        "2a0b4be6dd655e24990da1d0811e28b9277f8b12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 14:29:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 11 14:29:11 2013 -0700"
      },
      "message": "Merge git://git.infradead.org/users/eparis/audit\n\nPull audit changes from Eric Paris:\n \"Al used to send pull requests every couple of years but he told me to\n  just start pushing them to you directly.\n\n  Our touching outside of core audit code is pretty straight forward.  A\n  couple of interface changes which hit net/.  A simple argument bug\n  calling audit functions in namei.c and the removal of some assembly\n  branch prediction code on ppc\"\n\n* git://git.infradead.org/users/eparis/audit: (31 commits)\n  audit: fix message spacing printing auid\n  Revert \"audit: move kaudit thread start from auditd registration to kaudit init\"\n  audit: vfs: fix audit_inode call in O_CREAT case of do_last\n  audit: Make testing for a valid loginuid explicit.\n  audit: fix event coverage of AUDIT_ANOM_LINK\n  audit: use spin_lock in audit_receive_msg to process tty logging\n  audit: do not needlessly take a lock in tty_audit_exit\n  audit: do not needlessly take a spinlock in copy_signal\n  audit: add an option to control logging of passwords with pam_tty_audit\n  audit: use spin_lock_irqsave/restore in audit tty code\n  helper for some session id stuff\n  audit: use a consistent audit helper to log lsm information\n  audit: push loginuid and sessionid processing down\n  audit: stop pushing loginid, uid, sessionid as arguments\n  audit: remove the old depricated kernel interface\n  audit: make validity checking generic\n  audit: allow checking the type of audit message in the user filter\n  audit: fix build break when AUDIT_DEBUG \u003d\u003d 2\n  audit: remove duplicate export of audit_enabled\n  Audit: do not print error when LSMs disabled\n  ...\n"
    },
    {
      "commit": "d3251859168b0b12841e1b90d6d768ab478dc23d",
      "tree": "ccfb1c9c2da7e67d8b9d3ab9a0027a556f0a4fec",
      "parents": [
        "2dbd3cac87250a0d44e07acc86c4224a08522709"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 10 11:10:17 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 10 11:10:17 2013 -0700"
      },
      "message": "workqueue: workqueue_congested() shouldn\u0027t translate WORK_CPU_UNBOUND into node number\n\ndf2d5ae499 (\"workqueue: map an unbound workqueues to multiple per-node\npool_workqueues\") made unbound workqueues to map to multiple per-node\npool_workqueues and accordingly updated workqueue_contested() so that,\nfor unbound workqueues, it maps the specified @cpu to the NUMA node\nnumber to obtain the matching pool_workqueue to query the congested\nstate.\n\nBefore this change, workqueue_congested() ignored @cpu for unbound\nworkqueues as there was only one pool_workqueue and some users\n(fscache) called it with WORK_CPU_UNBOUND.  After the commit, this\ncauses the following oops as WORK_CPU_UNBOUND gets translated to\ngarbage by cpu_to_node().\n\n  BUG: unable to handle kernel paging request at ffff8803598d98b8\n  IP: [\u003cffffffff81043b7e\u003e] unbound_pwq_by_node+0xa1/0xfa\n  PGD 2421067 PUD 0\n  Oops: 0000 [#1] SMP\n  CPU: 1 PID: 2689 Comm: cat Tainted: GF            3.9.0-fsdevel+ #4\n  task: ffff88003d801040 ti: ffff880025806000 task.ti: ffff880025806000\n  RIP: 0010:[\u003cffffffff81043b7e\u003e]  [\u003cffffffff81043b7e\u003e] unbound_pwq_by_node+0xa1/0xfa\n  RSP: 0018:ffff880025807ad8  EFLAGS: 00010202\n  RAX: 0000000000000001 RBX: ffff8800388a2400 RCX: 0000000000000003\n  RDX: ffff880025807fd8 RSI: ffffffff81a31420 RDI: ffff88003d8016e0\n  RBP: ffff880025807ae8 R08: ffff88003d801730 R09: ffffffffa00b4898\n  R10: ffffffff81044217 R11: ffff88003d801040 R12: 0000000064206e97\n  R13: ffff880036059d98 R14: ffff880038cc8080 R15: ffff880038cc82d0\n  FS:  00007f21afd9c740(0000) GS:ffff88003d100000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n  CR2: ffff8803598d98b8 CR3: 000000003df49000 CR4: 00000000000007e0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n  Stack:\n   ffff8800388a2400 0000000000000002 ffff880025807b18 ffffffff810442ce\n   ffffffff81044217 ffff880000000002 ffff8800371b4080 ffff88003d112ec0\n   ffff880025807b38 ffffffffa00810b0 ffff880036059d88 ffff880036059be8\n  Call Trace:\n   [\u003cffffffff810442ce\u003e] workqueue_congested+0xb7/0x12c\n   [\u003cffffffffa00810b0\u003e] fscache_enqueue_object+0xb2/0xe8 [fscache]\n   [\u003cffffffffa007facd\u003e] __fscache_acquire_cookie+0x3b9/0x56c [fscache]\n   [\u003cffffffffa00ad8fe\u003e] nfs_fscache_set_inode_cookie+0xee/0x132 [nfs]\n   [\u003cffffffffa009e112\u003e] do_open+0x9/0xd [nfs]\n   [\u003cffffffff810e804a\u003e] do_dentry_open+0x175/0x24b\n   [\u003cffffffff810e8298\u003e] finish_open+0x41/0x51\n\nFix it by using smp_processor_id() if @cpu is WORK_CPU_UNBOUND.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-and-Acked-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "3644bc2ec7655a249612ea500e2be1c13052c4c2",
      "tree": "872dabd511e62b7e94f3d903d7b55114175f5b06",
      "parents": [
        "6fad8d02ef9ab12d5e178014a4c5c297e1707f23",
        "c5ddd2024a87353f73068732cfd38d3dfec22e87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 10 09:21:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 10 09:21:05 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull stray syscall bits from Al Viro:\n \"Several syscall-related commits that were missing from the original\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE\n  unicore32: just use mmap_pgoff()...\n  unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE\n  x86, vm86: fix VM86 syscalls: use SYSCALL_DEFINEx(...)\n"
    },
    {
      "commit": "f741df1f3a2afe988f413ca78d1e866657079beb",
      "tree": "385fe773b3549dec86261cf1933beb3f8a7adf61",
      "parents": [
        "c67723ebbb2d6f672a0e9e5b1a8d1a2442942557",
        "5950f0803ca9d396ab79b7fe6789351f96e1d8d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 10 09:09:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 10 09:09:47 2013 -0700"
      },
      "message": "Merge tag \u0027for-linus-20130509\u0027 of git://git.infradead.org/~dwmw2/random-2.6\n\nPull misc fixes from David Woodhouse:\n \"This is some miscellaneous cleanups that don\u0027t really belong anywhere\n  else (or were ignored), that have been sitting in linux-next for some\n  time.  Two of them are fixes resulting from my audit of krealloc()\n  usage that don\u0027t seem to have elicited any response when I posted\n  them, and the other three are patches from Artem removing dead code.\"\n\n* tag \u0027for-linus-20130509\u0027 of git://git.infradead.org/~dwmw2/random-2.6:\n  pcmcia: remove RPX board stuff\n  m68k: remove rpxlite stuff\n  pcmcia: remove Motorola MBX860 support\n  params: Fix potential memory leak in add_sysfs_param()\n  dell-laptop: Fix krealloc() misuse in parse_da_table()\n"
    },
    {
      "commit": "b8820084f2130b3dcfb09c78ac16cdd2194a345b",
      "tree": "5cfc6d47197adcbebff40c42fc17fea8d6246887",
      "parents": [
        "41a7dd420c57323391d58b553318c1fad8e7ebc2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:54 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:22:16 2013 -0400"
      },
      "message": "tracing/kprobes: Support soft-mode disabling\n\nSupport soft-mode disabling on kprobe-based dynamic events.\nSoft-disabling is just ignoring recording if the soft disabled\nflag is set.\n\nLink: http://lkml.kernel.org/r/20130509054454.30398.7237.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "41a7dd420c57323391d58b553318c1fad8e7ebc2",
      "tree": "5e1d64afa7395335381203d64f2ce91b09bd0f9b",
      "parents": [
        "2b106aabe6c566ba19c352f22683381e1ea41326"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:49 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:21:47 2013 -0400"
      },
      "message": "tracing/kprobes: Support ftrace_event_file base multibuffer\n\nSupport multi-buffer on kprobe-based dynamic events by\nusing ftrace_event_file.\n\nLink: http://lkml.kernel.org/r/20130509054449.30398.88343.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2b106aabe6c566ba19c352f22683381e1ea41326",
      "tree": "b97934b7082be136b32e84cd5eb22d2296168878",
      "parents": [
        "48182bd2261766b810e4e4269a23236c1ace63fb"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:41 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:19:48 2013 -0400"
      },
      "message": "tracing/kprobes: Pass trace_probe directly from dispatcher\n\nPass the pointer of struct trace_probe directly from probe\ndispatcher to handlers. This removes redundant container_of\nmacro uses. Same thing has already done in trace_uprobe.\n\nLink: http://lkml.kernel.org/r/20130509054441.30398.69112.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "48182bd2261766b810e4e4269a23236c1ace63fb",
      "tree": "dabbc38dbf312f99abc1288d8a92d37fea4260e9",
      "parents": [
        "db02038f4e6a776fd3a0bb71242be37ff378ce86"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:36 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:18:44 2013 -0400"
      },
      "message": "tracing/kprobes: Increment probe hit-count even if it is used by perf\n\nIncrement probe hit-count for profiling even if it is used\nby perf tool. Same thing has already done in trace_uprobe.\n\nLink: http://lkml.kernel.org/r/20130509054436.30398.21133.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "db02038f4e6a776fd3a0bb71242be37ff378ce86",
      "tree": "e40bd40ae205bf21e84835800006f23992c5cbeb",
      "parents": [
        "19dd603e45199d93d61e9853c596d098e04e5d66"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:32 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:17:35 2013 -0400"
      },
      "message": "tracing/kprobes: Use bool for retprobe checker\n\nUse bool instead of int for kretprobe checker.\n\nLink: http://lkml.kernel.org/r/20130509054431.30398.38561.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "19dd603e45199d93d61e9853c596d098e04e5d66",
      "tree": "f749edd09d9eeb4c4c989936677e8f2bbdd95dc0",
      "parents": [
        "23ea9c4dda129fe1711f9fbda03c7a9c91cf1322"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 19:37:36 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:16:27 2013 -0400"
      },
      "message": "ftrace: Fix function probe when more than one probe is added\n\nWhen the first function probe is added and the function tracer\nis updated the functions are modified to call the probe.\nBut when a second function is added, it updates the function\nrecords to have the second function also update, but it fails\nto update the actual function itself.\n\nThis prevents the second (or third or forth and so on) probes\nfrom having their functions called.\n\n  # echo vfs_symlink:enable_event:sched:sched_switch \u003e set_ftrace_filter\n  # echo vfs_unlink:enable_event:sched:sched_switch \u003e set_ftrace_filter\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 0/0   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n  # touch /tmp/a\n  # rm /tmp/a\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 0/0   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n  # ln -s /tmp/a\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 414/414   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [000] d..3  2847.923031: sched_switch: prev_comm\u003dswapper/0 prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dbash next_pid\u003d2786 next_prio\u003d120\n            \u003c...\u003e-3114  [001] d..4  2847.923035: sched_switch: prev_comm\u003dln prev_pid\u003d3114 prev_prio\u003d120 prev_state\u003dx \u003d\u003d\u003e next_comm\u003dswapper/1 next_pid\u003d0 next_prio\u003d120\n             bash-2786  [000] d..3  2847.923535: sched_switch: prev_comm\u003dbash prev_pid\u003d2786 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dkworker/0:1 next_pid\u003d34 next_prio\u003d120\n      kworker/0:1-34    [000] d..3  2847.923552: sched_switch: prev_comm\u003dkworker/0:1 prev_pid\u003d34 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper/0 next_pid\u003d0 next_prio\u003d120\n           \u003cidle\u003e-0     [002] d..3  2847.923554: sched_switch: prev_comm\u003dswapper/2 prev_pid\u003d0 prev_prio\u003d120 prev_state\u003dR \u003d\u003d\u003e next_comm\u003dsshd next_pid\u003d2783 next_prio\u003d120\n             sshd-2783  [002] d..3  2847.923660: sched_switch: prev_comm\u003dsshd prev_pid\u003d2783 prev_prio\u003d120 prev_state\u003dS \u003d\u003d\u003e next_comm\u003dswapper/2 next_pid\u003d0 next_prio\u003d120\n\nStill need to update the functions even though the probe itself\ndoes not need to be registered again when added a new probe.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "23ea9c4dda129fe1711f9fbda03c7a9c91cf1322",
      "tree": "8924f6fd2399654393d0b41352d40bd07037c470",
      "parents": [
        "5ae0bf5972b66d35e5674e1b7d855b1e111a68ae"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 19:31:48 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:16:16 2013 -0400"
      },
      "message": "ftrace: Fix the output of enabled_functions debug file\n\nThe enabled_functions debugfs file was created to be able to see\nwhat functions have been modified from nops to calling a tracer.\n\nThe current method uses the counter in the function record.\nAs when a ftrace_ops is registered to a function, its count\nincreases. But that doesn\u0027t mean that the function is actively\nbeing traced. /proc/sys/kernel/ftrace_enabled can be set to zero\nwhich would disable it, as well as something can go wrong and\nwe can think its enabled when only the counter is set.\n\nThe record\u0027s FTRACE_FL_ENABLED flag is set or cleared when its\nfunction is modified. That is a much more accurate way of knowing\nwhat function is enabled or not.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5ae0bf5972b66d35e5674e1b7d855b1e111a68ae",
      "tree": "6383ef4d7fd63d6da285f3908c6f3c14028715a0",
      "parents": [
        "da511bf33e47ea1f33f4b672f7da166d2a1b8a91"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 18:20:37 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:15:30 2013 -0400"
      },
      "message": "ftrace: Fix locking in register_ftrace_function_probe()\n\nThe iteration of the ftrace function list and the call to\nftrace_match_record() need to be protected by the ftrace_lock.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "da511bf33e47ea1f33f4b672f7da166d2a1b8a91",
      "tree": "3e514023cb9fd7f91c54e0b952ee5c47b76b945a",
      "parents": [
        "1cf4c0732db3cd3c49cadbc60ff6bda08604e6fa"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 15:00:07 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:14:49 2013 -0400"
      },
      "message": "tracing: Add helper function trace_create_new_event() to remove duplicate code\n\nBoth __trace_add_new_event() and __trace_early_add_new_event() do\nbasically the same thing, except that __trace_add_new_event() does\na little more.\n\nInstead of having duplicate code between the two functions, add\na helper function trace_create_new_event() that both can use.\nThis will help against having bugs fixed in one function but not\nthe other.\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1cf4c0732db3cd3c49cadbc60ff6bda08604e6fa",
      "tree": "74133737a3ecea18847788c10fae7bb474f1aaa8",
      "parents": [
        "30052170dcc256c18a43fb3e76577a67394543f8"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:29 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:14:25 2013 -0400"
      },
      "message": "tracing: Modify soft-mode only if there\u0027s no other referrer\n\nModify soft-mode flag only if no other soft-mode referrer\n(currently only the ftrace triggers) by using a reference\ncounter in each ftrace_event_file.\n\nWithout this fix, adding and removing several different\nenable/disable_event triggers on the same event clear\nsoft-mode bit from the ftrace_event_file. This also\nhappens with a typo of glob on setting triggers.\n\ne.g.\n\n # echo vfs_symlink:enable_event:net:netif_rx \u003e set_ftrace_filter\n # cat events/net/netif_rx/enable\n 0*\n # echo typo_func:enable_event:net:netif_rx \u003e set_ftrace_filter\n # cat events/net/netif_rx/enable\n 0\n # cat set_ftrace_filter\n #### all functions enabled ####\n vfs_symlink:enable_event:net:netif_rx:unlimited\n\nAs above, we still have a trigger, but soft-mode is gone.\n\nLink: http://lkml.kernel.org/r/20130509054429.30398.7464.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nCc: Hiraku Toyooka \u003chiraku.toyooka.gu@hitachi.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "30052170dcc256c18a43fb3e76577a67394543f8",
      "tree": "6eb0d5d7c436f14063d8b4a7c3b72397107967f5",
      "parents": [
        "cce2c8f26704529f592fc124c7c6ad399940dc5d"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:26 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:14:07 2013 -0400"
      },
      "message": "tracing: Indicate enabled soft-mode in enable file\n\nIndicate enabled soft-mode event as \"1*\" in \"enable\" file\nfor each event, because it can be soft-disabled when disable_event\ntrigger is hit.\n\nLink: http://lkml.kernel.org/r/20130509054426.30398.28202.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cce2c8f26704529f592fc124c7c6ad399940dc5d",
      "tree": "a8c2479f819da73358358e0c39308accb8402817",
      "parents": [
        "3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:24 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:13:51 2013 -0400"
      },
      "message": "tracing/kprobes: Fix to increment return event probe hit-count\n\nFix to increment probe hit-count for function return event.\n\nLink: http://lkml.kernel.org/r/20130509054424.30398.34058.stgit@mhiramat-M0-7522\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8",
      "tree": "81bac89b0b20458cb8505a3bdef4b9189ff4057e",
      "parents": [
        "f04f24fb7e48d446bd89a01c6056571f25972511"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:21 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:11:48 2013 -0400"
      },
      "message": "ftrace: Cleanup regex_lock and ftrace_lock around hash updating\n\nCleanup regex_lock and ftrace_lock locking points around\nftrace_ops hash update code.\n\nThe new rule is that regex_lock protects ops-\u003e*_hash\nread-update-write code for each ftrace_ops. Usually,\nhash update is done by following sequence.\n\n1. allocate a new local hash and copy the original hash.\n2. update the local hash.\n3. move(actually, copy) back the local hash to ftrace_ops.\n4. update ftrace entries if needed.\n5. release the local hash.\n\nThis makes regex_lock protect #1-#4, and ftrace_lock\nto protect #3, #4 and adding and removing ftrace_ops from the\nftrace_ops_list. The ftrace_lock protects #3 as well because\nthe move functions update the entries too.\n\nLink: http://lkml.kernel.org/r/20130509054421.30398.83411.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f04f24fb7e48d446bd89a01c6056571f25972511",
      "tree": "b1d1ecbe88df0eee0309970fd07dc37fb375a440",
      "parents": [
        "7c088b5120ffef017e2ddc38f992277e96436ef6"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:17 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 20:10:22 2013 -0400"
      },
      "message": "ftrace, kprobes: Fix a deadlock on ftrace_regex_lock\n\nFix a deadlock on ftrace_regex_lock which happens when setting\nan enable_event trigger on dynamic kprobe event as below.\n\n----\nsh-2.05b# echo p vfs_symlink \u003e kprobe_events\nsh-2.05b# echo vfs_symlink:enable_event:kprobes:p_vfs_symlink_0 \u003e set_ftrace_filter\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n3.9.0+ #35 Not tainted\n---------------------------------------------\nsh/72 is trying to acquire lock:\n (ftrace_regex_lock){+.+.+.}, at: [\u003cffffffff810ba6c1\u003e] ftrace_set_hash+0x81/0x1f0\n\nbut task is already holding lock:\n (ftrace_regex_lock){+.+.+.}, at: [\u003cffffffff810b7cbd\u003e] ftrace_regex_write.isra.29.part.30+0x3d/0x220\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(ftrace_regex_lock);\n  lock(ftrace_regex_lock);\n\n *** DEADLOCK ***\n----\n\nTo fix that, this introduces a finer regex_lock for each ftrace_ops.\nftrace_regex_lock is too big of a lock which protects all\nfilter/notrace_hash operations, but it doesn\u0027t need to be a global\nlock after supporting multiple ftrace_ops because each ftrace_ops\nhas its own filter/notrace_hash.\n\nLink: http://lkml.kernel.org/r/20130509054417.30398.84254.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\n[ Added initialization flag and automate mutex initialization for\n  non ftrace.c ftrace_probes. ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "c5ddd2024a87353f73068732cfd38d3dfec22e87",
      "tree": "e6d0b78c9f1e254be8bedb956ece55093490118b",
      "parents": [
        "6dd9148bc5d813b543be9cb63949ddfa3bc4a990"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 19 14:25:51 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 09 14:53:20 2013 -0400"
      },
      "message": "switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91c2e0bcae72a3086c698b5de2b950b885abb0e6",
      "tree": "89f738ca8f9519f0fd3b22dd6cfb3dc69d98cfab",
      "parents": [
        "5522ddb3fc0dfd4a503c8278eafd88c9f2d3fada"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 05 20:10:59 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 09 13:46:38 2013 -0400"
      },
      "message": "unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7c088b5120ffef017e2ddc38f992277e96436ef6",
      "tree": "9cfeea9e1adc62a0e0ee452bdcbb6fc748358b6d",
      "parents": [
        "ff305ded9ff83436039a16d31bc558dc6598d7ce"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 11:35:12 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 11:35:12 2013 -0400"
      },
      "message": "ftrace: Have ftrace_regex_write() return either read or error\n\nAs ftrace_regex_write() reads the result of ftrace_process_regex()\nwhich can sometimes return a positive number, only consider a\nfailure if the return is negative. Otherwise, it will skip possible\nother registered probes and by returning a positive number that\nwasn\u0027t read, it will confuse the user processes doing the writing.\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff305ded9ff83436039a16d31bc558dc6598d7ce",
      "tree": "5430dd02b415b7b688a0579a5fff67c41dc4331b",
      "parents": [
        "a5b85bd1557209b4ef18a8cf07e60a1ca3132468"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 11:30:26 2013 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 11:30:26 2013 -0400"
      },
      "message": "tracing: Return error if register_ftrace_function_probe() fails for event_enable_func()\n\nregister_ftrace_function_probe() returns the number of functions\nit registered, which can be zero, it can also return a negative number\nif something went wrong. But event_enable_func() only checks for\nthe case that it didn\u0027t register anything, it needs to also check\nfor the case that something went wrong and return that error code\nas well.\n\nAdded some comments about the code as well, to make it more\nunderstandable.\n\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a5b85bd1557209b4ef18a8cf07e60a1ca3132468",
      "tree": "f1c0c60e26e7f10e6e05cca9af1639bf651a7bf4",
      "parents": [
        "2228768885e0b92c0f7b276cc61b8974e7aed724"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Thu May 09 14:44:14 2013 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 09 11:26:01 2013 -0400"
      },
      "message": "tracing: Don\u0027t succeed if event_enable_func did not register anything\n\nReturn 0 instead of the number of activated ftrace function probes if\nevent_enable_func succeeded and return an error code if it failed or\ndid not register any functions. But it currently returns the number\nof registered functions and if it didn\u0027t register anything, it returns 0,\nbut that is considered success.\n\nThis also fixes the return value. As if it succeeds, it returns the\nnumber of functions that were enabled, which is returned back to\nthe user in ftrace_regex_write (the write() return code). If only\none function is enabled, then the return code of the write is one,\nand this can confuse the user program in thinking it only wrote 1\nbyte.\n\nLink: http://lkml.kernel.org/r/20130509054413.30398.55650.stgit@mhiramat-M0-7522\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Tom Zanussi \u003ctom.zanussi@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\n[ Rewrote change log to reflect that this fixes two bugs - SR ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ebb37277796269da36a8bc5d72ed1e8e1fb7d34b",
      "tree": "0ded627a62a5cec70b18d12825dd858855c135d3",
      "parents": [
        "4de13d7aa8f4d02f4dc99d4609575659f92b3c5a",
        "f50efd2fdbd9b35b11f5778ed85beb764184bda9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 11:51:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 11:51:05 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver updates from Jens Axboe:\n \"It might look big in volume, but when categorized, not a lot of\n  drivers are touched.  The pull request contains:\n\n   - mtip32xx fixes from Micron.\n\n   - A slew of drbd updates, this time in a nicer series.\n\n   - bcache, a flash/ssd caching framework from Kent.\n\n   - Fixes for cciss\"\n\n* \u0027for-3.10/drivers\u0027 of git://git.kernel.dk/linux-block: (66 commits)\n  bcache: Use bd_link_disk_holder()\n  bcache: Allocator cleanup/fixes\n  cciss: bug fix to prevent cciss from loading in kdump crash kernel\n  cciss: add cciss_allow_hpsa module parameter\n  drivers/block/mg_disk.c: add CONFIG_PM_SLEEP to suspend/resume functions\n  mtip32xx: Workaround for unaligned writes\n  bcache: Make sure blocksize isn\u0027t smaller than device blocksize\n  bcache: Fix merge_bvec_fn usage for when it modifies the bvm\n  bcache: Correctly check against BIO_MAX_PAGES\n  bcache: Hack around stuff that clones up to bi_max_vecs\n  bcache: Set ra_pages based on backing device\u0027s ra_pages\n  bcache: Take data offset from the bdev superblock.\n  mtip32xx: mtip32xx: Disable TRIM support\n  mtip32xx: fix a smatch warning\n  bcache: Disable broken btree fuzz tester\n  bcache: Fix a format string overflow\n  bcache: Fix a minor memory leak on device teardown\n  bcache: Documentation updates\n  bcache: Use WARN_ONCE() instead of __WARN()\n  bcache: Add missing #include \u003clinux/prefetch.h\u003e\n  ...\n"
    },
    {
      "commit": "4de13d7aa8f4d02f4dc99d4609575659f92b3c5a",
      "tree": "3bc9729eabe79c6164cd29a5d605000bc82bf837",
      "parents": [
        "5af43c24ca59a448c9312dd4a4a51d27ec3b9a73",
        "b8d4a5bf6a049303a29a3275f463f09a490b50ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 10:13:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 10:13:35 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block core updates from Jens Axboe:\n\n - Major bit is Kents prep work for immutable bio vecs.\n\n - Stable candidate fix for a scheduling-while-atomic in the queue\n   bypass operation.\n\n - Fix for the hang on exceeded rq-\u003edatalen 32-bit unsigned when merging\n   discard bios.\n\n - Tejuns changes to convert the writeback thread pool to the generic\n   workqueue mechanism.\n\n - Runtime PM framework, SCSI patches exists on top of these in James\u0027\n   tree.\n\n - A few random fixes.\n\n* \u0027for-3.10/core\u0027 of git://git.kernel.dk/linux-block: (40 commits)\n  relay: move remove_buf_file inside relay_close_buf\n  partitions/efi.c: replace useless kzalloc\u0027s by kmalloc\u0027s\n  fs/block_dev.c: fix iov_shorten() criteria in blkdev_aio_read()\n  block: fix max discard sectors limit\n  blkcg: fix \"scheduling while atomic\" in blk_queue_bypass_start\n  Documentation: cfq-iosched: update documentation help for cfq tunables\n  writeback: expose the bdi_wq workqueue\n  writeback: replace custom worker pool implementation with unbound workqueue\n  writeback: remove unused bdi_pending_list\n  aoe: Fix unitialized var usage\n  bio-integrity: Add explicit field for owner of bip_buf\n  block: Add an explicit bio flag for bios that own their bvec\n  block: Add bio_alloc_pages()\n  block: Convert some code to bio_for_each_segment_all()\n  block: Add bio_for_each_segment_all()\n  bounce: Refactor __blk_queue_bounce to not use bi_io_vec\n  raid1: use bio_copy_data()\n  pktcdvd: Use bio_reset() in disabled code to kill bi_idx usage\n  pktcdvd: use bio_copy_data()\n  block: Add bio_copy_data()\n  ...\n"
    },
    {
      "commit": "2a0b4be6dd655e24990da1d0811e28b9277f8b12",
      "tree": "ef6977d732ba71ce8dce6eaea47830423928839b",
      "parents": [
        "82d8da0d46ae7d3e9089efadb5e8d9841c20a431"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed May 08 00:01:07 2013 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed May 08 00:02:19 2013 -0400"
      },
      "message": "audit: fix message spacing printing auid\n\nThe helper function didn\u0027t include a leading space, so it was jammed\nagainst the previous text in the audit record.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5af43c24ca59a448c9312dd4a4a51d27ec3b9a73",
      "tree": "65288caabc91fc04242acace38789a6dd5b86ed4",
      "parents": [
        "9affd6becbfb2c3f0d04e554bb87234761b37aba",
        "a27bb332c04cec8c4afd7912df0dc7890db27560"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 20:49:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 20:49:51 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (incoming from Andrew)\n\nMerge more incoming from Andrew Morton:\n\n - Various fixes which were stalled or which I picked up recently\n\n - A large rotorooting of the AIO code.  Allegedly to improve\n   performance but I don\u0027t really have good performance numbers (I might\n   have lost the email) and I can\u0027t raise Kent today.  I held this out\n   of 3.9 and we could give it another cycle if it\u0027s all too late/scary.\n\nI ended up taking only the first two thirds of the AIO rotorooting.  I\nleft the percpu parts and the batch completion for later.  - Linus\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (33 commits)\n  aio: don\u0027t include aio.h in sched.h\n  aio: kill ki_retry\n  aio: kill ki_key\n  aio: give shared kioctx fields their own cachelines\n  aio: kill struct aio_ring_info\n  aio: kill batch allocation\n  aio: change reqs_active to include unreaped completions\n  aio: use cancellation list lazily\n  aio: use flush_dcache_page()\n  aio: make aio_read_evt() more efficient, convert to hrtimers\n  wait: add wait_event_hrtimeout()\n  aio: refcounting cleanup\n  aio: make aio_put_req() lockless\n  aio: do fget() after aio_get_req()\n  aio: dprintk() -\u003e pr_debug()\n  aio: move private stuff out of aio.h\n  aio: add kiocb_cancel()\n  aio: kill return value of aio_complete()\n  char: add aio_{read,write} to /dev/{null,zero}\n  aio: remove retry-based AIO\n  ...\n"
    },
    {
      "commit": "a27bb332c04cec8c4afd7912df0dc7890db27560",
      "tree": "86e6c41c2012f24c40ab455e2449d76346ae8956",
      "parents": [
        "41ef4eb8eef8d06bc1399e7b00c940d771554711"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Tue May 07 16:19:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 20:16:25 2013 -0700"
      },
      "message": "aio: don\u0027t include aio.h in sched.h\n\nFaster kernel compiles by way of fewer unnecessary includes.\n\n[akpm@linux-foundation.org: fix fallout]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: Felipe Balbi \u003cbalbi@ti.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nCc: Selvan Mani \u003csmani@micron.com\u003e\nCc: Sam Bradshaw \u003csbradshaw@micron.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nReviewed-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82d8da0d46ae7d3e9089efadb5e8d9841c20a431",
      "tree": "363caec82ec31d6d8d7f4559f265d2521322fcb0",
      "parents": [
        "33e2208acfc15ce00d3dd13e839bf6434faa2b04"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 07 21:24:02 2013 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 07 22:27:21 2013 -0400"
      },
      "message": "Revert \"audit: move kaudit thread start from auditd registration to kaudit init\"\n\nThis reverts commit 6ff5e45985c2fcb97947818f66d1eeaf9d6600b2.\n\nConflicts:\n\tkernel/audit.c\n\nThis patch was starting a kthread for all the time.  Since the follow on\npatches that required it didn\u0027t get finished in 3.10 time, we shouldn\u0027t\nship this change in 3.10.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "780a7654cee8d61819512385e778e4827db4bfbc",
      "tree": "a97ea8256b7507c976714f9e9c48d8dd581d07a6",
      "parents": [
        "b24a30a7305418ff138ff51776fc555ec57c011a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Apr 09 02:22:10 2013 -0700"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 07 22:27:15 2013 -0400"
      },
      "message": "audit: Make testing for a valid loginuid explicit.\n\naudit rule additions containing \"-F auid!\u003d4294967295\" were failing\nwith EINVAL because of a regression caused by e1760bd.\n\nApparently some userland audit rule sets want to know if loginuid uid\nhas been set and are using a test for auid !\u003d 4294967295 to determine\nthat.\n\nIn practice that is a horrible way to ask if a value has been set,\nbecause it relies on subtle implementation details and will break\nevery time the uid implementation in the kernel changes.\n\nSo add a clean way to test if the audit loginuid has been set, and\nsilently convert the old idiom to the cleaner and more comprehensible\nnew idiom.\n\nCc: \u003cstable@vger.kernel.org\u003e # 3.7\nReported-By: Richard Guy Briggs \u003crgb@redhat.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nTested-by: Richard Guy Briggs \u003crgb@redhat.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "52d857a8784a09576215c71cebf368d61c12a754",
      "tree": "5bb32d39139ae0a6fb4ebe38f4d20f79317d18e4",
      "parents": [
        "524eff183f51d080a83b348d0ea97c08b3607b9a"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon May 06 18:27:18 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue May 07 13:17:29 2013 +0200"
      },
      "message": "perf: Factor out auxiliary events notification\n\nAdd perf_event_aux() function to send out all types of\nauxiliary events - mmap, task, comm events. For each type\nthere\u0027s match and output functions defined and used as\ncallbacks during perf_event_aux processing.\n\nThis way we can centralize the pmu/context iterating and\nevent matching logic. Also since lot of the code was\nduplicated, this patch reduces the .text size about 2kB\non my setup:\n\n  snipped output from \u0027objdump -x kernel/events/core.o\u0027\n\n  before:\n  Idx Name          Size\n    0 .text         0000d313\n\n  after:\n  Idx Name          Size\n    0 .text         0000cad3\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nLink: http://lkml.kernel.org/r/1367857638-27631-3-git-send-email-jolsa@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "524eff183f51d080a83b348d0ea97c08b3607b9a",
      "tree": "f82d50daa9e5cc77152f78c08d25ba92cc7b32de",
      "parents": [
        "534c97b0950b1967bca1c753aeaed32f5db40264"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon May 06 18:27:17 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue May 07 13:17:28 2013 +0200"
      },
      "message": "perf: Fix EXIT event notification\n\nThe perf_event_task_ctx() function needs to be called with\npreemption disabled, since it\u0027s checking for currently\nscheduled cpu against event cpu.\n\nWe disable preemption for task related perf event context\nif there\u0027s one defined, leaving up to the chance which cpu\nit gets scheduled in.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nLink: http://lkml.kernel.org/r/1367857638-27631-2-git-send-email-jolsa@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5fe0c1f2f0dca3351536284b0180a79f341b7854",
      "tree": "20e7cc0ae006c8e21fb476d27eeed30771262706",
      "parents": [
        "f3d40c2532fee15a30d7a364ac365c21748a4a95"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon May 06 11:37:43 2013 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon May 06 11:37:43 2013 +1000"
      },
      "message": "irqdomain: Allow quiet failure mode\n\nSome interrupt controllers refuse to map interrupts marked as\n\"protected\" by firwmare. Since we try to map everyting in the\ndevice-tree on some platforms, we end up with a lot of nasty\nWARN\u0027s in the boot log for what is a normal situation on those\nmachines.\n\nThis defines a specific return code (-EPERM) from the host map()\ncallback which cause irqdomain to fail silently.\n\nMPIC is updated to return this when hitting a protected source\nprinting only a single line message for diagnostic purposes.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "534c97b0950b1967bca1c753aeaed32f5db40264",
      "tree": "9421d26e4f6d479d1bc32b036a731b065daab0fa",
      "parents": [
        "64049d1973c1735f543eb7a55653e291e108b0cb",
        "265f22a975c1e4cc3a4d1f94a3ec53ffbb6f5b9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 05 13:23:27 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 05 13:23:27 2013 -0700"
      },
      "message": "Merge branch \u0027timers-nohz-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull \u0027full dynticks\u0027 support from Ingo Molnar:\n \"This tree from Frederic Weisbecker adds a new, (exciting! :-) core\n  kernel feature to the timer and scheduler subsystems: \u0027full dynticks\u0027,\n  or CONFIG_NO_HZ_FULL\u003dy.\n\n  This feature extends the nohz variable-size timer tick feature from\n  idle to busy CPUs (running at most one task) as well, potentially\n  reducing the number of timer interrupts significantly.\n\n  This feature got motivated by real-time folks and the -rt tree, but\n  the general utility and motivation of full-dynticks runs wider than\n  that:\n\n   - HPC workloads get faster: CPUs running a single task should be able\n     to utilize a maximum amount of CPU power.  A periodic timer tick at\n     HZ\u003d1000 can cause a constant overhead of up to 1.0%.  This feature\n     removes that overhead - and speeds up the system by 0.5%-1.0% on\n     typical distro configs even on modern systems.\n\n   - Real-time workload latency reduction: CPUs running critical tasks\n     should experience as little jitter as possible.  The last remaining\n     source of kernel-related jitter was the periodic timer tick.\n\n   - A single task executing on a CPU is a pretty common situation,\n     especially with an increasing number of cores/CPUs, so this feature\n     helps desktop and mobile workloads as well.\n\n  The cost of the feature is mainly related to increased timer\n  reprogramming overhead when a CPU switches its tick period, and thus\n  slightly longer to-idle and from-idle latency.\n\n  Configuration-wise a third mode of operation is added to the existing\n  two NOHZ kconfig modes:\n\n   - CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named\n     as a config option.  This is the traditional Linux periodic tick\n     design: there\u0027s a HZ tick going on all the time, regardless of\n     whether a CPU is idle or not.\n\n   - CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ\u003dy], this turns off the\n     periodic tick when a CPU enters idle mode.\n\n   - CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the\n     tick when a CPU is idle, also slows the tick down to 1 Hz (one\n     timer interrupt per second) when only a single task is running on a\n     CPU.\n\n  The .config behavior is compatible: existing !CONFIG_NO_HZ and\n  CONFIG_NO_HZ\u003dy settings get translated to the new values, without the\n  user having to configure anything.  CONFIG_NO_HZ_FULL is turned off by\n  default.\n\n  This feature is based on a lot of infrastructure work that has been\n  steadily going upstream in the last 2-3 cycles: related RCU support\n  and non-periodic cputime support in particular is upstream already.\n\n  This tree adds the final pieces and activates the feature.  The pull\n  request is marked RFC because:\n\n   - it\u0027s marked 64-bit only at the moment - the 32-bit support patch is\n     small but did not get ready in time.\n\n   - it has a number of fresh commits that came in after the merge\n     window.  The overwhelming majority of commits are from before the\n     merge window, but still some aspects of the tree are fresh and so I\n     marked it RFC.\n\n   - it\u0027s a pretty wide-reaching feature with lots of effects - and\n     while the components have been in testing for some time, the full\n     combination is still not very widely used.  That it\u0027s default-off\n     should reduce its regression abilities and obviously there are no\n     known regressions with CONFIG_NO_HZ_FULL\u003dy enabled either.\n\n   - the feature is not completely idempotent: there is no 100%\n     equivalent replacement for a periodic scheduler/timer tick.  In\n     particular there\u0027s ongoing work to map out and reduce its effects\n     on scheduler load-balancing and statistics.  This should not impact\n     correctness though, there are no known regressions related to this\n     feature at this point.\n\n   - it\u0027s a pretty ambitious feature that with time will likely be\n     enabled by most Linux distros, and we\u0027d like you to make input on\n     its design/implementation, if you dislike some aspect we missed.\n     Without flaming us to crisp! :-)\n\n  Future plans:\n\n   - there\u0027s ongoing work to reduce 1Hz to 0Hz, to essentially shut off\n     the periodic tick altogether when there\u0027s a single busy task on a\n     CPU.  We\u0027d first like 1 Hz to be exposed more widely before we go\n     for the 0 Hz target though.\n\n   - once we reach 0 Hz we can remove the periodic tick assumption from\n     nr_running\u003e\u003d2 as well, by essentially interrupting busy tasks only\n     as frequently as the sched_latency constraints require us to do -\n     once every 4-40 msecs, depending on nr_running.\n\n  I am personally leaning towards biting the bullet and doing this in\n  v3.10, like the -rt tree this effort has been going on for too long -\n  but the final word is up to you as usual.\n\n  More technical details can be found in Documentation/timers/NO_HZ.txt\"\n\n* \u0027timers-nohz-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)\n  sched: Keep at least 1 tick per second for active dynticks tasks\n  rcu: Fix full dynticks\u0027 dependency on wide RCU nocb mode\n  nohz: Protect smp_processor_id() in tick_nohz_task_switch()\n  nohz_full: Add documentation.\n  cputime_nsecs: use math64.h for nsec resolution conversion helpers\n  nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config\n  nohz: Reduce overhead under high-freq idling patterns\n  nohz: Remove full dynticks\u0027 superfluous dependency on RCU tree\n  nohz: Fix unavailable tick_stop tracepoint in dynticks idle\n  nohz: Add basic tracing\n  nohz: Select wide RCU nocb for full dynticks\n  nohz: Disable the tick when irq resume in full dynticks CPU\n  nohz: Re-evaluate the tick for the new task after a context switch\n  nohz: Prepare to stop the tick on irq exit\n  nohz: Implement full dynticks kick\n  nohz: Re-evaluate the tick from the scheduler IPI\n  sched: New helper to prevent from stopping the tick in full dynticks\n  sched: Kick full dynticks CPU that have more than one task enqueued.\n  perf: New helper to prevent full dynticks CPUs from stopping tick\n  perf: Kick full dynticks CPU if events rotation is needed\n  ...\n"
    },
    {
      "commit": "64049d1973c1735f543eb7a55653e291e108b0cb",
      "tree": "1b13645ee288a561feccafd9fa84951220f5f651",
      "parents": [
        "f8ce1faf55955de62e0a12e330c6d9a526071f65",
        "7cc23cd6c0c7d7f4bee057607e7ce01568925717"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 05 11:37:16 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 05 11:37:16 2013 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"Misc fixes plus a small hw-enablement patch for Intel IB model 58\n  uncore events\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL\n  perf/x86/intel/lbr: Fix LBR filter\n  perf/x86: Blacklist all MEM_*_RETIRED events for Ivy Bridge\n  perf: Fix vmalloc ring buffer pages handling\n  perf/x86/intel: Fix unintended variable name reuse\n  perf/x86/intel: Add support for IvyBridge model 58 Uncore\n  perf/x86/intel: Fix typo in perf_event_intel_uncore.c\n  x86: Eliminate irq_mis_count counted in arch_irq_stat\n"
    }
  ],
  "next": "f8ce1faf55955de62e0a12e330c6d9a526071f65"
}
