[PATCH RFC 00/11] Several Time Travel Mode Enhancements

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

I started to develop an alternative simulator based on time travel external
mode. In the development process, I faced some issues, where I want to share
my solutions.

They group into 3 categories, which I would split up later.

1-3 Add time travel handlers for some interrupts:
These mainly address interrupts in drivers in TT mode.

4-8 Fix problems in TT protocol:
I encountered several problems like missing TT messages and weird
behavior (e.g. backward jumping time). Additionally, I added
some more information in the ACK message, which was unused before,
to simplify the implementation of the simulation. The last patch,
"Protect accesses to the timetravel event list," fixed the last
corner cases in our setup, which were quite hard to debug.

9-11 Optional patches enhancing simulation:
This is mostly the RFC part of these patches. They are not needed,
but make sense (at least for me).

---
Benjamin Beichler (11):
um: Make UBD requests synchronous in TT ext/infcpu mode
um: add a simple time_travel_handler implementation
um: Use a simple time travel handler for line interrupts
um: Handle UM_TIMETRAVEL_RUN only in idle loop, signal success in ACK
um: Add final request time to TT wait message
um: always send UM_TIMETRAVEL_REQUEST from ISRs
um: add TIMETRAVEL_REQUEST handler to request latest event
um: Protect accesses to the timetravel event list
um: Delay timer_read in time travel mode only after consecutive reads
um: Delay timer_read only in possible busy loops in TT-mode
um: Remove all TSC flags when using Time Travel Mode

arch/um/drivers/line.c | 8 ++---
arch/um/drivers/ubd_kern.c | 45 ++++++++++++++++++++++-----
arch/um/include/shared/irq_user.h | 7 +++++
arch/um/kernel/time.c | 62 ++++++++++++++++++++++++++++++++++----
arch/um/kernel/um_arch.c | 4 ++-
include/uapi/linux/um_timetravel.h | 6 ++--
6 files changed, 111 insertions(+), 21 deletions(-)
---
base-commit: 21e80f3841c01aeaf32d7aee7bbc87b3db1aa0c6
change-id: 20231103-bb-timetravel-patches-075d01005f26

Best regards,
--
Benjamin Beichler <benjamin.beichler@uni-rostock.de>