From: Bart Van Assche <bvanassche@acm.org>
To: Changheun Lee <nanich.lee@samsung.com>
Cc: Johannes.Thumshirn@wdc.com, asml.silence@gmail.com,
axboe@kernel.dk, damien.lemoal@wdc.com,
gregkh@linuxfoundation.org, hch@infradead.org,
jisoo2146.oh@samsung.com, junho89.kim@samsung.com,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
ming.lei@redhat.com, mj0123.lee@samsung.com, osandov@fb.com,
patchwork-bot@kernel.org, seunghwan.hyun@samsung.com,
sookwan7.kim@samsung.com, tj@kernel.org, tom.leiming@gmail.com,
woosung2.lee@samsung.com, yt0928.kim@samsung.com
Subject: Re: [PATCH v7 1/3] bio: limit bio max size
Date: Thu, 15 Apr 2021 12:18:52 -0700 [thread overview]
Message-ID: <bb8f7127-edff-4a32-2d5c-4343002bda19@acm.org> (raw)
In-Reply-To: <20210415103820.23272-1-nanich.lee@samsung.com>
On 4/15/21 3:38 AM, Changheun Lee wrote:
> @@ -167,6 +168,7 @@ void blk_queue_max_hw_sectors(struct request_queue *q, unsigned int max_hw_secto
> max_sectors = round_down(max_sectors,
> limits->logical_block_size >> SECTOR_SHIFT);
> limits->max_sectors = max_sectors;
> + limits->bio_max_bytes = max_sectors << SECTOR_SHIFT;
>
> q->backing_dev_info->io_pages = max_sectors >> (PAGE_SHIFT - 9);
> }
Can the new shift operation overflow? If so, how about using
check_shl_overflow()?
> @@ -538,6 +540,8 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
> {
> unsigned int top, bottom, alignment, ret = 0;
>
> + t->bio_max_bytes = min_not_zero(t->bio_max_bytes, b->bio_max_bytes);
> +
> t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors);
> t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors);
> t->max_dev_sectors = min_not_zero(t->max_dev_sectors, b->max_dev_sectors);
The above will limit bio_max_bytes for all stacked block devices, which
is something we do not want. I propose to set t->bio_max_bytes to
UINT_MAX in blk_stack_limits() and to let the stacked driver (e.g.
dm-crypt) decide whether or not to lower that value.
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index d0246c92a6e8..e5add63da3af 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -106,6 +106,8 @@ static inline void *bio_data(struct bio *bio)
> return NULL;
> }
>
> +extern unsigned int bio_max_size(struct bio *bio);
You may want to define bio_max_size() as an inline function in bio.h
such that no additional function calls are introduced in the hot path.
Thanks,
Bart.
next prev parent reply other threads:[~2021-04-15 19:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20210413031256epcas1p2f3c3f140192178928b92fc070010354d@epcas1p2.samsung.com>
2021-04-13 2:54 ` [PATCH v7 0/3] limit bio max size Changheun Lee
[not found] ` <CGME20210413031257epcas1p329f38effa71445de2464cee32002e618@epcas1p3.samsung.com>
2021-04-13 2:55 ` [PATCH v7 1/3] bio: " Changheun Lee
2021-04-13 16:18 ` Bart Van Assche
[not found] ` <CGME20210415105608epcas1p269bae87b8a7dab133753f7916420251e@epcas1p2.samsung.com>
2021-04-15 10:38 ` Changheun Lee
2021-04-15 19:18 ` Bart Van Assche [this message]
[not found] ` <CGME20210416060827epcas1p39350d45cef64c91be681b76180b63140@epcas1p3.samsung.com>
2021-04-16 5:50 ` Changheun Lee
2021-04-16 15:28 ` Bart Van Assche
[not found] ` <CGME20210419060745epcas1p220138a5de8e08201a6bcd9193c37fc51@epcas1p2.samsung.com>
2021-04-19 5:49 ` Changheun Lee
2021-04-19 22:16 ` Bart Van Assche
[not found] ` <CGME20210420011139epcas1p429e791d6f8ffea596661e9366babbec8@epcas1p4.samsung.com>
2021-04-20 0:53 ` Changheun Lee
[not found] ` <CGME20210413031258epcas1p469e9bd0145a49d440541cee899fd4d8e@epcas1p4.samsung.com>
2021-04-13 2:55 ` [PATCH v7 2/3] ufs: set QUEUE_FLAG_LIMIT_BIO_SIZE Changheun Lee
2021-04-13 16:14 ` Bart Van Assche
[not found] ` <CGME20210414015804epcas1p21a7581e22dc553530c516459f32d78a9@epcas1p2.samsung.com>
2021-04-14 1:40 ` Changheun Lee
[not found] ` <CGME20210413031259epcas1p4406eaed9ba20e684fc038bf1937b94ff@epcas1p4.samsung.com>
2021-04-13 2:55 ` [PATCH v7 3/3] bio: add limit_bio_size sysfs Changheun Lee
2021-04-13 7:35 ` Greg KH
[not found] ` <CGME20210413113510epcas1p29dd90b47ba8c8701a2309fc34698ad29@epcas1p2.samsung.com>
2021-04-13 11:17 ` Changheun Lee
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=bb8f7127-edff-4a32-2d5c-4343002bda19@acm.org \
--to=bvanassche@acm.org \
--cc=Johannes.Thumshirn@wdc.com \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=damien.lemoal@wdc.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=jisoo2146.oh@samsung.com \
--cc=junho89.kim@samsung.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.lei@redhat.com \
--cc=mj0123.lee@samsung.com \
--cc=nanich.lee@samsung.com \
--cc=osandov@fb.com \
--cc=patchwork-bot@kernel.org \
--cc=seunghwan.hyun@samsung.com \
--cc=sookwan7.kim@samsung.com \
--cc=tj@kernel.org \
--cc=tom.leiming@gmail.com \
--cc=woosung2.lee@samsung.com \
--cc=yt0928.kim@samsung.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;
as well as URLs for NNTP newsgroup(s).