All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Begunkov <asml.silence@gmail.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: io-uring@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
	Conrad Meyer <conradmeyer@meta.com>,
	linux-block@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 6/7] block: implement async wire write zeroes
Date: Thu, 22 Aug 2024 14:09:05 +0100	[thread overview]
Message-ID: <523aed7d-6c19-4fce-9a25-b13163a43917@gmail.com> (raw)
In-Reply-To: <ZsbfwKgdLZKVHOMD@infradead.org>

On 8/22/24 07:50, Christoph Hellwig wrote:
> On Thu, Aug 22, 2024 at 04:35:56AM +0100, Pavel Begunkov wrote:
>> Add another io_uring cmd for block layer implementing asynchronous write
>> zeroes. It reuses helpers we've added for async discards, and inherits
>> the code structure as well as all considerations in regards to page
>> cache races.
> 
> Most comments from discard apply here as well.
> 
>> +static int blkdev_queue_cmd(struct io_uring_cmd *cmd, struct block_device *bdev,
>> +			    uint64_t start, uint64_t len, sector_t limit,
>> +			    blk_opf_t opf)
> 
> This feels a little over generic as it doesn't just queue any random
> command.
> 
>> +static int blkdev_cmd_write_zeroes(struct io_uring_cmd *cmd,
>> +				   struct block_device *bdev,
>> +				   uint64_t start, uint64_t len, bool nowait)
>> +{
>> +	blk_opf_t opf = REQ_OP_WRITE_ZEROES | REQ_NOUNMAP;
>> +
>> +	if (nowait)
>> +		opf |= REQ_NOWAIT;
>> +	return blkdev_queue_cmd(cmd, bdev, start, len,
>> +				bdev_write_zeroes_sectors(bdev), opf);
> 
> So no support for fallback to Write of zero page here?  That's probably
> the case where the async offload is needed most.

Fair enough, but I believe it's more reasonable to have a separate
cmd for it instead of silently falling back.

-- 
Pavel Begunkov

  reply	other threads:[~2024-08-22 13:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-22  3:35 [PATCH v2 0/7] implement async block discards/etc. via io_uring Pavel Begunkov
2024-08-22  3:35 ` [PATCH v2 1/7] io_uring/cmd: expose iowq to cmds Pavel Begunkov
2024-08-22  3:35 ` [PATCH v2 2/7] io_uring/cmd: give inline space in request " Pavel Begunkov
2024-08-22  3:35 ` [PATCH v2 3/7] filemap: introduce filemap_invalidate_pages Pavel Begunkov
2024-08-22  6:37   ` Christoph Hellwig
2024-08-22  3:35 ` [PATCH v2 4/7] block: introduce blk_validate_write() Pavel Begunkov
2024-08-22  6:33   ` Christoph Hellwig
2024-08-22 12:36     ` Pavel Begunkov
2024-08-23 11:52       ` Christoph Hellwig
2024-08-22  3:35 ` [PATCH v2 5/7] block: implement async discard as io_uring cmd Pavel Begunkov
2024-08-22  6:46   ` Christoph Hellwig
2024-08-22 13:07     ` Pavel Begunkov
2024-08-23 11:59       ` Christoph Hellwig
2024-09-04 14:08         ` Pavel Begunkov
2024-08-22  3:35 ` [PATCH v2 6/7] block: implement async wire write zeroes Pavel Begunkov
2024-08-22  6:50   ` Christoph Hellwig
2024-08-22 13:09     ` Pavel Begunkov [this message]
2024-08-22  3:35 ` [PATCH v2 7/7] block: implement async secure erase Pavel Begunkov
2024-08-22  6:36   ` Christoph Hellwig
2024-08-22 12:36     ` Pavel Begunkov

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=523aed7d-6c19-4fce-9a25-b13163a43917@gmail.com \
    --to=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=conradmeyer@meta.com \
    --cc=hch@infradead.org \
    --cc=io-uring@vger.kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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.