mbox series

[bionic:linux,PULL] LP:#1848739 - [linux] Patch to prevent possible data corruption

Message ID 20191213201340.7ekvehdt3olwpk4x@gallifrey
State New
Headers show
Series [bionic:linux,PULL] LP:#1848739 - [linux] Patch to prevent possible data corruption | expand

Pull-request

git://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/bionic lp1848739

Message

Marcelo Henrique Cerri Dec. 13, 2019, 8:13 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1848739

This patch set was already included into the 4.15 xenial:linux-azure
kernel, but it affects all our 4.15 kernels and the same issue was
already reported for the 4.15 linux-gcp kernel.

The patch set was already tested against linux-gcp, as described on
the LP bug, with positive results. Since we have positive feedbacks
with both linux-azure and linux-gcp, the risk of regression for the
inclusion on the 4.15 master kernel should be small.

---

The following changes since commit bdefbb8e170ff68940ffcaec6456ba3986cb0ce7:

  selftests/net: correct the return value for run_afpackettests (2019-12-10 15:30:55 +0100)

are available in the Git repository at:

  git://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/bionic lp1848739

for you to fetch changes up to f249c87a984b9f638fac9af5ed48d800ed107971:

  blk-mq: punt failed direct issue to dispatch list (2019-12-13 15:18:16 -0300)

----------------------------------------------------------------
Bart Van Assche (1):
      blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()

Jens Axboe (4):
      blk-mq: move hctx lock/unlock into a helper
      blk-mq: don't queue more if we get a busy return
      blk-mq: fix corruption with direct issue
      blk-mq: punt failed direct issue to dispatch list

Mike Snitzer (2):
      blk-mq: factor out a few helpers from __blk_mq_try_issue_directly
      blk-mq-sched: remove unused 'can_block' arg from blk_mq_sched_insert_request

Ming Lei (7):
      blk-mq: quiesce queue during switching io sched and updating nr_requests
      blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback
      blk-mq: don't dispatch request in blk_mq_request_direct_issue if queue is busy
      blk-mq: introduce BLK_STS_DEV_RESOURCE
      blk-mq: dequeue request one by one from sw queue if hctx is busy
      blk-mq: issue directly if hw queue isn't busy in case of 'none'
      blk-mq: fail the request in case issue failure

Yufen Yu (1):
      dm mpath: fix missing call of path selector type->end_io

 block/blk-core.c             |   4 +-
 block/blk-exec.c             |   2 +-
 block/blk-mq-debugfs.c       |   9 ++
 block/blk-mq-sched.c         |  26 +++--
 block/blk-mq-sched.h         |   2 +-
 block/blk-mq.c               | 258 +++++++++++++++++++++++++++++++++----------
 block/blk-mq.h               |   5 +
 block/elevator.c             |   2 +
 drivers/block/null_blk.c     |   2 +-
 drivers/block/virtio_blk.c   |   2 +-
 drivers/block/xen-blkfront.c |   2 +-
 drivers/md/dm-rq.c           |  20 +++-
 drivers/nvme/host/fc.c       |  12 +-
 drivers/scsi/scsi_lib.c      |   6 +-
 include/linux/blk-mq.h       |   3 +-
 include/linux/blk_types.h    |  18 +++
 16 files changed, 281 insertions(+), 92 deletions(-)

Comments

