1. 12 5月, 2017 1 次提交
  2. 11 5月, 2017 1 次提交
  3. 09 5月, 2017 2 次提交
    • S
      md/md0: optimize raid0 discard handling · 29efc390
      Shaohua Li 提交于
      There are complaints that raid0 discard handling is slow. Currently we
      divide discard request into chunks and dispatch to underlayer disks. The
      block layer will do merge to form big requests. This causes a lot of
      request split/merge and uses significant CPU time.
      
      A simple idea is to calculate the range for each raid disk for an IO
      request and send a discard request to raid disks, which will avoid the
      split/merge completely. Previously Coly tried the approach, but the
      implementation was too complex because of raid0 zones. This patch always
      split bio in zone boundary and handle bio within one zone. It simplifies
      the implementation a lot.
      Reviewed-by: NNeilBrown <neilb@suse.com>
      Acked-by: NColy Li <colyli@suse.de>
      Signed-off-by: NShaohua Li <shli@fb.com>
      29efc390
    • A
      md: don't return -EAGAIN in md_allow_write for external metadata arrays · 2214c260
      Artur Paszkiewicz 提交于
      This essentially reverts commit b5470dc5 ("md: resolve external
      metadata handling deadlock in md_allow_write") with some adjustments.
      
      Since commit 6791875e ("md: make reconfig_mutex optional for writes
      to md sysfs files.") changing array_state to 'active' does not use
      mddev_lock() and will not cause a deadlock with md_allow_write(). This
      revert simplifies userspace tools that write to sysfs attributes like
      "stripe_cache_size" or "consistency_policy" because it removes the need
      for special handling for external metadata arrays, checking for EAGAIN
      and retrying the write.
      Signed-off-by: NArtur Paszkiewicz <artur.paszkiewicz@intel.com>
      Signed-off-by: NShaohua Li <shli@fb.com>
      2214c260
  4. 05 5月, 2017 1 次提交
    • J
      md/raid5: make use of spin_lock_irq over local_irq_disable + spin_lock · 3d05f3ae
      Julia Cartwright 提交于
      On mainline, there is no functional difference, just less code, and
      symmetric lock/unlock paths.
      
      On PREEMPT_RT builds, this fixes the following warning, seen by
      Alexander GQ Gerasiov, due to the sleeping nature of spinlocks.
      
         BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:993
         in_atomic(): 0, irqs_disabled(): 1, pid: 58, name: kworker/u12:1
         CPU: 5 PID: 58 Comm: kworker/u12:1 Tainted: G        W       4.9.20-rt16-stand6-686 #1
         Hardware name: Supermicro SYS-5027R-WRF/X9SRW-F, BIOS 3.2a 10/28/2015
         Workqueue: writeback wb_workfn (flush-253:0)
         Call Trace:
          dump_stack+0x47/0x68
          ? migrate_enable+0x4a/0xf0
          ___might_sleep+0x101/0x180
          rt_spin_lock+0x17/0x40
          add_stripe_bio+0x4e3/0x6c0 [raid456]
          ? preempt_count_add+0x42/0xb0
          raid5_make_request+0x737/0xdd0 [raid456]
      Reported-by: NAlexander GQ Gerasiov <gq@redlab-i.ru>
      Tested-by: NAlexander GQ Gerasiov <gq@redlab-i.ru>
      Signed-off-by: NJulia Cartwright <julia@ni.com>
      Signed-off-by: NShaohua Li <shli@fb.com>
      3d05f3ae
  5. 02 5月, 2017 6 次提交
  6. 28 4月, 2017 16 次提交
  7. 26 4月, 2017 2 次提交
  8. 25 4月, 2017 11 次提交