Hi, On 1/12/2023 12:09 AM, David Howells wrote: > Hou Tao <houtao@xxxxxxxxxxxxxxx> wrote: > >> fscache_create_volume_work() uses wake_up_bit() to wake up the processes >> which are waiting for the completion of volume creation. According to >> comments in wake_up_bit() and waitqueue_active(), an extra smp_mb() is >> needed to guarantee the memory order between FSCACHE_VOLUME_CREATING >> flag and waitqueue_active() before invoking wake_up_bit(). > What two values are you ordering? > > If we're using this to create a critical section, then yes, we would need a > barrier to order the changes inside the critical section before changing the > memory location that forms the lock - but this is not a critical section. It is similar with patch #1. The smp_mb() is used for order between volume->flags and wq->head. > David > -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/linux-cachefs