Stefan Bader Jan. 7, 2020, 2:24 p.m. UTC | #1
On 13.12.19 21:13, Marcelo Henrique Cerri wrote:
> BugLink: https://bugs.launchpad.net/bugs/1848739
> 
> This patch set was already included into the 4.15 xenial:linux-azure
> kernel, but it affects all our 4.15 kernels and the same issue was
> already reported for the 4.15 linux-gcp kernel.
> 
> The patch set was already tested against linux-gcp, as described on
> the LP bug, with positive results. Since we have positive feedbacks
> with both linux-azure and linux-gcp, the risk of regression for the
> inclusion on the 4.15 master kernel should be small.
> 
> ---
> 
> The following changes since commit bdefbb8e170ff68940ffcaec6456ba3986cb0ce7:
> 
>   selftests/net: correct the return value for run_afpackettests (2019-12-10 15:30:55 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/bionic lp1848739
> 
> for you to fetch changes up to f249c87a984b9f638fac9af5ed48d800ed107971:
> 
>   blk-mq: punt failed direct issue to dispatch list (2019-12-13 15:18:16 -0300)
> 
> ----------------------------------------------------------------
> Bart Van Assche (1):
>       blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()
> 
> Jens Axboe (4):
>       blk-mq: move hctx lock/unlock into a helper
>       blk-mq: don't queue more if we get a busy return
>       blk-mq: fix corruption with direct issue
>       blk-mq: punt failed direct issue to dispatch list
> 
> Mike Snitzer (2):
>       blk-mq: factor out a few helpers from __blk_mq_try_issue_directly
>       blk-mq-sched: remove unused 'can_block' arg from blk_mq_sched_insert_request
> 
> Ming Lei (7):
>       blk-mq: quiesce queue during switching io sched and updating nr_requests
>       blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback
>       blk-mq: don't dispatch request in blk_mq_request_direct_issue if queue is busy
>       blk-mq: introduce BLK_STS_DEV_RESOURCE
>       blk-mq: dequeue request one by one from sw queue if hctx is busy
>       blk-mq: issue directly if hw queue isn't busy in case of 'none'
>       blk-mq: fail the request in case issue failure
> 
> Yufen Yu (1):
>       dm mpath: fix missing call of path selector type->end_io
> 
>  block/blk-core.c             |   4 +-
>  block/blk-exec.c             |   2 +-
>  block/blk-mq-debugfs.c       |   9 ++
>  block/blk-mq-sched.c         |  26 +++--
>  block/blk-mq-sched.h         |   2 +-
>  block/blk-mq.c               | 258 +++++++++++++++++++++++++++++++++----------
>  block/blk-mq.h               |   5 +
>  block/elevator.c             |   2 +
>  drivers/block/null_blk.c     |   2 +-
>  drivers/block/virtio_blk.c   |   2 +-
>  drivers/block/xen-blkfront.c |   2 +-
>  drivers/md/dm-rq.c           |  20 +++-
>  drivers/nvme/host/fc.c       |  12 +-
>  drivers/scsi/scsi_lib.c      |   6 +-
>  include/linux/blk-mq.h       |   3 +-
>  include/linux/blk_types.h    |  18 +++
>  16 files changed, 281 insertions(+), 92 deletions(-)
> 
> 
Isolated to specific usage and tested.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Sacilotto de Souza Jan. 7, 2020, 4:28 p.m. UTC | #2
On 2019-12-13 21:13, Marcelo Henrique Cerri wrote:
> BugLink: https://bugs.launchpad.net/bugs/1848739
> 
> This patch set was already included into the 4.15 xenial:linux-azure
> kernel, but it affects all our 4.15 kernels and the same issue was
> already reported for the 4.15 linux-gcp kernel.
> 
> The patch set was already tested against linux-gcp, as described on
> the LP bug, with positive results. Since we have positive feedbacks
> with both linux-azure and linux-gcp, the risk of regression for the
> inclusion on the 4.15 master kernel should be small.
> 
> ---
> 
> The following changes since commit bdefbb8e170ff68940ffcaec6456ba3986cb0ce7:
> 
>   selftests/net: correct the return value for run_afpackettests (2019-12-10 15:30:55 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/bionic lp1848739
> 
> for you to fetch changes up to f249c87a984b9f638fac9af5ed48d800ed107971:
> 
>   blk-mq: punt failed direct issue to dispatch list (2019-12-13 15:18:16 -0300)

Changes already running on some cloud derivatives for a while and
with good test results. So it seems relatively safe to apply the
changes to the main bionic kernel.

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

> 
> ----------------------------------------------------------------
> Bart Van Assche (1):
>       blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()
> 
> Jens Axboe (4):
>       blk-mq: move hctx lock/unlock into a helper
>       blk-mq: don't queue more if we get a busy return
>       blk-mq: fix corruption with direct issue
>       blk-mq: punt failed direct issue to dispatch list
> 
> Mike Snitzer (2):
>       blk-mq: factor out a few helpers from __blk_mq_try_issue_directly
>       blk-mq-sched: remove unused 'can_block' arg from blk_mq_sched_insert_request
> 
> Ming Lei (7):
>       blk-mq: quiesce queue during switching io sched and updating nr_requests
>       blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback
>       blk-mq: don't dispatch request in blk_mq_request_direct_issue if queue is busy
>       blk-mq: introduce BLK_STS_DEV_RESOURCE
>       blk-mq: dequeue request one by one from sw queue if hctx is busy
>       blk-mq: issue directly if hw queue isn't busy in case of 'none'
>       blk-mq: fail the request in case issue failure
> 
> Yufen Yu (1):
>       dm mpath: fix missing call of path selector type->end_io
> 
>  block/blk-core.c             |   4 +-
>  block/blk-exec.c             |   2 +-
>  block/blk-mq-debugfs.c       |   9 ++
>  block/blk-mq-sched.c         |  26 +++--
>  block/blk-mq-sched.h         |   2 +-
>  block/blk-mq.c               | 258 +++++++++++++++++++++++++++++++++----------
>  block/blk-mq.h               |   5 +
>  block/elevator.c             |   2 +
>  drivers/block/null_blk.c     |   2 +-
>  drivers/block/virtio_blk.c   |   2 +-
>  drivers/block/xen-blkfront.c |   2 +-
>  drivers/md/dm-rq.c           |  20 +++-
>  drivers/nvme/host/fc.c       |  12 +-
>  drivers/scsi/scsi_lib.c      |   6 +-
>  include/linux/blk-mq.h       |   3 +-
>  include/linux/blk_types.h    |  18 +++
>  16 files changed, 281 insertions(+), 92 deletions(-)
> 
>
Kleber Sacilotto de Souza Jan. 7, 2020, 4:30 p.m. UTC | #3
On 2019-12-13 21:13, Marcelo Henrique Cerri wrote:
> BugLink: https://bugs.launchpad.net/bugs/1848739
> 
> This patch set was already included into the 4.15 xenial:linux-azure
> kernel, but it affects all our 4.15 kernels and the same issue was
> already reported for the 4.15 linux-gcp kernel.
> 
> The patch set was already tested against linux-gcp, as described on
> the LP bug, with positive results. Since we have positive feedbacks
> with both linux-azure and linux-gcp, the risk of regression for the
> inclusion on the 4.15 master kernel should be small.
> 
> ---
> 
> The following changes since commit bdefbb8e170ff68940ffcaec6456ba3986cb0ce7:
> 
>   selftests/net: correct the return value for run_afpackettests (2019-12-10 15:30:55 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/bionic lp1848739
> 
> for you to fetch changes up to f249c87a984b9f638fac9af5ed48d800ed107971:
> 
>   blk-mq: punt failed direct issue to dispatch list (2019-12-13 15:18:16 -0300)

Applied to bionic/linux.

Thanks,
Kleber

> 
> ----------------------------------------------------------------
> Bart Van Assche (1):
>       blk-mq: Rename blk_mq_request_direct_issue() into blk_mq_request_issue_directly()
> 
> Jens Axboe (4):
>       blk-mq: move hctx lock/unlock into a helper
>       blk-mq: don't queue more if we get a busy return
>       blk-mq: fix corruption with direct issue
>       blk-mq: punt failed direct issue to dispatch list
> 
> Mike Snitzer (2):
>       blk-mq: factor out a few helpers from __blk_mq_try_issue_directly
>       blk-mq-sched: remove unused 'can_block' arg from blk_mq_sched_insert_request
> 
> Ming Lei (7):
>       blk-mq: quiesce queue during switching io sched and updating nr_requests
>       blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback
>       blk-mq: don't dispatch request in blk_mq_request_direct_issue if queue is busy
>       blk-mq: introduce BLK_STS_DEV_RESOURCE
>       blk-mq: dequeue request one by one from sw queue if hctx is busy
>       blk-mq: issue directly if hw queue isn't busy in case of 'none'
>       blk-mq: fail the request in case issue failure
> 
> Yufen Yu (1):
>       dm mpath: fix missing call of path selector type->end_io
> 
>  block/blk-core.c             |   4 +-
>  block/blk-exec.c             |   2 +-
>  block/blk-mq-debugfs.c       |   9 ++
>  block/blk-mq-sched.c         |  26 +++--
>  block/blk-mq-sched.h         |   2 +-
>  block/blk-mq.c               | 258 +++++++++++++++++++++++++++++++++----------
>  block/blk-mq.h               |   5 +
>  block/elevator.c             |   2 +
>  drivers/block/null_blk.c     |   2 +-
>  drivers/block/virtio_blk.c   |   2 +-
>  drivers/block/xen-blkfront.c |   2 +-
>  drivers/md/dm-rq.c           |  20 +++-
>  drivers/nvme/host/fc.c       |  12 +-
>  drivers/scsi/scsi_lib.c      |   6 +-
>  include/linux/blk-mq.h       |   3 +-
>  include/linux/blk_types.h    |  18 +++
>  16 files changed, 281 insertions(+), 92 deletions(-)
> 
>