From: Andrei Vagin <avagin@virtuozzo.com>
To: tip-bot for Jacob Shin <tipbot@zytor.com>
Cc: linux-tip-commits@vger.kernel.org, peterz@infradead.org,
john.stultz@linaro.org, mingo@kernel.org,
linux-kernel@vger.kernel.org, tglx@linutronix.de, hpa@zytor.com,
Cyrill Gorcunov <gorcunov@openvz.org>
Subject: Re: [tip:timers/core] posix-timers: Zero settings value in common code
Date: Fri, 9 Jun 2017 13:12:06 -0700 [thread overview]
Message-ID: <20170609201156.GB21491@outlook.office365.com> (raw)
In-Reply-To: <tip-eabdec04385376d560078992710104cc7be2ce1b@git.kernel.org>
Hello Thomas,
This patch breaks one of our CRIU tests:
https://github.com/xemul/criu/blob/master/test/zdtm/static/posix_timers.c#L145
python /root/git/main/criu/test/zdtm.py run -t zdtm/static/posix_timers --iter 0
====================== Run zdtm/static/posix_timers in h =======================
Start test
./posix_timers --pidfile=posix_timers.pid --outfile=posix_timers.out
Send the 15 signal to 24
Wait for zdtm/static/posix_timers(24) to die for 0.100000
############## Test zdtm/static/posix_timers FAIL at result check ##############
Test output: ================================
22:39:39.573: 24: ( start) boottime 12 boottime-coarse 12 total_sleep_time 0
22:39:39.602: 24: ( end) boottime 12 boottime-coarse 12 total_sleep_time 0
22:39:39.603: 24: FAIL: posix_timers.c:145: REALTIME (oneshot): timer became periodic
22:39:39.603: 24: FAIL: posix_timers.c:145: MONOTONIC (oneshot): timer became periodic
22:39:39.603: 24: FAIL: posix_timers.c:145: BOOTTIME (oneshot): timer became periodic
<<< ================================
=== Run 1/1 ================ zdtm/static/posix_timers
##################################### FAIL #####################################
This test sets a timer and then check that it is set correctly. And with this patch,
we see that timer_settime returns incorrect data.
2447 timer_settime(10, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=2147483, tv_nsec=647000000}}, NULL) = 0
....
2519 timer_settime(10, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, <unfinished ...>
2509 <... exit_group resumed>) = ?
2519 <... timer_settime resumed> {it_interval={tv_sec=-1861316067, tv_nsec=18446645490300239488}, it_value={tv_sec=-1852565060, tv_nsec=133}}) = 0
Thanks,
Andrei
On Mon, Jun 05, 2017 at 01:21:46AM -0700, tip-bot for Jacob Shin wrote:
> Commit-ID: eabdec04385376d560078992710104cc7be2ce1b
> Gitweb: http://git.kernel.org/tip/eabdec04385376d560078992710104cc7be2ce1b
> Author: Thomas Gleixner <tglx@linutronix.de>
> AuthorDate: Tue, 30 May 2017 23:15:51 +0200
> Committer: Thomas Gleixner <tglx@linutronix.de>
> CommitDate: Sun, 4 Jun 2017 15:40:28 +0200
>
> posix-timers: Zero settings value in common code
>
> Zero out the settings struct in the common code so the callbacks do not
> have to do it themself.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: John Stultz <john.stultz@linaro.org>
> Link: http://lkml.kernel.org/r/20170530211657.200870713@linutronix.de
> ---
> kernel/time/posix-cpu-timers.c | 5 +----
> kernel/time/posix-timers.c | 3 +--
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
> index 96c833a..cb4a4eb 100644
> --- a/kernel/time/posix-cpu-timers.c
> +++ b/kernel/time/posix-cpu-timers.c
> @@ -719,10 +719,8 @@ static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp
> */
> itp->it_interval = ns_to_timespec64(timer->it.cpu.incr);
>
> - if (timer->it.cpu.expires == 0) { /* Timer not armed at all. */
> - itp->it_value.tv_sec = itp->it_value.tv_nsec = 0;
> + if (!timer->it.cpu.expires)
> return;
> - }
>
> /*
> * Sample the clock to take the difference with the expiry time.
> @@ -746,7 +744,6 @@ static void posix_cpu_timer_get(struct k_itimer *timer, struct itimerspec64 *itp
> * Call the timer disarmed, nothing else to do.
> */
> timer->it.cpu.expires = 0;
> - itp->it_value = ns_to_timespec64(timer->it.cpu.expires);
> return;
> } else {
> cpu_timer_sample_group(timer->it_clock, p, &now);
> diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
> index 48f6c37..0332f7a 100644
> --- a/kernel/time/posix-timers.c
> +++ b/kernel/time/posix-timers.c
> @@ -645,8 +645,6 @@ common_timer_get(struct k_itimer *timr, struct itimerspec64 *cur_setting)
> struct timespec64 ts64;
> bool sig_none;
>
> - memset(cur_setting, 0, sizeof(*cur_setting));
> -
> sig_none = (timr->it_sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE;
> iv = timr->it_interval;
>
> @@ -705,6 +703,7 @@ SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
> if (!timr)
> return -EINVAL;
>
> + memset(&cur_setting64, 0, sizeof(cur_setting64));
> kc = timr->kclock;
> if (WARN_ON_ONCE(!kc || !kc->timer_get))
> ret = -EINVAL;
next prev parent reply other threads:[~2017-06-09 20:12 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-30 21:15 [patch 00/26] alarmtimers/posixtimers: Bug fixes and spec conformity changes Thomas Gleixner
2017-05-30 21:15 ` [patch 01/26] alarmtimer: Prevent overflow of relative timers Thomas Gleixner
2017-06-04 13:21 ` [tip:timers/urgent] " tip-bot for Thomas Gleixner
2017-06-04 13:24 ` tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 02/26] alarmtimer: Rate limit periodic intervals Thomas Gleixner
2017-06-04 13:22 ` [tip:timers/urgent] " tip-bot for Thomas Gleixner
2017-06-04 13:25 ` tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 03/26] alarmtimer: Remove pointless config conditional Thomas Gleixner
2017-06-05 8:13 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 04/26] posix-timers: Remove unused export of posix_timer_event() Thomas Gleixner
2017-06-05 8:13 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 05/26] posix-clocks: Remove interval timer facility and mmap/fasync callbacks Thomas Gleixner
2017-05-31 9:00 ` Richard Cochran
2017-06-05 8:14 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 06/26] posix-timers: Avoid gazillions of forward declarations Thomas Gleixner
2017-06-05 8:14 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 07/26] posix-timers: Cleanup struct k_itimer Thomas Gleixner
2017-06-05 8:15 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 08/26] posix-timers: Move posix-timer internals to core Thomas Gleixner
2017-05-31 15:37 ` Christoph Hellwig
2017-06-05 8:15 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 09/26] posix-timers: Unify overrun/requeue_pending handling Thomas Gleixner
2017-06-05 8:16 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 10/26] posix-timers: Move interval out of the union Thomas Gleixner
2017-06-05 8:17 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 11/26] posix-timers: Store k_clock pointer in k_itimer Thomas Gleixner
2017-06-05 8:17 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 12/26] posix-timers: Add timer_rearm() callback Thomas Gleixner
2017-06-05 8:18 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 13/26] posix-timers: Rename do_schedule_next_timer Thomas Gleixner
2017-05-31 15:39 ` Christoph Hellwig
2017-06-01 20:50 ` Thomas Gleixner
2017-06-02 7:00 ` Christoph Hellwig
2017-06-05 8:18 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 14/26] posix-timers: Use timer_rearm() callback in posixtimer_rearm() Thomas Gleixner
2017-06-05 8:19 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 15/26] posix-timers: Add active flag to k_itimer Thomas Gleixner
2017-06-05 8:20 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 16/26] posix-timers: Add forward/remaining callbacks Thomas Gleixner
2017-06-05 8:20 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 17/26] posix-timers: Make use of " Thomas Gleixner
2017-06-05 8:21 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 18/26] posix-timers: Zero settings value in common code Thomas Gleixner
2017-06-05 8:21 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-06-09 20:12 ` Andrei Vagin [this message]
2017-06-12 19:13 ` [tip:timers/core] posix-timers: Zero out oldval itimerspec tip-bot for Thomas Gleixner
2017-06-12 21:06 ` Andrei Vagin
2017-06-12 22:01 ` Thomas Gleixner
2017-06-12 22:14 ` Andrei Vagin
2017-06-12 19:13 ` [tip:timers/core] posix-timers: Handle relative posix-timers correctly tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 19/26] posix-timers: Add cancel/arm callbacks Thomas Gleixner
2017-06-05 8:22 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 20/26] posix-timers: Make use of " Thomas Gleixner
2017-06-05 8:22 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 21/26] alarmtimer: Implement timer_rearm() callback Thomas Gleixner
2017-06-05 8:23 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 22/26] alarmtimer: Implement forward callback Thomas Gleixner
2017-06-05 8:24 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 23/26] alarmtimer: Implement remaining callback Thomas Gleixner
2017-06-05 8:24 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 24/26] alarmtimer: Implement try_to_cancel callback Thomas Gleixner
2017-06-05 8:25 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 25/26] alarmtimer: Implement arm callback Thomas Gleixner
2017-06-05 8:25 ` [tip:timers/core] " tip-bot for Thomas Gleixner
2017-05-30 21:15 ` [patch 26/26] alarmtimer: Switch over to generic set/get/rearm routine Thomas Gleixner
2017-06-05 8:26 ` [tip:timers/core] " tip-bot for Thomas Gleixner
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=20170609201156.GB21491@outlook.office365.com \
--to=avagin@virtuozzo.com \
--cc=gorcunov@openvz.org \
--cc=hpa@zytor.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tipbot@zytor.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).