[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0b765c02-942b-7e7a-63ca-5ee83b33991a@fujitsu.com>
Date: Thu, 6 Jan 2022 19:06:03 +0800
From: Shiyang Ruan <ruansy.fnst@...itsu.com>
To: Dan Williams <dan.j.williams@...el.com>
CC: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-xfs <linux-xfs@...r.kernel.org>,
Linux NVDIMM <nvdimm@...ts.linux.dev>,
Linux MM <linux-mm@...ck.org>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
"Darrick J. Wong" <djwong@...nel.org>, david <david@...morbit.com>,
Christoph Hellwig <hch@...radead.org>,
Jane Chu <jane.chu@...cle.com>
Subject: Re: [PATCH v9 01/10] dax: Use percpu rwsem for
dax_{read,write}_lock()
在 2022/1/5 6:44, Dan Williams 写道:
> On Sun, Dec 26, 2021 at 6:35 AM Shiyang Ruan <ruansy.fnst@...itsu.com> wrote:
>>
>> In order to introduce dax holder registration, we need a write lock for
>> dax.
>
> As far as I can see, no, a write lock is not needed while the holder
> is being registered.
>
> The synchronization that is needed is to make sure that the device
> stays live over the registration event, and that any in-flight holder
> operations are flushed before the device transitions from live to
> dead, and that in turn relates to the live state of the pgmap.
>
> The dax device cannot switch from live to dead without first flushing
> all readers, so holding dax_read_lock() over the register holder event
> should be sufficient. If you are worried about 2 or more potential
> holders colliding at registration time, I would expect that's already
> prevented by block device exclusive holder synchronization, but you
> could also use cmpxchg and a single pointer to a 'struct dax_holder {
> void *holder_data, struct dax_holder_operations *holder_ops }'. If you
> are worried about memory_failure triggering while the filesystem is
> shutting down it can do a synchronize_srcu(&dax_srcu) if it really
> needs to ensure that the notify path is idle after removing the holder
> registration.
>
> ...are there any cases remaining not covered by the above suggestions?
OK, I think I didn't get what actual role does the dax lock play
before... So, the modification of the lock is unnecessary. I'll take
your two suggestions into consideration.
--
Thanks,
Ruan.
Powered by blists - more mailing lists