Messages in this thread | | | Subject | Re: [PATCH v1 2/2] perf auxtrace: Optimize barriers with load-acquire and store-release | From | Adrian Hunter <> | Date | Tue, 1 Jun 2021 12:45:16 +0300 |
| |
On 1/06/21 12:17 pm, Peter Zijlstra wrote: > On Tue, Jun 01, 2021 at 12:07:31PM +0300, Adrian Hunter wrote: >> __sync_xxx_compare_and_swap is out-of-date now. This page: >> >> https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html#g_t_005f_005fsync-Builtins >> >> recommends '__atomic' builtins instead. > > perf doesn't seem to use that.
I guess we could drop support for the compat case; add validation:
"Error, 32-bit perf cannot record AUX area traces from a 64-bit kernel. Please use a 64-bit version of perf instead."
> >> Since atomics are needed only for the "compat" case (i.e. 32-bit perf with 64-bit kernel) >> you could try to find an elegant way to check for a 64-bit kernel, and avoid the atomics >> for a 32-bit perf with 32-bit kernel. > > Most 32bit archs cannot do 64bit atomics. I suppose the only reason this > doesn't explode is because the aux stuff isn't supported on many > architectures? >
Yes but presumably the race itself is unlikely since the upper byte changes only once every 4GiB.
| |