)]}'
{
  "log": [
    {
      "commit": "a181dc14ed23f7a499542ff4c78532b5f24bb18f",
      "tree": "6f606d8c549318ce1d29e30957f38b5e1429552d",
      "parents": [
        "6aed64a8a440360be875f31eabeacaddb83ef25f"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Aug 05 15:58:29 2012 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Aug 06 19:00:35 2012 +0300"
      },
      "message": "jump_label: Export jump_label_rate_limit()\n\nCC: Jason Baron \u003cjbaron@redhat.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "8eedce996556d7d06522cd3a0e6069141c8dffe0",
      "tree": "1b24c85bd91fed430b3fbdec195fc1d35751e28f",
      "parents": [
        "a706d4fc9e56d8e46393533e0cdca2d35fa5c7e5"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Feb 28 13:49:01 2012 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 28 20:01:08 2012 +0100"
      },
      "message": "static keys: Inline the static_key_enabled() function\n\nIn the jump label enabled case, calling static_key_enabled()\nresults in a function call. The function returns the results of\na compare, so it really doesn\u0027t need the overhead of a full\nfunction call. Let\u0027s make it \u0027static inline\u0027 for both the jump\nlabel enabled and disabled cases.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: a.p.zijlstra@chello.nl\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/201202281849.q1SIn1p2023270@int-mx10.intmail.prod.int.phx2.redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5905afb0ee6550b42c49213da1c22d67316c194",
      "tree": "253fdb322e6e5b257ffda3b9b66bce90a473a6f7",
      "parents": [
        "1cfa60dc7d7c7cc774a44eee47ff135a644a1f31"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 08:31:31 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 10:05:59 2012 +0100"
      },
      "message": "static keys: Introduce \u0027struct static_key\u0027, static_key_true()/false() and static_key_slow_[inc|dec]()\n\nSo here\u0027s a boot tested patch on top of Jason\u0027s series that does\nall the cleanups I talked about and turns jump labels into a\nmore intuitive to use facility. It should also address the\nvarious misconceptions and confusions that surround jump labels.\n\nTypical usage scenarios:\n\n        #include \u003clinux/static_key.h\u003e\n\n        struct static_key key \u003d STATIC_KEY_INIT_TRUE;\n\n        if (static_key_false(\u0026key))\n                do unlikely code\n        else\n                do likely code\n\nOr:\n\n        if (static_key_true(\u0026key))\n                do likely code\n        else\n                do unlikely code\n\nThe static key is modified via:\n\n        static_key_slow_inc(\u0026key);\n        ...\n        static_key_slow_dec(\u0026key);\n\nThe \u0027slow\u0027 prefix makes it abundantly clear that this is an\nexpensive operation.\n\nI\u0027ve updated all in-kernel code to use this everywhere. Note\nthat I (intentionally) have not pushed through the rename\nblindly through to the lowest levels: the actual jump-label\npatching arch facility should be named like that, so we want to\ndecouple jump labels from the static-key facility a bit.\n\nOn non-jump-label enabled architectures static keys default to\nlikely()/unlikely() branches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: a.p.zijlstra@chello.nl\nCc: mathieu.desnoyers@efficios.com\nCc: davem@davemloft.net\nCc: ddaney.cavm@gmail.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a746e3cc984b0aa5b620dd07c1a433283b1835cf",
      "tree": "8e0db62a42101636e04097e28830420fa9906fc4",
      "parents": [
        "fadf0464b83f91ba021a358c0238a0810c0d2a0b"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Feb 21 15:02:57 2012 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 07:59:40 2012 +0100"
      },
      "message": "jump label: Fix compiler warning\n\nWhile cross-compiling on sparc64, I found:\n\nkernel/jump_label.c: In function \u0027jump_label_update\u0027:\nkernel/jump_label.c:447:40: warning: cast from pointer to\ninteger of different size [-Wpointer-to-int-cast]\n\nFix by casting to \u0027unsigned long\u0027.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@efficios.com\nCc: davem@davemloft.net\nCc: ddaney.cavm@gmail.com\nCc: a.p.zijlstra@chello.nl\nLink: http://lkml.kernel.org/r/08026cbc6df80619cae833ef1ebbbc43efab69ab.1329851692.git.jbaron@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fadf0464b83f91ba021a358c0238a0810c0d2a0b",
      "tree": "9c02e2959d590b3db212c10452fa45c26324485d",
      "parents": [
        "09bda4432a8a4d4db2b2b94697abc8d732a9ff73"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Feb 21 15:02:53 2012 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 07:59:39 2012 +0100"
      },
      "message": "jump label: Add a WARN() if jump label key count goes negative\n\nThe count on a jump label key should never go negative. Add a\nWARN() to check for this condition.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@efficios.com\nCc: davem@davemloft.net\nCc: ddaney.cavm@gmail.com\nCc: a.p.zijlstra@chello.nl\nLink: http://lkml.kernel.org/r/3c68556121be4d1920417a3fe367da1ec38246b4.1329851692.git.jbaron@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e31905f293ae84e4f120ed9e414031eaefa0bdf",
      "tree": "153204ff0dca820e760007bc24075ec7fb46a276",
      "parents": [
        "ff5c2c0316ff0e3e2dba3ca14167d994453df093",
        "b3d9468a8bd218a695e3a0ff112cd4efd27b670a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Dec 25 15:44:43 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Dec 27 11:22:24 2011 +0200"
      },
      "message": "Merge remote-tracking branch \u0027tip/perf/core\u0027 into kvm-updates/3.3\n\n* tip/perf/core: (66 commits)\n  perf, x86: Expose perf capability to other modules\n  perf, x86: Implement arch event mask as quirk\n  x86, perf: Disable non available architectural events\n  jump_label: Provide jump_label_key initializers\n  jump_label, x86: Fix section mismatch\n  perf, core: Rate limit perf_sched_events jump_label patching\n  perf: Fix enable_on_exec for sibling events\n  perf: Remove superfluous arguments\n  perf, x86: Prefer fixed-purpose counters when scheduling\n  perf, x86: Fix event scheduler for constraints with overlapping counters\n  perf, x86: Implement event scheduler helper functions\n  perf: Avoid a useless pmu_disable() in the perf-tick\n  x86/tools: Add decoded instruction dump mode\n  x86: Update instruction decoder to support new AVX formats\n  x86/tools: Fix insn_sanity message outputs\n  x86/tools: Fix instruction decoder message output\n  x86: Fix instruction decoder to handle grouped AVX instructions\n  x86/tools: Fix Makefile to build all test tools\n  perf test: Soft errors shouldn\u0027t stop the \"Validate PERF_RECORD_\" test\n  perf test: Validate PERF_RECORD_ events and perf_sample fields\n  ...\n\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n* commit \u0027b3d9468a8bd218a695e3a0ff112cd4efd27b670a\u0027: (66 commits)\n  perf, x86: Expose perf capability to other modules\n  perf, x86: Implement arch event mask as quirk\n  x86, perf: Disable non available architectural events\n  jump_label: Provide jump_label_key initializers\n  jump_label, x86: Fix section mismatch\n  perf, core: Rate limit perf_sched_events jump_label patching\n  perf: Fix enable_on_exec for sibling events\n  perf: Remove superfluous arguments\n  perf, x86: Prefer fixed-purpose counters when scheduling\n  perf, x86: Fix event scheduler for constraints with overlapping counters\n  perf, x86: Implement event scheduler helper functions\n  perf: Avoid a useless pmu_disable() in the perf-tick\n  x86/tools: Add decoded instruction dump mode\n  x86: Update instruction decoder to support new AVX formats\n  x86/tools: Fix insn_sanity message outputs\n  x86/tools: Fix instruction decoder message output\n  x86: Fix instruction decoder to handle grouped AVX instructions\n  x86/tools: Fix Makefile to build all test tools\n  perf test: Soft errors shouldn\u0027t stop the \"Validate PERF_RECORD_\" test\n  perf test: Validate PERF_RECORD_ events and perf_sample fields\n  ...\n"
    },
    {
      "commit": "a65cf5181aa608addcb2873c8ed90413a9f539cb",
      "tree": "3d2429790c26e3f38dc654afc404066254c4fed4",
      "parents": [
        "831bf664e9c1fc08fc6b3984d00d275cac82f5e9"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Mon Nov 28 20:39:59 2011 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Dec 27 11:22:04 2011 +0200"
      },
      "message": "jump-label: export jump_label_inc/jump_label_dec\n\nExport these two symbols, they will be used by KVM mmu audit\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "ac99b862fb98a36929831791da31714f709c2aa8",
      "tree": "93edba15ae7bb289b9a820af6e75d24e43ebea9a",
      "parents": [
        "9cdbe1cbac4ec318037297175587a0080acc9d11"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 06 14:20:14 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 20:41:03 2011 +0100"
      },
      "message": "jump_label: Provide jump_label_key initializers\n\nProvide two initializers for jump_label_key that initialize it enabled\nor disabled. Also modify all jump_label code to allow for jump_labels to be\ninitialized enabled.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLink: http://lkml.kernel.org/n/tip-p40e3yj21b68y03z1yv825e7@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9cdbe1cbac4ec318037297175587a0080acc9d11",
      "tree": "3871708eb2f67d628c8ad045a16174db0f80a59e",
      "parents": [
        "cc991b83b3eb11b253dd932932fa0bfd09c7564a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Dec 06 17:27:29 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 20:41:02 2011 +0100"
      },
      "message": "jump_label, x86: Fix section mismatch\n\nWARNING: arch/x86/kernel/built-in.o(.text+0x4c71): Section mismatch in\nreference from the function arch_jump_label_transform_static() to the\nfunction .init.text:text_poke_early()\nThe function arch_jump_label_transform_static() references\nthe function __init text_poke_early().\nThis is often because arch_jump_label_transform_static lacks a __init\nannotation or the annotation of text_poke_early is wrong.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nLink: http://lkml.kernel.org/n/tip-9lefe89mrvurrwpqw5h8xm8z@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b202952075f62603bea9bfb6ebc6b0420db11949",
      "tree": "9c8e0538b455e68b5c371caba5b1585ed0ef9d8a",
      "parents": [
        "b79387ef185af2323594920923cecba5753c3817"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Nov 27 17:59:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:34:02 2011 +0100"
      },
      "message": "perf, core: Rate limit perf_sched_events jump_label patching\n\njump_lable patching is very expensive operation that involves pausing all\ncpus. The patching of perf_sched_events jump_label is easily controllable\nfrom userspace by unprivileged user.\n\nWhen te user runs a loop like this:\n\n  \"while true; do perf stat -e cycles true; done\"\n\n... the performance of my test application that just increments a counter\nfor one second drops by 4%.\n\nThis is on a 16 cpu box with my test application using only one of\nthem. An impact on a real server doing real work will be worse.\n\nPerformance of KVM PMU drops nearly 50% due to jump_lable for \"perf\nrecord\" since KVM PMU implementation creates and destroys perf event\nfrequently.\n\nThis patch introduces a way to rate limit jump_label patching and uses\nit to fix the above problem.\n\nI believe that as jump_label use will spread the problem will become more\ncommon and thus solving it in a generic code is appropriate. Also fixing\nit in the perf code would result in moving jump_label accounting logic to\nperf code with all the ifdefs in case of JUMP_LABEL\u003dn kernel. With this\npatch all details are nicely hidden inside jump_label code.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111127155909.GO2557@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbbf7af4bf8fc69bc751818cf30521080fa47dcb",
      "tree": "bbc986e2013cdfeb3b99bacc2f5326b787b7e410",
      "parents": [
        "c7c6ec8becaf742b223c7b491f4893014be23a07"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Oct 18 19:55:51 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 05 13:28:46 2011 -0500"
      },
      "message": "jump_label: jump_label_inc may return before the code is patched\n\nIf cpu A calls jump_label_inc() just after atomic_add_return() is\ncalled by cpu B, atomic_inc_not_zero() will return value greater then\nzero and jump_label_inc() will return to a caller before jump_label_update()\nfinishes its job on cpu B.\n\nLink: http://lkml.kernel.org/r/20111018175551.GH17571@redhat.com\n\nCc: stable@vger.kernel.org\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "efc96737bd82b508794d2b28061a12af4a3f7766",
      "tree": "e9fe4982967b74c0d25a35a2d7f7c62d8be98a47",
      "parents": [
        "1ec454baf1245df4fdb5dae728da3363630ce6de",
        "7e9a49ef542610609144d1afcd516dc3fafac4d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n"
    },
    {
      "commit": "c8452afb7426f7e21388492f40227582e3e83879",
      "tree": "dd01f094321d9d8c6412d11cc4dd1a33d18b48f7",
      "parents": [
        "8ee3c92b7f2751c392be2d8fc360a410480b8757"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Oct 18 19:55:51 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 11:02:34 2011 -0500"
      },
      "message": "jump_label: jump_label_inc may return before the code is patched\n\nIf cpu A calls jump_label_inc() just after atomic_add_return() is\ncalled by cpu B, atomic_inc_not_zero() will return value greater then\nzero and jump_label_inc() will return to a caller before jump_label_update()\nfinishes its job on cpu B.\n\nLink: http://lkml.kernel.org/r/20111018175551.GH17571@redhat.com\n\nCc: stable@vger.kernel.org\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "97ce2c88f9ad42e3c60a9beb9fca87abf3639faa",
      "tree": "c25d41a8754b6e11dbf54ba69ebbee11fdffd07e",
      "parents": [
        "e71a5be15e47a73a2964712967fe93ee8ccf551b"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Wed Oct 12 16:17:54 2011 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Tue Oct 25 11:55:15 2011 -0700"
      },
      "message": "jump-label: initialize jump-label subsystem much earlier\n\nInitialize jump_labels much, much earlier, so they\u0027re available for use\nduring system setup.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "20284aa77c0f6227da4783a920b72dc61d4bcc09",
      "tree": "46fb708a9508e3d718be7eb432367547e71208d3",
      "parents": [
        "92e02396d7214fdc7c25239eb647eb48e6fe6ba9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Mon Oct 03 11:01:46 2011 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Tue Oct 25 11:54:31 2011 -0700"
      },
      "message": "jump_label: add arch_jump_label_transform_static() to optimise non-live code updates\n\nWhen updating a newly loaded module, the code is definitely not yet\nexecuting on any processor, so it can be updated with no need for any\nheavyweight synchronization.\n\nThis patch adds arch_jump_label_static() which is implemented as\narch_jump_label_transform() by default, but architectures can override\nit if it avoids, say, a call to stop_machine().\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "37348804e0289087d21ae8bff4c0732030a3c6ac",
      "tree": "dacd987e7e2778b30fccc4e580f852d9dcbd83b2",
      "parents": [
        "189c3fd68c7016e37c1ffd7a00009e2c944a9d06"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Thu Sep 29 11:10:05 2011 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Tue Oct 25 11:54:15 2011 -0700"
      },
      "message": "jump_label: if a key has already been initialized, don\u0027t nop it out\n\nIf a key has been enabled before jump_label_init() is called, don\u0027t\nnop it out.\n\nThis removes arch_jump_label_text_poke_early() (which can only nop\nout a site) and uses arch_jump_label_transform() instead.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
      "tree": "e59debeb1aea1650fd490b0264f66b4f70a26aca",
      "parents": [
        "debf1d4948bccf58fa172acb1a7306792d77705d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 21 10:35:55 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 29 09:59:17 2011 -0400"
      },
      "message": "jump_label: Fix jump_label update for modules\n\nThe jump labels entries for modules do not stop at __stop__jump_table,\nbut after mod-\u003ejump_entries + mod_num_jump_entries.\n\nBy checking the wrong end point, module trace events never get enabled.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nTested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4E00038B.2060404@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7cbc5b8d4a775a43875a09e29c49a2a8195b5b2d",
      "tree": "b172a445ca84bd463abc6006233799e0a5f422b2",
      "parents": [
        "9905ce8ad7b79dddd23c7b4753d0b2cdb65bde3c"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Tue May 10 12:43:46 2011 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 19:56:36 2011 -0400"
      },
      "message": "jump_label: Check entries limit in __jump_label_update\n\nWhen iterating the jump_label entries array (core or modules),\nthe __jump_label_update function peeks over the last entry.\n\nThe reason is that the end of the for loop depends on the key\nvalue of the processed entry. Thus when going through the\nlast array entry, we will touch the memory behind the array\nlimit.\n\nThis bug probably will never be triggered, since most likely the\nmemory behind the jump_label entries will be accesable and the\nentry-\u003ekey will be different than the expected value.\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20110510104346.GC1899@jolsa.brq.redhat.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "d430d3d7e646eb1eac2bb4aa244a644312e67c76",
      "tree": "0f52534f54d89e41042536ff2f1b2ce74c45c033",
      "parents": [
        "ee5e51f51be755830f57445e268ba50e88ccbdbb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Wed Mar 16 17:29:47 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 04 12:48:08 2011 -0400"
      },
      "message": "jump label: Introduce static_branch() interface\n\nIntroduce:\n\nstatic __always_inline bool static_branch(struct jump_label_key *key);\n\ninstead of the old JUMP_LABEL(key, label) macro.\n\nIn this way, jump labels become really easy to use:\n\nDefine:\n\n        struct jump_label_key jump_key;\n\nCan be used as:\n\n        if (static_branch(\u0026jump_key))\n                do unlikely code\n\nenable/disale via:\n\n        jump_label_inc(\u0026jump_key);\n        jump_label_dec(\u0026jump_key);\n\nthat\u0027s it!\n\nFor the jump labels disabled case, the static_branch() becomes an\natomic_read(), and jump_label_inc()/dec() are simply atomic_inc(),\natomic_dec() operations. We show testing results for this change below.\n\nThanks to H. Peter Anvin for suggesting the \u0027static_branch()\u0027 construct.\n\nSince we now require a \u0027struct jump_label_key *key\u0027, we can store a pointer into\nthe jump table addresses. In this way, we can enable/disable jump labels, in\nbasically constant time. This change allows us to completely remove the previous\nhashtable scheme. Thanks to Peter Zijlstra for this re-write.\n\nTesting:\n\nI ran a series of \u0027tbench 20\u0027 runs 5 times (with reboots) for 3\nconfigurations, where tracepoints were disabled.\n\njump label configured in\navg: 815.6\n\njump label *not* configured in (using atomic reads)\navg: 800.1\n\njump label *not* configured in (regular reads)\navg: 803.4\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110316212947.GA8792@redhat.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSuggested-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nTested-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "95bcd683fb694a3e2d0538bf486430a0dfbb4111",
      "tree": "c170ccfd23480b971065c3e700f64d590050fc87",
      "parents": [
        "de31c3ca8179d7c21def7ecb56e4fec0c8659d36"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Oct 29 11:02:43 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 29 12:56:13 2010 -0400"
      },
      "message": "jump label: Make arch_jump_label_text_poke_early() optional\n\nSome archs do not need to do anything special for jump labels on\nstartup (like MIPS).  This patch adds a weak function stub for\narch_jump_label_text_poke_early();\n\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: David Daney \u003cddaney@caviumnetworks.com\u003e\nSuggested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1286218615-24011-2-git-send-email-ddaney@caviumnetworks.com\u003e\nLKML-Reference: \u003c20101015201037.703989993@goodmis.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "91bad2f8d3057482b9afb599f14421b007136960",
      "tree": "ea5e09e74107593dcfc192c65c1395ed22674df4",
      "parents": [
        "b842f8faf6c7dc2005c6a70631c1a91bac02f180"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Oct 01 17:23:48 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 28 09:17:40 2010 -0400"
      },
      "message": "jump label: Fix deadlock b/w jump_label_mutex vs. text_mutex\n\nregister_kprobe() downs the \u0027text_mutex\u0027 and then calls\njump_label_text_reserved(), which downs the \u0027jump_label_mutex\u0027.\nHowever, the jump label code takes those mutexes in the reverse\norder.\n\nFix by requiring the caller of jump_label_text_reserved() to do\nthe jump label locking via the newly added: jump_label_lock(),\njump_label_unlock(). Currently, kprobes is the only user\nof jump_label_text_reserved().\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c759032c48d5e30c27f0bba003d09bffa8e9f28bb.1285965957.git.jbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b842f8faf6c7dc2005c6a70631c1a91bac02f180",
      "tree": "fa4c5ed7136be2e39b728173fcae2385b119bcef",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Oct 01 17:23:41 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Oct 28 09:17:02 2010 -0400"
      },
      "message": "jump label: Fix module __init section race\n\nJump label uses is_module_text_address() to ensure that the module\n__init sections are valid before updating them. However, between the\ncheck for a valid module __init section and the subsequent jump\nlabel update, the module\u0027s __init section could be freed out from under\nus.\n\nWe fix this potential race by adding a notifier callback to the\nMODULE_STATE_LIVE state. This notifier is called *after* the __init\nsection has been run but before it is going to be freed. In the\ncallback, the jump label code zeros the key value for any __init jump\ncode within the module, and we add a check for a non-zero key value when\nwe update jump labels. In this way we require no additional data\nstructures.\n\nThanks to Mathieu Desnoyers for pointing out this race condition.\n\nReported-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003cc6f037b7598777668025ceedd9294212fd95fa34.1285965957.git.jbaron@redhat.com\u003e\n\n[ Renamed remove_module_init() to remove_jump_label_module_init()\n  as suggested by Masami Hiramatsu. ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4c3ef6d79328c0e23ade60cbfc8d496123a6855c",
      "tree": "4a28260548ff4ad507d12716d6cdaa6bc0451a87",
      "parents": [
        "e0cf0cd49632552f063fb3ae58691946da45fb2e"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:08 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:30:46 2010 -0400"
      },
      "message": "jump label: Add jump_label_text_reserved() to reserve jump points\n\nAdd a jump_label_text_reserved(void *start, void *end), so that other\npieces of code that want to modify kernel text, can first verify that\njump label has not reserved the instruction.\n\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003c06236663a3a7b1c1f13576bb9eccb6d9c17b7bfe.1284733808.git.jbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bf5438fca2950b03c21ad868090cc1a8fcd49536",
      "tree": "9fc5693763263704de8d8ba1c37a84172dbe5eb7",
      "parents": [
        "fa6f2cc77081792e4edca9168420a3422299ef15"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:00 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:29:41 2010 -0400"
      },
      "message": "jump label: Base patch for jump label\n\nbase patch to implement \u0027jump labeling\u0027. Based on a new \u0027asm goto\u0027 inline\nassembly gcc mechanism, we can now branch to labels from an \u0027asm goto\u0027\nstatment. This allows us to create a \u0027no-op\u0027 fastpath, which can subsequently\nbe patched with a jump to the slowpath code. This is useful for code which\nmight be rarely used, but which we\u0027d like to be able to call, if needed.\nTracepoints are the current usecase that these are being implemented for.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003cee8b3595967989fdaf84e698dc7447d315ce972a.1284733808.git.jbaron@redhat.com\u003e\n\n[ cleaned up some formating ]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ]
}
