mbox series

[00/37] bcache patches for Linux v5.3

Message ID 20190628120000.40753-1-colyli@suse.de (mailing list archive)
Headers show
Series bcache patches for Linux v5.3 | expand

Message

Coly Li June 28, 2019, 11:59 a.m. UTC
Hi Jens,

Here are the bcache patches for Linux v5.3. All these patches are
tested for a while and survived from my smoking and pressure testings.

This run we have Alexandru Ardelean contributes a clean up patch. The
rested patches are from me, there is an important race fix has the
following patches involved in,
- bcache: Revert "bcache: free heap cache_set->flush_btree in
  bch_journal_free"
- bcache: Revert "bcache: fix high CPU occupancy during journal"
- bcache: remove retry_flush_write from struct cache_set
- bcache: fix race in btree_flush_write()
- bcache: performance improvement for btree_flush_write()
- bcache: add reclaimed_journal_buckets to struct cache_set
On a Lenovo SR650 server (48 cores, 200G dram, 1T NVMe SSD as cache
device and 12T NVMe SSD as backing device), without this fix, bcache
can only run 40 around minutes before deadlock or panic happens. Now
I don't observe any deadlock or panic for 5+ hours smoking test.

Please pick them for Linux v5.3, and thank you in advance.

Coly Li 
---

Alexandru Ardelean (1):
  bcache: use sysfs_match_string() instead of __sysfs_match_string()

Coly Li (36):
  bcache: don't set max writeback rate if gc is running
  bcache: check c->gc_thread by IS_ERR_OR_NULL in cache_set_flush()
  bcache: fix return value error in bch_journal_read()
  Revert "bcache: set CACHE_SET_IO_DISABLE in bch_cached_dev_error()"
  bcache: avoid flushing btree node in cache_set_flush() if io disabled
  bcache: ignore read-ahead request failure on backing device
  bcache: add io error counting in write_bdev_super_endio()
  bcache: remove unnecessary prefetch() in bset_search_tree()
  bcache: add return value check to bch_cached_dev_run()
  bcache: remove unncessary code in bch_btree_keys_init()
  bcache: check CACHE_SET_IO_DISABLE in allocator code
  bcache: check CACHE_SET_IO_DISABLE bit in bch_journal()
  bcache: more detailed error message to bcache_device_link()
  bcache: add more error message in bch_cached_dev_attach()
  bcache: improve error message in bch_cached_dev_run()
  bcache: remove "XXX:" comment line from run_cache_set()
  bcache: make bset_search_tree() be more understandable
  bcache: add pendings_cleanup to stop pending bcache device
  bcache: fix mistaken sysfs entry for io_error counter
  bcache: destroy dc->writeback_write_wq if failed to create
    dc->writeback_thread
  bcache: stop writeback kthread and kworker when bch_cached_dev_run()
    failed
  bcache: avoid a deadlock in bcache_reboot()
  bcache: acquire bch_register_lock later in cached_dev_detach_finish()
  bcache: acquire bch_register_lock later in cached_dev_free()
  bcache: fix potential deadlock in cached_def_free()
  bcache: add code comments for journal_read_bucket()
  bcache: set largest seq to ja->seq[bucket_index] in
    journal_read_bucket()
  bcache: shrink btree node cache after bch_btree_check()
  bcache: Revert "bcache: free heap cache_set->flush_btree in
    bch_journal_free"
  bcache: Revert "bcache: fix high CPU occupancy during journal"
  bcache: only clear BTREE_NODE_dirty bit when it is set
  bcache: add comments for mutex_lock(&b->write_lock)
  bcache: remove retry_flush_write from struct cache_set
  bcache: fix race in btree_flush_write()
  bcache: performance improvement for btree_flush_write()
  bcache: add reclaimed_journal_buckets to struct cache_set

 drivers/md/bcache/alloc.c     |   9 ++
 drivers/md/bcache/bcache.h    |   6 +-
 drivers/md/bcache/bset.c      |  61 ++++--------
 drivers/md/bcache/btree.c     |  53 ++++++++--
 drivers/md/bcache/btree.h     |   2 +
 drivers/md/bcache/io.c        |  12 +++
 drivers/md/bcache/journal.c   | 141 ++++++++++++++++++--------
 drivers/md/bcache/journal.h   |   4 +
 drivers/md/bcache/super.c     | 227 ++++++++++++++++++++++++++++++++++--------
 drivers/md/bcache/sysfs.c     |  67 +++++++++----
 drivers/md/bcache/util.h      |   2 -
 drivers/md/bcache/writeback.c |   8 ++
 12 files changed, 432 insertions(+), 160 deletions(-)

Comments

Jens Axboe June 28, 2019, 1:42 p.m. UTC | #1
On 6/28/19 5:59 AM, Coly Li wrote:
> Hi Jens,
> 
> Here are the bcache patches for Linux v5.3. All these patches are
> tested for a while and survived from my smoking and pressure testings.
> 
> This run we have Alexandru Ardelean contributes a clean up patch. The
> rested patches are from me, there is an important race fix has the
> following patches involved in,
> - bcache: Revert "bcache: free heap cache_set->flush_btree in
>    bch_journal_free"
> - bcache: Revert "bcache: fix high CPU occupancy during journal"
> - bcache: remove retry_flush_write from struct cache_set
> - bcache: fix race in btree_flush_write()
> - bcache: performance improvement for btree_flush_write()
> - bcache: add reclaimed_journal_buckets to struct cache_set
> On a Lenovo SR650 server (48 cores, 200G dram, 1T NVMe SSD as cache
> device and 12T NVMe SSD as backing device), without this fix, bcache
> can only run 40 around minutes before deadlock or panic happens. Now
> I don't observe any deadlock or panic for 5+ hours smoking test.
> 
> Please pick them for Linux v5.3, and thank you in advance.

Applied, thanks.