diff mbox series

[RFC,05/11] um: Add final request time to TT wait message

Message ID 20231103-bb-timetravel-patches-v1-5-e2c68efcf664@uni-rostock.de
State Changes Requested
Headers show
Series Several Time Travel Mode Enhancements | expand

Commit Message

Benjamin Beichler Nov. 3, 2023, 4:41 p.m. UTC
Although the information for the next requested time was already sent in
a prior message, this change introduces the otherwise unused time
variable in the TT message. This addition enables an extra consistency
check and can otherwise be ignored.

Signed-off-by: Benjamin Beichler <benjamin.beichler@uni-rostock.de>
---
 arch/um/kernel/time.c              | 6 +++---
 include/uapi/linux/um_timetravel.h | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

Comments

Johannes Berg Nov. 6, 2023, 8:29 p.m. UTC | #1
On Fri, 2023-11-03 at 16:41 +0000, Benjamin Beichler wrote:
> Although the information for the next requested time was already sent in
> a prior message, this change introduces the otherwise unused time
> variable in the TT message. This addition enables an extra consistency
> check and can otherwise be ignored.

Seems fine to me.

> --- a/include/uapi/linux/um_timetravel.h
> +++ b/include/uapi/linux/um_timetravel.h
> @@ -77,9 +77,9 @@ enum um_timetravel_ops {
>  	/**
>  	 * @UM_TIMETRAVEL_WAIT: Indicate waiting for the previously requested
>  	 *	runtime, new requests may be made while waiting (e.g. due to
> -	 *	interrupts); the time field is ignored. The calendar must process
> -	 *	this message and later	send a %UM_TIMETRAVEL_RUN message when
> -	 *	the host can run again.
> +	 *	interrupts); the time field contains the next requested runtime
> +	 *  for consistency checks. The calendar must process this message and
> +	 *  later send a %UM_TIMETRAVEL_RUN message when the host can run again.

Indentation got messed up here though.

johannes
diff mbox series

Patch

diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index ff5ef75bbb94..abd5fd0f62ee 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -220,7 +220,7 @@  static bool time_travel_ext_request(unsigned long long time)
 	return true;
 }
 
-static void time_travel_ext_wait(bool idle)
+static void time_travel_ext_wait(bool idle, unsigned long long ns)
 {
 	struct um_timetravel_msg msg = {
 		.op = UM_TIMETRAVEL_ACK,
@@ -230,7 +230,7 @@  static void time_travel_ext_wait(bool idle)
 	time_travel_ext_free_until_valid = false;
 	time_travel_ext_waiting++;
 
-	time_travel_ext_req(UM_TIMETRAVEL_WAIT, -1);
+	time_travel_ext_req(UM_TIMETRAVEL_WAIT, ns);
 
 	/*
 	 * Here we are deep in the idle loop, so we have to break out of the
@@ -256,7 +256,7 @@  static void time_travel_ext_get_time(void)
 static void __time_travel_update_time(unsigned long long ns, bool idle)
 {
 	if (time_travel_mode == TT_MODE_EXTERNAL && time_travel_ext_request(ns))
-		time_travel_ext_wait(idle);
+		time_travel_ext_wait(idle, ns);
 	else
 		time_travel_set_time(ns);
 }
diff --git a/include/uapi/linux/um_timetravel.h b/include/uapi/linux/um_timetravel.h
index ca3238222b6d..3127f069d9dc 100644
--- a/include/uapi/linux/um_timetravel.h
+++ b/include/uapi/linux/um_timetravel.h
@@ -77,9 +77,9 @@  enum um_timetravel_ops {
 	/**
 	 * @UM_TIMETRAVEL_WAIT: Indicate waiting for the previously requested
 	 *	runtime, new requests may be made while waiting (e.g. due to
-	 *	interrupts); the time field is ignored. The calendar must process
-	 *	this message and later	send a %UM_TIMETRAVEL_RUN message when
-	 *	the host can run again.
+	 *	interrupts); the time field contains the next requested runtime
+	 *  for consistency checks. The calendar must process this message and
+	 *  later send a %UM_TIMETRAVEL_RUN message when the host can run again.
 	 *	(host -> calendar)
 	 */
 	UM_TIMETRAVEL_WAIT		= 3,