X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=wrapper%2Ftrace-clock.h;h=7cef08df3176f60d8a27bfd779384452c75e5da3;hb=7c6d929d62a6e24fb1dbeaee5cd2c8afe77720b7;hp=7f17ccd4f82fd9bcb51446bfda45e6c778c10079;hpb=60e1cd0751eec323c62c923629da4abe345e123f;p=lttng-modules.git diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h index 7f17ccd4..7cef08df 100644 --- a/wrapper/trace-clock.h +++ b/wrapper/trace-clock.h @@ -1,29 +1,16 @@ -#ifndef _LTTNG_TRACE_CLOCK_H -#define _LTTNG_TRACE_CLOCK_H - -/* +/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only) + * * wrapper/trace-clock.h * * Contains LTTng trace clock mapping to LTTng trace clock or mainline monotonic * clock. This wrapper depends on CONFIG_HIGH_RES_TIMERS=y. * * Copyright (C) 2011-2012 Mathieu Desnoyers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; only - * version 2.1 of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef _LTTNG_TRACE_CLOCK_H +#define _LTTNG_TRACE_CLOCK_H + #ifdef CONFIG_HAVE_TRACE_CLOCK #include #else /* CONFIG_HAVE_TRACE_CLOCK */ @@ -35,15 +22,12 @@ #include #include #include -#include -#include +#include +#include +#include #include #include - -#if ((LTTNG_KERNEL_RANGE(3,10,0, 3,10,14) && !LTTNG_RHEL_KERNEL_RANGE(3,10,0,123,0,0, 3,10,14,0,0,0)) \ - || LTTNG_KERNEL_RANGE(3,11,0, 3,11,3)) -#error "Linux kernels 3.10 and 3.11 introduce a deadlock in the timekeeping subsystem. Fixed by commit 7bd36014460f793c19e7d6c94dab67b0afcfcb7f \"timekeeping: Fix HRTICK related deadlock from ntp lock changes\" in Linux." -#endif +#include extern struct lttng_trace_clock *lttng_trace_clock; @@ -176,7 +160,7 @@ static inline void put_trace_clock(void) static inline u64 trace_clock_read64(void) { - struct lttng_trace_clock *ltc = ACCESS_ONCE(lttng_trace_clock); + struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); if (likely(!ltc)) { return trace_clock_read64_monotonic(); @@ -188,7 +172,7 @@ static inline u64 trace_clock_read64(void) static inline u64 trace_clock_freq(void) { - struct lttng_trace_clock *ltc = ACCESS_ONCE(lttng_trace_clock); + struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); if (!ltc) { return trace_clock_freq_monotonic(); @@ -200,7 +184,7 @@ static inline u64 trace_clock_freq(void) static inline int trace_clock_uuid(char *uuid) { - struct lttng_trace_clock *ltc = ACCESS_ONCE(lttng_trace_clock); + struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); read_barrier_depends(); /* load ltc before content */ /* Use default UUID cb when NULL */ @@ -213,7 +197,7 @@ static inline int trace_clock_uuid(char *uuid) static inline const char *trace_clock_name(void) { - struct lttng_trace_clock *ltc = ACCESS_ONCE(lttng_trace_clock); + struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); if (!ltc) { return trace_clock_name_monotonic(); @@ -225,7 +209,7 @@ static inline const char *trace_clock_name(void) static inline const char *trace_clock_description(void) { - struct lttng_trace_clock *ltc = ACCESS_ONCE(lttng_trace_clock); + struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); if (!ltc) { return trace_clock_description_monotonic();