1. 19 Oct, 2017 5 commits
  2. 18 Oct, 2017 7 commits
  3. 16 Oct, 2017 6 commits
  4. 12 Oct, 2017 1 commit
  5. 09 Oct, 2017 8 commits
  6. 04 Oct, 2017 1 commit
    • Heiko Carstens's avatar
      s390: use generic rwsem implementation · 91a1fad7
      Heiko Carstens authored
      We never optimized our rwsem inline assemblies to make use of the new
      atomic instructions. The generic rwsem implementation implicitly makes
      use of the new instructions, since it implements the required rwsem
      primitives with atomic operations, which we did optimize.
      
      However even when compiling for old architectures the generic variant
      still generates better code. So it's time to simply remove our old
      code and switch to the generic implementation.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      91a1fad7
  7. 29 Sep, 2017 11 commits
  8. 28 Sep, 2017 1 commit
    • Martin Schwidefsky's avatar
      s390/rwlock: introduce rwlock wait queueing · eb3b7b84
      Martin Schwidefsky authored
      Like the common queued rwlock code the s390 implementation uses the
      queued spinlock code on a spinlock_t embedded in the rwlock_t to achieve
      the queueing. The encoding of the rwlock_t differs though, the counter
      field in the rwlock_t is split into two parts. The upper two bytes hold
      the write bit and the write wait counter, the lower two bytes hold the
      read counter.
      
      The arch_read_lock operation works exactly like the common qrwlock but
      the enqueue operation for a writer follows a diffent logic. After the
      failed inline try to get the rwlock in write, the writer first increases
      the write wait counter, acquires the wait spin_lock for the queueing,
      and then loops until there are no readers and the write bit is zero.
      Without the write wait counter a CPU that just released the rwlock
      could immediately reacquire the lock in the inline code, bypassing all
      outstanding read and write waiters. For s390 this would cause massive
      imbalances in favour of writers in case of a contended rwlock.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      eb3b7b84