)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
