Lines Matching defs:time

24 #include <linux/time-internal.h>
65 panic("time-travel: time goes backwards %lld -> %lld\n",
86 printk(KERN_INFO "time-travel: received broadcast 0x%llx\n", bc_message);
150 msg->time & UM_TIMETRAVEL_START_ACK_ID);
159 panic("time-travel external link is broken\n");
161 panic("invalid time-travel message - %d bytes\n", ret);
165 WARN_ONCE(1, "time-travel: unexpected message %lld\n",
171 time_travel_set_time(msg->time);
185 _time_travel_ext_free_until = msg->time;
188 bc_message = msg->time;
197 static u64 time_travel_ext_req(u32 op, u64 time)
203 .time = time,
217 * current time (for UM_TIMETRAVEL_GET) and getting another
218 * ACK without a time would confuse us a lot!
237 panic("time-travel: ACK message has different seqno! op=%d, seq=%d != %d time=%lld\n",
238 msg.op, msg.seq, mseq, msg.time);
241 time_travel_set_time(msg.time);
245 return msg.time;
265 static void time_travel_ext_update_request(unsigned long long time)
270 /* asked for exactly this time previously */
272 time == time_travel_ext_prev_request)
283 time < (*time_travel_ext_free_until - time_travel_shm_offset))
286 time_travel_ext_prev_request = time;
297 time += time_travel_shm_offset;
298 time_travel_shm_client->req_time = time;
299 if (time < time_travel_shm->free_until)
300 time_travel_shm->free_until = time;
305 time_travel_ext_req(UM_TIMETRAVEL_REQUEST, time);
314 panic("time-travel: setting time while not running\n");
329 static bool time_travel_ext_request(unsigned long long time)
340 time < (*time_travel_ext_free_until - time_travel_shm_offset))
343 time_travel_ext_update_request(time);
401 unsigned long long time)
411 e->time = time;
416 * Add the new entry before one with higher time,
422 if ((tmp->time > e->time) ||
423 (tmp->time == e->time && tmp->onstack && e->onstack)) {
434 time_travel_ext_update_request(tmp->time);
435 time_travel_next_event = tmp->time;
440 unsigned long long time)
445 __time_travel_add_event(e, time);
547 __time_travel_update_time(e->time, idle);
552 BUG_ON(time_travel_time != e->time);
558 panic("On-stack event dequeued outside of the stack! time=%lld, event time=%lld, event=%pS\n",
559 time_travel_time, e->time, e);
566 time_travel_ext_update_request(e->time);
577 * Disable interrupts before calculating the new time so
579 * a bad time e.g. after we read time_travel_time but
580 * before we've completed updating the time.
606 * same time (again) to run the interrupt...
645 os_timer_one_shot(cpu, time_travel_timer_event.time - next);
681 panic("time-travel: invalid external ID in string '%s'\n",
691 panic("time-travel: failed to connect to external socket %s\n",
711 /* controller gave us the *current* time, so adjust by that */
754 extern u64 time_travel_ext_req(u32 op, u64 time);
757 #define time_travel_add_event(e, time) do { } while (0)
770 * In basic time-travel mode we still get real interrupts
771 * (signals) but since we don't read time from the OS, we
772 * must update the simulated time here to the expiry when
871 * With infinite CPU time-travel, we can only get here when userspace
889 * stuck in loops that expect time to move more than the
989 _timer_clockevent.name = "time-travel-timer-infcpu";
990 timer_clocksource.name = "time-travel-clock";
996 _timer_clockevent.name = "time-travel-timer-external";
997 timer_clocksource.name = "time-travel-clock-external";
1003 _timer_clockevent.name = "time-travel-timer";
1004 timer_clocksource.name = "time-travel-clock";
1011 __setup("time-travel", setup_time_travel);
1013 "time-travel\n"
1014 " This option just enables basic time travel mode, in which the clock/timers\n"
1016 " waiting for real time to elapse. However, instance CPU speed is limited by\n"
1020 "time-travel=inf-cpu\n"
1021 " This enables time travel mode with infinite processing power, in which there\n"
1027 "time-travel=ext:[ID:]/path/to/socket\n"
1028 " This enables time travel mode similar to =inf-cpu, except the system will\n"
1030 " have more than one system simultaneously be on simulated time. The virtio\n"
1047 __setup("time-travel-start=", setup_time_travel_start);
1049 "time-travel-start=<nanoseconds>\n"
1051 " the host's wall clock at the time of UML boot.\n\n");
1072 pr_info("um: time: sent broadcast message: 0x%llx\n", bc_message);
1083 bc_time_kobject = kobject_create_and_add("um-ext-time", kernel_kobj);