Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP2
lttng-modules.20220
fix-rcu-fix-data-race-due-to-atomic_t-copy-by-v...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-rcu-fix-data-race-due-to-atomic_t-copy-by-value-v5.6.patch of Package lttng-modules.20220
From: Michael Jeanson <mjeanson@efficios.com> Date: Tue Feb 11 14:51:01 2020 -0500 Subject: fix: rcu: Fix data-race due to atomic_t copy-by-value (v5.6) Git-commit: 2cdc2db77243b5091fac1f0cb4c2d5a84291fbb9 fix: rcu: Fix data-race due to atomic_t copy-by-value (v5.6) See upstream commit : commit 6cf539a87a61a4fbc43f625267dbcbcf283872ed Author: Marco Elver <elver@google.com> Date: Wed Oct 9 17:57:43 2019 +0200 rcu: Fix data-race due to atomic_t copy-by-value This fixes a data-race where `atomic_t dynticks` is copied by value. The copy is performed non-atomically, resulting in a data-race if `dynticks` is updated concurrently. Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> diff --git a/instrumentation/events/lttng-module/rcu.h b/instrumentation/events/lttng-module/rcu.h index 7813c2f..955dca7 100644 --- a/instrumentation/events/lttng-module/rcu.h +++ b/instrumentation/events/lttng-module/rcu.h @@ -385,7 +385,22 @@ LTTNG_TRACEPOINT_EVENT(rcu_fqs, * events use the upper bits of each number, while interrupt-related * events use the lower bits. */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) || defined (CONFIG_SUSE_KERNEL)) +LTTNG_TRACEPOINT_EVENT(rcu_dyntick, + + TP_PROTO(const char *polarity, long oldnesting, long newnesting, int dynticks), + + TP_ARGS(polarity, oldnesting, newnesting, dynticks), + + TP_FIELDS( + ctf_string(polarity, polarity) + ctf_integer(long, oldnesting, oldnesting) + ctf_integer(long, newnesting, newnesting) + ctf_integer(int, dynticks, dynticks) + ) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) LTTNG_TRACEPOINT_EVENT(rcu_dyntick, TP_PROTO(const char *polarity, long oldnesting, long newnesting, atomic_t dynticks),
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor