Re: [RFC PATCH] locking/percpu-rwsem: use this_cpu_{inc|dec}() for read_count

From: peterz
Date: Fri Sep 18 2020 - 06:04:43 EST


On Fri, Sep 18, 2020 at 12:01:12PM +0200, peterz@xxxxxxxxxxxxx wrote:
> @@ -198,7 +198,9 @@ EXPORT_SYMBOL_GPL(__percpu_down_read);
> */
> static bool readers_active_check(struct percpu_rw_semaphore *sem)
> {
> - if (per_cpu_sum(*sem->read_count) != 0)
> + u64 sum = per_cpu_sum(*(u64 *)sem->read_count);
> +
> + if (sum + (sum >> 32))

That obviously wants to be:

if ((u32)(sum + (sum >> 32)))

> return false;
>
> /*