Messages in this thread Patch in this message | | | Date | Mon, 28 Jan 2019 10:28:00 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH] kcov: convert kcov.refcount to refcount_t |
| |
On Sun, Jan 27, 2019 at 06:41:38PM +0000, Reshetova, Elena wrote: > > On Mon, Jan 21, 2019 at 11:05:03AM -0500, Alan Stern wrote: > > > On Mon, 21 Jan 2019, Peter Zijlstra wrote:
> > Yes, that's a very good suggestion. > > > > I suppose we can add smp_acquire__after_ctrl_dep() on the true branch. > > Then it reall does become rel_acq. > > > > A wee something like so (I couldn't find an arm64 refcount, even though > > I have distinct memories of talk about it). > > > > This isn't compiled, and obviously needs comment/documentation updates > > to go along with it. > > > > --- > > arch/x86/include/asm/refcount.h | 9 ++++++++- > > lib/refcount.c | 7 ++++++- > > 2 files changed, 14 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/include/asm/refcount.h b/arch/x86/include/asm/refcount.h > > index dbaed55c1c24..6f7a1eb345b4 100644 > > --- a/arch/x86/include/asm/refcount.h > > +++ b/arch/x86/include/asm/refcount.h > > @@ -74,9 +74,16 @@ bool refcount_sub_and_test(unsigned int i, refcount_t *r) > > > > static __always_inline __must_check bool refcount_dec_and_test(refcount_t *r) > > { > > - return GEN_UNARY_SUFFIXED_RMWcc(LOCK_PREFIX "decl", > > + bool ret = GEN_UNARY_SUFFIXED_RMWcc(LOCK_PREFIX "decl", > > > > REFCOUNT_CHECK_LT_ZERO, > > r- > > >refs.counter, e, "cx"); > > + > > + if (ret) { > > + smp_acquire__after_ctrl_dep(); > > + return true; > > + } > > + > > + return false; > > } > > Actually as I started to do this, any reason why the change here only > for dec_and_test and not for sub_and _test also? Should not the arch. > specific logic follow the generic?
Yes, sub_and_test also needs it; I simply overlooked it.
| |