From: Keith Busch <kbusch@kernel.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: Bart Van Assche <bvanassche@acm.org>,
Ming Lei <ming.lei@redhat.com>, Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org, Yi Zhang <yi.zhang@redhat.com>,
John Garry <john.g.garry@oracle.com>,
Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH] block: make queue limits workable in case of 64K PAGE_SIZE
Date: Sat, 4 Jan 2025 16:59:39 -0800 [thread overview]
Message-ID: <Z3nZe3nRS5KyaLzr@kbusch-mbp> (raw)
In-Reply-To: <Z3izUEIPTdvRg5Xe@bombadil.infradead.org>
On Fri, Jan 03, 2025 at 08:04:32PM -0800, Luis Chamberlain wrote:
> On Fri, Jan 03, 2025 at 06:15:55PM -0800, Bart Van Assche wrote:
> > On 1/3/25 5:47 PM, Luis Chamberlain wrote:
> > > While that addresses a smaller segment then page size this still leaves
> > > open the question of if a dma segment can be larger than page size,
> > Hmm ... aren't max_segment_size values that are larger than the page
> > size supported since day one of the Linux kernel? Or are you perhaps
> > referring to Ming's multi-page bvec patch series that was merged about
> > six years ago?
>
> Try aiming high for a single 2 MiB for a single IO on x86_64 on NVMe, that is
> currently not possible. At the max 128 NVMe number of DMA segments, and we have
> 4 KiB per DMA segment, for a 512 KiB IO limit. Should multi-page bvec
> enable to lift this?
You need huge pages to guarantee you can reach those transfer sizes in a
single command. Otherwise you need to get lucky with larger contiguous
folios, which can certainly happen but it's just not as desterministic.
There are many nvme devices that absoulutely require 4KiB as the largest
segment, but the driver says it can handle much larger segments anyway.
It's trivial for the driver to split a large bio vec into a bunch of
smaller device specific descriptors.
next prev parent reply other threads:[~2025-01-05 0:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-02 1:56 [PATCH] block: make queue limits workable in case of 64K PAGE_SIZE Ming Lei
2025-01-02 2:30 ` Bart Van Assche
2025-01-02 2:49 ` Ming Lei
2025-01-02 3:46 ` Bart Van Assche
2025-01-03 2:01 ` Ming Lei
2025-01-03 22:12 ` Bart Van Assche
2025-01-04 1:47 ` Luis Chamberlain
2025-01-04 2:15 ` Bart Van Assche
2025-01-04 4:04 ` Luis Chamberlain
2025-01-04 22:30 ` Bart Van Assche
2025-01-08 19:32 ` Luis Chamberlain
2025-01-05 0:59 ` Keith Busch [this message]
2025-01-08 19:12 ` Luis Chamberlain
2025-01-06 1:20 ` Ming Lei
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=Z3nZe3nRS5KyaLzr@kbusch-mbp \
--to=kbusch@kernel.org \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hch@lst.de \
--cc=john.g.garry@oracle.com \
--cc=linux-block@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=ming.lei@redhat.com \
--cc=yi.zhang@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox