)]}'
{
  "log": [
    {
      "commit": "03541f8b69c058162e4cf9675ec9181e6a204d55",
      "tree": "67cd314f717b1b455861d1cfb9761162a44096b3",
      "parents": [
        "a003236c32706f3c1f74d4e3b98c58cf0d9a9d8f"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Oct 14 16:58:03 2009 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 14 08:39:32 2009 +0200"
      },
      "message": "perf_event: Adjust frequency and unthrottle for non-group-leader events\n\nThe loop in perf_ctx_adjust_freq checks the frequency of sampling\nevent counters, and adjusts the event interval and unthrottles the\nevent if required, and resets the interrupt count for the event.\nHowever, at present it only looks at group leaders.\n\nThis means that a sampling event that is not a group leader will\neventually get throttled, once its interrupt count reaches\nsysctl_perf_event_sample_rate/HZ --- and that is guaranteed to\nhappen, if the event is active for long enough, since the interrupt\ncount never gets reset.  Once it is throttled it never gets\nunthrottled, so it basically just stops working at that point.\n\nThis fixes it by making perf_ctx_adjust_freq use ctx-\u003eevent_list\nrather than ctx-\u003egroup_list.  The existing spin_lock/spin_unlock\naround the loop makes it unnecessary to put rcu_read_lock/\nrcu_read_unlock around the list_for_each_entry_rcu().\n\nReported-by: Mark W. Krentel \u003ckrentel@cs.rice.edu\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c19157.26731.855609.165622@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "906010b2134e14a2e377decbadd357b3d0ab9c6a",
      "tree": "598b30d08f5ca8df1e00abc295b120fa1bd2c2e2",
      "parents": [
        "e13dbd7d75d1ecc315c6e3071b3c4e8fba4f6bec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 21 16:08:49 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 06 14:21:50 2009 +0200"
      },
      "message": "perf_event: Provide vmalloc() based mmap() backing\n\nSome architectures such as Sparc, ARM and MIPS (basically\neverything with flush_dcache_page()) need to deal with dcache\naliases by carefully placing pages in both kernel and user maps.\n\nThese architectures typically have to use vmalloc_user() for this.\n\nHowever, on other architectures, vmalloc() is not needed and has\nthe downsides of being more restricted and slower than regular\nallocations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1254830228.21044.272.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27f9994c50e95f3a5a81fe4c7491a9f9cffe6ec0",
      "tree": "0bab616325b5ebd3529842e1082f7a32fd87c149",
      "parents": [
        "8c9ed8e14c342ec5e7f27e7e498f62409a10eb29"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Sep 25 13:54:01 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 01 09:30:44 2009 +0200"
      },
      "message": "perf_event: Clean up perf_event_init_task()\n\nWhile at it: we can traverse ctx-\u003egroup_list to get all\ngroup leader, it should be safe since we hold ctx-\u003emutex.\n\nChanglog v1-\u003ev2:\n\n  - remove WARN_ON_ONCE() according to Peter Zijlstra\u0027s suggestion\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c4ABC5AF9.6060808@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8c9ed8e14c342ec5e7f27e7e498f62409a10eb29",
      "tree": "9f4765f480a567a3a6139083bf334ae2f83f9055",
      "parents": [
        "39a90a8ef17fe6fbf4b45e46e3c10d3b8b4a3dea"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Fri Sep 25 13:51:17 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 01 09:30:44 2009 +0200"
      },
      "message": "perf_event: Fix event group handling in __perf_event_sched_*()\n\nPaul Mackerras says:\n\n \"Actually, looking at this more closely, it has to be a group\n leader anyway since it\u0027s at the top level of ctx-\u003egroup_list.  In\n fact I see four places where we do:\n\n  list_for_each_entry(event, \u0026ctx-\u003egroup_list, group_entry) {\n\tif (event \u003d\u003d event-\u003egroup_leader)\n\t\t...\n\n or the equivalent, three of which appear to have been introduced\n by afedadf2 (\"perf_counter: Optimize sched in/out of counters\")\n back in May by Peter Z.\n\n As far as I can see the if () is superfluous in each case (a\n singleton event will be a group of 1 and will have its\n group_leader pointing to itself).\"\n\n [ See: http://marc.info/?l\u003dlinux-kernel\u0026m\u003d125361238901442\u0026w\u003d2 ]\n\nAnd Peter Zijlstra points out this is a bugfix:\n\n \"The intent was to call event_sched_{in,out}() for single event\n  groups because that\u0027s cheaper than group_sched_{in,out}(),\n  however..\n\n  - as you noticed, I got the condition wrong, it should have read:\n\n      list_empty(\u0026event-\u003esibling_list)\n\n  - it failed to call group_can_go_on() which deals with -\u003eexclusive.\n\n  - it also doesn\u0027t call hw_perf_group_sched_in() which might break\n    power.\"\n\n [ See: http://marc.info/?l\u003dlinux-kernel\u0026m\u003d125369523318583\u0026w\u003d2 ]\n\nChangelog v1-\u003ev2:\n\n - Fix the title name according to Peter Zijlstra\u0027s suggestion\n\n - Remove the comments and WARN_ON_ONCE() as Peter Zijlstra\u0027s\n   suggestion\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c4ABC5A55.7000208@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57c0c15b5244320065374ad2c54f4fbec77a6428",
      "tree": "35369d817f5925aca09b083bba47c437b91386d9",
      "parents": [
        "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:20:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:34:11 2009 +0200"
      },
      "message": "perf: Tidy up after the big rename\n\n - provide compatibility Kconfig entry for existing PERF_COUNTERS .config\u0027s\n\n - provide courtesy copy of old perf_counter.h, for user-space projects\n\n - small indentation fixups\n\n - fix up MAINTAINERS\n\n - fix small x86 printout fallout\n\n - fix up small PowerPC comment fallout (use \u0027counter\u0027 as in register)\n\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6",
      "tree": "81f98a3ab46c589792057fe2392c1e10f8ad7893",
      "parents": [
        "dfc65094d0313cc48969fa60bcf33d693aeb05a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:02:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:28:04 2009 +0200"
      },
      "message": "perf: Do the big rename: Performance Counters -\u003e Performance Events\n\nBye-bye Performance Counters, welcome Performance Events!\n\nIn the past few months the perfcounters subsystem has grown out its\ninitial role of counting hardware events, and has become (and is\nbecoming) a much broader generic event enumeration, reporting, logging,\nmonitoring, analysis facility.\n\nNaming its core object \u0027perf_counter\u0027 and naming the subsystem\n\u0027perfcounters\u0027 has become more and more of a misnomer. With pending\ncode like hw-breakpoints support the \u0027counter\u0027 name is less and\nless appropriate.\n\nAll in one, we\u0027ve decided to rename the subsystem to \u0027performance\nevents\u0027 and to propagate this rename through all fields, variables\nand API names. (in an ABI compatible fashion)\n\nThe word \u0027event\u0027 is also a bit shorter than \u0027counter\u0027 - which makes\nit slightly more convenient to write/handle as well.\n\nThanks goes to Stephane Eranian who first observed this misnomer and\nsuggested a rename.\n\nUser-space tooling and ABI compatibility is not affected - this patch\nshould be function-invariant. (Also, defconfigs were not touched to\nkeep the size down.)\n\nThis patch has been generated via the following script:\n\n  FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n  sed -i \\\n    -e \u0027s/PERF_EVENT_/PERF_RECORD_/g\u0027 \\\n    -e \u0027s/PERF_COUNTER/PERF_EVENT/g\u0027 \\\n    -e \u0027s/perf_counter/perf_event/g\u0027 \\\n    -e \u0027s/nb_counters/nb_events/g\u0027 \\\n    -e \u0027s/swcounter/swevent/g\u0027 \\\n    -e \u0027s/tpcounter_event/tp_event/g\u0027 \\\n    $FILES\n\n  for N in $(find . -name perf_counter.[ch]); do\n    M\u003d$(echo $N | sed \u0027s/perf_counter/perf_event/g\u0027)\n    mv $N $M\n  done\n\n  FILES\u003d$(find . -name perf_event.*)\n\n  sed -i \\\n    -e \u0027s/COUNTER_MASK/REG_MASK/g\u0027 \\\n    -e \u0027s/COUNTER/EVENT/g\u0027 \\\n    -e \u0027s/\\\u003cevent\\\u003e/event_id/g\u0027 \\\n    -e \u0027s/counter/event/g\u0027 \\\n    -e \u0027s/Counter/Event/g\u0027 \\\n    $FILES\n\n... to keep it as correct as possible. This script can also be\nused by anyone who has pending perfcounters patches - it converts\na Linux kernel tree over to the new naming. We tried to time this\nchange to the point in time where the amount of pending patches\nis the smallest: the end of the merge window.\n\nNamespace clashes were fixed up in a preparatory patch - and some\nstylistic fallout will be fixed up in a subsequent patch.\n\n( NOTE: \u0027counters\u0027 are still the proper terminology when we deal\n  with hardware registers - and these sed scripts are a bit\n  over-eager in renaming them. I\u0027ve undone some of that, but\n  in case there\u0027s something left where \u0027counter\u0027 would be\n  better than \u0027event\u0027 we can undo that on an individual basis\n  instead of touching an otherwise nicely automated patch. )\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
