From: Mike Snitzer <snitzer@redhat.com>
To: Gabriel Krisman Bertazi <krisman@collabora.com>
Cc: dm-devel@redhat.com, kernel@collabora.com, khazhy@google.com
Subject: Re: [dm-devel] dm: dm-mpath: Provide high-resolution timer to HST with bio-mpath
Date: Mon, 9 May 2022 15:47:54 -0400 [thread overview]
Message-ID: <Ynlv6lyV1OgZe6h5@redhat.com> (raw)
In-Reply-To: <20220427165710.225808-1-krisman@collabora.com>
On Wed, Apr 27 2022 at 12:57P -0400,
Gabriel Krisman Bertazi <krisman@collabora.com> wrote:
> The precision loss of reading IO start_time with jiffies_to_nsecs
> instead of using a high resolution timer degrades HST path prediction
> for BIO-based mpath on high load workloads.
>
> Below, I show the utilization percentage of a 10 disk multipath with
> asymmetrical disk access cost, while being exercised by a randwrite FIO
> benchmark with high submission queue depth (depth=64). It is possible
> to see that the HST path selection degrades heavily for high-iops in
> BIO-mpath, underutilizing the slower paths way beyond expected. This
> seems to be caused by the start_time truncation, which makes some IO to
> seem much slower than they actually is. In this scenario ST outperforms
> HST for bio-mpath, but not for mq-mpath, which already uses ktime_get_ns().
>
> The third column shows utilization with this patch applied. It is easy
> to see that now HST prediction is much closer to the ideal distribution
> (calculated considering the real cost of each path).
>
> | | ST | HST (orig) | HST(ktime) | Best |
> | sdd | 0.17 | 0.20 | 0.17 | 0.18 |
> | sde | 0.17 | 0.20 | 0.17 | 0.18 |
> | sdf | 0.17 | 0.20 | 0.17 | 0.18 |
> | sdg | 0.06 | 0.00 | 0.06 | 0.04 |
> | sdh | 0.03 | 0.00 | 0.03 | 0.02 |
> | sdi | 0.03 | 0.00 | 0.03 | 0.02 |
> | sdj | 0.02 | 0.00 | 0.01 | 0.01 |
> | sdk | 0.02 | 0.00 | 0.01 | 0.01 |
> | sdl | 0.17 | 0.20 | 0.17 | 0.18 |
> | sdm | 0.17 | 0.20 | 0.17 | 0.18 |
>
> This issue was originally discussed [1] when we first merged HST, and
> this patch was left as a low hanging fruit to be solved later. I don't
> think anyone is using HST with BIO mpath, but it'd be neat to get it
> sorted out.
>
> Regarding the implementation, as suggested by Mike in that mail thread,
> in order to avoid the overhead of ktime_get_ns for other selectors, this
> patch adds a flag for the selector code to request the high-resolution
> timer.
>
> I tested this using the same benchmark used in the original HST submission.
>
> Full test and benchmark scripts are available here:
>
> https://people.collabora.com/~krisman/HST-BIO-MPATH/
>
> [1] https://lore.kernel.org/lkml/85tv0am9de.fsf@collabora.com/T/
>
> Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
> Acked-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Overall your code was OK, but I nudged it a bit further to be
inkeeping with how 'features' flags have been implemented elsewhere
(e.g. dm_target_type's features) -- by using a healer to test the
flag, etc.
I also tweaked some other small implementation details. Please see:
https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-5.19&id=c06dfd124d46df9c482fbd1319b5fe19bcb1a110
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
next prev parent reply other threads:[~2022-05-09 19:48 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-27 16:57 [dm-devel] [PATCH] dm: dm-mpath: Provide high-resolution timer to HST with bio-mpath Gabriel Krisman Bertazi
2022-05-09 19:47 ` Mike Snitzer [this message]
2022-05-09 19:48 ` [dm-devel] " Mike Snitzer
2022-05-09 20:33 ` Gabriel Krisman Bertazi
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=Ynlv6lyV1OgZe6h5@redhat.com \
--to=snitzer@redhat.com \
--cc=dm-devel@redhat.com \
--cc=kernel@collabora.com \
--cc=khazhy@google.com \
--cc=krisman@collabora.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.