| 1 | /* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) |
| 2 | * |
| 3 | * wrapper/trace-clock.c |
| 4 | * |
| 5 | * Contains LTTng trace clock mapping to LTTng trace clock or mainline monotonic |
| 6 | * clock. This wrapper depends on CONFIG_HIGH_RES_TIMERS=y. |
| 7 | * |
| 8 | * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| 9 | */ |
| 10 | |
| 11 | #include <wrapper/trace-clock.h> |
| 12 | |
| 13 | #ifdef LTTNG_USE_NMI_SAFE_CLOCK |
| 14 | DEFINE_PER_CPU(u64, lttng_last_tsc); |
| 15 | EXPORT_PER_CPU_SYMBOL(lttng_last_tsc); |
| 16 | #endif /* #ifdef LTTNG_USE_NMI_SAFE_CLOCK */ |
| 17 | |
| 18 | #ifdef LTTNG_CLOCK_NMI_SAFE_BROKEN |
| 19 | #warning "Your kernel implements a bogus nmi-safe clock source. Falling back to the non-nmi-safe clock source, which discards events traced from NMI context. Upgrade your kernel to resolve this situation." |
| 20 | #endif |