All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/3] lib/igt_aux: Export statistics of signal helper.
@ 2017-08-02 10:29 Maarten Lankhorst
  2017-08-02 10:29 ` [PATCH i-g-t 2/3] lib/igt_kms: Remove vblank wait after plane update Maarten Lankhorst
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Maarten Lankhorst @ 2017-08-02 10:29 UTC (permalink / raw)
  To: intel-gfx

Export 2 functions, igt_signal_helper_get_num and
igt_signal_helper_get_hz.

This will allow tests to measure how much time in a test was spent
in a uninterruptible state, which is useful when testing whether
certain ioctl's can be interrupted or not.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 lib/igt_aux.c | 30 +++++++++++++++++++++++++++---
 lib/igt_aux.h |  2 ++
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 86a213c2032f..265e43f399e7 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -275,7 +275,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool enable)
 }
 
 static struct igt_helper_process signal_helper;
-long long int sig_stat;
+static int64_t sig_stat;
 static void __attribute__((noreturn)) signal_helper_process(pid_t pid)
 {
 	/* Interrupt the parent process at 500Hz, just to be annoying */
@@ -314,6 +314,9 @@ void igt_fork_signal_helper(void)
 	if (igt_only_list_subtests())
 		return;
 
+	/* Reset number of signalscaught */
+	sig_stat = 0;
+
 	/* We pick SIGCONT as it is a "safe" signal - if we send SIGCONT to
 	 * an unexpecting process it spuriously wakes up and does nothing.
 	 * Most other signals (e.g. SIGUSR1) cause the process to die if they
@@ -348,8 +351,29 @@ void igt_stop_signal_helper(void)
 		return;
 
 	igt_stop_helper(&signal_helper);
+}
 
-	sig_stat = 0;
+/**
+ * igt_signal_helper_get_num:
+ *
+ * Return the amount of signals generated since the last time
+ * igt_fork_signal_helper() was called.
+ *
+ * This is reset to 0 on every call to igt_fork_signal_helper.
+ */
+int64_t igt_signal_helper_get_num(void)
+{
+	return sig_stat;
+}
+
+/**
+ * igt_signal_helper_get_hz:
+ *
+ * Return the approximate amount of signals generated per second.
+ */
+int igt_signal_helper_get_hz(void)
+{
+	return 50;
 }
 
 static struct igt_helper_process shrink_helper;
@@ -357,7 +381,7 @@ static void __attribute__((noreturn)) shrink_helper_process(int fd, pid_t pid)
 {
 	while (1) {
 		igt_drop_caches_set(fd, DROP_SHRINK_ALL);
-		usleep(1000 * 1000 / 50);
+		usleep(1000 * 1000 / igt_signal_helper_get_hz());
 		if (kill(pid, 0)) /* Parent has died, so must we. */
 			exit(0);
 	}
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 499a16796ebb..7e080089dcbc 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -55,6 +55,8 @@ extern int num_trash_bos;
 /* generally useful helpers */
 void igt_fork_signal_helper(void);
 void igt_stop_signal_helper(void);
+int64_t igt_signal_helper_get_num(void);
+int igt_signal_helper_get_hz(void);
 
 void igt_fork_shrink_helper(int fd);
 void igt_stop_shrink_helper(void);
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2017-08-08  9:28 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-02 10:29 [PATCH i-g-t 1/3] lib/igt_aux: Export statistics of signal helper Maarten Lankhorst
2017-08-02 10:29 ` [PATCH i-g-t 2/3] lib/igt_kms: Remove vblank wait after plane update Maarten Lankhorst
2017-08-04  8:07   ` Mika Kahola
2017-08-07  8:42     ` Maarten Lankhorst
2017-08-08  9:30       ` Mika Kahola
2017-08-02 10:29 ` [PATCH i-g-t 3/3] tests: Add kms_atomic_interruptible test Maarten Lankhorst
2017-08-04  7:50   ` Mika Kahola
2017-08-07  8:47     ` Maarten Lankhorst
2017-08-04  7:46 ` [PATCH i-g-t 1/3] lib/igt_aux: Export statistics of signal helper Mika Kahola
2017-08-04  7:50 ` Chris Wilson
2017-08-07  9:45   ` Maarten Lankhorst
2017-08-07  9:59     ` Chris Wilson
2017-08-07 15:51       ` Daniel Vetter

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.