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

Benjamin Beichler
2023-11-03T16:42:21Z

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(-)

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,

--
2.34.1