Re: [GIT PULL] locking changes for v4.11

From: Ingo Molnar
Date: Mon Feb 20 2017 - 17:38:57 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Mon, Feb 20, 2017 at 1:54 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> > - Implement wraparound-safe refcount_t and kref_t types based on generic atomic
> > primitives (Peter Zijlstra)
>
> Ugh. This apparently never got the uninlining fixes?

Yeah, will fix it ASAP!

> I've pulled it, but I still don't like the inlining. Particularly with
> CONFIG_DEBUG_REFCOUNT it generates obnnoxious code, but even without
> the debugging there's just no point in it.
>
> Being inlined also means that architectures cannot optimize it, which
> is sad. If you have a LL/SC model for atomics, then using
> atomic_cmpxchg_relaxed() for the refcounting is just too stupid for
> words.
>
> So I continue to think this code should
>
> (a) be in lib/refcount.c, with just the declarations in the header
> file (oh, keep the "set" and "read" functions inline by all means)
>
> (b) be marked __weak, so that architectures like ARM/PPC can decide
> to do their own improved implementations.

Yeah, agreed, will do.

> But as mentioned, it's in my tree as-is now and going through the build test.

Thanks!

Ingo