From: Nilay Shroff <nilay@linux.ibm.com>
To: John Garry <john.g.garry@oracle.com>,
agk@redhat.com, snitzer@kernel.org, mpatocka@redhat.com,
song@kernel.org, yukuai3@huawei.com, hch@lst.de, axboe@kernel.dk
Cc: dm-devel@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-raid@vger.kernel.org, linux-block@vger.kernel.org,
ojaswin@linux.ibm.com, martin.petersen@oracle.com
Subject: Re: [PATCH RFC 3/4] dm-stripe: limit chunk_sectors to the stripe size
Date: Fri, 6 Jun 2025 20:46:22 +0530 [thread overview]
Message-ID: <041186c7-a249-4564-979c-3e480aadaa23@linux.ibm.com> (raw)
In-Reply-To: <20250605150857.4061971-4-john.g.garry@oracle.com>
On 6/5/25 8:38 PM, John Garry wrote:
> Currently we use min io size as the chunk size when deciding on the limit
> of atomic write size.
>
> Using min io size is not reliable, as this may be mutated when stacking
> the bottom device limits.
>
> The block stacking limits will rely on chunk_sectors in future, so set
> this value (to the chunk size).
>
> Introduce a flag - DM_TARGET_STRIPED - and check this in
> dm_set_device_limits() when setting this limit.
>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
> drivers/md/dm-stripe.c | 3 ++-
> drivers/md/dm-table.c | 4 ++++
> include/linux/device-mapper.h | 3 +++
> 3 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
> index a7dc04bd55e5..c30df6715149 100644
> --- a/drivers/md/dm-stripe.c
> +++ b/drivers/md/dm-stripe.c
> @@ -466,7 +466,8 @@ static struct target_type stripe_target = {
> .name = "striped",
> .version = {1, 7, 0},
> .features = DM_TARGET_PASSES_INTEGRITY | DM_TARGET_NOWAIT |
> - DM_TARGET_ATOMIC_WRITES | DM_TARGET_PASSES_CRYPTO,
> + DM_TARGET_ATOMIC_WRITES | DM_TARGET_PASSES_CRYPTO |
> + DM_TARGET_STRIPED,
> .module = THIS_MODULE,
> .ctr = stripe_ctr,
> .dtr = stripe_dtr,
> diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> index 24a857ff6d0b..4f1f7173740c 100644
> --- a/drivers/md/dm-table.c
> +++ b/drivers/md/dm-table.c
> @@ -430,6 +430,10 @@ static int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev,
> return 0;
> }
>
> + /* For striped types, limit the chunk_sectors to the chunk size */
> + if (dm_target_supports_striped(ti->type))
> + limits->chunk_sectors = len >> SECTOR_SHIFT;
> +
I think here "len" refers to the total size of dm target and not the
chunk sectors. So we need to modify this and take into account chunk sectors..
We can get chunk sectors, for example, like this:
struct stripe_c *sc = ti->private;
limits->chunk_sectors = sc->chunk_size;
But again struct stripe_c is private to dm-stripe.c and so we can't access it
here directly in dm-table.c Better we add a new callback function for dm target
type under struct target_type and then use that callback to get chunk sector.
struct target_type stripe_target = {
...
.chunk_sectors = stripe_chunk_sectors,
...
}
Thanks,
--Nilay
next prev parent reply other threads:[~2025-06-06 15:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-05 15:08 [PATCH RFC 0/4] block: set chunk_sectors from stacked dev stripe size John Garry
2025-06-05 15:08 ` [PATCH RFC 1/4] md/raid0: set chunk_sectors limit John Garry
2025-06-05 15:08 ` [PATCH RFC 2/4] md/raid10: " John Garry
2025-06-05 15:08 ` [PATCH RFC 3/4] dm-stripe: limit chunk_sectors to the stripe size John Garry
2025-06-06 15:16 ` Nilay Shroff [this message]
2025-06-12 10:01 ` John Garry
2025-06-09 15:19 ` Mikulas Patocka
2025-06-12 9:15 ` John Garry
2025-06-05 15:08 ` [PATCH RFC 4/4] block: use chunk_sectors when evaluating stacked atomic write limits John Garry
2025-06-06 15:23 ` Nilay Shroff
2025-06-12 9:17 ` John Garry
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=041186c7-a249-4564-979c-3e480aadaa23@linux.ibm.com \
--to=nilay@linux.ibm.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@lists.linux.dev \
--cc=hch@lst.de \
--cc=john.g.garry@oracle.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mpatocka@redhat.com \
--cc=ojaswin@linux.ibm.com \
--cc=snitzer@kernel.org \
--cc=song@kernel.org \
--cc=yukuai3@huawei.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).