)]}'
{
  "log": [
    {
      "commit": "e335e3eb82dada2765297f6ba501afc7555aba10",
      "tree": "bf805c292a9b30103c4ebe6cb373831ec43c2836",
      "parents": [
        "280fb016bfb098f33df96016cfaa840db77ba2d0"
      ],
      "author": {
        "name": "Raghavendra K T",
        "email": "raghavendra.kt@linux.vnet.ibm.com",
        "time": "Thu Mar 22 15:25:08 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 13:18:57 2012 +0100"
      },
      "message": "locking/kconfig: Simplify INLINE_SPIN_UNLOCK usage\n\nGet rid of INLINE_SPIN_UNLOCK entirely replacing it with\nUNINLINE_SPIN_UNLOCK instead of the reverse meaning.\n\nWhoever wants to change the default spinlock inlining\nbehavior and uninline the spinlocks for some weird reason,\nsuch as spinlock debugging, paravirt etc. can now all just\nselect UNINLINE_SPIN_UNLOCK\n\nOriginal discussion at: https://lkml.org/lkml/2012/3/21/357\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Raghavendra K T \u003craghavendra.kt@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: linux-mips@linux-mips.org\nLink: http://lkml.kernel.org/r/20120322095502.30866.75756.sendpatchset@codeblue\n[ tidied up the changelog a bit ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9984de1a5a8a96275fcab818f7419af5a3c86e71",
      "tree": "1935d411752707a1621c5caf64f75dfe105beb3a",
      "parents": [
        "7c77509c542927ee2a3c8812fad84957e51bf67d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon May 23 14:51:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Map most files to use export.h instead of module.h\n\nThe changed files were only including linux/module.h for the\nEXPORT_SYMBOL infrastructure, and nothing else.  Revector them\nonto the isolated export header for faster compile times.\n\nNothing to see here but a whole lot of instances of:\n\n  -#include \u003clinux/module.h\u003e\n  +#include \u003clinux/export.h\u003e\n\nThis commit is only changing the kernel dir; next targets\nwill probably be mm, fs, the arch dirs, etc.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "9c1721aa4994f6625decbd915241f3a94ee2fe67",
      "tree": "bc1c2d623ac5d0db82df18163f6ab029e057c558",
      "parents": [
        "9828ea9d75c38fe3dce05d00566eed61c85732e6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 21:52:18 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "locking: Cleanup the name space completely\n\nMake the name space hierarchy of locking functions consistent:\n     raw_spin* -\u003e _raw_spin* -\u003e __raw_spin*\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "9828ea9d75c38fe3dce05d00566eed61c85732e6",
      "tree": "6cee5c8ffb07cdf45cc12d58f74a3053ffefcb5f",
      "parents": [
        "5f6384c5fb6bfc9aac506e058974d3ba293951b3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 20:55:53 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "locking: Further name space cleanups\n\nThe name space hierarchy for the internal lock functions is now a bit\nbackwards. raw_spin* functions map to _spin* which use __spin*, while\nwe would like to have _raw_spin* and __raw_spin*.\n\n_raw_spin* is already used by lock debugging, so rename those funtions\nto do_raw_spin* to free up the _raw_spin* name space.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2f21ce2e31286a0a32f8da0a7856e9ca1122ef3",
      "tree": "6cc8d1fd37ffa6d02481353857b92734241f4dd0",
      "parents": [
        "e5931943d02bf751b1ec849c0d2ade23d76a8d41"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 20:02:59 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Implement new raw_spinlock\n\nNow that the raw_spin name space is freed up, we can implement\nraw_spinlock and the related functions which are used to annotate the\nlocks which are not converted to sleeping spinlocks in preempt-rt.\n\nA side effect is that only such locks can be used with the low level\nlock fsunctions which circumvent lockdep.\n\nFor !rt spin_* functions are mapped to the raw_spin* implementations.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "0199c4e68d1f02894bdefe4b5d9e9ee4aedd8d62",
      "tree": "e371d17bd73d64332349debbf45962ec67e7269d",
      "parents": [
        "edc35bd72e2079b25f99c5da7d7a65dbbffc4a26"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 20:01:25 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert __raw_spin* functions to arch_spin*\n\nName space cleanup. No functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "b7b40ade58e621851896aa261452df99d4e9d99b",
      "tree": "6ff6d2adea28376b86875cd070fbea6d4473d029",
      "parents": [
        "3ea6b3d0e6d0ffd91c0f8cadeb69b7133c038b32"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 09 21:01:59 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Reorder functions in spinlock.c\n\nSeparate spin_lock and rw_lock functions. Preempt-RT needs to exclude\nthe rw_lock functions from being compiled. The reordering allows to do\nthat with a single #ifdef.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e13c7b772387f55dc05c6a0e5b30010c3c46ff9",
      "tree": "7cfa275b95febce0cf29c5c8faf2bc7566305265",
      "parents": [
        "6beb000923882f6204ea2cfcd932e568e900803f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 09 15:21:41 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:53:28 2009 +0100"
      },
      "message": "locking: Reduce ifdefs in kernel/spinlock.c\n\nWith the Kconfig based inline decisions we can remove extra ifdefs in\nkernel/spinlock.c by creating the complex lockbreak functions as\ninlines which are inserted into the non inlined lock functions.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091109151428.548614772@linutronix.de\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "6beb000923882f6204ea2cfcd932e568e900803f",
      "tree": "1849bb1e7493bbf5e538d74cec18c6d6f4b16ced",
      "parents": [
        "156171c71a0dc4bce12b4408bb1591f8fe32dc1a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 09 15:21:34 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:53:28 2009 +0100"
      },
      "message": "locking: Make inlining decision Kconfig based\n\ncommit 892a7c67 (locking: Allow arch-inlined spinlocks) implements the\nselection of which lock functions are inlined based on defines in\narch/.../spinlock.h: #define __always_inline__LOCK_FUNCTION\n\nDespite of the name __always_inline__* the lock functions can be built\nout of line depending on config options. Also if the arch does not set\nsome inline defines the generic code might set them; again depending on\nconfig options.\n\nThis makes it unnecessary hard to figure out when and which lock\nfunctions are inlined. Aside of that it makes it way harder and\nmessier for -rt to manipulate the lock functions.\n\nConvert the inlining decision to CONFIG switches. Each lock function\nis inlined depending on CONFIG_INLINE_*. The configs implement the\nexisting dependencies. The architecture code can select ARCH_INLINE_*\nto signal that it wants the corresponding lock function inlined.\nARCH_INLINE_* is necessary as Kconfig ignores \"depends on\"\nrestrictions when a config element is selected.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091109151428.504477141@linutronix.de\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "892a7c67c12da63fa4b51728bbe5b982356a090a",
      "tree": "ba6cb9cf1be394428d9ef2596b0575e28ab0b19a",
      "parents": [
        "69d0ee7377eef808e34ba5542b554ec97244b871"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Aug 31 14:43:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 31 18:08:50 2009 +0200"
      },
      "message": "locking: Allow arch-inlined spinlocks\n\nThis allows an architecture to specify per lock variant if the\nlocking code should be kept out-of-line or inlined.\n\nIf an architecure wants out-of-line locking code no change is\nneeded. To force inlining of e.g. spin_lock() the line:\n\n  #define __always_inline__spin_lock\n\nneeds to be added to arch/\u003c...\u003e/include/asm/spinlock.h\n\nIf CONFIG_DEBUG_SPINLOCK or CONFIG_GENERIC_LOCKBREAK are\ndefined the per architecture defines are (partly) ignored and\nstill out-of-line spinlock code will be generated.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Horst Hartmann \u003chorsth@linux.vnet.ibm.com\u003e\nCc: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003c20090831124418.375299024@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69d0ee7377eef808e34ba5542b554ec97244b871",
      "tree": "f46c756b897cf51497fda2ad22f9f12a3512e23b",
      "parents": [
        "0ee000e5e8fa2e5c760250be0d78d5906e3eb94b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Aug 31 14:43:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 31 18:08:50 2009 +0200"
      },
      "message": "locking: Move spinlock function bodies to header file\n\nMove spinlock function bodies to header file by creating a\nstatic inline version of each variant. Use the inline version\non the out-of-line code.\n\nThis shouldn\u0027t make any difference besides that the spinlock\ncode can now be used to generate inlined spinlock code.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Horst Hartmann \u003chorsth@linux.vnet.ibm.com\u003e\nCc: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003c20090831124417.859022429@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f5f7eac41db827a47b2163330eecd7bb55ae9f12",
      "tree": "ae8ab45dba49c1b3d5f2088051389e6fd3e4a24c",
      "parents": [
        "e8c158bb313c1df421eab7dc4299cd39cbbf5895"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:11 2009 -0700"
      },
      "message": "Allow rwlocks to re-enable interrupts\n\nPass the original flags to rwlock arch-code, so that it can re-enable\ninterrupts if implemented for that architecture.\n\nInitially, make __raw_read_lock_flags and __raw_write_lock_flags stubs\nwhich just do the same thing as non-flags variants.\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c158bb313c1df421eab7dc4299cd39cbbf5895",
      "tree": "8a5f1d01e58d0e358b2b0c9407fc494912e83c27",
      "parents": [
        "41d577aa35aa0504fe28b76a948908bdb7fbec81"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:10 2009 -0700"
      },
      "message": "Factor out #ifdefs from kernel/spinlock.c to LOCK_CONTENDED_FLAGS\n\nSGI has observed that on large systems, interrupts are not serviced for a\nlong period of time when waiting for a rwlock.  The following patch series\nre-enables irqs while waiting for the lock, resembling the code which is\nalready there for spinlocks.\n\nI only made the ia64 version, because the patch adds some overhead to the\nfast path.  I assume there is currently no demand to have this for other\narchitectures, because the systems are not so large.  Of course, the\npossibility to implement raw_{read|write}_lock_flags for any architecture\nis still there.\n\nThis patch:\n\nThe new macro LOCK_CONTENDED_FLAGS expands to the correct implementation\ndepending on the config options, so that IRQ\u0027s are re-enabled when\npossible, but they remain disabled if CONFIG_LOCKDEP is set.\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c72f4573a5e05e35a31474977f500cbe21dcbb11",
      "tree": "c26be2f19d5916acaef43ff499382ea1ca0f198f",
      "parents": [
        "73909f7a665991013dcff42a815fda76d3a7300a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Aug 12 13:27:37 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Aug 13 13:56:51 2008 +0200"
      },
      "message": "lockdep: spin_lock_nest_lock(), checkpatch fixes\n\nfix:\n\n WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable\n #46: FILE: kernel/spinlock.c:326:\n +EXPORT_SYMBOL(_spin_lock_nest_lock);\n\ntotal: 0 errors, 1 warnings, 26 lines checked\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b7d39aff91454f2534db2275f55908656ec0470c",
      "tree": "24481f2fe7206ef69800a33df6ac3e1716085326",
      "parents": [
        "7531e2f34d1d551b096143f19111139f0dd84c8b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 11 09:30:24 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 09:30:24 2008 +0200"
      },
      "message": "lockdep: spin_lock_nest_lock()\n\nExpose the new lock protection lock.\n\nThis can be used to annotate places where we take multiple locks of the\nsame class and avoid deadlocks by always taking another (top-level) lock\nfirst.\n\nNOTE: we\u0027re still bound to the MAX_LOCK_DEPTH (48) limit.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0764d23cf066c52de42b653144605b481d3fbdbc",
      "tree": "940c6fb3f1fd674bdabbebc21a15b48a48e2ec24",
      "parents": [
        "361943ad0ba3f16e66859e30a408915e008ba91e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon May 12 21:20:44 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 20:39:40 2008 +0200"
      },
      "message": "ftrace: lockdep notrace annotations\n\nAdd notrace annotations to lockdep to keep ftrace from causing\nrecursive problems with lock tracing and debugging.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "95c354fe9f7d6decc08a92aa26eb233ecc2155bf",
      "tree": "ec9267032ea875e84216cfb20acb2cfc7c62149f",
      "parents": [
        "a95d67f87e1a5f1b4429be3ba3bf7b4051657908"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "message": "spinlock: lockbreak cleanup\n\nThe break_lock data structure and code for spinlocks is quite nasty.\nNot only does it double the size of a spinlock but it changes locking to\na potentially less optimal trylock.\n\nPut all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a\n__raw_spin_is_contended that uses the lock data itself to determine whether\nthere are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is\nnot set.\n\nRename need_lockbreak to spin_needbreak, make it use spin_is_contended to\ndecouple it from the spinlock implementation, and make it typesafe (rwlocks\ndo not have any need_lockbreak sites -- why do they even get bloated up\nwith that break_lock then?).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4fe87745a6722d42ff27a60768c77958fa1fc498",
      "tree": "adb116303fda951e0f7fc997db5de683e1bd8527",
      "parents": [
        "c46261de0d98372112d8edf16f74ce418a268d46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 19 01:48:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:49 2007 -0700"
      },
      "message": "lockstat: hook into spinlock_t, rwlock_t, rwsem and mutex\n\nCall the new lockstat tracking functions from the various lock primitives.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@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": "ca58abcb4a6d52ee2db1b1130cea3ca2a76677b9",
      "tree": "ad35a81d318a39cb33f28fe09c4374ec90b118ed",
      "parents": [
        "21f8ca3bf6198bd21e3c4cc820af2ccf753a6ec8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 19 01:48:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:49 2007 -0700"
      },
      "message": "lockdep: sanitise CONFIG_PROVE_LOCKING\n\nEnsure that all of the lock dependency tracking code is under\nCONFIG_PROVE_LOCKING.  This allows us to use the held lock tracking code for\nother purposes.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@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": "cfd3ef2346f924d6c0e82236c20fdb3a8840136a",
      "tree": "f0289367f0dbf80a5bcfa2969f428c605c54dd6a",
      "parents": [
        "ee3ce191e8eaa4cc15c51a28b34143b36404c4f5"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Nov 25 11:09:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Nov 25 13:28:34 2006 -0800"
      },
      "message": "[PATCH] lockdep: spin_lock_irqsave_nested()\n\nIntroduce spin_lock_irqsave_nested(); implementation from:\n http://lkml.org/lkml/2006/6/1/122\nPatch from:\n http://lkml.org/lkml/2006/9/13/258\n\n[akpm@osdl.org: two compile fixes]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Jiri Kosina \u003cjikos@jikos.cz\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef6edc9746dc2bfdacf44eefd5f881179971c478",
      "tree": "e8670e918a852978b2e93e189936f327be072284",
      "parents": [
        "e3e5fc91d9828a9b94a3992de47d47d2d2e34ec6"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sat Sep 30 23:27:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:21 2006 -0700"
      },
      "message": "[PATCH] Directed yield: cpu_relax variants for spinlocks and rw-locks\n\nOn systems running with virtual cpus there is optimization potential in\nregard to spinlocks and rw-locks.  If the virtual cpu that has taken a lock\nis known to a cpu that wants to acquire the same lock it is beneficial to\nyield the timeslice of the virtual cpu in favour of the cpu that has the\nlock (directed yield).\n\nWith CONFIG_PREEMPT\u003d\"n\" this can be implemented by the architecture without\ncommon code changes.  Powerpc already does this.\n\nWith CONFIG_PREEMPT\u003d\"y\" the lock loops are coded with _raw_spin_trylock,\n_raw_read_trylock and _raw_write_trylock in kernel/spinlock.c.  If the lock\ncould not be taken cpu_relax is called.  A directed yield is not possible\nbecause cpu_relax doesn\u0027t know anything about the lock.  To be able to\nyield the lock in favour of the current lock holder variants of cpu_relax\nfor spinlocks and rw-locks are needed.  The new _raw_spin_relax,\n_raw_read_relax and _raw_write_relax primitives differ from cpu_relax\ninsofar that they have an argument: a pointer to the lock structure.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "910067d188d56d80801b71b0ca1f73aa400c7b8c",
      "tree": "5176ec3f62544cb4d8c3ff33c00d75c877856a17",
      "parents": [
        "e04da1dfd9041e306cb33d1b40b6005c23c5b325"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Sep 29 01:58:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:03 2006 -0700"
      },
      "message": "[PATCH] remove generic__raw_read_trylock()\n\nIf the cpu has the lock held for write, is interrupted, and the interrupt\nhandler calls read_trylock(), it\u0027s an instant deadlock.\n\nNow, Dave Miller has subsequently pointed out that we don\u0027t have any\nsituations where this can occur.  Nevertheless, we should delete\ngeneric__raw_read_lock (and its associated EXPORT to make Arjan happy) so that\nnobody thinks they can use it.\n\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0cb91a2293648507886563ccb91979cfc94d6a4b",
      "tree": "f2a994f8b874e3c81c5519d445a0c5fa5522e4b5",
      "parents": [
        "c16b63e09d9d03158e0a92e961234e94c4862620"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Sep 26 10:52:28 2006 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Sep 26 10:52:28 2006 +0200"
      },
      "message": "[PATCH] i386: Account spinlocks to the caller during profiling for !FP kernels\n\nThis ports the algorithm from x86-64 (with improvements) to i386.\nPreviously this only worked for frame pointer enabled kernels.\nBut spinlocks have a very simple stack frame that can be manually\nanalyzed. Do this.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "fc47e7b592dc45b03c27b0a4c8f2d215dae9944d",
      "tree": "54ea55d491e2f708bc23655041668e19da3de619",
      "parents": [
        "c336923b668fdcf0312efbec3b44895d713f4d81"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@o2.pl",
        "time": "Wed Sep 06 00:03:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 06 11:00:01 2006 -0700"
      },
      "message": "[PATCH] lockdep ifdef fix\n\nWith\n\n\tCONFIG_SMP\u003dy\n\tCONFIG_PREEMPT\u003dy\n\tCONFIG_LOCKDEP\u003dy\n\tCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\t# CONFIG_PROVE_LOCKING is not set\n\nspin_unlock_irqrestore() goes through lockdep but spin_lock_irqsave() doesn\u0027t.\nApparently, bad things happen.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a25d5debff2daee280e83e09d8c25d67c26a972",
      "tree": "3bccfef9acb66fc62863bfd6c16493c5e8c8e394",
      "parents": [
        "4ea2176dfa714882e88180b474e4cbcd888b70af"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:04 2006 -0700"
      },
      "message": "[PATCH] lockdep: prove spinlock rwlock locking correctness\n\nUse the lock validator framework to prove spinlock and rwlock locking\ncorrectness.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "ee25e96fcd78837c9f192aa655ce12a88bfd63d4",
      "tree": "e244e0903bd9583b5c0e6df5e46867427641e131",
      "parents": [
        "eb8782ef72758b8700963ef8b949f5c812e6d630"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Mar 23 03:00:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:16 2006 -0800"
      },
      "message": "[PATCH] BUILD_LOCK_OPS: cleanup preempt_disable() usage\n\nThis patch changes the code from:\n\n\tpreempt_disable();\n\tfor (;;) {\n\t\t...\n\t\tpreempt_disable();\n\t}\nto:\n\tfor (;;) {\n\t\tpreempt_disable();\n\t\t...\n\t}\n\nwhich seems more clean to me and saves a couple of bytes for\neach function.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10f02d1c59e55f529140dda3a92f0099d748451c",
      "tree": "6b5a5804503401624171aff65b09ff022a9f0103",
      "parents": [
        "9636273dae265b9354b861b373cd43cd76a6d0fe"
      ],
      "author": {
        "name": "Samuel Thibault",
        "email": "samuel.thibault@labri.fr",
        "time": "Sat May 21 17:50:15 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat May 21 10:46:48 2005 -0700"
      },
      "message": "[PATCH] spin_unlock_bh() and preempt_check_resched()\n\nIn _spin_unlock_bh(lock):\n\tdo { \\\n\t\t_raw_spin_unlock(lock); \\\n\t\tpreempt_enable(); \\\n\t\tlocal_bh_enable(); \\\n\t\t__release(lock); \\\n\t} while (0)\n\nthere is no reason for using preempt_enable() instead of a simple\npreempt_enable_no_resched()\n\nSince we know bottom halves are disabled, preempt_schedule() will always\nreturn at once (preempt_count!\u003d0), and hence preempt_check_resched() is\nuseless here...\n\nThis fixes it by using \"preempt_enable_no_resched()\" instead of the\n\"preempt_enable()\", and thus avoids the useless preempt_check_resched()\njust before re-enabling bottom halves.\n\nSigned-off-by: Samuel Thibault \u003csamuel.thibault@ens-lyon.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
