Messages in this thread | | | From | Marco Elver <> | Date | Fri, 15 May 2020 16:04:33 +0200 | Subject | Re: [PATCH v5 00/18] Rework READ_ONCE() to improve codegen |
| |
On Fri, 15 May 2020 at 15:55, David Laight <David.Laight@aculab.com> wrote: > > From: Peter Zijlstra > > Sent: 14 May 2020 15:25 > .. > > Exact same requirements, KASAN even has the data_race() problem through > > READ_ONCE_NOCHECK(), UBSAN doesn't and might be simpler because of it. > > What happens if you implement READ_ONCE_NOCHECK() with an > asm() statement containing a memory load? > > Is that enough to kill all the instrumentation?
Yes, it is.
However, READ_ONCE_NOCHECK() for KASAN can be fixed if the problem is randomly uninlined READ_ONCE_NOCHECK() in KASAN_SANITIZE := n compilation units. KASAN's __no_kasan_or_inline is still conditionally defined based on CONFIG_KASAN and not __SANITIZE_ADDRESS__. I'm about to send a patch that does that for KASAN, since for KCSAN we've been doing it for a while. However, if that was the exact problem Peter observed I can't tell.
Thanks, -- Marco
| |