Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1696580

[PATCH 1/2] kselftests: set-timer-lat: tweak reporting when timer fires early

Path csiph.com!goblin1!goblin.stu.neva.ru!feeders.as203319.net!feeder01.as203319.net!aioe.org!bofh.it!news.nic.it!robomod
From Greg Hackmann <ghackmann@google.com>
Newsgroups linux.kernel
Subject [PATCH 1/2] kselftests: set-timer-lat: tweak reporting when timer fires early
Date Tue, 25 Jul 2017 23:40:02 +0200
Message-ID <u7fIC-8eE-29@gated-at.bofh.it> (permalink)
References <u7fIC-8eE-25@gated-at.bofh.it>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VQbiW88KwwAaN1ew0O9xl+Pt3HyZiIAl/Os9lyG2qxU=; b=N+WinkYk+G0mn4d65Y+KOb/HoE4m64YODwzJgR0FSG4AufzoiY389TvWDp94btOJFi KhB85dJEcYHoKkxGYqDJDyFpNUzymp3yFNq6ZJjevJzXJ6g1N/liNQWLuqKxjFRkozXy Eaz2l2PHjEPNMdVasDkUfvNci3eCH7vDR/yI3lb+J5N7zVunt2jfQTcsiirBGvRUy+kD sWfuZa04xtl8bFrLI1mqvJ+ca+764dq7G6ARA8Qp8BdpIxBMsjgJyE1uix9iLZhrP4Mc n2Rb6oX/HEqCFpr4msbsb7LFQGsY2xOp6ronF5dSdCps4n/9KDt+rJvDta/66jjt9p4t sEjw==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VQbiW88KwwAaN1ew0O9xl+Pt3HyZiIAl/Os9lyG2qxU=; b=F/eJsqwbdwei7v8lxOzuvEh3a/uOFSQbJLNO/d3HYx61jK7jxrMe3BGYODdbyTPjiW cyzawzdQZHggBPSCHrX8C7brXFZ07aCDZ9BzSt9xhz9eIHMKQxbjVMpJDprswtHRR4pr 8C2oz79U1Cxk9fW3UO4gLq2TtJTPPQpoj+bdW4KyBw2x4V1a+bfmi1+E7iOlTW6P02lv 5aFjLn5bZ4bp2s6fIJnfic59kmshTxOrxT2/99CbEhkXalt19o1IYXP+qr7AOncXM4N7 MWPgthcRPha0JxATjhew4Fk/yANxKBNjSZp3O6R6+X8EwkASp3BvAtP7U6X7XnUQOYiX eRgg==
X-Gm-Message-State AIVw110BzIPDGK/zbdHON6VNwuahvMf3hXVn/4h2m1SkMCOI1FAPDslg M9s+kv0ryQfpEHtk
X-Received by 10.99.38.195 with SMTP id m186mr20370537pgm.323.1501018620976; Tue, 25 Jul 2017 14:37:00 -0700 (PDT)
X-Mailer git-send-email 2.14.0.rc0.400.g1c36432dff-goog
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 87
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Greg Hackmann <ghackmann@google.com>
X-Original-Date Tue, 25 Jul 2017 14:36:25 -0700
X-Original-Message-ID <20170725213626.115123-2-ghackmann@google.com>
X-Original-References <20170725213626.115123-1-ghackmann@google.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1696580

Show key headers only | View raw


Rather than printing an error inside the alarm signal handler, set a
flag that we check later.  This keeps the test from spamming the console
every time the alarm fires early.  It also fixes the test exiting with
error code 0 if this was the only test failure.

Signed-off-by: Greg Hackmann <ghackmann@google.com>
---
 tools/testing/selftests/timers/set-timer-lat.c | 33 +++++++++++++++++++-------
 1 file changed, 25 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/timers/set-timer-lat.c b/tools/testing/selftests/timers/set-timer-lat.c
index 4fc98c5b0899..10c2e18737c0 100644
--- a/tools/testing/selftests/timers/set-timer-lat.c
+++ b/tools/testing/selftests/timers/set-timer-lat.c
@@ -63,6 +63,7 @@ int alarmcount;
 int clock_id;
 struct timespec start_time;
 long long max_latency_ns;
+int timer_fired_early;
 
 char *clockstring(int clockid)
 {
@@ -115,12 +116,19 @@ void sigalarm(int signo)
 	delta_ns -= NSEC_PER_SEC * TIMER_SECS * alarmcount;
 
 	if (delta_ns < 0)
-		printf("%s timer fired early: FAIL\n", clockstring(clock_id));
+		timer_fired_early = 1;
 
 	if (delta_ns > max_latency_ns)
 		max_latency_ns = delta_ns;
 }
 
+void describe_timer(int flags)
+{
+	printf("%-22s %s ",
+			clockstring(clock_id),
+			flags ? "ABSTIME":"RELTIME");
+}
+
 int do_timer(int clock_id, int flags)
 {
 	struct sigevent se;
@@ -136,6 +144,7 @@ int do_timer(int clock_id, int flags)
 
 	max_latency_ns = 0;
 	alarmcount = 0;
+	timer_fired_early = 0;
 
 	err = timer_create(clock_id, &se, &tm1);
 	if (err) {
@@ -170,18 +179,26 @@ int do_timer(int clock_id, int flags)
 	while (alarmcount < 5)
 		sleep(1);
 
-	printf("%-22s %s max latency: %10lld ns : ",
-			clockstring(clock_id),
-			flags ? "ABSTIME":"RELTIME",
-			max_latency_ns);
+	describe_timer(flags);
+	printf("timer fired early: %7d : ", timer_fired_early);
+	if (!timer_fired_early) {
+		printf("[OK]\n");
+	} else {
+		printf("[FAILED]\n");
+		err = -1;
+	}
+
+	describe_timer(flags);
+	printf("max latency: %10lld ns : ", max_latency_ns);
 
 	timer_delete(tm1);
 	if (max_latency_ns < UNRESONABLE_LATENCY) {
 		printf("[OK]\n");
-		return 0;
+	} else {
+		printf("[FAILED]\n");
+		err = -1;
 	}
-	printf("[FAILED]\n");
-	return -1;
+	return err;
 }
 
 int main(void)
-- 
2.14.0.rc0.400.g1c36432dff-goog

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

[PATCH 1/2] kselftests: set-timer-lat: tweak reporting when timer fires early Greg Hackmann <ghackmann@google.com> - 2017-07-25 23:40 +0200

csiph-web