)]}'
{
  "log": [
    {
      "commit": "57119c34e53bbb8d244c3ff1335ef5145768538f",
      "tree": "829858c9c167a2da60b54f85d4c620e58fe42125",
      "parents": [
        "bb1dc0bacb8ddd7ba6a5906c678a5a5a110cf695"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang@windriver.com",
        "time": "Tue Apr 06 14:35:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:04 2010 -0700"
      },
      "message": "ratelimit: fix the return value when __ratelimit() fails to acquire the lock\n\nThe log of commit edaac8e3167501cda336231d00611bf59c164346 (\"ratelimit:\nFix/allow use in atomic contexts\"), indicates that we want to suppress the\ncallback when the trylock fails.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a7268abc48c8009b284bd88605d14fcb65772ec",
      "tree": "4a85cff6aaa6a1beda8e727b593f780a3fec3fc8",
      "parents": [
        "ee5d2acd5ca1534f40e06d4f0d41a940b17beb54"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang@windriver.com",
        "time": "Tue Apr 06 14:35:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:04 2010 -0700"
      },
      "message": "ratelimit: annotate ___ratelimit()\n\nTo prevent from wrongly using the return value.\n\n[akpm@linux-foundation.org: fix spello]\nSigned-off-by: Yong Zhang \u003cyong.zhang@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c828713358cb9df8aa174371edcbbb62203a490",
      "tree": "c8aeafba911cb428b5dc46a9e252c337b7c51d17",
      "parents": [
        "3fff4c42bd0a89869a0eb1e7874cc06ffa4aa0f5"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Fri Oct 23 14:58:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 23 17:26:37 2009 +0200"
      },
      "message": "ratelimit: Make suppressed output messages more useful\n\nToday I got:\n\n  [39648.224782] Registered led device: iwl-phy0::TX\n  [40676.545099] __ratelimit: 246 callbacks suppressed\n  [40676.545103] abcdef[23675]: segfault at 0 ...\n\nas you can see the ratelimit message contains a function prefix.\nSince this is always __ratelimit, this wont help much.\n\nThis patch changes __ratelimit and printk_ratelimit to print the\nfunction name that calls ratelimit.\n\nThis will pinpoint the responsible function, as long as not several\ndifferent places call ratelimit with the same ratelimit state at\nthe same time. In that case we catch only one random function that\ncalls ratelimit after the wait period.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c200910231458.11832.borntraeger@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3fff4c42bd0a89869a0eb1e7874cc06ffa4aa0f5",
      "tree": "67c476b8aa52a2f5d17dc9b94da360e10d373bd5",
      "parents": [
        "edaac8e3167501cda336231d00611bf59c164346"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 16:18:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 16:18:09 2009 +0200"
      },
      "message": "printk: Remove ratelimit.h from kernel.h\n\nDecouple kernel.h from ratelimit.h: the global declaration of\nprintk\u0027s ratelimit_state is not needed, and it leads to messy\ncircular dependencies due to ratelimit.h\u0027s (new) adding of a\nspinlock_types.h include.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "edaac8e3167501cda336231d00611bf59c164346",
      "tree": "5ebf22336dccef4fcd601e0a6a2d13ea347ec568",
      "parents": [
        "979f693def9084a452846365dfde5dcb28366333"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 14:44:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 14:05:48 2009 +0200"
      },
      "message": "ratelimit: Fix/allow use in atomic contexts\n\nI\u0027d like to use printk_ratelimit() in NMI context, but it\u0027s not\nrobust right now due to spinlock usage in lib/ratelimit.c. If an\nNMI is unlucky enough to hit just that spot we might lock up trying\nto take the spinlock again.\n\nFix that by using a trylock variant. If we contend on that lock we\ncan genuinely skip the message because the state is just being\naccessed by another CPU (or by this CPU).\n\n( We could use atomics for the suppressed messages field, but\n  i doubt it matters in practice and it makes the code heavier. )\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "979f693def9084a452846365dfde5dcb28366333",
      "tree": "4e01718c89c770c82cb3075958a7c0d33631ccf2",
      "parents": [
        "b8c7f1dc5ca4e0d10709182233cdab932cef593d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 14:44:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 22 15:31:34 2009 +0200"
      },
      "message": "ratelimit: Use per ratelimit context locking\n\nI\u0027d like to use printk_ratelimit() in atomic context, but that\u0027s\nnot possible right now due to the spinlock usage this commit\nintroduced more than a year ago:\n\n  717115e: printk ratelimiting rewrite\n\nAs a first step push the lock into the ratelimit state structure.\nThis allows us to deal with locking failures to be considered as an\nevent related to that state being too busy.\n\nAlso clean up the code a bit (without changing functionality):\n\n - tidy up the definitions\n\n - clean up the code flow\n\nThis also shrinks the code a tiny bit:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n    264\t      0\t      4\t    268\t    10c\tratelimit.o.before\n    255\t      0\t      0\t    255\t     ff\tratelimit.o.after\n\n( Whole-kernel data size got a bit larger, because we have\n  two ratelimit-state data structures right now. )\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4d9c377c81d37740b25cacf025f95c084eafabbb",
      "tree": "a7ff1a6ca9865c47c86df4df64bf2cfc8b38daaf",
      "parents": [
        "14fcc23fdc78e9d32372553ccf21758a9bd56fa1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jul 28 15:46:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:20 2008 -0700"
      },
      "message": "__ratelimit() cpu flags can\u0027t be static\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "717115e1a5856b57af0f71e1df7149108294fc10",
      "tree": "9528a992245c2fb993a0cf0bc8221dc7dea5d259",
      "parents": [
        "2711b793eb62a5873a0ba583a69252040aef176e"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Fri Jul 25 01:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:29 2008 -0700"
      },
      "message": "printk ratelimiting rewrite\n\nAll ratelimit user use same jiffies and burst params, so some messages\n(callbacks) will be lost.\n\nFor example:\na call printk_ratelimit(5 * HZ, 1)\nb call printk_ratelimit(5 * HZ, 1) before the 5*HZ timeout of a, then b will\nwill be supressed.\n\n- rewrite __ratelimit, and use a ratelimit_state as parameter.  Thanks for\n  hints from andrew.\n\n- Add WARN_ON_RATELIMIT, update rcupreempt.h\n\n- remove __printk_ratelimit\n\n- use __ratelimit in net_ratelimit\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f97a5a8799b8d7d0afdb9d68a50a4e0e8298a05",
      "tree": "03f0a35e50e9a765603fc9249e601b52e043fd0d",
      "parents": [
        "762873c251b056c6c1b29e83a4dabafb064e5421"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Apr 29 00:59:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:06 2008 -0700"
      },
      "message": "isolate ratelimit from printk.c for other use\n\nDue to the rcupreempt.h WARN_ON trigged, I got 2G syslog file.  For some\nserious complaining of kernel, we need repeat the warnings, so here I isolate\nthe ratelimit part of printk.c to a standalone file.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
