Re: [PATCH 0/3] ipc subsystem refcounter conversions

From: Andrew Morton
Date: Fri Mar 03 2017 - 19:35:59 EST


On Mon, 20 Feb 2017 13:29:46 +0200 Elena Reshetova <elena.reshetova@xxxxxxxxx> wrote:

> Now when new refcount_t type and API are finally merged
> (see include/linux/refcount.h), the following
> patches convert various refcounters in the ipc susystem from atomic_t
> to refcount_t. By doing this we prevent intentional or accidental
> underflows or overflows that can led to use-after-free vulnerabilities.
>
> The below patches are fully independent and can be cherry-picked separately.
> Since we convert all kernel subsystems in the same fashion, resulting
> in about 300 patches, we have to group them for sending at least in some
> fashion to be manageable. Please excuse the long cc list.

Again, the refcount_t operations are much more expensive than the bare
atomic_t operations. I'm reluctant to merge any of these conversions
without either

a) a convincing demonstration that the performance impact is
sufficiently small (ie: unmeasurable) or

b) a compile-time option to disable the refcount_t operations (make
them generate the same code as the bare atomic_t ops). Along with
some suitably reliable means of preventing people from accidentally
enabling the debug code in production builds.