On Tue, Sep 15, 2020 at 06:03:44PM +0200, peterz@xxxxxxxxxxxxx wrote: > On Tue, Sep 15, 2020 at 05:51:50PM +0200, peterz@xxxxxxxxxxxxx wrote: > > > Anyway, I'll rewrite the Changelog and stuff it in locking/urgent. > > How's this? > > --- > Subject: locking/percpu-rwsem: Use this_cpu_{inc,dec}() for read_count > From: Hou Tao <houtao1@xxxxxxxxxx> > Date: Tue, 15 Sep 2020 22:07:50 +0800 > > From: Hou Tao <houtao1@xxxxxxxxxx> > > The __this_cpu*() accessors are (in general) IRQ-unsafe which, given > that percpu-rwsem is a blocking primitive, should be just fine. > > However, file_end_write() is used from IRQ context and will cause > load-store issues. ... on architectures where the per-cpu accessors are not atomic. > > Fixing it by using the IRQ-safe this_cpu_*() for operations on Fixing => Fix ? > read_count. This will generate more expensive code on a number of > platforms, which might cause a performance regression for some of the > other percpu-rwsem users. > > If any such is reported, we can consider alternative solutions. > > Fixes: 70fe2f48152e ("aio: fix freeze protection of aio writes") > Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > Link: https://lkml.kernel.org/r/20200915140750.137881-1-houtao1@xxxxxxxxxx > --- > include/linux/percpu-rwsem.h | 8 ++++---- > kernel/locking/percpu-rwsem.c | 4 ++-- > 2 files changed, 6 insertions(+), 6 deletions(-) For the patch: Acked-by: Will Deacon <will@xxxxxxxxxx> Will