1. 10 8月, 2010 2 次提交
    • M
      rwsem: lighter active count checks when waking up readers · 70bdc6e0
      Michel Lespinasse 提交于
      In __rwsem_do_wake(), we can skip the active count check unless we come
      there from up_xxxx().  Also when checking the active count, it is not
      actually necessary to increment it; this allows us to get rid of the read
      side undo code and simplify the calculation of the final rwsem count
      adjustment once we've counted the reader threads to wake.
      
      The basic observation is the following.  When there are waiter threads on
      a rwsem and the spinlock is held, other threads can only increment the
      active count by trying to grab the rwsem in down_xxxx().  However
      down_xxxx() will notice there are waiter threads and take the down_failed
      path, blocking to acquire the spinlock on the way there.  Therefore, a
      thread observing an active count of zero with waiters queued and the
      spinlock held, is protected against other threads acquiring the rwsem
      until it wakes the last waiter or releases the spinlock.
      Signed-off-by: NMichel Lespinasse <walken@google.com>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Cc: Mike Waychison <mikew@google.com>
      Cc: Suleiman Souhlal <suleiman@google.com>
      Cc: Ying Han <yinghan@google.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      70bdc6e0
    • M
      rwsem: fully separate code paths to wake writers vs readers · 345af7bf
      Michel Lespinasse 提交于
      This is in preparation for later changes in the series.
      
      In __rwsem_do_wake(), the first queued waiter is checked first in order to
      determine whether it's a writer or a reader.  The code paths diverge at
      this point.  The code that checks and increments the rwsem active count is
      duplicated on both sides - the point is that later changes in the series
      will be able to independently modify both sides.
      Signed-off-by: NMichel Lespinasse <walken@google.com>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Cc: Mike Waychison <mikew@google.com>
      Cc: Suleiman Souhlal <suleiman@google.com>
      Cc: Ying Han <yinghan@google.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      345af7bf
  2. 13 5月, 2010 1 次提交
  3. 30 1月, 2008 1 次提交
  4. 18 12月, 2007 1 次提交
  5. 11 10月, 2006 1 次提交
  6. 30 9月, 2006 1 次提交
  7. 04 7月, 2006 2 次提交
  8. 01 5月, 2005 1 次提交
  9. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4