All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Mikulas Patocka <mpatocka@redhat.com>
Cc: dm-devel@redhat.com, Zdenek Kabelac <zkabelac@redhat.com>
Subject: Re: dm-raid: stack limits instead of overwriting them.
Date: Fri, 25 Sep 2020 09:20:57 -0400	[thread overview]
Message-ID: <20200925132057.GA4245@redhat.com> (raw)
In-Reply-To: <alpine.LRH.2.02.2009250801070.3475@file01.intranet.prod.int.rdu2.redhat.com>

On Fri, Sep 25 2020 at  8:04am -0400,
Mikulas Patocka <mpatocka@redhat.com> wrote:

> 
> 
> On Thu, 24 Sep 2020, Mike Snitzer wrote:
> 
> > On Thu, Sep 24 2020 at  2:12pm -0400,
> > Mikulas Patocka <mpatocka@redhat.com> wrote:
> > 
> > > 
> > > 
> > > On Thu, 24 Sep 2020, Mikulas Patocka wrote:
> > > 
> > > > 
> > > > 
> > > > On Thu, 24 Sep 2020, Mike Snitzer wrote:
> > > > 
> > > > > WAIT... Could it be that raid_io_hints _really_ meant to special case
> > > > > raid0 and raid10 -- due to their striping/splitting requirements!?
> > > > > So, not raid1 but raid0?
> > > > > 
> > > > > E.g.:
> > > > > 
> > > > > diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
> > > > > index 56b723d012ac..6dca932d6f1d 100644
> > > > > --- a/drivers/md/dm-raid.c
> > > > > +++ b/drivers/md/dm-raid.c
> > > > > @@ -3730,10 +3730,10 @@ static void raid_io_hints(struct dm_target *ti,
> > > > > struct queue_limits *limits)
> > > > >         blk_limits_io_opt(limits, chunk_size_bytes *
> > > > > 	mddev_data_stripes(rs));
> > > > > 
> > > > >         /*
> > > > > -        * RAID1 and RAID10 personalities require bio splitting,
> > > > > -        * RAID0/4/5/6 don't and process large discard bios properly.
> > > > > +        * RAID0 and RAID10 personalities require bio splitting,
> > > > > +        * RAID1/4/5/6 don't and process large discard bios properly.
> > > > >          */
> > > > > -       if (rs_is_raid1(rs) || rs_is_raid10(rs)) {
> > > > > +       if (rs_is_raid0(rs) || rs_is_raid10(rs)) {
> > > > >                 limits->discard_granularity = chunk_size_bytes;
> > > > >                 limits->max_discard_sectors = rs->md.chunk_sectors;
> > > > >         }
> > > > > 
> > > > > Mike
> > > > 
> > > > Yes - that's an interesing point.
> > > > 
> > > > Mikulas
> > > 
> > > But raid0_handle_discard handles discards with arbitrary start/end 
> > > sectors.
> > > 
> > > So, we don't need to set discard_granularity for that.
> > 
> > OK, great, I've staged this:
> > 
> > https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-5.10&id=c1fda10e1123a37cf9d22740486cd66f43c47846
> > 
> > Thanks,
> > Mike
> 
> What if there are multiple targets for a device with different 
> discard_granularity - we would overwrite the settings made by another 
> target.
> 
> Should there be:
> 
> limits->discard_granularity = max(limits->discard_granularity, chunk_size_bytes);
> 
> or perhaps:
> 
> limits->discard_granularity = lcm_not_zero(limits->discard_granularity, chunk_size_bytes);

I'd go with max().  So I can fix up the stable@ patch to actually stack
the limits for raid10.

But it should be noted that there is this patch queued for Jens to pull
in (he actually _did_ pull the MD pull request but then rebased without
it):
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-5.10&id=828d14fd7a6cf

I haappened to have seized on it and will need to adjust given the
changes have been dropped at this point:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-5.10&id=dd29d4b556979dae3cb6460d019c36073af7a3fc

Mike

      reply	other threads:[~2020-09-25 13:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-24 16:26 [PATCH] dm-raid: stack limits instead of overwriting them Mikulas Patocka
2020-09-24 16:45 ` John Dorminy
2020-09-24 16:58   ` Mikulas Patocka
2020-09-24 17:00   ` Mike Snitzer
2020-09-24 17:24     ` John Dorminy
2020-09-24 18:56       ` John Dorminy
2020-09-24 19:15         ` Mike Snitzer
2020-12-17 23:40         ` [dm-devel] " S. Baerwolf
2020-09-24 16:56 ` Mike Snitzer
2020-09-24 17:07   ` Mikulas Patocka
2020-09-24 18:12     ` Mikulas Patocka
2020-09-24 19:07       ` Mike Snitzer
2020-09-25 12:04         ` Mikulas Patocka
2020-09-25 13:20           ` Mike Snitzer [this message]

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=20200925132057.GA4245@redhat.com \
    --to=snitzer@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=mpatocka@redhat.com \
    --cc=zkabelac@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 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.