Messages in this thread | | | Date | Tue, 30 Apr 2019 18:44:04 +0200 | From | Andrea Parri <> | Subject | Re: [PATCH 0/5] Fix improper uses of smp_mb__{before,after}_atomic() |
| |
On Tue, Apr 30, 2019 at 10:34:09AM +0200, Peter Zijlstra wrote: > On Mon, Apr 29, 2019 at 10:14:56PM +0200, Andrea Parri wrote: > > Hello! > > > > A relatively common misuse of these barriers is to apply these to > > operations which are not read-modify-write operations, such as > > atomic_set() and atomic_read(); examples were discussed in [1]. > > > > This series attempts to fix those uses by (conservatively) replacing > > the smp_mb__{before,after}_atomic() barriers with full memory barriers. > > I don't think blindly doing this replacement makes the code any better; > much of the code you found is just straight up dodgy to begin with. > > I think the people should mostly just consider this a bug report.
Bug, misuse, patch, and rfc seem all appropriate to me in this context.
> Also, remember a memory barrier without a coherent comment is most > likely a bug anyway.
Right. Hopefully, the people in Cc: will want to shed some light about this: I know what these smp_mb__{before,after}_atomic() can not do, but I can only guess (I won't!) what they are supposed to accomplish (e.g., which mem. accesses are being ordered, what are the matching barriers); maybe this can also justify the "conservative" approach presented here.
Andrea
| |