All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <damien.lemoal@wdc.com>
To: linux-scsi@vger.kernel.org,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>, Bart Van Assche <bvanassche@acm.org>
Subject: [PATCH 0/3] Fix zone revalidation memory allocation failures
Date: Tue, 25 Jun 2019 11:46:22 +0900	[thread overview]
Message-ID: <20190625024625.23976-1-damien.lemoal@wdc.com> (raw)

This series addresses a reccuring problem with zone revalidation
failures observed during extensive testing with memory constrained
system and device hot-plugging.

The problem source is failure to allocate large memory areas with
alloc_pages() or kmalloc() in blk_revalidate_disk_zones() to store the
disk array of zones (struct blk_zone) or in sd_zbc_report_zones() for
the report zones command reply buffer.

The solution proposed here is to:
1) limit the number of zones to be reported with a single report zones
command execution, and
2) Use vmalloc to allocate large-ish arrays and buffers in place of
alloc_pages() and kmalloc().

With these changes, tests do not show any zone revalidation failures
while not impacting the time taken for a disk initial zone inspection
during device scan.

Damien Le Moal (3):
  block: Allow mapping of vmalloc-ed buffers
  sd_zbc: Fix report zones buffer allocation
  block: Limit zone array allocation size

 block/bio.c            |  8 ++++-
 block/blk-zoned.c      | 29 +++++++---------
 drivers/scsi/sd_zbc.c  | 79 +++++++++++++++++++++++++++++++-----------
 include/linux/blkdev.h |  5 +++
 4 files changed, 84 insertions(+), 37 deletions(-)

-- 
2.21.0


             reply	other threads:[~2019-06-25  2:46 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-25  2:46 Damien Le Moal [this message]
2019-06-25  2:46 ` [PATCH 1/3] block: Allow mapping of vmalloc-ed buffers Damien Le Moal
2019-06-25  3:24   ` Chaitanya Kulkarni
2019-06-25 15:59     ` Bart Van Assche
2019-06-25 16:06       ` Chaitanya Kulkarni
2019-06-26  1:38         ` Damien Le Moal
2019-06-26  4:19           ` Chaitanya Kulkarni
2019-06-25 15:59   ` Bart Van Assche
2019-06-25 16:22   ` Christoph Hellwig
2019-06-25  2:46 ` [PATCH 2/3] sd_zbc: Fix report zones buffer allocation Damien Le Moal
2019-06-25 10:37   ` kbuild test robot
2019-06-25 16:07   ` Bart Van Assche
2019-06-25  2:46 ` [PATCH 3/3] block: Limit zone array allocation size Damien Le Moal
2019-06-25 16:10   ` Bart Van Assche

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190625024625.23976-1-damien.lemoal@wdc.com \
    --to=damien.lemoal@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=hch@lst.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.