lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFj5m9L2qin-h1qfPbhotSr-2Xh+mnQbsWhpzeK3dA_YTQ=JpA@mail.gmail.com>
Date: Fri, 12 Jul 2024 09:01:08 +0800
From: Ming Lei <ming.lei@...hat.com>
To: Bart Van Assche <bvanassche@....org>
Cc: YangYang <yang.yang@...o.com>, Andrew Morton <akpm@...ux-foundation.org>, 
	Jens Axboe <axboe@...nel.dk>, Omar Sandoval <osandov@...com>, linux-kernel@...r.kernel.org, 
	linux-block@...r.kernel.org
Subject: Re: [PATCH v6] sbitmap: fix io hung due to race on sbitmap_word::cleared

On Fri, Jul 12, 2024 at 12:33 AM Bart Van Assche <bvanassche@....org> wrote:
>
> On 7/11/24 6:39 AM, Ming Lei wrote:
> > There are only two WRITE on 'cleared':
> >
> > - xchg(&map->cleared, 0) in sbitmap_deferred_clear()
> >
> > - set_bit() in sbitmap_deferred_clear_bit()
> >
> > xchg() supposes to provide such protection already.
>
> Hi Ming,
>
> The comment above 'swap_lock' in this patch is as follows:
>
>         /**
>          * @swap_lock: Held while swapping word <-> cleared
>          */
>
> In other words, 'swap_lock' is used to serialize *code*. Using
> synchronization objects to serialize code is known as an anti-pattern,
> something that shouldn't be done.

> Synchronization objects should be used
> to serialize access to data.

It can be thought of serializing UPDATE on both ->word and ->cleared,
instead of code.

> Hence my question whether it would be
> appropriate to protect all 'cleared' changes with the newly introduced
> spinlock.

Wrt. ->cleared only update, xchag() is enough.

Thanks,
Ming


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