diff --git a/tools/power/x86/turbostat/turbostat.8 b/tools/power/x86/turbostat/turbostat.8
index 2dafba4900ab770577c41b948e3ce5b721795a09..f99bddf16b8b0e4a234472eda0ba7ab3c828ed2a 100644
--- a/tools/power/x86/turbostat/turbostat.8
+++ b/tools/power/x86/turbostat/turbostat.8
@@ -271,6 +271,10 @@ CPU	  PRF_CTRL
 
 SIGINT will interrupt interval-mode.
 The end-of-interval data will be collected and displayed before turbostat exits.
+
+SIGUSR1 will end current interval,
+end-of-interval data will be collected and displayed before turbostat
+starts a new interval.
 .SH NOTES
 
 .B "turbostat "
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index d9703b728fbb5efc7c4f120c8916064845343f76..dd9b2efbbb2ad0bdef553ed7e67d5aa4b942030a 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -2610,6 +2610,10 @@ static void signal_handler (int signal)
 		if (debug)
 			fprintf(stderr, " SIGINT\n");
 		break;
+	case SIGUSR1:
+		if (debug > 1)
+			fprintf(stderr, "SIGUSR1\n");
+		break;
 	}
 }
 
@@ -2623,6 +2627,8 @@ void setup_signal_handler(void)
 
 	if (sigaction(SIGINT, &sa, NULL) < 0)
 		err(1, "sigaction SIGINT");
+	if (sigaction(SIGUSR1, &sa, NULL) < 0)
+		err(1, "sigaction SIGUSR1");
 }
 void turbostat_loop()
 {