)]}'
{
  "log": [
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e9c3be20d88aa5ed13fde4ece50f45eb96824ad",
      "tree": "4fd38508531c20ad7595157996395f079a580011",
      "parents": [
        "d228d9ec2c9a119ce15c6446ebeec05786ab3287"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:19 2013 -0800"
      },
      "message": "events: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8f55cea410dbc56114bb71a3742032070c8108d0",
      "tree": "59605f0ee961274b22f91add33f5c32459471a83",
      "parents": [
        "b7133a9a103655cda254987a3c0975fd9d8c443f",
        "e259514eef764a5286873618e34c560ecb6cff13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 17:49:41 2013 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf changes from Ingo Molnar:\n \"There are lots of improvements, the biggest changes are:\n\n  Main kernel side changes:\n\n   - Improve uprobes performance by adding \u0027pre-filtering\u0027 support, by\n     Oleg Nesterov.\n\n   - Make some POWER7 events available in sysfs, equivalent to what was\n     done on x86, from Sukadev Bhattiprolu.\n\n   - tracing updates by Steve Rostedt - mostly misc fixes and smaller\n     improvements.\n\n   - Use perf/event tracing to report PCI Express advanced errors, by\n     Tony Luck.\n\n   - Enable northbridge performance counters on AMD family 15h, by Jacob\n     Shin.\n\n   - This tracing commit:\n\n        tracing: Remove the extra 4 bytes of padding in events\n\n     changes the ABI.  All involved parties (PowerTop in particular)\n     seem to agree that it\u0027s safe to do now with the introduction of\n     libtraceevent, but the devil is in the details ...\n\n  Main tooling side changes:\n\n   - Add \u0027event group view\u0027, from Namyung Kim:\n\n     To use it, \u0027perf record\u0027 should group events when recording.  And\n     then perf report parses the saved group relation from file header\n     and prints them together if --group option is provided.  You can\n     use the \u0027perf evlist\u0027 command to see event group information:\n\n        $ perf record -e \u0027{ref-cycles,cycles}\u0027 noploop 1\n        [ perf record: Woken up 2 times to write data ]\n        [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ]\n\n        $ perf evlist --group\n        {ref-cycles,cycles}\n\n     With this example, default perf report will show you each event\n     separately.\n\n     You can use --group option to enable event group view:\n\n        $ perf report --group\n        ...\n        # group: {ref-cycles,cycles}\n        # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n        # Samples: 7K of event \u0027anon group { ref-cycles, cycles }\u0027\n        # Event count (approx.): 6876107743\n        #\n        #         Overhead  Command      Shared Object                      Symbol\n        # ................  .......  .................  ..........................\n            99.84%  99.76%  noploop  noploop            [.] main\n             0.07%   0.00%  noploop  ld-2.15.so         [.] strcmp\n             0.03%   0.00%  noploop  [kernel.kallsyms]  [k] timerqueue_del\n             0.03%   0.03%  noploop  [kernel.kallsyms]  [k] sched_clock_cpu\n             0.02%   0.00%  noploop  [kernel.kallsyms]  [k] account_user_time\n             0.01%   0.00%  noploop  [kernel.kallsyms]  [k] __alloc_pages_nodemask\n             0.00%   0.00%  noploop  [kernel.kallsyms]  [k] native_write_msr_safe\n             0.00%   0.11%  noploop  [kernel.kallsyms]  [k] _raw_spin_lock\n             0.00%   0.06%  noploop  [kernel.kallsyms]  [k] find_get_page\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] rcu_check_callbacks\n             0.00%   0.02%  noploop  [kernel.kallsyms]  [k] __current_kernel_time\n\n     As you can see the Overhead column now contains both of ref-cycles\n     and cycles and header line shows group information also - \u0027anon\n     group { ref-cycles, cycles }\u0027.  The output is sorted by period of\n     group leader first.\n\n   - Initial GTK+ annotate browser, from Namhyung Kim.\n\n   - Add option for runtime switching perf data file in perf report,\n     just press \u0027s\u0027 and a menu with the valid files found in the current\n     directory will be presented, from Feng Tang.\n\n   - Add support to display whole group data for raw columns, from Jiri\n     Olsa.\n\n   - Add per processor socket count aggregation in perf stat, from\n     Stephane Eranian.\n\n   - Add interval printing in \u0027perf stat\u0027, from Stephane Eranian.\n\n   - \u0027perf test\u0027 improvements\n\n   - Add support for wildcards in tracepoint system name, from Jiri\n     Olsa.\n\n   - Add anonymous huge page recognition, from Joshua Zhu.\n\n   - perf build-id cache now can show DSOs present in a perf.data file\n     that are not in the cache, to integrate with build-id servers being\n     put in place by organizations such as Fedora.\n\n   - perf top now shares more of the evsel config/creation routines with\n     \u0027record\u0027, paving the way for further integration like \u0027top\u0027\n     snapshots, etc.\n\n   - perf top now supports DWARF callchains.\n\n   - Fix mmap limitations on 32-bit, fix from David Miller.\n\n   - \u0027perf bench numa mem\u0027 NUMA performance measurement suite\n\n   - ... and lots of fixes, performance improvements, cleanups and other\n     improvements I failed to list - see the shortlog and git log for\n     details.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (270 commits)\n  perf/x86/amd: Enable northbridge performance counters on AMD family 15h\n  perf/hwbp: Fix cleanup in case of kzalloc failure\n  perf tools: Fix build with bison 2.3 and older.\n  perf tools: Limit unwind support to x86 archs\n  perf annotate: Make it to be able to skip unannotatable symbols\n  perf gtk/annotate: Fail early if it can\u0027t annotate\n  perf gtk/annotate: Show source lines with gray color\n  perf gtk/annotate: Support multiple event annotation\n  perf ui/gtk: Implement basic GTK2 annotation browser\n  perf annotate: Fix warning message on a missing vmlinux\n  perf buildid-cache: Add --update option\n  uprobes/perf: Avoid uprobe_apply() whenever possible\n  uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE\n  uprobes/perf: Teach trace_uprobe/perf code to pre-filter\n  uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event\u0027s\n  uprobes: Introduce uprobe_apply()\n  perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n  uprobes/perf: Always increment trace_uprobe-\u003enhit\n  uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe\n  uprobes/tracing: Introduce is_trace_uprobe_enabled()\n  ...\n"
    },
    {
      "commit": "02e176af92f3e2e9ec3a48792036566af2dcd534",
      "tree": "9d4dd00367eeb909edf4c1a30e2e8178efb9dc5a",
      "parents": [
        "85df3b3769222894e9692b383c7af124b7721086"
      ],
      "author": {
        "name": "Daniel Baluta",
        "email": "dbaluta@ixiacom.com",
        "time": "Wed Feb 06 23:29:20 2013 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 14 17:06:39 2013 -0300"
      },
      "message": "perf/hwbp: Fix cleanup in case of kzalloc failure\n\nObviously this is a typo and could result in memory leaks if kzalloc\nfails on a given cpu.\n\nSigned-off-by: Daniel Baluta \u003cdbaluta@ixiacom.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1360186160-7566-1-git-send-email-dbaluta@ixiacom.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "bdf8647c44766590ed02f9a84a450a796558b753",
      "tree": "fb3510335d4c1ce67e109df2f80eb26c67d8b589",
      "parents": [
        "f22c1bb6b4706be3502b378cb14564449b15f983"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Feb 03 19:21:12 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:04 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe_apply()\n\nCurrently it is not possible to change the filtering constraints after\nuprobe_register(), so a consumer can not, say, start to trace a task/mm\nwhich was previously filtered out, or remove the no longer needed bp\u0027s.\n\nIntroduce uprobe_apply() which simply does register_for_each_vma() again\nto consult uprobe_consumer-\u003efilter() and install/remove the breakpoints.\nThe only complication is that register_for_each_vma() can no longer\nassume that uprobe-\u003econsumers should be consulter if is_register \u003d\u003d T,\nso we change it to accept \"struct uprobe_consumer *new\" instead.\n\nUnlike uprobe_register(), uprobe_apply(true) doesn\u0027t do \"unregister\" if\nregister_for_each_vma() fails, it is up to caller to handle the error.\n\nNote: we probably need to cleanup the current interface, it is strange\nthat uprobe_apply/unregister need inode/offset. We should either change\nuprobe_register() to return \"struct uprobe *\", or add a private -\u003euprobe\nmember in uprobe_consumer. And in the long term uprobe_apply() should\ntake a single argument, uprobe or consumer, even \"bool add\" should go\naway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "f22c1bb6b4706be3502b378cb14564449b15f983",
      "tree": "ac7d09e3d42f4ab77cac56b9cb7fba2d4bcabf06",
      "parents": [
        "1b47aefd9b6bd439a4be43c47acd22987ac22db8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Feb 02 16:27:52 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 18:28:02 2013 +0100"
      },
      "message": "perf: Introduce hw_perf_event-\u003etp_target and -\u003etp_list\n\nsys_perf_event_open()-\u003eperf_init_event(event) is called before\nfind_get_context(event), this means that event-\u003ectx \u003d\u003d NULL when\nclass-\u003ereg(TRACE_REG_PERF_REGISTER/OPEN) is called and thus it\ncan\u0027t know if this event is per-task or system-wide.\n\nThis patch adds hw_perf_event-\u003etp_target for PERF_TYPE_TRACEPOINT,\nthis is analogous to PERF_TYPE_BREAKPOINT/bp_target we already have.\nThe patch also moves -\u003ebp_target up so that it can overlap with the\nnew member, this can help the compiler to generate the better code.\n\ntrace_uprobe_register() will use it for prefiltering to avoid the\nunnecessary breakpoints in mm\u0027s we do not want to trace.\n\n-\u003etp_target doesn\u0027t have its own reference, but we can rely on the\nfact that either sys_perf_event_open() holds a reference, or it is\nequal to event-\u003ectx-\u003etask. So this pointer is always valid until\nfree_event().\n\nAlso add the \"struct list_head tp_list\" into this union. It is not\nstrictly necessary, but it can simplify the next changes and we can\nadd it for free.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "e8440c1458ba571bc3fac8a6beb53ff604199f5b",
      "tree": "59abbd23435cd341250a028b4fa06826b7133fbe",
      "parents": [
        "af4355e91f15812df8608925738c91be57c580dd"
      ],
      "author": {
        "name": "Josh Stone",
        "email": "jistone@redhat.com",
        "time": "Sun Jan 13 19:03:34 2013 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:13 2013 +0100"
      },
      "message": "uprobes: Add exports for module use\n\nThe original pull message for uprobes (commit 654443e2) noted:\n\n  This tree includes uprobes support in \u0027perf probe\u0027 - but SystemTap\n  (and other tools) can take advantage of user probe points as well.\n\nIn order to actually be usable in module-based tools like SystemTap, the\ninterface needs to be exported.  This patch first adds the obvious\nexports for uprobe_register and uprobe_unregister.  Then it also adds\none for task_user_regset_view, which is necessary to get the correct\nstate of userspace registers.\n\nSigned-off-by: Josh Stone \u003cjistone@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "af4355e91f15812df8608925738c91be57c580dd",
      "tree": "d50a8fb2a2240f00e8d72a804de237552d7f1b36",
      "parents": [
        "608e7427c0a06de0d70374a9fd7defc8eb228b7e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:37:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:13 2013 +0100"
      },
      "message": "uprobes: Kill the bogus IS_ERR_VALUE(xol_vaddr) check\n\nutask-\u003exol_vaddr is either zero or valid, remove the bogus\nIS_ERR_VALUE() check in xol_free_insn_slot().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "608e7427c0a06de0d70374a9fd7defc8eb228b7e",
      "tree": "fa9d008fc34cd270613b63bbd9fd724c563daa44",
      "parents": [
        "aba51024e7159c93914557caaa2b8cda26331091"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:20:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Do not allocate current-\u003eutask unnecessary\n\nhandle_swbp() does get_utask() before can_skip_sstep() for no reason,\nwe do not need -\u003eutask if can_skip_sstep() succeeds.\n\nMove get_utask() to pre_ssout() who actually starts to use it. Move\nthe initialization of utask-\u003eactive_uprobe/state as well. This way\nthe whole initialization is consolidated in pre_ssout().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\n"
    },
    {
      "commit": "aba51024e7159c93914557caaa2b8cda26331091",
      "tree": "9883f94fdefa1347040be590b336e809ba6d3300",
      "parents": [
        "a6cb3f6d51253e9cf21a38b17c025018117809d7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:12:48 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Fix utask-\u003exol_vaddr leak in pre_ssout()\n\npre_ssout() should do xol_free_insn_slot() if arch_uprobe_pre_xol()\nfails, otherwise nobody will free the allocated slot.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a6cb3f6d51253e9cf21a38b17c025018117809d7",
      "tree": "f0ffafefd93cb97f550b0149b14e56a68c778576",
      "parents": [
        "5a2df662aafdabffb2cf3adb780a5adf66dfb3bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 18:00:06 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Do not play with utask in xol_get_insn_slot()\n\npre_ssout()-\u003exol_get_insn_slot() path is confusing and buggy. This patch\ncleanups the code, the next one fixes the bug.\n\nChange xol_get_insn_slot() to only allocate the slot and do nothing more,\nmove the initialization of utask-\u003exol_vaddr/vaddr into pre_ssout().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5a2df662aafdabffb2cf3adb780a5adf66dfb3bc",
      "tree": "758f73ec4d1a89c1e7ab416503732c59fd7839ee",
      "parents": [
        "9b545df809644912552360054c7bbe8b8a9e01fa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 17:03:32 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:12 2013 +0100"
      },
      "message": "uprobes: Turn add_utask() into get_utask()\n\nRename add_utask() into get_utask() and change it to allocate on\ndemand to simplify the caller. Like get_xol_area() it will have\nmore users.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9b545df809644912552360054c7bbe8b8a9e01fa",
      "tree": "ca558fdf71d30ec0bc5ef2f821b06b45b13ff5b0",
      "parents": [
        "c8a82538001e1a68f4a319d5a75de90d1f284731"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 31 16:39:49 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Fold xol_alloc_area() into get_xol_area()\n\nCurrently only xol_get_insn_slot() does get_xol_area() + xol_alloc_area(),\nbut this will have more users and we do not want to copy-and-paste this\ncode. This patch simply moves xol_alloc_area() into get_xol_area() to\nsimplify the current and future code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c8a82538001e1a68f4a319d5a75de90d1f284731",
      "tree": "8f6ad569a44b3fb9179442fd6b9d07d42ec28229",
      "parents": [
        "74e59dfc6b19e3472a7c16ad57bc831e6e647895"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Dec 30 17:40:39 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Move alloc_page() from xol_add_vma() to xol_alloc_area()\n\nMove alloc_page() from xol_add_vma() to xol_alloc_area() to cleanup\nthe code. This separates the memory allocations and consolidates the\n-EALREADY cleanups and the error handling.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "74e59dfc6b19e3472a7c16ad57bc831e6e647895",
      "tree": "5047f177b6c604f83d4b9f62614acf93a08d34bd",
      "parents": [
        "cf31ec3f7fece93f3fce3ee5964e27857141ea47"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Dec 30 15:54:08 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Change handle_swbp() to expose bp_vaddr to handler_chain()\n\nChange handle_swbp() to set regs-\u003eip \u003d bp_vaddr in advance, this is\nwhat consumer-\u003ehandler() needs but uprobe_get_swbp_addr() is not\nexported.\n\nThis also simplifies the code and makes it more consistent across\nthe supported architectures. handle_swbp() becomes the only caller\nof uprobe_get_swbp_addr().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\n"
    },
    {
      "commit": "da1816b1caeccdff04531e763bb35d7caa3ed19f",
      "tree": "bbf3b1eda3f969a5115770f0aa1081feafd871cb",
      "parents": [
        "8a7f2fa0dea3b019500961b86d765e6fdd4bffb2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Dec 29 17:49:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:11 2013 +0100"
      },
      "message": "uprobes: Teach handler_chain() to filter out the probed task\n\nCurrrently the are 2 problems with pre-filtering:\n\n1. It is not possible to add/remove a task (mm) after uprobe_register()\n\n2. A forked child inherits all breakpoints and uprobe_consumer can not\n   control this.\n\nThis patch does the first step to improve the filtering. handler_chain()\nremoves the breakpoints installed by this uprobe from current-\u003emm if all\nhandlers return UPROBE_HANDLER_REMOVE.\n\nNote that handler_chain() relies on -\u003eregister_rwsem to avoid the race\nwith uprobe_register/unregister which can add/del a consumer, or even\nremove and then insert the new uprobe at the same address.\n\nPerhaps we will add uprobe_apply_mm(uprobe, mm, is_register) and teach\ncopy_mm() to do filter(UPROBE_FILTER_FORK), but I think this change makes\nsense anyway.\n\nNote: instead of checking the retcode from uc-\u003ehandler, we could add\nuc-\u003efilter(UPROBE_FILTER_BPHIT). But I think this is not optimal to\ncall 2 hooks in a row. This buys nothing, and if handler/filter do\nsomething nontrivial they will probably do the same work twice.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8a7f2fa0dea3b019500961b86d765e6fdd4bffb2",
      "tree": "c6c467e02da75a9e92f8541cf8889dbd0e2fe5fb",
      "parents": [
        "806a98bdf2a862fef0fc880399d677b35ba525ff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Dec 28 17:58:38 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Reintroduce uprobe_consumer-\u003efilter()\n\nFinally add uprobe_consumer-\u003efilter() and change consumer_filter()\nto actually call this method.\n\nNote that -\u003efilter() accepts mm_struct, not task_struct. Because:\n\n\t1. We do not have for_each_mm_user(mm, task).\n\n\t2. Even if we implement for_each_mm_user(), -\u003efilter() can\n\t   use it itself.\n\n\t3. It is not clear who will actually need this interface to\n\t   do the \"nontrivial\" filtering.\n\nAnother argument is \"enum uprobe_filter_ctx\", consumer-\u003efilter() can\nuse it to figure out why/where it was called. For example, perhaps\nwe can add UPROBE_FILTER_PRE_REGISTER used by build_map_info() to\nquickly \"nack\" the unwanted mm\u0027s. In this case consumer should know\nthat it is called under -\u003ei_mmap_mutex.\n\nSee the previous discussion at http://marc.info/?t\u003d135214229700002\nPerhaps we should pass more arguments, vma/vaddr?\n\nNote: this patch obviously can\u0027t help to filter out the child created\nby fork(), this will be addressed later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "806a98bdf2a862fef0fc880399d677b35ba525ff",
      "tree": "5b322a48c4d22d15e8d1a6c8a6a7e28d77ce62a7",
      "parents": [
        "66d06dffa5ef6f3544997440af63a91ef36a2171"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Dec 27 18:21:11 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Rationalize the usage of filter_chain()\n\nfilter_chain() was added into install_breakpoint/remove_breakpoint to\nsimplify the initial changes but this is sub-optimal.\n\nThis patch shifts the callsite to the callers, register_for_each_vma()\nand uprobe_mmap(). This way:\n\n- It will be easier to add the new arguments. This is the main reason,\n  we can do more optimizations later.\n\n- register_for_each_vma(is_register \u003d\u003e true) can be optimized, we only\n  need to consult the new consumer. The previous consumers were already\n  asked when they called uprobe_register().\n\nThis patch also moves the MMF_HAS_UPROBES check from remove_breakpoint(),\nthis allows to avoid the potentionally costly filter_chain(). Note that\nregister_for_each_vma(is_register \u003d\u003e false) doesn\u0027t really need to take\n-\u003econsumer_rwsem, but I don\u0027t think it makes sense to optimize this and\nintroduce filter_chain_lockless().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "66d06dffa5ef6f3544997440af63a91ef36a2171",
      "tree": "a95c81e492b5c714caa7f24f48fdb20fe0a33024",
      "parents": [
        "06b7bcd8cbd7eb1af331e437ec3d8f5182ae1b7e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 22:48:37 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:10 2013 +0100"
      },
      "message": "uprobes: Kill uprobes_mutex[], separate alloc_uprobe() and __uprobe_register()\n\nuprobe_register() and uprobe_unregister() are the only users of\nmutex_lock(uprobes_hash(inode)), and the only reason why we can\u0027t\nsimply remove it is that we need to ensure that delete_uprobe() is\nnot possible after alloc_uprobe() and before consumer_add().\n\nIOW, we need to ensure that when we take uprobe-\u003eregister_rwsem\nthis uprobe is still valid and we didn\u0027t race with _unregister()\nwhich called delete_uprobe() in between.\n\nWith this patch uprobe_register() simply checks uprobe_is_active()\nand retries if it hits this very unlikely race. uprobes_mutex[] is\nno longer needed and can be removed.\n\nThere is another reason for this change, prepare_uprobe() should be\nfolded into alloc_uprobe() and we do not want to hold the extra locks\naround read_mapping_page/etc.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "06b7bcd8cbd7eb1af331e437ec3d8f5182ae1b7e",
      "tree": "ad2fc6a39d2c5ecfa45f4cd13fd0140839894b52",
      "parents": [
        "441f1eb7db8babe2b6b4bc805f023739dbb70e33"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 22:01:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:09 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe_is_active()\n\nThe lifetime of uprobe-\u003erb_node and uprobe-\u003einode is not refcounted,\ndelete_uprobe() is called when we detect that uprobe has no consumers,\nand it would be deadly wrong to do this twice.\n\nChange delete_uprobe() to WARN() if it was already called. We use\nRB_CLEAR_NODE() to mark uprobe \"inactive\", then RB_EMPTY_NODE() can\nbe used to detect this case.\n\nRB_EMPTY_NODE() is not used directly, we add the trivial helper for\nthe next change.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "441f1eb7db8babe2b6b4bc805f023739dbb70e33",
      "tree": "4c57b4553ce1b325c677d3e7204a2444fe577a99",
      "parents": [
        "d4d3ccc6d1eb74bd315d49a3829c5ad6c48d21b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Nov 25 19:54:29 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:08 2013 +0100"
      },
      "message": "uprobes: Kill uprobe_events, use RB_EMPTY_ROOT() instead\n\nuprobe_events counts the number of uprobes in uprobes_tree but\nit is used as a boolean. We can use RB_EMPTY_ROOT() instead.\n\nProbably no_uprobe_events() added by this patch can have more\ncallers, say, mmf_recalc_uprobes().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Anton Arapov \u003canton@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d4d3ccc6d1eb74bd315d49a3829c5ad6c48d21b0",
      "tree": "e8ccc45b9b9f8c72aaea150bf93d4d56cf9dc8d4",
      "parents": [
        "bb929284be40cbbdb347690742557d708fd504a9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:51:34 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:08 2013 +0100"
      },
      "message": "uprobes: Kill uprobe-\u003ecopy_mutex\n\nNow that -\u003eregister_rwsem is safe under -\u003emmap_sem we can kill\n-\u003ecopy_mutex and abuse down_write(\u0026uprobe-\u003econsumer_rwsem).\n\nThis makes prepare_uprobe() even more ugly, but we should kill\nit anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bb929284be40cbbdb347690742557d708fd504a9",
      "tree": "6f86aba2f415508fdccb88804bc03bdae3a0e160",
      "parents": [
        "1ff6fee5e62c57d5923b805bb4206acb7953f16e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:27:08 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:06 2013 +0100"
      },
      "message": "uprobes: Kill UPROBE_RUN_HANDLER flag\n\nSimply remove UPROBE_RUN_HANDLER and the corresponding code.\n\nIt can only help if uprobe has a single consumer, and in fact\nit is no longer needed after handler_chain() was changed to use\n-\u003eregister_rwsem, we simply can not race with uprobe_register().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1ff6fee5e62c57d5923b805bb4206acb7953f16e",
      "tree": "1b573238a506824e34d19b7ae5cba604d00f7b5c",
      "parents": [
        "e591c8d78e49e6206935cf31c4d2b603bbb29166"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 18:15:46 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:05 2013 +0100"
      },
      "message": "uprobes: Change filter_chain() to iterate -\u003econsumers list\n\nNow that it safe to use -\u003econsumer_rwsem under -\u003emmap_sem we can\nalmost finish the implementation of filter_chain(). It still lacks\nthe actual uc-\u003efilter(...) call but othewrwise it is ready, just\nit pretends that -\u003efilter() always returns true.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e591c8d78e49e6206935cf31c4d2b603bbb29166",
      "tree": "fd454634604829933828e06849550dfbcfc37542",
      "parents": [
        "9a98e03cc145c994da824dac7602334f50feb670"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 24 17:29:40 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: Introduce uprobe-\u003eregister_rwsem\n\nIntroduce uprobe-\u003eregister_rwsem. It is taken for writing around\n__uprobe_register/unregister.\n\nChange handler_chain() to use this sem rather than consumer_rwsem.\n\nThe main reason for this change is that we have the nasty problem\nwith mmap_sem/consumer_rwsem dependency. filter_chain() needs to\nprotect uprobe-\u003econsumers like handler_chain(), but they can not\nuse the same lock. filter_chain() can be called under -\u003emmap_sem\n(currently this is always true), but we want to allow -\u003ehandler()\nto play with the probed task\u0027s memory, and this needs -\u003emmap_sem.\n\nAlternatively we could use srcu, but synchronize_srcu() is very\nslow and -\u003eregister_rwsem allows us to do more. In particular, we\ncan teach handler_chain() to do remove_breakpoint() if this bp is\n\"nacked\" by all consumers, we know that we can\u0027t race with the\nnew consumer which does uprobe_register().\n\nSee also the next patches. uprobes_mutex[] is almost ready to die.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a98e03cc145c994da824dac7602334f50feb670",
      "tree": "66ab8762b473ea81531aa17395e9678beae22f61",
      "parents": [
        "04aab9b2006bbdeff78dc162f206fdfebeca97d9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 23 20:15:17 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: _register() should always do register_for_each_vma(true)\n\nTo support the filtering uprobe_register() should do\nregister_for_each_vma(true) every time the new consumer comes,\nwe need to install the previously nacked breakpoints.\n\nNote:\n\t- uprobes_mutex[] should die, what it actually protects is\n\t  alloc_uprobe().\n\n\t- UPROBE_RUN_HANDLER should die too, obviously it can\u0027t work\n\t  unless uprobe has a single consumer. The consumer should\n\t  serialize with _register/_unregister itself. Or this flag\n\t  should live in uprobe_consumer-\u003estate.\n\n\t- Perhaps we can do some optimizations later. For example, if\n\t  filter_chain() never returns false uprobe can record this\n\t  fact and avoid the unnecessary register_for_each_vma().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "04aab9b2006bbdeff78dc162f206fdfebeca97d9",
      "tree": "380a170734c6d850077e56848df0528f410247be",
      "parents": [
        "63633cbf82840d972248f11d2122b261d0d4779a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 23 19:43:50 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:03 2013 +0100"
      },
      "message": "uprobes: _unregister() should always do register_for_each_vma(false)\n\nuprobe_unregister() removes the breakpoints only if the last consumer\ngoes away. To support the filtering it should do this every time, we\nwant to remove the breakpoints which nobody else want to keep.\n\nNote: given that filter_chain() is not actually implemented, this patch\nitself doesn\u0027t change the behaviour yet, register_for_each_vma(false)\nis a heavy \"nop\" unless there are no more consumers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "63633cbf82840d972248f11d2122b261d0d4779a",
      "tree": "e596a5f686ed4ac79ab95455622648bc0321a406",
      "parents": [
        "fe20d71f25400cccc8bffef865f79250be7dbc81"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Nov 22 18:30:15 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:02 2013 +0100"
      },
      "message": "uprobes: Introduce filter_chain()\n\nAdd the new helper filter_chain(). Currently it is only placeholder,\nthe comment explains what is should do. We will change it later to\nconsult every consumer to decide whether we need to install the swbp.\nUntil then it works as if any consumer returns true, this matches the\ncurrent behavior.\n\nChange install_breakpoint() to call filter_chain() instead of checking\nuprobe-\u003econsumers !\u003d NULL. We obviously need this, and this equally\ncloses the race with _unregister().\n\nChange remove_breakpoint() to call this helper too. Currently this is\npointless because remove_breakpoint() is only called when the last\nconsumer goes away, but we will change this.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fe20d71f25400cccc8bffef865f79250be7dbc81",
      "tree": "97b5f757780ebf67359867c9493c4860b0cb4477",
      "parents": [
        "f0744af7d0fde190674064c54e2ff60b34ac71fe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 17:32:30 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:02 2013 +0100"
      },
      "message": "uprobes: Kill uprobe_consumer-\u003efilter()\n\nuprobe_consumer-\u003efilter() is pointless in its current form, kill it.\n\nWe will add it back, but with the different signature/semantics. Perhaps\nwe will even re-introduce the callsite in handler_chain(), but not to\njust skip uc-\u003ehandler().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f0744af7d0fde190674064c54e2ff60b34ac71fe",
      "tree": "1fbe365e02f6d11c1a8837689578ef9b0874f0fa",
      "parents": [
        "bbc33d05930f870ea049eae5ed980f8b827d0813"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 18:01:43 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:47:01 2013 +0100"
      },
      "message": "uprobes: Kill the pointless inode/uc checks in register/unregister\n\nregister/unregister verifies that inode/uc !\u003d NULL. For what?\nThis really looks like \"hide the potential problem\", the caller\nshould pass the valid data.\n\nregister() also checks uc-\u003enext \u003d\u003d NULL, probably to prevent the\ndouble-register but the caller can do other stupid/wrong things.\nIf we do this check, then we should document that uc-\u003enext should\nbe cleared before register() and add BUG_ON().\n\nAlso add the small comment about the i_size_read() check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bbc33d05930f870ea049eae5ed980f8b827d0813",
      "tree": "d954de9e4f6319bb3774721698144f3639e95dbf",
      "parents": [
        "661e591525ffbb0439270bf2a4d165c04f87543d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 21 16:55:38 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 08 17:46:59 2013 +0100"
      },
      "message": "uprobes: Move __set_bit(UPROBE_SKIP_SSTEP) into alloc_uprobe()\n\nCosmetic. __set_bit(UPROBE_SKIP_SSTEP) is the part of initialization,\nit is not clear why it is set in insert_uprobe().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0231bb5336758426b44ccd798ccd3c5419c95d58",
      "tree": "a2b584263ace5acfda61830fb57591d49fdad34c",
      "parents": [
        "923d8697e24847000490c187de1aeaca622611a3"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Fri Feb 01 11:23:45 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 12:01:29 2013 +0100"
      },
      "message": "perf: Fix event group context move\n\nWhen we have group with mixed events (hw/sw) we want to end up\nwith group leader being in hw context. So if group leader is\ninitialy sw event, we move all the events under hw context.\n\nThe move is done for each event by removing it from its context\nand adding it back into proper one. As a part of the removal the\nevent is automatically disabled, which is not what we want at\nthis stage of creating groups.\n\nThe fix is to initialize event state after removal from sw\ncontext.\n\nThis fix resulted from the following discussion:\n\n  http://thread.gmane.org/gmane.linux.kernel.perf.user/1144\n\nReported-by: Andreas Hollmann \u003chollmann@in.tum.de\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\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: Vince Weaver \u003cvince@deater.net\u003e\nLink: http://lkml.kernel.org/r/1359714225-4231-1-git-send-email-jolsa@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c91368c4889a0ee5dd06552adbb50ae54f5096fd",
      "tree": "dc3240ba5b9dbef8256116b90e4ff6276d474034",
      "parents": [
        "50ca19aed8ad2e264ef6bce6d6d5cb7f8bfae8c9"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Thu Dec 20 14:11:30 2012 -0500"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Jan 24 16:40:15 2013 -0300"
      },
      "message": "uprobes: remove redundant check\n\nWe checked for uprobe\u003d\u003dNULL earlier, no need to redo that.\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1356030701-16284-22-git-send-email-sasha.levin@oracle.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "6a2b60b17b3e48a418695a94bd2420f6ab32e519",
      "tree": "54b7792fa68b8890f710fa6398b6ba8626a039a8",
      "parents": [
        "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
        "98f842e675f96ffac96e6c50315790912b2812be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"While small this set of changes is very significant with respect to\n  containers in general and user namespaces in particular.  The user\n  space interface is now complete.\n\n  This set of changes adds support for unprivileged users to create user\n  namespaces and as a user namespace root to create other namespaces.\n  The tyranny of supporting suid root preventing unprivileged users from\n  using cool new kernel features is broken.\n\n  This set of changes completes the work on setns, adding support for\n  the pid, user, mount namespaces.\n\n  This set of changes includes a bunch of basic pid namespace\n  cleanups/simplifications.  Of particular significance is the rework of\n  the pid namespace cleanup so it no longer requires sending out\n  tendrils into all kinds of unexpected cleanup paths for operation.  At\n  least one case of broken error handling is fixed by this cleanup.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been converted from regular files\n  to magic symlinks which prevents incorrect caching by the VFS,\n  ensuring the files always refer to the namespace the process is\n  currently using and ensuring that the ptrace_mayaccess permission\n  checks are always applied.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been given stable inode numbers\n  so it is now possible to see if different processes share the same\n  namespaces.\n\n  Through the David Miller\u0027s net tree are changes to relax many of the\n  permission checks in the networking stack to allowing the user\n  namespace root to usefully use the networking stack.  Similar changes\n  for the mount namespace and the pid namespace are coming through my\n  tree.\n\n  Two small changes to add user namespace support were commited here adn\n  in David Miller\u0027s -net tree so that I could complete the work on the\n  /proc/\u003cpid\u003e/ns/ files in this tree.\n\n  Work remains to make it safe to build user namespaces and 9p, afs,\n  ceph, cifs, coda, gfs2, ncpfs, nfs, nfsd, ocfs2, and xfs so the\n  Kconfig guard remains in place preventing that user namespaces from\n  being built when any of those filesystems are enabled.\n\n  Future design work remains to allow root users outside of the initial\n  user namespace to mount more than just /proc and /sys.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (38 commits)\n  proc: Usable inode numbers for the namespace file descriptors.\n  proc: Fix the namespace inode permission checks.\n  proc: Generalize proc inode allocation\n  userns: Allow unprivilged mounts of proc and sysfs\n  userns: For /proc/self/{uid,gid}_map derive the lower userns from the struct file\n  procfs: Print task uids and gids in the userns that opened the proc file\n  userns: Implement unshare of the user namespace\n  userns: Implent proc namespace operations\n  userns: Kill task_user_ns\n  userns: Make create_new_namespaces take a user_ns parameter\n  userns: Allow unprivileged use of setns.\n  userns: Allow unprivileged users to create new namespaces\n  userns: Allow setting a userns mapping to your current uid.\n  userns: Allow chown and setgid preservation\n  userns: Allow unprivileged users to create user namespaces.\n  userns: Ignore suid and sgid on binaries if the uid or gid can not be mapped\n  userns: fix return value on mntns_install() failure\n  vfs: Allow unprivileged manipulation of the mount namespace.\n  vfs: Only support slave subtrees across different user namespaces\n  vfs: Add a user namespace reference from struct mnt_namespace\n  ...\n"
    },
    {
      "commit": "d206e09036d6201f90b2719484c8a59526c46125",
      "tree": "84b9057919bcb8cfd1cff47baa5fc74457e77d6d",
      "parents": [
        "fef3ff2eb777e76cfa5ae67591982d902c17139c",
        "15ef4ffaa797034d5ff82844daf8f595d7c6d53c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"A lot of activities on cgroup side.  The big changes are focused on\n  making cgroup hierarchy handling saner.\n\n   - cgroup_rmdir() had peculiar semantics - it allowed cgroup\n     destruction to be vetoed by individual controllers and tried to\n     drain refcnt synchronously.  The vetoing never worked properly and\n     caused good deal of contortions in cgroup.  memcg was the last\n     reamining user.  Michal Hocko removed the usage and cgroup_rmdir()\n     path has been simplified significantly.  This was done in a\n     separate branch so that the memcg people can base further memcg\n     changes on top.\n\n   - The above allowed cleaning up cgroup lifecycle management and\n     implementation of generic cgroup iterators which are used to\n     improve hierarchy support.\n\n   - cgroup_freezer updated to allow migration in and out of a frozen\n     cgroup and handle hierarchy.  If a cgroup is frozen, all descendant\n     cgroups are frozen.\n\n   - netcls_cgroup and netprio_cgroup updated to handle hierarchy\n     properly.\n\n   - Various fixes and cleanups.\n\n   - Two merge commits.  One to pull in memcg and rmdir cleanups (needed\n     to build iterators).  The other pulled in cgroup/for-3.7-fixes for\n     device_cgroup fixes so that further device_cgroup patches can be\n     stacked on top.\"\n\nFixed up a trivial conflict in mm/memcontrol.c as per Tejun (due to\ncommit bea8c150a7 (\"memcg: fix hotplugged memory zone oops\") in master\ntouching code close to commit 2ef37d3fe4 (\"memcg: Simplify\nmem_cgroup_force_empty_list error handling\") in for-3.8)\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (65 commits)\n  cgroup: update Documentation/cgroups/00-INDEX\n  cgroup_rm_file: don\u0027t delete the uncreated files\n  cgroup: remove subsystem files when remounting cgroup\n  cgroup: use cgroup_addrm_files() in cgroup_clear_directory()\n  cgroup: warn about broken hierarchies only after css_online\n  cgroup: list_del_init() on removed events\n  cgroup: fix lockdep warning for event_control\n  cgroup: move list add after list head initilization\n  netprio_cgroup: allow nesting and inherit config on cgroup creation\n  netprio_cgroup: implement netprio[_set]_prio() helpers\n  netprio_cgroup: use cgroup-\u003eid instead of cgroup_netprio_state-\u003eprioidx\n  netprio_cgroup: reimplement priomap expansion\n  netprio_cgroup: shorten variable names in extend_netdev_table()\n  netprio_cgroup: simplify write_priomap()\n  netcls_cgroup: move config inheritance to -\u003ecss_online() and remove .broken_hierarchy marking\n  cgroup: remove obsolete guarantee from cgroup_task_migrate.\n  cgroup: add cgroup-\u003eid\n  cgroup, cpuset: remove cgroup_subsys-\u003epost_clone()\n  cgroup: s/CGRP_CLONE_CHILDREN/CGRP_CPUSET_CLONE_CHILDREN/\n  cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n  ...\n"
    },
    {
      "commit": "7e0dd574cd6b1bcc818ed4251e5ceda7d8bee08f",
      "tree": "04f5630e361083ab53da43a46d6c47a52e8b87ca",
      "parents": [
        "f0b9abfb044649bc452fb2fb975ff2fd599cc6a3",
        "32cdba1e05418909708a17e52505e8b2ba4381d1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:50:23 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Dec 08 15:51:10 2012 +0100"
      },
      "message": "Merge branch \u0027uprobes/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core\n\nPull uprobes fixes, cleanups and preparation for the ARM port from Oleg Nesterov.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "92fb97487a7e41b222c1417cabd1d1ab7cc3a48c",
      "tree": "c220c622b9ac9b16535535d448e9cd29be72c77e",
      "parents": [
        "b1929db42f8a649d9a9e397119f628c27fd4021f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 19 08:13:38 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 19 08:13:38 2012 -0800"
      },
      "message": "cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n\nRename cgroup_subsys css lifetime related callbacks to better describe\nwhat their roles are.  Also, update documentation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "17cf22c33e1f1b5e435469c84e43872579497653",
      "tree": "c5cec307c06f7e4ddc26e04e73c8833897b67113",
      "parents": [
        "49f4d8b93ccf9454284b6f524b96c66d8d7fbccc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 02 14:51:53 2010 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:09 2012 -0800"
      },
      "message": "pidns: Use task_active_pid_ns where appropriate\n\nThe expressions tsk-\u003ensproxy-\u003epid_ns and task_active_pid_ns\naka ns_of_pid(task_pid(tsk)) should have the same number of\ncache line misses with the practical difference that\nns_of_pid(task_pid(tsk)) is released later in a processes life.\n\nFurthermore by using task_active_pid_ns it becomes trivial\nto write an unshare implementation for the the pid namespace.\n\nSo I have used task_active_pid_ns everywhere I can.\n\nIn fork since the pid has not yet been attached to the\nprocess I use ns_of_pid, to achieve the same effect.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "32cdba1e05418909708a17e52505e8b2ba4381d1",
      "tree": "63ab2edf02cbf72e71f4ba3d6c751eaf956d4e91",
      "parents": [
        "65b6ecc03838fd263cf7fafdfa6cf13012b91d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 14 19:03:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 16 14:52:51 2012 +0100"
      },
      "message": "uprobes: Use percpu_rw_semaphore to fix register/unregister vs dup_mmap() race\n\nThis was always racy, but 268720903f87e0b84b161626c4447b81671b5d18\n\"uprobes: Rework register_for_each_vma() to make it O(n)\" should be\nblamed anyway, it made everything worse and I didn\u0027t notice.\n\nregister/unregister call build_map_info() and then do install/remove\nbreakpoint for every mm which mmaps inode/offset. This can obviously\nrace with fork()-\u003edup_mmap() in between and we can miss the child.\n\nuprobe_register() could be easily fixed but unregister is much worse,\nthe new mm inherits \"int3\" from parent and there is no way to detect\nthis if uprobe goes away.\n\nSo this patch simply adds percpu_down_read/up_read around dup_mmap(),\nand percpu_down_write/up_write into register_for_each_vma().\n\nThis adds 2 new hooks into dup_mmap() but we can kill uprobe_dup_mmap()\nand fold it into uprobe_end_dup_mmap().\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "65b6ecc03838fd263cf7fafdfa6cf13012b91d56",
      "tree": "e32752232a7f4f4272ca70d6b9bab6c20d56cbee",
      "parents": [
        "19f5ee2716373519fda2129e9333f4c3847aa742"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Wed Nov 14 18:27:07 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 14 18:32:24 2012 +0100"
      },
      "message": "uprobes: Flush cache after xol write\n\nFlush the cache so that the instructions written to the XOL area are\nvisible.\n\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "19f5ee2716373519fda2129e9333f4c3847aa742",
      "tree": "18e1fae94b4c411545e8958f67a91d7eba81fc82",
      "parents": [
        "4dc316c64594d1a5ef2d61fba5ae0fe7fe18cdca"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 28 18:14:14 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 03 17:15:13 2012 +0100"
      },
      "message": "uprobes: Kill arch_uprobe_enable/disable_step() hooks\n\nKill arch_uprobe_enable/disable_step() hooks, they do nothing and\nnobody needs them.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "65b2c8f0e53347583168423de0f32227d8baf01b",
      "tree": "87b1e9fb5dcbc3e2a5a59192c27b959dc6cc0323",
      "parents": [
        "f57d56dd29003435d1bfc0e675896c368180f8ec"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 28 16:55:36 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Nov 03 17:15:12 2012 +0100"
      },
      "message": "uprobes/powerpc: Do not use arch_uprobe_*_step() helpers\n\nNo functional changes.\n\npowerpc is the only user of arch_uprobe_enable/disable_step() helpers,\nbut they should die. They can not be used correctly, every arch needs\nits own implementation (like x86 does). And they do not really help\neven as initial-and-almost-working code, arch_uprobe_*_xol() hooks can\neasily use user_enable/disable_single_step() directly.\n\nChange arch_uprobe_*_step() to do nothing, and convert powerpc to use\nptrace helpers. This is equally wrong, powerpc needs the arch-specific\nfixes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0d855354ea351bec6b222e9fea86a876cfafdcb6",
      "tree": "a17fa24e9d5a30fec1c8d17896acd10b5d161d45",
      "parents": [
        "35fd3dc58da675d659513384221349ef90749a01"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Fri Oct 26 18:28:56 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Oct 30 10:07:58 2012 +0100"
      },
      "message": "perf, powerpc: Fix hw breakpoints returning -ENOSPC\n\nI\u0027ve been trying to get hardware breakpoints with perf to work\non POWER7 but I\u0027m getting the following:\n\n  % perf record -e mem:0x10000000 true\n\n    Error: sys_perf_event_open() syscall returned with 28 (No space left on device).  /bin/dmesg may provide additional information.\n\n    Fatal: No CONFIG_PERF_EVENTS\u003dy kernel support configured?\n\n  true: Terminated\n\n(FWIW adding -a and it works fine)\n\nDebugging it seems that __reserve_bp_slot() is returning ENOSPC\nbecause it thinks there are no free breakpoint slots on this\nCPU.\n\nI have a 2 CPUs, so perf userspace is doing two perf_event_open\nsyscalls to add a counter to each CPU [1].  The first syscall\nsucceeds but the second is failing.\n\nOn this second syscall, fetch_bp_busy_slots() sets slots.pinned\nto be 1, despite there being no breakpoint on this CPU.  This is\nbecause the call the task_bp_pinned, checks all CPUs, rather\nthan just the current CPU. POWER7 only has one hardware\nbreakpoint per CPU (ie. HBP_NUM\u003d1), so we return ENOSPC.\n\nThe following patch fixes this by checking the associated CPU\nfor each breakpoint in task_bp_pinned.  I\u0027m not familiar with\nthis code, so it\u0027s provided as a reference to the above issue.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nCc: K Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1351268936-2956-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f38787f4f921222d080d976ef59210ce3c6c6cb4",
      "tree": "55e643bc1e5b066f04323a4054fdc814726221be",
      "parents": [
        "957b9095ed296311b36d26e4316d7f637351ac57",
        "71434f2fcba5c22d6e0d51878ba8e241a5dea5fb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 18:18:17 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Oct 21 18:18:17 2012 +0200"
      },
      "message": "Merge branch \u0027uprobes/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/urgent\n\nPull various uprobes bugfixes from Oleg Nesterov - mostly race and\nfailure path fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ade0899b298ba2c43bfd6abd8cbc2545944cde0c",
      "tree": "a448dfb440b3b958b6306bb43620cd5d76f504bf",
      "parents": [
        "871a0596cb2f51b57dc583d1a7c4be0186582fe7",
        "95cf59ea72331d0093010543b8951bb43f262cac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:20:11 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:20:11 2012 +0900"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf updates from Ingo Molnar:\n \"This tree includes some late late perf items that missed the first\n  round:\n\n  tools:\n\n   - Bash auto completion improvements, now we can auto complete the\n     tools long options, tracepoint event names, etc, from Namhyung Kim.\n\n   - Look up thread using tid instead of pid in \u0027perf sched\u0027.\n\n   - Move global variables into a perf_kvm struct, from David Ahern.\n\n   - Hists refactorings, preparatory for improved \u0027diff\u0027 command, from\n     Jiri Olsa.\n\n   - Hists refactorings, preparatory for event group viewieng work, from\n     Namhyung Kim.\n\n   - Remove double negation on optional feature macro definitions, from\n     Namhyung Kim.\n\n   - Remove several cases of needless global variables, on most\n     builtins.\n\n   - misc fixes\n\n  kernel:\n\n   - sysfs support for IBS on AMD CPUs, from Robert Richter.\n\n   - Support for an upcoming Intel CPU, the Xeon-Phi / Knights Corner\n     HPC blade PMU, from Vince Weaver.\n\n   - misc fixes\"\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)\n  perf: Fix perf_cgroup_switch for sw-events\n  perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu\n  perf/AMD/IBS: Add sysfs support\n  perf hists: Add more helpers for hist entry stat\n  perf hists: Move he-\u003estat.nr_events initialization to a template\n  perf hists: Introduce struct he_stat\n  perf diff: Removing the total_period argument from output code\n  perf tool: Add hpp interface to enable/disable hpp column\n  perf tools: Removing hists pair argument from output path\n  perf hists: Separate overhead and baseline columns\n  perf diff: Refactor diff displacement possition info\n  perf hists: Add struct hists pointer to struct hist_entry\n  perf tools: Complete tracepoint event names\n  perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU\n  perf evlist: Remove some unused methods\n  perf evlist: Introduce add_newtp method\n  perf kvm: Move global variables into a perf_kvm struct\n  perf tools: Convert to BACKTRACE_SUPPORT\n  perf tools: Long option completion support for each subcommands\n  perf tools: Complete long option names of perf command\n  ...\n"
    },
    {
      "commit": "6bdb913f0a70a4dfb7f066fb15e2d6f960701d00",
      "tree": "9a61960b27bf801794104b8bb8fccee1813f1b4b",
      "parents": [
        "2ec74c3ef2d8c58d71e0e00336fb6b891192155a"
      ],
      "author": {
        "name": "Haggai Eran",
        "email": "haggaie@mellanox.com",
        "time": "Mon Oct 08 16:33:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:58 2012 +0900"
      },
      "message": "mm: wrap calls to set_pte_at_notify with invalidate_range_start and invalidate_range_end\n\nIn order to allow sleeping during invalidate_page mmu notifier calls, we\nneed to avoid calling when holding the PT lock.  In addition to its direct\ncalls, invalidate_page can also be called as a substitute for a change_pte\ncall, in case the notifier client hasn\u0027t implemented change_pte.\n\nThis patch drops the invalidate_page call from change_pte, and instead\nwraps all calls to change_pte with invalidate_range_start and\ninvalidate_range_end calls.\n\nNote that change_pte still cannot sleep after this patch, and that clients\nimplementing change_pte should not take action on it in case the number of\noutstanding invalidate_range_start calls is larger than one, otherwise\nthey might miss a later invalidation.\n\nSigned-off-by: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nCc: Sagi Grimberg \u003csagig@mellanox.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Shachar Raindel \u003craindel@mellanox.com\u003e\nCc: Liran Liss \u003cliranl@mellanox.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "314e51b9851b4f4e8ab302243ff5a6fc6147f379",
      "tree": "f757b89206355fd129830782566768693eed23ce",
      "parents": [
        "0103bd16fb90bc741c7a03fd1ea4e8a505abad23"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:29:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:19 2012 +0900"
      },
      "message": "mm: kill vma flag VM_RESERVED and mm-\u003ereserved_vm counter\n\nA long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,\ncurrently it lost original meaning but still has some effects:\n\n | effect                 | alternative flags\n-+------------------------+---------------------------------------------\n1| account as reserved_vm | VM_IO\n2| skip in core dump      | VM_IO, VM_DONTDUMP\n3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n\nThis patch removes reserved_vm counter from mm_struct.  Seems like nobody\ncares about it, it does not exported into userspace directly, it only\nreduces total_vm showed in proc.\n\nThus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.\n\nremap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.\nremap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.\n\n[akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71434f2fcba5c22d6e0d51878ba8e241a5dea5fb",
      "tree": "0a61c5a75390a4eb39f018cc39cf8f40b0103058",
      "parents": [
        "4710f05fd146d4739e57a8832a3abc5bd3bf0997"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 21:12:44 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:43 2012 +0200"
      },
      "message": "uprobes: Fix the racy uprobe-\u003eflags manipulation\n\nMultiple threads can manipulate uprobe-\u003eflags, this is obviously\nunsafe. For example mmap can set UPROBE_COPY_INSN while register\ntries to set UPROBE_RUN_HANDLER, the latter can also race with\ncan_skip_sstep() which clears UPROBE_SKIP_SSTEP.\n\nChange this code to use bitops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4710f05fd146d4739e57a8832a3abc5bd3bf0997",
      "tree": "459f64b5243d621c85b34abf90e3892cca69e502",
      "parents": [
        "cb9a19fe4aa51afa34786bd383e6614fa0083d58"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 20:31:41 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:43 2012 +0200"
      },
      "message": "uprobes: Fix prepare_uprobe() race with itself\n\ninstall_breakpoint() is called under mm-\u003emmap_sem, this protects\nset_swbp() but not prepare_uprobe(). Two or more different tasks\ncan call install_breakpoint()-\u003eprepare_uprobe() at the same time,\nthis leads to numerous problems if UPROBE_COPY_INSN is not set.\n\nJust for example, the second copy_insn() can corrupt the already\nanalyzed/fixuped uprobe-\u003earch.insn and race with handle_swbp().\n\nThis patch simply adds uprobe-\u003ecopy_mutex to serialize this code.\nWe could probably reuse -\u003econsumer_rwsem, but this would mean that\nconsumer-\u003ehandler() can not use mm-\u003emmap_sem, not good.\n\nNote: this is another temporary ugly hack until we move this logic\ninto uprobe_register().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cb9a19fe4aa51afa34786bd383e6614fa0083d58",
      "tree": "e85fac9d3a69707cd9c3a98361f5cba845d5d260",
      "parents": [
        "142b18ddc81439acda4bc4231b291e99fe67d507"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 20:11:45 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:42 2012 +0200"
      },
      "message": "uprobes: Introduce prepare_uprobe()\n\nPreparation. Extract the copy_insn/arch_uprobe_analyze_insn code\nfrom install_breakpoint() into the new helper, prepare_uprobe().\n\nAnd move uprobe-\u003eflags defines from uprobes.h to uprobes.c, nobody\nelse can use them anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "142b18ddc81439acda4bc4231b291e99fe67d507",
      "tree": "2189191c456f93551d58b0f3afc4b53bb3b8949a",
      "parents": [
        "076a365b3da99b68c5d58e394714d0611f1fa002"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:56:57 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Fix handle_swbp() vs unregister() + register() race\n\nStrictly speaking this race was added by me in 56bb4cf6. However\nI think that this bug is just another indication that we should\nmove copy_insn/uprobe_analyze_insn code from install_breakpoint()\nto uprobe_register(), there are a lot of other reasons for that.\nUntil then, add a hack to close the race.\n\nA task can hit uprobe U1, but before it calls find_uprobe() this\nuprobe can be unregistered *AND* another uprobe U2 can be added to\nuprobes_tree at the same inode/offset. In this case handle_swbp()\nwill use the not-fully-initialized U2, in particular its arch.insn\nfor xol.\n\nAdd the additional !UPROBE_COPY_INSN check into handle_swbp(),\nif this flag is not set we simply restart as if the new uprobe was\nnot inserted yet. This is not very nice, we need barriers, but we\nwill remove this hack when we change uprobe_register().\n\nNote: with or without this patch install_breakpoint() can race with\nitself, yet another reson to kill UPROBE_COPY_INSN altogether. And\neven the usage of uprobe-\u003eflags is not safe. See the next patches.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "076a365b3da99b68c5d58e394714d0611f1fa002",
      "tree": "b58ae7da7bfa80200bb9982f344b93cf3f22a7fd",
      "parents": [
        "a5f658b71bc622b731961ea3addcf146ed3c599f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 18:54:53 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Do not delete uprobe if uprobe_unregister() fails\n\ndelete_uprobe() must not be called if register_for_each_vma(false)\nfails to remove all breakpoints, __uprobe_unregister() is correct.\nThe problem is that register_for_each_vma(false) always returns 0\nand thus this logic does not work.\n\n1. Change verify_opcode() to return 0 rather than -EINVAL when\n   unregister detects the !is_swbp insn, we can treat this case\n   as success and currently unregister paths ignore the error\n   code anyway.\n\n2. Change remove_breakpoint() to propagate the error code from\n   write_opcode().\n\n3. Change register_for_each_vma(is_register \u003d\u003e false) to remove\n   as much breakpoints as possible but return non-zero if\n   remove_breakpoint() fails at least once.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a5f658b71bc622b731961ea3addcf146ed3c599f",
      "tree": "52ebe6fb29ef955cee71ded01154d89d77577410",
      "parents": [
        "b64b9c937a533f0bfbfc9f6ac93d3c3e2f97ab02"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 30 18:21:09 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 07 21:19:41 2012 +0200"
      },
      "message": "uprobes: Don\u0027t return success if alloc_uprobe() fails\n\nIf alloc_uprobe() fails uprobe_register() should return ENOMEM, not 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "95cf59ea72331d0093010543b8951bb43f262cac",
      "tree": "7d0bc786d071b50217040691c4e1ab5a6ff73296",
      "parents": [
        "3f1f33206c16c7b3839d71372bc2ac3f305aa802"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 02 15:41:23 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Oct 05 13:59:07 2012 +0200"
      },
      "message": "perf: Fix perf_cgroup_switch for sw-events\n\nJiri reported that he could trigger the WARN_ON_ONCE() in\nperf_cgroup_switch() using sw-events. This is because sw-events share\na cpuctx with multiple PMUs.\n\nUse the -\u003eunique_pmu pointer to limit the pmu iteration to unique\ncpuctx instances.\n\nReported-and-Tested-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-so7wi2zf3jjzrwcutm2mkz0j@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "3f1f33206c16c7b3839d71372bc2ac3f305aa802",
      "tree": "683e2af07cb49e9a333f982e72088929027881c1",
      "parents": [
        "2e132b12f78d88672711ae1d87624951de1089ca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 02 15:38:52 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Oct 05 13:59:06 2012 +0200"
      },
      "message": "perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu\n\nStephane thought the perf_cpu_context::active_pmu name confusing and\nsuggested using \u0027unique_pmu\u0027 instead.\n\nThis pointer is a pointer to a \u0027random\u0027 pmu sharing the cpuctx\ninstance, therefore limiting a for_each_pmu loop to those where\ncpuctx-\u003eunique_pmu matches the pmu we get a loop over unique cpuctx\ninstances.\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-kxyjqpfj2fn9gt7kwu5ag9ks@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aab174f0df5d72d31caccf281af5f614fa254578",
      "tree": "2a172c5009c4ac8755e858593154c258ce7709a0",
      "parents": [
        "ca41cc96b2813221b05af57d0355157924de5a07",
        "2bd2c1941f141ad780135ccc1cd08ca71a24f10a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs update from Al Viro:\n\n - big one - consolidation of descriptor-related logics; almost all of\n   that is moved to fs/file.c\n\n   (BTW, I\u0027m seriously tempted to rename the result to fd.c.  As it is,\n   we have a situation when file_table.c is about handling of struct\n   file and file.c is about handling of descriptor tables; the reasons\n   are historical - file_table.c used to be about a static array of\n   struct file we used to have way back).\n\n   A lot of stray ends got cleaned up and converted to saner primitives,\n   disgusting mess in android/binder.c is still disgusting, but at least\n   doesn\u0027t poke so much in descriptor table guts anymore.  A bunch of\n   relatively minor races got fixed in process, plus an ext4 struct file\n   leak.\n\n - related thing - fget_light() partially unuglified; see fdget() in\n   there (and yes, it generates the code as good as we used to have).\n\n - also related - bits of Cyrill\u0027s procfs stuff that got entangled into\n   that work; _not_ all of it, just the initial move to fs/proc/fd.c and\n   switch of fdinfo to seq_file.\n\n - Alex\u0027s fs/coredump.c spiltoff - the same story, had been easier to\n   take that commit than mess with conflicts.  The rest is a separate\n   pile, this was just a mechanical code movement.\n\n - a few misc patches all over the place.  Not all for this cycle,\n   there\u0027ll be more (and quite a few currently sit in akpm\u0027s tree).\"\n\nFix up trivial conflicts in the android binder driver, and some fairly\nsimple conflicts due to two different changes to the sock_alloc_file()\ninterface (\"take descriptor handling from sock_alloc_file() to callers\"\nvs \"net: Providing protocol type via system.sockprotoname xattr of\n/proc/PID/fd entries\" adding a dentry name to the socket)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (72 commits)\n  MAX_LFS_FILESIZE should be a loff_t\n  compat: fs: Generic compat_sys_sendfile implementation\n  fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n  btrfs: reada_extent doesn\u0027t need kref for refcount\n  coredump: move core dump functionality into its own file\n  coredump: prevent double-free on an error path in core dumper\n  usb/gadget: fix misannotations\n  fcntl: fix misannotations\n  ceph: don\u0027t abuse d_delete() on failure exits\n  hypfs: -\u003ed_parent is never NULL or negative\n  vfs: delete surplus inode NULL check\n  switch simple cases of fget_light to fdget\n  new helpers: fdget()/fdput()\n  switch o2hb_region_dev_write() to fget_light()\n  proc_map_files_readdir(): don\u0027t bother with grabbing files\n  make get_file() return its argument\n  vhost_set_vring(): turn pollstart/pollstop into bool\n  switch prctl_set_mm_exe_file() to fget_light()\n  switch xfs_find_handle() to fget_light()\n  switch xfs_swapext() to fget_light()\n  ...\n"
    },
    {
      "commit": "68d47a137c3bef754923bccf73fb639c9b0bbd5e",
      "tree": "e82a527bd978ee96283f03d0df36f47d9aee1e41",
      "parents": [
        "c0e8a139a5bb8add02b4111e9e1957d810d7285e",
        "8c7f6edbda01f1b1a2e60ad61f14fe38023e433b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 10:52:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 10:52:28 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7-hierarchy\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup hierarchy update from Tejun Heo:\n \"Currently, different cgroup subsystems handle nested cgroups\n  completely differently.  There\u0027s no consistency among subsystems and\n  the behaviors often are outright broken.\n\n  People at least seem to agree that the broken hierarhcy behaviors need\n  to be weeded out if any progress is gonna be made on this front and\n  that the fallouts from deprecating the broken behaviors should be\n  acceptable especially given that the current behaviors don\u0027t make much\n  sense when nested.\n\n  This patch makes cgroup emit warning messages if cgroups for\n  subsystems with broken hierarchy behavior are nested to prepare for\n  fixing them in the future.  This was put in a separate branch because\n  more related changes were expected (didn\u0027t make it this round) and the\n  memory cgroup wanted to pull in this and make changes on top.\"\n\n* \u0027for-3.7-hierarchy\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: mark subsystems with broken hierarchy support and whine if cgroups are nested for them\n"
    },
    {
      "commit": "7e92daaefa68e5ef1e1732e45231e73adbb724e7",
      "tree": "8e7f8ac9d82654df4c65939c6682f95510e22977",
      "parents": [
        "7a68294278ae714ce2632a54f0f46916dca64f56",
        "1d787d37c8ff6612b8151c6dff15bfa7347bcbdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:28:49 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf update from Ingo Molnar:\n \"Lots of changes in this cycle as well, with hundreds of commits from\n  over 30 contributors.  Most of the activity was on the tooling side.\n\n  Higher level changes:\n\n   - New \u0027perf kvm\u0027 analysis tool, from Xiao Guangrong.\n\n   - New \u0027perf trace\u0027 system-wide tracing tool\n\n   - uprobes fixes + cleanups from Oleg Nesterov.\n\n   - Lots of patches to make perf build on Android out of box, from\n     Irina Tirdea\n\n   - Extend ftrace function tracing utility to be more dynamic for its\n     users.  It allows for data passing to the callback functions, as\n     well as reading regs as if a breakpoint were to trigger at function\n     entry.\n\n     The main goal of this patch series was to allow kprobes to use\n     ftrace as an optimized probe point when a probe is placed on an\n     ftrace nop.  With lots of help from Masami Hiramatsu, and going\n     through lots of iterations, we finally came up with a good\n     solution.\n\n   - Add cpumask for uncore pmu, use it in \u0027stat\u0027, from Yan, Zheng.\n\n   - Various tracing updates from Steve Rostedt\n\n   - Clean up and improve \u0027perf sched\u0027 performance by elliminating lots\n     of needless calls to libtraceevent.\n\n   - Event group parsing support, from Jiri Olsa\n\n   - UI/gtk refactorings and improvements from Namhyung Kim\n\n   - Add support for non-tracepoint events in perf script python, from\n     Feng Tang\n\n   - Add --symbols to \u0027script\u0027, similar to the one in \u0027report\u0027, from\n     Feng Tang.\n\n  Infrastructure enhancements and fixes:\n\n   - Convert the trace builtins to use the growing evsel/evlist\n     tracepoint infrastructure, removing several open coded constructs\n     like switch like series of strcmp to dispatch events, etc.\n     Basically what had already been showcased in \u0027perf sched\u0027.\n\n   - Add evsel constructor for tracepoints, that uses libtraceevent just\n     to parse the /format events file, use it in a new \u0027perf test\u0027 to\n     make sure the libtraceevent format parsing regressions can be more\n     readily caught.\n\n   - Some strange errors were happening in some builds, but not on the\n     next, reported by several people, problem was some parser related\n     files, generated during the build, didn\u0027t had proper make deps, fix\n     from Eric Sandeen.\n\n   - Introduce struct and cache information about the environment where\n     a perf.data file was captured, from Namhyung Kim.\n\n   - Fix handling of unresolved samples when --symbols is used in\n     \u0027report\u0027, from Feng Tang.\n\n   - Add union member access support to \u0027probe\u0027, from Hyeoncheol Lee.\n\n   - Fixups to die() removal, from Namhyung Kim.\n\n   - Render fixes for the TUI, from Namhyung Kim.\n\n   - Don\u0027t enable annotation in non symbolic view, from Namhyung Kim.\n\n   - Fix pipe mode in \u0027report\u0027, from Namhyung Kim.\n\n   - Move related stats code from stat to util/, will be used by the\n     \u0027stat\u0027 kvm tool, from Xiao Guangrong.\n\n   - Remove die()/exit() calls from several tools.\n\n   - Resolve vdso callchains, from Jiri Olsa\n\n   - Don\u0027t pass const char pointers to basename, so that we can\n     unconditionally use libgen.h and thus avoid ifdef BIONIC lines,\n     from David Ahern\n\n   - Refactor hist formatting so that it can be reused with the GTK\n     browser, From Namhyung Kim\n\n   - Fix build for another rbtree.c change, from Adrian Hunter.\n\n   - Make \u0027perf diff\u0027 command work with evsel hists, from Jiri Olsa.\n\n   - Use the only field_sep var that is set up: symbol_conf.field_sep,\n     fix from Jiri Olsa.\n\n   - .gitignore compiled python binaries, from Namhyung Kim.\n\n   - Get rid of die() in more libtraceevent places, from Namhyung Kim.\n\n   - Rename libtraceevent \u0027private\u0027 struct member to \u0027priv\u0027 so that it\n     works in C++, from Steven Rostedt\n\n   - Remove lots of exit()/die() calls from tools so that the main perf\n     exit routine can take place, from David Ahern\n\n   - Fix x86 build on x86-64, from David Ahern.\n\n   - {int,str,rb}list fixes from Suzuki K Poulose\n\n   - perf.data header fixes from Namhyung Kim\n\n   - Allow user to indicate objdump path, needed in cross environments,\n     from Maciek Borzecki\n\n   - Fix hardware cache event name generation, fix from Jiri Olsa\n\n   - Add round trip test for sw, hw and cache event names, catching the\n     problem Jiri fixed, after Jiri\u0027s patch, the test passes\n     successfully.\n\n   - Clean target should do clean for lib/traceevent too, fix from David\n     Ahern\n\n   - Check the right variable for allocation failure, fix from Namhyung\n     Kim\n\n   - Set up evsel-\u003etp_format regardless of evsel-\u003ename being set\n     already, fix from Namhyung Kim\n\n   - Oprofile fixes from Robert Richter.\n\n   - Remove perf_event_attr needless version inflation, from Jiri Olsa\n\n   - Introduce libtraceevent strerror like error reporting facility,\n     from Namhyung Kim\n\n   - Add pmu mappings to perf.data header and use event names from cmd\n     line, from Robert Richter\n\n   - Fix include order for bison/flex-generated C files, from Ben\n     Hutchings\n\n   - Build fixes and documentation corrections from David Ahern\n\n   - Assorted cleanups from Robert Richter\n\n   - Let O\u003d makes handle relative paths, from Steven Rostedt\n\n   - perf script python fixes, from Feng Tang.\n\n   - Initial bash completion support, from Frederic Weisbecker\n\n   - Allow building without libelf, from Namhyung Kim.\n\n   - Support DWARF CFI based unwind to have callchains when %bp based\n     unwinding is not possible, from Jiri Olsa.\n\n   - Symbol resolution fixes, while fixing support PPC64 files with an\n     .opt ELF section was the end goal, several fixes for code that\n     handles all architectures and cleanups are included, from Cody\n     Schafer.\n\n   - Assorted fixes for Documentation and build in 32 bit, from Robert\n     Richter\n\n   - Cache the libtraceevent event_format associated to each evsel\n     early, so that we avoid relookups, i.e.  calling pevent_find_event\n     repeatedly when processing tracepoint events.\n\n     [ This is to reduce the surface contact with libtraceevents and\n        make clear what is that the perf tools needs from that lib: so\n        far parsing the common and per event fields.  ]\n\n   - Don\u0027t stop the build if the audit libraries are not installed, fix\n     from Namhyung Kim.\n\n   - Fix bfd.h/libbfd detection with recent binutils, from Markus\n     Trippelsdorf.\n\n   - Improve warning message when libunwind devel packages not present,\n     from Jiri Olsa\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (282 commits)\n  perf trace: Add aliases for some syscalls\n  perf probe: Print an enum type variable in \"enum variable-name\" format when showing accessible variables\n  perf tools: Check libaudit availability for perf-trace builtin\n  perf hists: Add missing period_* fields when collapsing a hist entry\n  perf trace: New tool\n  perf evsel: Export the event_format constructor\n  perf evsel: Introduce rawptr() method\n  perf tools: Use perf_evsel__newtp in the event parser\n  perf evsel: The tracepoint constructor should store sys:name\n  perf evlist: Introduce set_filter() method\n  perf evlist: Renane set_filters method to apply_filters\n  perf test: Add test to check we correctly parse and match syscall open parms\n  perf evsel: Handle endianity in intval method\n  perf evsel: Know if byte swap is needed\n  perf tools: Allow handling a NULL cpu_map as meaning \"all cpus\"\n  perf evsel: Improve tracepoint constructor setup\n  tools lib traceevent: Fix error path on pevent_parse_event\n  perf test: Fix build failure\n  trace: Move trace event enable from fs_initcall to core_initcall\n  tracing: Add an option for disabling markers\n  ...\n"
    },
    {
      "commit": "ec75fba93ef0c00c91545b5e53841a80cffad0c4",
      "tree": "e71ccd7816177b80bfffaf80f6ff7039acc92dda",
      "parents": [
        "ed6f6a50dc5f183c53e7b3b7fed4794bc50d9aa7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 23 21:55:19 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:54 2012 +0200"
      },
      "message": "uprobes: Simplify is_swbp_at_addr(), remove stale comments\n\nAfter the previous change is_swbp_at_addr() is always called with\ncurrent-\u003emm. Remove this check and move it close to its single caller.\n\nAlso, remove the obsolete comment about is_swbp_at_addr() and\nuprobe_state.count.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ed6f6a50dc5f183c53e7b3b7fed4794bc50d9aa7",
      "tree": "8ef3472db708804bb292a79752d0b04de8f2060d",
      "parents": [
        "cceb55aab73d2aea8f4d6f7414d2e1b647a3dacb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 23 21:30:44 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:54 2012 +0200"
      },
      "message": "uprobes: Kill set_orig_insn()-\u003eis_swbp_at_addr()\n\nUnlike set_swbp(), set_orig_insn()-\u003eis_swbp_at_addr() makes sense,\nalthough it can\u0027t prevent all confusions.\n\nBut the usage of is_swbp_at_addr() is equally confusing, and it adds\nthe extra get_user_pages() we can avoid.\n\nThis patch removes set_orig_insn()-\u003eis_swbp_at_addr() but changes\nwrite_opcode() to do the necessary checks before replace_page().\n\nPerhaps it also makes sense to ensure PAGE_MAPPING_ANON in unregister\ncase.\n\nfind_active_uprobe() becomes the only user of is_swbp_at_addr(),\nwe can change its semantics.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "cceb55aab73d2aea8f4d6f7414d2e1b647a3dacb",
      "tree": "3da300ea711b72be0d5dc846d65f94695c5a7ed5",
      "parents": [
        "e97f65a17deafacc360a4cb75ae944897ecea6d7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 23 21:10:18 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:54 2012 +0200"
      },
      "message": "uprobes: Introduce copy_opcode(), kill read_opcode()\n\nNo functional changes, preparations.\n\n1. Extract the kmap-and-memcpy code from read_opcode() into the\n   new trivial helper, copy_opcode(). The next patch will add\n   another user.\n\n2. read_opcode() becomes really trivial, fold it into its single\n   caller, is_swbp_at_addr().\n\n3. Remove \"auprobe\" argument from write_opcode(), it is not used\n   since f403072c6.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e97f65a17deafacc360a4cb75ae944897ecea6d7",
      "tree": "d87d1e779ae91b9a1c0f5fcb9ed0e220bb4dfb72",
      "parents": [
        "e40cfce626a5537994058ee9a940dcfdc0f68ef0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 19 16:36:01 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:54 2012 +0200"
      },
      "message": "uprobes: Kill set_swbp()-\u003eis_swbp_at_addr()\n\nA separate patch for better documentation.\n\nset_swbp()-\u003eis_swbp_at_addr() is not needed for correctness, it is\nharmless to do the unnecessary __replace_page(old_page, new_page)\nwhen these 2 pages are identical.\n\nAnd it can not be counted as optimization. mmap/register races are\nvery unlikely, while in the likely case is_swbp_at_addr() adds the\nextra get_user_pages() even if the caller is uprobe_mmap(current-\u003emm)\nand returns false.\n\nNote also that the semantics/usage of is_swbp_at_addr() in uprobe.c\nis confusing. set_swbp() uses it to detect the case when this insn\nwas already modified by uprobes, that is why it should always compare\nthe opcode with UPROBE_SWBP_INSN even if the hardware (like powerpc)\nhas other trap insns. It doesn\u0027t matter if this breakpoint was in fact\ninstalled by gdb or application itself, we are going to \"steal\" this\nbreakpoint anyway and execute the original insn from vm_file even if\nit no longer matches the memory.\n\nOTOH, handle_swbp()-\u003efind_active_uprobe() uses is_swbp_at_addr() to\nfigure out whether we need to send SIGTRAP or not if we can not find\nuprobe, so in this case it should return true for all trap variants,\nnot only for UPROBE_SWBP_INSN.\n\nThis patch removes set_swbp()-\u003eis_swbp_at_addr(), the next patches\nwill remove it from set_orig_insn() which is similar to set_swbp()\nin this respect. So the only caller will be handle_swbp() and we\ncan make its semantics clear.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "e40cfce626a5537994058ee9a940dcfdc0f68ef0",
      "tree": "ce9a24a51906fb3437ea0f08851e4dfb4671aa0b",
      "parents": [
        "78a320542e6cdb2800cd736b2d136e4261d34f43"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 16 19:31:39 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:54 2012 +0200"
      },
      "message": "uprobes: Restrict valid_vma(false) to skip VM_SHARED vmas\n\nvalid_vma(false) ignores -\u003evm_flags, this is not actually right.\nWe should never try to write into MAP_SHARED mapping, this can\nconfuse an apllication which actually writes to -\u003evm_file.\n\nWith this patch valid_vma(false) ignores VM_WRITE only but checks\nother (immutable) bits checked by valid_vma(true). This can also\nspeedup uprobe_munmap() and uprobe_unregister().\n\nNote: even after this patch _unregister can confuse the probed\napplication if it does mprotect(PROT_WRITE) after _register and\ninstalls \"int3\", but this is hardly possible to avoid and this\ndoesn\u0027t differ from gdb case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "78a320542e6cdb2800cd736b2d136e4261d34f43",
      "tree": "eb55bec46370f7890fdec4c44450e52aba043885",
      "parents": [
        "75ed82ea53bd0d2d8083261123576250f7ba851e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 16 19:07:41 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:53 2012 +0200"
      },
      "message": "uprobes: Change valid_vma() to demand VM_MAYEXEC rather than VM_EXEC\n\nuprobe_register() or uprobe_mmap() requires VM_READ | VM_EXEC, this\nis not right. An apllication can do mprotect(PROT_EXEC) later and\nexecute this code.\n\nChange valid_vma(is_register \u003d\u003e true) to check VM_MAYEXEC instead.\nNo need to check VM_MAYREAD, it is always set.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "75ed82ea53bd0d2d8083261123576250f7ba851e",
      "tree": "da2c69d053b7555c15e1adb5e6d901c2afab8ad8",
      "parents": [
        "db023ea595015058270be6a62fe60a7b6b5c50d7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Sep 16 17:20:06 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:53 2012 +0200"
      },
      "message": "uprobes: Change write_opcode() to use FOLL_FORCE\n\nwrite_opcode()-\u003eget_user_pages() needs FOLL_FORCE to ensure we can\nread the page even if the probed task did mprotect(PROT_NONE) after\nuprobe_register(). Without FOLL_WRITE, FOLL_FORCE doesn\u0027t have any\nside effect but allows to read the !VM_READ memory.\n\nOtherwiese the subsequent uprobe_unregister()-\u003eset_orig_insn() fails\nand we leak \"int3\". If that task does mprotect(PROT_READ | EXEC) and\nexecute the probed insn later it will be killed.\n\nNote: in fact this is also needed for _register, see the next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "db023ea595015058270be6a62fe60a7b6b5c50d7",
      "tree": "44e26d8b5bb73d5847150af9d5c9a3fa25bf3573",
      "parents": [
        "1b08e907211cdc744f54871736005d9f3e7f182c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Sep 14 19:05:46 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:53 2012 +0200"
      },
      "message": "uprobes: Move clear_thread_flag(TIF_UPROBE) to uprobe_notify_resume()\n\nMove clear_thread_flag(TIF_UPROBE) from do_notify_resume() to\nuprobe_notify_resume() for !CONFIG_UPROBES case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1b08e907211cdc744f54871736005d9f3e7f182c",
      "tree": "df62046438501ecd89e0bac1fb9b73edaf622e15",
      "parents": [
        "0578a97098dab967ece4b025fe5eb4984c4c86c0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Sep 14 18:52:10 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:53 2012 +0200"
      },
      "message": "uprobes: Kill UTASK_BP_HIT state\n\nKill UTASK_BP_HIT state, it buys nothing but complicates the code.\nIt is only used in uprobe_notify_resume() to decide who should be\ncalled, we can check utask-\u003eactive_uprobe !\u003d NULL instead. And this\nallows us to simplify handle_swbp(), no need to clear utask-\u003estate.\n\nLikewise we could kill UTASK_SSTEP, but UTASK_BP_HIT is worse and\nimho should die. The problem is, it creates the special case when\ntask-\u003eutask is NULL, we can\u0027t distinguish RUNNING and BP_HIT. With\nthis patch utask \u003d\u003d NULL always means RUNNING.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0578a97098dab967ece4b025fe5eb4984c4c86c0",
      "tree": "cf48aeca0e414d1eb2cafdfd28e8e31282a58af1",
      "parents": [
        "746a9e6ba24af2ccf03279c99d435a1b88ca5d17"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Sep 14 18:31:23 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:52 2012 +0200"
      },
      "message": "uprobes: Fix UPROBE_SKIP_SSTEP checks in handle_swbp()\n\nIf handle_swbp()-\u003eadd_utask() fails but UPROBE_SKIP_SSTEP is set,\ncleanup_ret: path do not restart the insn, this is wrong. Remove\nthis check and add the additional label for can_skip_sstep() \u003d T\ncase.\n\nNote also that UPROBE_SKIP_SSTEP can be false positive, we simply\ncan not trust it unless arch_uprobe_skip_sstep() was already called.\n\nAlso, move another UPROBE_SKIP_SSTEP check before can_skip_sstep()\ninto this helper, this looks more clean and understandable.\n\nNote: probably we should rename \"skip\" to \"emulate\" and I think\nthat \"clear UPROBE_SKIP_SSTEP\" should be moved to arch_can_skip.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "746a9e6ba24af2ccf03279c99d435a1b88ca5d17",
      "tree": "7ee4399b90c952520c492fea64cb2d841341d0d4",
      "parents": [
        "79d54b249c176ba4abb9a580951400246dd974b1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Sep 14 18:23:51 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:52 2012 +0200"
      },
      "message": "uprobes: Do not setup -\u003eactive_uprobe/state prematurely\n\nhandle_swbp() sets utask-\u003eactive_uprobe before handler_chain(),\nand UTASK_SSTEP before pre_ssout(). This complicates the code\nfor no reason,  arch_ hooks or consumer-\u003ehandler() should not\n(and can\u0027t) use this info.\n\nChange handle_swbp() to initialize them after pre_ssout(), and\nremove the no longer needed cleanup-utask code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\ncked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "79d54b249c176ba4abb9a580951400246dd974b1",
      "tree": "e3efd0adcd88f476c775b9b77b58e58424739174",
      "parents": [
        "1d787d37c8ff6612b8151c6dff15bfa7347bcbdf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Sep 14 18:03:59 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 29 21:21:52 2012 +0200"
      },
      "message": "uprobes: Do not leak UTASK_BP_HIT if find_active_uprobe() fails\n\nIf handle_swbp()-\u003efind_active_uprobe() fails we return with\nutask-\u003estate \u003d UTASK_BP_HIT.\n\nChange handle_swbp() to reset utask-\u003estate at the start. Note\nthat we do this unconditionally, see the next patch(es).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2903ff019b346ab8d36ebbf54853c3aaf6590608",
      "tree": "962d94054765bb37bc00e977c3036e65c5fd91fe",
      "parents": [
        "a5b470ba06aa3f96999ede5feba178df6bdb134a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 28 12:52:22 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 22:20:08 2012 -0400"
      },
      "message": "switch simple cases of fget_light to fdget\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab72a7028c0cc22731dc60beceb595b321d1cdb9",
      "tree": "0f9e4a379876a614da462ba06be41b01e8b6795d",
      "parents": [
        "5b249b1b07c42c61d0c53b8ab4fad026e39a9be9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 21 09:40:46 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 21:08:52 2012 -0400"
      },
      "message": "events: don\u0027t use get_unused_fd_flags() when get_unused_fd() will do\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d778782266f95e5c6ec43ed8195ba331c821018",
      "tree": "99872945803a76d1ff9e438cf48864cd0a5d9bf4",
      "parents": [
        "499a4f3ec057a0f79636cc3c1e581bb6e977a30f"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Aug 07 18:12:28 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:28 2012 +0200"
      },
      "message": "uprobes: Introduce arch_uprobe_enable/disable_step()\n\nAs Oleg pointed out in [0] uprobe should not use the ptrace interface\nfor enabling/disabling single stepping.\n\n[0] http://lkml.kernel.org/r/20120730141638.GA5306@redhat.com\n\nAdd the new \"__weak arch\" helpers which simply call user_*_single_step()\nas a preparation. This is only needed to not break the powerpc port, we\nwill fold this logic into arch_uprobe_pre/post_xol() hooks later.\n\nWe should also change handle_singlestep(), _disable_step(\u0026uprobe-\u003earch)\nshould be called before put_uprobe().\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "499a4f3ec057a0f79636cc3c1e581bb6e977a30f",
      "tree": "6c24cbd3d9eeb3d1711da4b5aa114e6ff17955c9",
      "parents": [
        "9f68f672c47b9bd4cfe0a667ecb0b1382c61e2de"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Aug 19 17:41:34 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:27 2012 +0200"
      },
      "message": "uprobes: Teach find_active_uprobe() to clear MMF_HAS_UPROBES\n\nThe wrong MMF_HAS_UPROBES doesn\u0027t really hurt, just it triggers\nthe \"slow\" and unnecessary handle_swbp() path if the task hits\nthe non-uprobe breakpoint.\n\nSo this patch changes find_active_uprobe() to check every valid\nvma and clear MMF_HAS_UPROBES if no uprobes were found. This is\nadds the slow O(n) path, but it is only called in unlikely case\nwhen the task hits the normal breakpoint first time after\nuprobe_unregister().\n\nNote the \"not strictly accurate\" comment in mmf_recalc_uprobes().\nWe can fix this, we only need to teach vma_has_uprobes() to return\na bit more more info, but I am not sure this worth the trouble.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9f68f672c47b9bd4cfe0a667ecb0b1382c61e2de",
      "tree": "eb389851ce75fa15ad2b5e34c88d4c6af1fb197a",
      "parents": [
        "6f47caa0e1e4887aa2ddca8388d058d35725d815"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Aug 19 16:15:09 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:27 2012 +0200"
      },
      "message": "uprobes: Introduce MMF_RECALC_UPROBES\n\nAdd the new MMF_RECALC_UPROBES flag, it means that MMF_HAS_UPROBES\ncan be false positive after remove_breakpoint() or uprobe_munmap().\nIt is also set by uprobe_dup_mmap(), this is not optimal but simple.\nWe could add the new hook, uprobe_dup_vma(), to set MMF_HAS_UPROBES\nonly if the new mm actually has uprobes, but I don\u0027t think this\nmakes sense.\n\nThe next patch will use this flag to clear MMF_HAS_UPROBES.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6f47caa0e1e4887aa2ddca8388d058d35725d815",
      "tree": "2f88ea604c353b4a97006fbd220dceceb36e76f9",
      "parents": [
        "6d1d8dfa8b65831cfa9a528e3d17efa7e7f4226c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Aug 18 17:01:57 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:37:26 2012 +0200"
      },
      "message": "uprobes: uprobes_treelock should not disable irqs\n\nNobody plays with uprobes_tree/uprobes_treelock in interrupt context,\nno need to disable irqs.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6d1d8dfa8b65831cfa9a528e3d17efa7e7f4226c",
      "tree": "2e13b65228f1c879bee978acc35ec7f6755f7ba5",
      "parents": [
        "ded86e7c8fc4404414c4700010c9962ea8bd083a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Aug 30 19:26:22 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sat Sep 15 17:34:05 2012 +0200"
      },
      "message": "uprobes: Don\u0027t put NULL pointer in uprobe_register()\n\nalloc_uprobe() might return a NULL pointer, put_uprobe() can\u0027t deal with\nthis.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8c7f6edbda01f1b1a2e60ad61f14fe38023e433b",
      "tree": "f1db9712b109575cba86e37140e1e4f8a56ca780",
      "parents": [
        "fbcbe2b3c92ee1c930dcfcf8bb764074c100fd63"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Sep 13 12:20:58 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 14 12:01:16 2012 -0700"
      },
      "message": "cgroup: mark subsystems with broken hierarchy support and whine if cgroups are nested for them\n\nCurrently, cgroup hierarchy support is a mess.  cpu related subsystems\nbehave correctly - configuration, accounting and control on a parent\nproperly cover its children.  blkio and freezer completely ignore\nhierarchy and treat all cgroups as if they\u0027re directly under the root\ncgroup.  Others show yet different behaviors.\n\nThese differing interpretations of cgroup hierarchy make using cgroup\nconfusing and it impossible to co-mount controllers into the same\nhierarchy and obtain sane behavior.\n\nEventually, we want full hierarchy support from all subsystems and\nprobably a unified hierarchy.  Users using separate hierarchies\nexpecting completely different behaviors depending on the mounted\nsubsystem is deterimental to making any progress on this front.\n\nThis patch adds cgroup_subsys.broken_hierarchy and sets it to %true\nfor controllers which are lacking in hierarchy support.  The goal of\nthis patch is two-fold.\n\n* Move users away from using hierarchy on currently non-hierarchical\n  subsystems, so that implementing proper hierarchy support on those\n  doesn\u0027t surprise them.\n\n* Keep track of which controllers are broken how and nudge the\n  subsystems to implement proper hierarchy support.\n\nFor now, start with a single warning message.  We can whine louder\nlater on.\n\nv2: Fixed a typo spotted by Michal. Warning message updated.\n\nv3: Updated memcg part so that it doesn\u0027t generate warning in the\n    cases where .use_hierarchy\u003dfalse doesn\u0027t make the behavior\n    different from root.use_hierarchy\u003dtrue.  Fixed a typo spotted by\n    Glauber.\n\nv4: Check -\u003ebroken_hierarchy after cgroup creation is complete so that\n    -\u003ecreate() can affect the result per Michal.  Dropped unnecessary\n    memcg root handling per Michal.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "500ad2d8b01390c98bc6dce068bccfa9534b8212",
      "tree": "a7e1330e5380d4cb4be02820a86fbea1dc0da5c9",
      "parents": [
        "3ec18cd8b8f8395d0df604c62ab3bc2cf3a966b4"
      ],
      "author": {
        "name": "K.Prasad",
        "email": "Prasad.Krishnan@gmail.com",
        "time": "Thu Aug 02 13:46:35 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 04 17:29:53 2012 +0200"
      },
      "message": "perf/hwpb: Invoke __perf_event_disable() if interrupts are already disabled\n\nWhile debugging a warning message on PowerPC while using hardware\nbreakpoints, it was discovered that when perf_event_disable is invoked\nthrough hw_breakpoint_handler function with interrupts disabled, a\nsubsequent IPI in the code path would trigger a WARN_ON_ONCE message in\nsmp_call_function_single function.\n\nThis patch calls __perf_event_disable() when interrupts are already\ndisabled, instead of perf_event_disable().\n\nReported-by: Edjunior Barbosa Machado \u003cemachado@linux.vnet.ibm.com\u003e\nSigned-off-by: K.Prasad \u003cPrasad.Krishnan@gmail.com\u003e\n[naveen.n.rao@linux.vnet.ibm.com: v3: Check to make sure we target current task]\nSigned-off-by: Naveen N. Rao \u003cnaveen.n.rao@linux.vnet.ibm.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120802081635.5811.17737.stgit@localhost.localdomain\n[ Fixed build error on MIPS. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a6fa941d94b411bbd2b6421ffbde6db3c93e65ab",
      "tree": "2d80af531f906c6b27184148bbf15b8a7469c2a7",
      "parents": [
        "e3e45c01ae690e65f2650e5288b9af802e95a136"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Aug 20 14:59:25 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 04 17:29:22 2012 +0200"
      },
      "message": "perf_event: Switch to internal refcount, fix race with close()\n\nDon\u0027t mess with file refcounts (or keep a reference to file, for\nthat matter) in perf_event.  Use explicit refcount of its own\ninstead.  Deal with the race between the final reference to event\ngoing away and new children getting created for it by use of\natomic_long_inc_not_zero() in inherit_event(); just have the\nlatter free what it had allocated and return NULL, that works\nout just fine (children of siblings of something doomed are\ncreated as singletons, same as if the child of leader had been\ncreated and immediately killed).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120820135925.GG23464@ZenIV.linux.org.uk\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "ded86e7c8fc4404414c4700010c9962ea8bd083a",
      "tree": "39528d3fd485701e239fed27e2f646c5fd0d53d5",
      "parents": [
        "61559a8165da2b6bab7621ac36379c6280efacb6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 18:07:03 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:20 2012 +0200"
      },
      "message": "uprobes: Remove \"verify\" argument from set_orig_insn()\n\nNobody does set_orig_insn(verify \u003d\u003e false), and I think nobody will.\nRemove this argument. IIUC set_orig_insn(verify \u003d\u003e false) was needed\nto single-step without xol area.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "61559a8165da2b6bab7621ac36379c6280efacb6",
      "tree": "22d885fda72ffadbaa735ceeeabd266177d66eab",
      "parents": [
        "f8ac4ec9c064b330dcc49e03c450fe74298c4622"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 17:17:46 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:19 2012 +0200"
      },
      "message": "uprobes: Fold uprobe_reset_state() into uprobe_dup_mmap()\n\nNow that we have uprobe_dup_mmap() we can fold uprobe_reset_state()\ninto the new hook and remove it. mmput()-\u003euprobe_clear_state() can\u0027t\nbe called before dup_mmap().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f8ac4ec9c064b330dcc49e03c450fe74298c4622",
      "tree": "62d53120d0289719438d27de5f868c36e136ed28",
      "parents": [
        "78f7411668aa0b2006d331f6a288416dd91b8e5d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 17:11:42 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:18 2012 +0200"
      },
      "message": "uprobes: Introduce MMF_HAS_UPROBES\n\nAdd the new MMF_HAS_UPROBES flag. It is set by install_breakpoint()\nand it is copied by dup_mmap(), uprobe_pre_sstep_notifier() checks\nit to avoid the slow path if the task was never probed. Perhaps it\nmakes sense to check it in valid_vma(is_register \u003d\u003e false) as well.\n\nThis needs the new dup_mmap()-\u003euprobe_dup_mmap() hook. We can\u0027t use\nuprobe_reset_state() or put MMF_HAS_UPROBES into MMF_INIT_MASK, we\nneed oldmm-\u003emmap_sem to avoid the race with uprobe_register() or\nmmap() from another thread.\n\nCurrently we never clear this bit, it can be false-positive after\nuprobe_unregister() or uprobe_munmap() or if dup_mmap() hits the\nprobed VM_DONTCOPY vma. But this is fine correctness-wise and has\nno effect unless the task hits the non-uprobe breakpoint.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "78f7411668aa0b2006d331f6a288416dd91b8e5d",
      "tree": "b48492a829701dce94ed098ad11b49663b072354",
      "parents": [
        "5e5be71ab3fd8bd2076606923791ece1634c199c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 17:35:08 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:18 2012 +0200"
      },
      "message": "uprobes: Do not use -EEXIST in install_breakpoint() paths\n\n-EEXIST from install_breakpoint() no longer makes sense, all\ncallers should simply treat it as \"success\". Change the code\nto return zero and simplify register_for_each_vma().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5e5be71ab3fd8bd2076606923791ece1634c199c",
      "tree": "3bfa62096792ec812d8b4e3aa3caa6b5662384da",
      "parents": [
        "f1a45d023193f7d8e55e384090b645d609325393"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 06 14:49:56 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:17 2012 +0200"
      },
      "message": "uprobes: Change uprobe_mmap() to ignore the errors but check fatal_signal_pending()\n\nOnce install_breakpoint() fails uprobe_mmap() \"ignores\" all other\nuprobes and returns the error.\n\nIt was never really needed to to stop after the first error, and\nin fact it was always wrong at least in -ENOTSUPP case.\n\nChange uprobe_mmap() to ignore the errors and always return 0.\nThis is not what we want in the long term, but until we teach\nthe callers to handle the failure it would be better to remove\nthe pointless complications. And this doesn\u0027t look too bad, the\nonly \"reasonable\" error is ENOMEM but in this case the caller\nshould be oom-killed in the likely case or the system has more\nserious problems.\n\nHowever it makes sense to stop if fatal_signal_pending() \u003d\u003d T.\nIn particular this helps if the task was oom-killed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f1a45d023193f7d8e55e384090b645d609325393",
      "tree": "7f901f3dbd23a7602bf3d4bf774862a3ee5b7640",
      "parents": [
        "647c42dfd40fec032a4c8525a755160f0765921f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 06 14:13:23 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:17 2012 +0200"
      },
      "message": "uprobes: Kill dup_mmap()-\u003euprobe_mmap(), simplify uprobe_mmap/munmap\n\n1. Kill dup_mmap()-\u003euprobe_mmap(), it was only needed to calculate\n   new_mm-\u003euprobes_state.count removed by the previous patch.\n\n   If the forking process has a pending uprobe (int3) in vma, it will\n   be copied by copy_page_range(), note that it checks vma-\u003eanon_vma\n   so \"Don\u0027t copy ptes\" is not possible after install_breakpoint()\n   which does anon_vma_prepare().\n\n2. Remove is_swbp_at_addr() and \"int count\" in uprobe_mmap(). Again,\n   this was needed for uprobes_state.count.\n\n   As a side effect this fixes the bug pointed out by Srikar,\n   this code lacked the necessary put_uprobe().\n\n3. uprobe_munmap() becomes a nop after the previous patch. Remove the\n   meaningless code but do not remove the helper, we will need it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "647c42dfd40fec032a4c8525a755160f0765921f",
      "tree": "f8bcb634d5cbebcc2168d6834d8a3a27d221c062",
      "parents": [
        "8bd874456e2ec49b9e64372ddc89a6f88901d184"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 06 13:15:09 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:16 2012 +0200"
      },
      "message": "uprobes: Kill uprobes_state-\u003ecount\n\nuprobes_state-\u003ecount is only needed to avoid the slow path in\nuprobe_pre_sstep_notifier(). It is also checked in uprobe_munmap()\nbut ironically its only goal to decrement this counter. However,\nit is very broken. Just some examples:\n\n- uprobe_mmap() can race with uprobe_unregister() and wrongly\n  increment the counter if it hits the non-uprobe \"int3\". Note\n  that install_breakpoint() checks -\u003econsumers first and returns\n  -EEXIST if it is NULL.\n\n  \"atomic_sub() if error\" in uprobe_mmap() looks obviously wrong\n  too.\n\n- uprobe_munmap() can race with uprobe_register() and wrongly\n  decrement the counter by the same reason.\n\n- Suppose an appication tries to increase the mmapped area via\n  sys_mremap(). vma_adjust() does uprobe_munmap(whole_vma) first,\n  this can nullify the counter temporarily and race with another\n  thread which can hit the bp, the application will be killed by\n  SIGTRAP.\n\n- Suppose an application mmaps 2 consecutive areas in the same file\n  and one (or both) of these areas has uprobes. In the likely case\n  mmap_region()-\u003evma_merge() suceeds. Like above, this leads to\n  uprobe_munmap/uprobe_mmap from vma_merge()-\u003evma_adjust() but then\n  mmap_region() does another uprobe_mmap(resulting_vma) and doubles\n  the counter.\n\nThis patch only removes this counter and fixes the compile errors,\nthen we will try to cleanup the changed code and add something else\ninstead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8bd874456e2ec49b9e64372ddc89a6f88901d184",
      "tree": "fe918f684d04e88c7ba55c5ba56ee4ce7f3c7b74",
      "parents": [
        "61e1d394984110e2e76f25572d5b1b5d48796751"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Aug 07 18:12:30 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:16 2012 +0200"
      },
      "message": "uprobes: Remove check for uprobe variable in handle_swbp()\n\nby the time we get here (after we pass cleanup_ret) uprobe is always is\nset. If it is NULL we leave very early in the code.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "61e1d394984110e2e76f25572d5b1b5d48796751",
      "tree": "e189b458a639d23986c0ebe0f2c52879b2a324a3",
      "parents": [
        "508dc4f8eece1a70c493afc6511fdf5934fef567"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Fri Jun 01 14:49:50 2012 +0530"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:15 2012 +0200"
      },
      "message": "uprobes: Remove redundant lock_page/unlock_page\n\nSince read_opcode() reads from the referenced page and doesnt modify\nthe page contents nor the page attributes, there is no need to lock\nthe page.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "d077526485d5c9b12fe85d0b2b3b7041e6bc5f91",
      "tree": "69b619844bdf800f2d292de5b54eeb7c85d1e094",
      "parents": [
        "c5ebcedb566ef17bda7b02686e0d658a7bb42ee7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 07 15:20:41 2012 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Aug 10 12:40:57 2012 -0300"
      },
      "message": "perf: Add attribute to filter out callchains\n\nIntroducing following bits to the the perf_event_attr struct:\n\n  - exclude_callchain_kernel to filter out kernel callchain\n    from the sample dump\n\n  - exclude_callchain_user to filter out user callchain\n    from the sample dump\n\nWe need to be able to disable standard user callchain dump when we use\nthe dwarf cfi callchain mode, because frame pointer based user\ncallchains are useless in this mode.\n\nImplementing also exclude_callchain_kernel to have complete set of\noptions.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\n[ Added kernel callchains filtering ]\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Benjamin Redelings \u003cbenjamin.redelings@nescent.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1344345647-11536-7-git-send-email-jolsa@redhat.com\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "c5ebcedb566ef17bda7b02686e0d658a7bb42ee7",
      "tree": "46619f5d62f0fbe9a6389ce20fd5ed92c25755e3",
      "parents": [
        "5685e0ff45f5df67e79e9b052b6ffd501ff38c11"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Aug 07 15:20:40 2012 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Aug 10 12:17:58 2012 -0300"
      },
      "message": "perf: Add ability to attach user stack dump to sample\n\nIntroducing PERF_SAMPLE_STACK_USER sample type bit to trigger the dump\nof the user level stack on sample. The size of the dump is specified by\nsample_stack_user value.\n\nBeing able to dump parts of the user stack, starting from the stack\npointer, will be useful to make a post mortem dwarf CFI based stack\nunwinding.\n\nAdded HAVE_PERF_USER_STACK_DUMP config option to determine if the\narchitecture provides user stack dump on perf event samples.  This needs\naccess to the user stack pointer which is not unified across\narchitectures. Enabling this for x86 architecture.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nOriginal-patch-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Benjamin Redelings \u003cbenjamin.redelings@nescent.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1344345647-11536-6-git-send-email-jolsa@redhat.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "5685e0ff45f5df67e79e9b052b6ffd501ff38c11",
      "tree": "ead6bd92a49b42ec0ca5bfee467e03e37656a6f1",
      "parents": [
        "91d7753a45f8525dc75b6be01e427dc1c378dc16"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Aug 07 15:20:39 2012 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Aug 10 12:16:22 2012 -0300"
      },
      "message": "perf: Add perf_output_skip function to skip bytes in sample\n\nIntroducing perf_output_skip function to be able to skip data within the\nperf ring buffer.\n\nWhen writing data into perf ring buffer we first reserve needed place in\nring buffer and then copy the actual data.\n\nThere\u0027s a possibility we won\u0027t be able to fill all the reserved size\nwith data, so we need a way to skip the remaining bytes.\n\nThis is going to be useful when storing the user stack dump, where we\nmight end up with less data than we originally requested.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Benjamin Redelings \u003cbenjamin.redelings@nescent.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1344345647-11536-5-git-send-email-jolsa@redhat.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "91d7753a45f8525dc75b6be01e427dc1c378dc16",
      "tree": "906a2c335d4403a39bd0f09ed3e338865d3df49b",
      "parents": [
        "4018994f3d8785275ef0e7391b75c3462c029e56"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 07 15:20:38 2012 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Aug 10 11:44:06 2012 -0300"
      },
      "message": "perf: Factor __output_copy to be usable with specific copy function\n\nAdding a generic way to use __output_copy function with specific copy\nfunction via DEFINE_PERF_OUTPUT_COPY macro.\n\nUsing this to add new __output_copy_user function, that provides output\ncopy from user pointers. For x86 the copy_from_user_nmi function is used\nand __copy_from_user_inatomic for the rest of the architectures.\n\nThis new function will be used in user stack dump on sample, coming in\nnext patches.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Benjamin Redelings \u003cbenjamin.redelings@nescent.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1344345647-11536-4-git-send-email-jolsa@redhat.com\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "4018994f3d8785275ef0e7391b75c3462c029e56",
      "tree": "661b5c488977c5150eb9d1ac4cec944309c83a16",
      "parents": [
        "c5e63197db519bae1c33e41ea0342a50f39e7a93"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue Aug 07 15:20:37 2012 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Aug 10 11:31:26 2012 -0300"
      },
      "message": "perf: Add ability to attach user level registers dump to sample\n\nIntroducing PERF_SAMPLE_REGS_USER sample type bit to trigger the dump of\nuser level registers on sample. Registers we want to dump are specified\nby sample_regs_user bitmask.\n\nOnly user level registers are dumped at the moment. Meaning the register\nvalues of the user space context as it was before the user entered the\nkernel for whatever reason (syscall, irq, exception, or a PMI happening\nin userspace).\n\nThe layout of the sample_regs_user bitmap is described in\nasm/perf_regs.h for archs that support register dump.\n\nThis is going to be useful to bring Dwarf CFI based stack unwinding on\ntop of samples.\n\nOriginal-patch-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n[ Dump registers ABI specification. ]\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Benjamin Redelings \u003cbenjamin.redelings@nescent.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1344345647-11536-3-git-send-email-jolsa@redhat.com\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "e6dab5ffab59e910ec0e3355f4a6f29f7a7be474",
      "tree": "87acf0fb071b8d09794ac7d834cb256de030cceb",
      "parents": [
        "d07bdfd322d307789f15b427dbcc39257665356f"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Wed Jul 11 18:14:58 2012 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Jul 31 17:02:05 2012 +0200"
      },
      "message": "perf/trace: Add ability to set a target task for events\n\nA few events are interesting not only for a current task.\nFor example, sched_stat_* events are interesting for a task\nwhich wakes up. For this reason, it will be good if such\nevents will be delivered to a target task too.\n\nNow a target task can be set by using __perf_task().\n\nThe original idea and a draft patch belongs to Peter Zijlstra.\n\nI need these events for profiling sleep times. sched_switch is used for\ngetting callchains and sched_stat_* is used for getting time periods.\nThese events are combined in user space, then it can be analyzed by\nperf tools.\n\nInspired-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1342016098-213063-1-git-send-email-avagin@openvz.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "194f8dcbe9629d8e9346cf96345a9c0bbf0e67ae",
      "tree": "10aac2913ee4f9263af68c42682c456788d990fe",
      "parents": [
        "57683f72b8c01c53c85fe13e82fe1feb3a06bcd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:49 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:25 2012 +0200"
      },
      "message": "uprobes: __replace_page() needs munlock_vma_page()\n\nLike do_wp_page(), __replace_page() should do munlock_vma_page()\nfor the case when the old page still has other !VM_LOCKED\nmappings. Unfortunately this needs mm/internal.h.\n\nAlso, move put_page() outside of ptl lock. This doesn\u0027t really\nmatter but looks a bit better.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182249.GA20372@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "57683f72b8c01c53c85fe13e82fe1feb3a06bcd5",
      "tree": "87014149ef710e9f3c0af87cd6ec3118fc4eb723",
      "parents": [
        "f4d6dfe55115efe981b4b5f37183ddccaaa792f0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Jul 29 20:22:47 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jul 30 11:27:25 2012 +0200"
      },
      "message": "uprobes: Rename vma_address() and make it return \"unsigned long\"\n\n1. vma_address() returns loff_t, this looks confusing and this\n   is unnecessary after the previous change. Make it return \"ulong\",\n   all callers truncate the result anyway.\n\n2. Its name conflicts with mm/rmap.c:vma_address(), rename it to\n   offset_to_vaddr(), this matches vaddr_to_offset().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar.vnet.ibm.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120729182247.GA20365@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    }
  ],
  "next": "f4d6dfe55115efe981b4b5f37183ddccaaa792f0"
}
