From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Khazhismel Kumykov <khazhy@google.com>
Cc: dm-devel@redhat.com, Mike Snitzer <snitzer@kernel.org>,
linux-kernel@vger.kernel.org, Alasdair Kergon <agk@redhat.com>
Subject: Re: [dm-devel] [PATCH] dm mpath: fixup sched_clock() usage in historical selector
Date: Mon, 11 Apr 2022 19:48:53 -0400 [thread overview]
Message-ID: <87wnfvxjtm.fsf@collabora.com> (raw)
In-Reply-To: <20220411220335.1235363-1-khazhy@google.com> (Khazhismel Kumykov's message of "Mon, 11 Apr 2022 15:03:35 -0700")
Khazhismel Kumykov <khazhy@google.com> writes:
> mixing sched_clock() and ktime_get_ns() will give bad results, don't do
> it
>
> Fixes: 2613eab11996 ("dm mpath: add Historical Service Time Path Selector")
> Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Looks good.
Reviewed-by: Gabriel Krisman Bertazi <krisman@collabora.com>
> ---
> drivers/md/dm-ps-historical-service-time.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/md/dm-ps-historical-service-time.c b/drivers/md/dm-ps-historical-service-time.c
> index 875bca30a0dd..82f2a06153dc 100644
> --- a/drivers/md/dm-ps-historical-service-time.c
> +++ b/drivers/md/dm-ps-historical-service-time.c
> @@ -27,7 +27,6 @@
> #include <linux/blkdev.h>
> #include <linux/slab.h>
> #include <linux/module.h>
> -#include <linux/sched/clock.h>
>
>
> #define DM_MSG_PREFIX "multipath historical-service-time"
> @@ -433,7 +432,7 @@ static struct dm_path *hst_select_path(struct path_selector *ps,
> {
> struct selector *s = ps->context;
> struct path_info *pi = NULL, *best = NULL;
> - u64 time_now = sched_clock();
> + u64 time_now = ktime_get_ns();
> struct dm_path *ret = NULL;
> unsigned long flags;
>
> @@ -474,7 +473,7 @@ static int hst_start_io(struct path_selector *ps, struct dm_path *path,
>
> static u64 path_service_time(struct path_info *pi, u64 start_time)
> {
> - u64 sched_now = ktime_get_ns();
> + u64 now = ktime_get_ns();
>
> /* if a previous disk request has finished after this IO was
> * sent to the hardware, pretend the submission happened
> @@ -483,11 +482,11 @@ static u64 path_service_time(struct path_info *pi, u64 start_time)
> if (time_after64(pi->last_finish, start_time))
> start_time = pi->last_finish;
>
> - pi->last_finish = sched_now;
> - if (time_before64(sched_now, start_time))
> + pi->last_finish = now;
> + if (time_before64(now, start_time))
> return 0;
>
> - return sched_now - start_time;
> + return now - start_time;
> }
>
> static int hst_end_io(struct path_selector *ps, struct dm_path *path,
--
Gabriel Krisman Bertazi
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Gabriel Krisman Bertazi <krisman@collabora.com>
To: Khazhismel Kumykov <khazhy@google.com>
Cc: Mike Snitzer <snitzer@kernel.org>,
Alasdair Kergon <agk@redhat.com>,
dm-devel@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dm mpath: fixup sched_clock() usage in historical selector
Date: Mon, 11 Apr 2022 19:48:53 -0400 [thread overview]
Message-ID: <87wnfvxjtm.fsf@collabora.com> (raw)
In-Reply-To: <20220411220335.1235363-1-khazhy@google.com> (Khazhismel Kumykov's message of "Mon, 11 Apr 2022 15:03:35 -0700")
Khazhismel Kumykov <khazhy@google.com> writes:
> mixing sched_clock() and ktime_get_ns() will give bad results, don't do
> it
>
> Fixes: 2613eab11996 ("dm mpath: add Historical Service Time Path Selector")
> Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Looks good.
Reviewed-by: Gabriel Krisman Bertazi <krisman@collabora.com>
> ---
> drivers/md/dm-ps-historical-service-time.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/md/dm-ps-historical-service-time.c b/drivers/md/dm-ps-historical-service-time.c
> index 875bca30a0dd..82f2a06153dc 100644
> --- a/drivers/md/dm-ps-historical-service-time.c
> +++ b/drivers/md/dm-ps-historical-service-time.c
> @@ -27,7 +27,6 @@
> #include <linux/blkdev.h>
> #include <linux/slab.h>
> #include <linux/module.h>
> -#include <linux/sched/clock.h>
>
>
> #define DM_MSG_PREFIX "multipath historical-service-time"
> @@ -433,7 +432,7 @@ static struct dm_path *hst_select_path(struct path_selector *ps,
> {
> struct selector *s = ps->context;
> struct path_info *pi = NULL, *best = NULL;
> - u64 time_now = sched_clock();
> + u64 time_now = ktime_get_ns();
> struct dm_path *ret = NULL;
> unsigned long flags;
>
> @@ -474,7 +473,7 @@ static int hst_start_io(struct path_selector *ps, struct dm_path *path,
>
> static u64 path_service_time(struct path_info *pi, u64 start_time)
> {
> - u64 sched_now = ktime_get_ns();
> + u64 now = ktime_get_ns();
>
> /* if a previous disk request has finished after this IO was
> * sent to the hardware, pretend the submission happened
> @@ -483,11 +482,11 @@ static u64 path_service_time(struct path_info *pi, u64 start_time)
> if (time_after64(pi->last_finish, start_time))
> start_time = pi->last_finish;
>
> - pi->last_finish = sched_now;
> - if (time_before64(sched_now, start_time))
> + pi->last_finish = now;
> + if (time_before64(now, start_time))
> return 0;
>
> - return sched_now - start_time;
> + return now - start_time;
> }
>
> static int hst_end_io(struct path_selector *ps, struct dm_path *path,
--
Gabriel Krisman Bertazi
next prev parent reply other threads:[~2022-04-11 23:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-11 22:03 [dm-devel] [PATCH] dm mpath: fixup sched_clock() usage in historical selector Khazhismel Kumykov
2022-04-11 22:03 ` Khazhismel Kumykov
2022-04-11 23:48 ` Gabriel Krisman Bertazi [this message]
2022-04-11 23:48 ` 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=87wnfvxjtm.fsf@collabora.com \
--to=krisman@collabora.com \
--cc=agk@redhat.com \
--cc=dm-devel@redhat.com \
--cc=khazhy@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=snitzer@kernel.org \
/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.