)]}'
{
  "log": [
    {
      "commit": "a8618a0e8a06f75c6efec2a5477861d704d48b28",
      "tree": "02679a316c5dea69e337ff65219d7c116f5a59aa",
      "parents": [
        "424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: smaller wrappers around rwsem_down_failed_common\n\nMore code can be pushed from rwsem_down_read_failed and\nrwsem_down_write_failed into rwsem_down_failed_common.\n\nFollowing change adding down_read_critical infrastructure support also\nenjoys having flags available in a register rather than having to fish it\nout in the struct rwsem_waiter...\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3",
      "tree": "c3c55028aa6eff578bc6d4d984796c7ea1379061",
      "parents": [
        "fd41b33435ada87323cc86b50959fbffe35192c8"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: wake queued readers when writer blocks on active read lock\n\nThis change addresses the following situation:\n\n- Thread A acquires the rwsem for read\n- Thread B tries to acquire the rwsem for write, notices there is already\n  an active owner for the rwsem.\n- Thread C tries to acquire the rwsem for read, notices that thread B already\n  tried to acquire it.\n- Thread C grabs the spinlock and queues itself on the wait queue.\n- Thread B grabs the spinlock and queues itself behind C. At this point A is\n  the only remaining active owner on the rwsem.\n\nIn this situation thread B could notice that it was the last active writer\non the rwsem, and decide to wake C to let it proceed in parallel with A\nsince they both only want the rwsem for read.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd41b33435ada87323cc86b50959fbffe35192c8",
      "tree": "6d2a7e79557e5de21bc91fce5b939c1f7dc1355c",
      "parents": [
        "70bdc6e0644f3535e93bac5c364ca199397e507e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: let RWSEM_WAITING_BIAS represent any number of waiting threads\n\nPreviously each waiting thread added a bias of RWSEM_WAITING_BIAS.  With\nthis change, the bias is added only once to indicate that the wait list is\nnon-empty.\n\nThis has a few nice properties which will be used in following changes:\n- when the spinlock is held and the waiter list is known to be non-empty,\n  count \u003c RWSEM_WAITING_BIAS  \u003c\u003d\u003e  there is an active writer on that sem\n- count \u003d\u003d RWSEM_WAITING_BIAS  \u003c\u003d\u003e  there are waiting threads and no\n                                     active readers/writers on that sem\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70bdc6e0644f3535e93bac5c364ca199397e507e",
      "tree": "af5264cc57fcd69deae10fdd67cb62461111aa4c",
      "parents": [
        "345af7bf3304410634c21ada4664fda83d4d9a16"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:10 2010 -0700"
      },
      "message": "rwsem: lighter active count checks when waking up readers\n\nIn __rwsem_do_wake(), we can skip the active count check unless we come\nthere from up_xxxx().  Also when checking the active count, it is not\nactually necessary to increment it; this allows us to get rid of the read\nside undo code and simplify the calculation of the final rwsem count\nadjustment once we\u0027ve counted the reader threads to wake.\n\nThe basic observation is the following.  When there are waiter threads on\na rwsem and the spinlock is held, other threads can only increment the\nactive count by trying to grab the rwsem in down_xxxx().  However\ndown_xxxx() will notice there are waiter threads and take the down_failed\npath, blocking to acquire the spinlock on the way there.  Therefore, a\nthread observing an active count of zero with waiters queued and the\nspinlock held, is protected against other threads acquiring the rwsem\nuntil it wakes the last waiter or releases the spinlock.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "345af7bf3304410634c21ada4664fda83d4d9a16",
      "tree": "1fd8b49ef79796e561cce19794af371099f5e7ca",
      "parents": [
        "7721fea3d0fd93fb4d000eb737b444369358d6d3"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:10 2010 -0700"
      },
      "message": "rwsem: fully separate code paths to wake writers vs readers\n\nThis is in preparation for later changes in the series.\n\nIn __rwsem_do_wake(), the first queued waiter is checked first in order to\ndetermine whether it\u0027s a writer or a reader.  The code paths diverge at\nthis point.  The code that checks and increments the rwsem active count is\nduplicated on both sides - the point is that later changes in the series\nwill be able to independently modify both sides.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91af70814105f4c05e6e11b51c3269907b71794b",
      "tree": "3857e57d3bccc1638ce2dc0413249cc2f3469d34",
      "parents": [
        "cea0d767c29669bf89f86e4aee46ef462d2ebae8"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Wed May 12 11:38:45 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 12 18:23:34 2010 -0700"
      },
      "message": "rwsem: Test for no active locks in __rwsem_do_wake undo code\n\nIf there are no active threasd using a semaphore, it is always correct\nto unqueue blocked threads.  This seems to be what was intended in the\nundo code.\n\nWhat was done instead, was to look for a sem count of zero - this is an\nimpossible situation, given that at least one thread is known to be\nqueued on the semaphore.  The code might be correct as written, but it\u0027s\nhard to reason about and it\u0027s not what was intended (otherwise the goto\nout would have been unconditional).\n\nGo for checking the active count - the alternative is not worth the\nheadache.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d50efc6c40620b2e11648cac64ebf4a824e40382",
      "tree": "daf951117c86f2d4875216eee9e708a0c01c9e4b",
      "parents": [
        "3a556b26a2718e48aa2b6ce06ea4875ddcd0778e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:00 2008 +0100"
      },
      "message": "x86: fix UML and -regparm\u003d3\n\nintroduce the \"asmregparm\" calling convention: for functions\nimplemented in assembly with a fixed regparm input parameters\ncalling convention.\n\nmark the semaphore and rwsem slowpath functions with that.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7af77b584b02d3e321b00203a618a9c93782121",
      "tree": "e7a8d5995e34065aa1bd610cb92684c5e5856119",
      "parents": [
        "051a1d1afa47206e23ae03f781c6795ce870e3d5"
      ],
      "author": {
        "name": "Livio Soares",
        "email": "livio@eecg.toronto.edu",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "message": "sched: mark rwsem functions as __sched for wchan/profiling\n\nThis following commit\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003dfdf8cb0909b531f9ae8f9b9d7e4eb35ba3505f07\n\nun-inlined a low-level rwsem function, but did not mark it as __sched.\nThe result is that it now shows up as thread wchan (which also affects\n/proc/profile stats).  The following simple patch fixes this by properly\nmarking rwsem_down_failed_common() as a __sched function.\n\nAlso in this patch, which is up for discussion, marks down_read() and\ndown_write() proper as __sched.  For profiling, it is pretty much\nuseless to know that a semaphore is beig help - it is necessary to know\n_which_ one.  By going up another frame on the stack, the information\nbecomes much more useful.\n\nIn summary, the below change to lib/rwsem.c should be applied; the\nchanges to kernel/rwsem.c could be applied if other kernel hackers agree\nwith my proposal that down_read()/down_write() in the profile is not\nenough.\n\n[ akpm@linux-foundation.org: build fix ]\n\nSigned-off-by: Livio Soares \u003clivio@eecg.toronto.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dfbb9d8c6cbfc32faa5c71145bd2a43e1f8237c",
      "tree": "a4fefea0d5f5930240f4ecd6f9716a029cc927a9",
      "parents": [
        "86255d9d0bede79140f4912482447963f00818c0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Oct 11 01:45:14 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Oct 11 01:45:14 2006 -0400"
      },
      "message": "Lockdep: add lockdep_set_class_and_subclass() and lockdep_set_subclass()\n\nThis annotation makes it possible to assign a subclass on lock init. This\nannotation is meant to reduce the _nested() annotations by assigning a\ndefault subclass.\n\nOne could do without this annotation and rely on lockdep_set_class()\nexclusively, but that would require a manual stack of struct lock_class_key\nobjects.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "fdf8cb0909b531f9ae8f9b9d7e4eb35ba3505f07",
      "tree": "0e06d558f1e349fcc26a9fb06b2c5f96776b6b86",
      "parents": [
        "2752e401148a064a23a5a1e92d502d05017a560c"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@rhlx01.fht-esslingen.de",
        "time": "Fri Sep 29 02:01:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:22 2006 -0700"
      },
      "message": "[PATCH] lib/rwsem.c: un-inline rwsem_down_failed_common()\n\nUn-inlining rwsem_down_failed_common() (two callsites) reduced lib/rwsem.o\non my Athlon, gcc 4.1.2 from 5935 to 5480 Bytes (455 Bytes saved).\n\nI thus guess that reduced icache footprint (and better function caching) is\nworth more than any function call overhead.\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ea2176dfa714882e88180b474e4cbcd888b70af",
      "tree": "7ff3810f6b8750c226234887bb3063d91e1d71c3",
      "parents": [
        "a8f24a3978c5f82419e1c90dc90460731204f46f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:04 2006 -0700"
      },
      "message": "[PATCH] lockdep: prove rwsem locking correctness\n\nUse the lock validator framework to prove rwsem locking correctness.\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": "c4e05116a2c4d8187127dbf77ab790aa57a47388",
      "tree": "58f07aed47ee4d30e9588d5a820c245faa163b09",
      "parents": [
        "8b3db9c542e18b71d4820da4dd9401ee030feacb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: clean up rwsems\n\nClean up rwsems.\n\nSigned-off-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": "d59dd4620fb8d6422555a9e2b82a707718e68327",
      "tree": "78205657d24efcaa3f8314064951ac3814ed95a7",
      "parents": [
        "0d8d4d42f2d00eb65262b49f4edd4cf7ef4eb6fc"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "message": "[PATCH] use smp_mb/wmb/rmb where possible\n\nReplace a number of memory barriers with smp_ variants.  This means we won\u0027t\ntake the unnecessary hit on UP machines.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.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"
    }
  ]
}
