From: Christoph Hellwig <hch@lst.de>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Christoph Hellwig <hch@lst.de>, Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org,
"Md. Haris Iqbal" <haris.iqbal@ionos.com>,
Jack Wang <jinpu.wang@ionos.com>, Coly Li <colyli@kernel.org>,
Mike Snitzer <snitzer@kernel.org>,
Mikulas Patocka <mpatocka@redhat.com>, Chris Mason <clm@fb.com>,
Josef Bacik <josef@toxicpanda.com>,
David Sterba <dsterba@suse.com>,
Andreas Gruenbacher <agruenba@redhat.com>,
Carlos Maiolino <cem@kernel.org>,
Damien Le Moal <dlemoal@kernel.org>,
Naohiro Aota <naohiro.aota@wdc.com>,
Johannes Thumshirn <jth@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Pavel Machek <pavel@kernel.org>,
linux-bcache@vger.kernel.org, dm-devel@lists.linux.dev,
linux-btrfs@vger.kernel.org, gfs2@lists.linux.dev,
linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org,
linux-pm@vger.kernel.org
Subject: Re: add more bio helper
Date: Wed, 23 Apr 2025 11:36:21 +0200 [thread overview]
Message-ID: <20250423093621.GA2578@lst.de> (raw)
In-Reply-To: <jetduw7zshrmp4gl7zfpwqjweycwesxiod7xvtnxqwqekgtvdf@idwnvfzvhgik>
On Tue, Apr 22, 2025 at 10:47:03AM -0400, Kent Overstreet wrote:
> On Tue, Apr 22, 2025 at 04:26:01PM +0200, Christoph Hellwig wrote:
> > Hi all,
> >
> > this series adds more block layer helpers to remove boilerplate code when
> > adding memory to a bio or to even do the entire synchronous I/O.
> >
> > The main aim is to avoid having to convert to a struct page in the caller
> > when adding kernel direct mapping or vmalloc memory.
>
> have you seen (bch,bch2)_bio_map?
Now I have.
>
> it's a nicer interface than your bio_add_vmalloc(), and also handles the
> if (is_vmalloc_addr())
Can you explain how it's nicer?
For use with non-vmalloc memory it does a lot of extra work
and generates less optimal bios using more vecs than required, but
maybe that wasn't the point?
For vmalloc it might also build suboptimal bios when using large vmalloc
mappings due to the lack of merging, but I don't think anyone does I/O to
those yet.
It lacks a API description and it or the callers miss handling for VIVT
caches, maybe because of that.
Besides optimizing the direct map case that always needs just one vec
that is also one of the reasons why I want the callers to know about
vmalloc vs non-vmalloc memory.
It also don't support bio chaining or error handling and requires a
single bio that is guaranteed to fit the required number of vectors.
OTOH for callers where that applies it would be nice to have a
helper that loops over bio_add_vmalloc. I actually had one initially,
but given that I only found two obvious users I dropped it for now.
If we get more we can add one.
next prev parent reply other threads:[~2025-04-23 9:36 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-22 14:26 add more bio helper Christoph Hellwig
2025-04-22 14:26 ` [PATCH 01/17] block: add a bio_add_virt_nofail helper Christoph Hellwig
2025-04-23 6:05 ` Hannes Reinecke
2025-04-24 5:56 ` Damien Le Moal
2025-04-29 11:02 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 02/17] block: add a bdev_rw_virt helper Christoph Hellwig
2025-04-23 6:07 ` Hannes Reinecke
2025-04-23 9:36 ` Christoph Hellwig
2025-04-24 5:59 ` Damien Le Moal
2025-04-24 6:26 ` John Garry
2025-04-29 11:03 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 03/17] block: add a bio_add_vmalloc helper Christoph Hellwig
2025-04-23 6:09 ` Hannes Reinecke
2025-04-24 6:06 ` Damien Le Moal
2025-04-29 11:05 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 04/17] block: remove the q argument from blk_rq_map_kern Christoph Hellwig
2025-04-23 6:10 ` Hannes Reinecke
2025-04-29 11:24 ` Johannes Thumshirn
2025-04-29 12:28 ` hch
2025-04-24 6:09 ` Damien Le Moal
2025-04-22 14:26 ` [PATCH 05/17] block: pass the operation to bio_{map,copy}_kern Christoph Hellwig
2025-04-23 6:11 ` Hannes Reinecke
2025-04-24 6:11 ` Damien Le Moal
2025-04-29 11:29 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 06/17] block: simplify bio_map_kern Christoph Hellwig
2025-04-23 6:14 ` Hannes Reinecke
2025-04-24 6:13 ` Damien Le Moal
2025-04-29 11:31 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 07/17] bcache: use bio_add_virt_nofail Christoph Hellwig
2025-04-24 6:14 ` Damien Le Moal
2025-04-29 2:06 ` Coly Li
2025-04-29 11:32 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 08/17] dm-bufio: " Christoph Hellwig
2025-04-24 6:14 ` Damien Le Moal
2025-04-29 11:33 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 09/17] dm-integrity: " Christoph Hellwig
2025-04-24 6:16 ` Damien Le Moal
2025-04-29 11:34 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 10/17] rnbd-srv: " Christoph Hellwig
2025-04-24 6:16 ` Damien Le Moal
2025-04-24 6:16 ` Damien Le Moal
2025-04-24 7:14 ` Jinpu Wang
2025-04-29 11:34 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 11/17] xfs: simplify xfs_buf_submit_bio Christoph Hellwig
2025-04-24 6:18 ` Damien Le Moal
2025-04-29 14:53 ` Darrick J. Wong
2025-04-22 14:26 ` [PATCH 12/17] xfs: simplify xfs_rw_bdev Christoph Hellwig
2025-04-24 6:20 ` Damien Le Moal
2025-04-29 14:53 ` Darrick J. Wong
2025-04-22 14:26 ` [PATCH 13/17] btrfs: use bdev_rw_virt in scrub_one_super Christoph Hellwig
2025-04-24 6:20 ` Damien Le Moal
2025-04-28 9:18 ` Johannes Thumshirn
2025-04-28 9:22 ` Qu Wenruo
2025-04-22 14:26 ` [PATCH 14/17] hfsplus: use bdev_rw_virt in hfsplus_submit_bio Christoph Hellwig
2025-04-24 6:21 ` Damien Le Moal
2025-04-29 11:39 ` Johannes Thumshirn
2025-04-22 14:26 ` [PATCH 15/17] gfs2: use bdev_rw_virt in gfs2_read_super Christoph Hellwig
2025-04-24 6:23 ` Damien Le Moal
2025-04-24 8:08 ` Andreas Gruenbacher
2025-04-22 14:26 ` [PATCH 16/17] zonefs: use bdev_rw_virt in zonefs_read_super Christoph Hellwig
2025-04-24 6:24 ` Damien Le Moal
2025-04-29 11:44 ` Johannes Thumshirn
2025-04-29 12:31 ` hch
2025-04-22 14:26 ` [PATCH 17/17] PM: hibernate: split and simplify hib_submit_io Christoph Hellwig
2025-04-24 6:26 ` Damien Le Moal
2025-04-29 11:12 ` Rafael J. Wysocki
2025-04-22 14:47 ` add more bio helper Kent Overstreet
2025-04-23 9:36 ` Christoph Hellwig [this message]
2025-04-23 10:37 ` Kent Overstreet
2025-04-23 16:07 ` Christoph Hellwig
2025-04-23 18:02 ` Kent Overstreet
2025-04-24 8:37 ` Christoph Hellwig
2025-04-24 12:01 ` Kent Overstreet
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=20250423093621.GA2578@lst.de \
--to=hch@lst.de \
--cc=agruenba@redhat.com \
--cc=axboe@kernel.dk \
--cc=cem@kernel.org \
--cc=clm@fb.com \
--cc=colyli@kernel.org \
--cc=dlemoal@kernel.org \
--cc=dm-devel@lists.linux.dev \
--cc=dsterba@suse.com \
--cc=gfs2@lists.linux.dev \
--cc=haris.iqbal@ionos.com \
--cc=jinpu.wang@ionos.com \
--cc=josef@toxicpanda.com \
--cc=jth@kernel.org \
--cc=kent.overstreet@linux.dev \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=naohiro.aota@wdc.com \
--cc=pavel@kernel.org \
--cc=rafael@kernel.org \
--cc=snitzer@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox