Re: [PATCH v5 0/8] block, scsi, md: Improve suspend and resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

I can confirm that this patchset applied on top of v4.14-rc3 also (like Ming's 
one) fixes the issue with suspend/resume+RAID10, reported by me previously.

Tested-by: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>

On úterý 3. října 2017 0:52:10 CEST Bart Van Assche wrote:
> Hello Jens,
> 
> It is known that during the resume following a hibernate, especially when
> using an md RAID1 array created on top of SCSI devices, sometimes the
> system hangs instead of coming up properly. This patch series fixes this
> problem. This patch series is an alternative for Ming Lei's "block/scsi:
> safe SCSI quiescing" patch series. The advantages of this patch series are
> that a fix for the md driver is included, that no third argument has been
> added to blk_get_request() and that there is no race between
> blk_get_request() and SCSI quiescing.
> 
> These patches have been tested on top of a merge of the block layer
> for-next branch and Linus' master tree. Linus' master tree includes
> patch "KVM: x86: Fix the NULL pointer parameter in check_cr_write()"
> but the block layer for-next branch not yet.
> 
> Please consider these changes for kernel v4.15.
> 
> Thanks,
> 
> Bart.
> 
> Changes between v4 and v5:
> - Split blk_set_preempt_only() into two functions as requested by Christoph.
> - Made blk_get_request() trigger WARN_ONCE() if it is attempted to allocate
> a request while the system is frozen. This is a big help to identify
> drivers that submit I/O while the system is frozen.
> - Since kernel thread freezing is on its way out, reworked the approach for
>   avoiding that the md driver submits I/O while the system is frozen such
> that the approach no longer depends on the kernel thread freeze mechanism.
> - Fixed the (theoretical) deadlock in scsi_device_quiesce() that was
> identified by Ming.
> 
> Changes between v3 and v4:
> - Made sure that this patch series not only works for scsi-mq but also for
>   the legacy SCSI stack.
> - Removed an smp_rmb()/smp_wmb() pair from the hot path and added a comment
>   that explains why that is safe.
> - Reordered the patches in this patch series.
> 
> Changes between v2 and v3:
> - Made md kernel threads freezable.
> - Changed the approach for quiescing SCSI devices again.
> - Addressed Ming's review comments.
> 
> Changes compared to v1 of this patch series:
> - Changed the approach and rewrote the patch series.
> 
> Bart Van Assche (7):
>   md: Introduce md_stop_all_writes()
>   md: Neither resync nor reshape while the system is frozen
>   block: Convert RQF_PREEMPT into REQ_PREEMPT
>   block: Add the QUEUE_FLAG_PREEMPT_ONLY request queue flag
>   scsi: Reduce suspend latency
>   scsi: Set QUEUE_FLAG_PREEMPT_ONLY while quiesced
>   block: Make SCSI device suspend and resume work reliably
> 
> Ming Lei (1):
>   block: Make q_usage_counter also track legacy requests
> 
>  block/blk-core.c          | 67
> ++++++++++++++++++++++++++++++++++++++++++----- block/blk-mq-debugfs.c    |
>  2 +-
>  block/blk-mq.c            | 14 +++-------
>  block/blk-timeout.c       |  2 +-
>  drivers/ide/ide-atapi.c   |  3 +--
>  drivers/ide/ide-io.c      |  2 +-
>  drivers/ide/ide-pm.c      |  4 +--
>  drivers/md/md.c           | 52 +++++++++++++++++++++++++++++++-----
>  drivers/scsi/scsi_lib.c   | 43 ++++++++++++++++++++----------
>  fs/block_dev.c            |  4 +--
>  include/linux/blk_types.h |  6 +++++
>  include/linux/blkdev.h    | 11 +++++---
>  12 files changed, 160 insertions(+), 50 deletions(-)






[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux