[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <8548BAE6-6464-4F1B-BD25-5F395514D753@dilger.ca>
Date: Tue, 13 Sep 2011 22:23:50 -0600
From: Andreas Dilger <adilger@...ger.ca>
To: Allison Henderson <achender@...ux.vnet.ibm.com>,
Yongqiang Yang <xiaoqiangnk@...il.com>
Cc: Ext4 Developers List <linux-ext4@...r.kernel.org>,
Ted Ts'o <tytso@....edu>, Lukas Czerner <lczerner@...hat.com>,
Zhen Liang <liang@...mcloud.com>
Subject: Re: i_mutex questions
On 2011-09-13, at 7:29 PM, Yongqiang Yang wrote:
> On Wed, Sep 14, 2011 at 2:33 AM, Allison Henderson
> <achender@...ux.vnet.ibm.com> wrote:
>> Hi All,
>>
>> I have been trying to find a way to synchronize punch hole with read and
>> write operations with out the use of i_mutex. The concern is that after
>> punch hole has released the pages inside the hole, another process may remap
>> the page to a block before punch has taken i_data_sem. I think putting
>> i_mutex around the punch hole operation would fix this, but since we are
>> trying to avoid further improper use of i_mutex, I am trying to avoid that
>> solution.
>>
>> I cannot use i_data_sem to protect the pages because it seems most of the
>> code has already established a locking order of pages first, then
>> i_data_sem. So moving i_data_sem up tends to cause a lot of dead locks.
>> I'm thinking that there probably needs to be a another mutex involved some
>> where, but I wasnt sure if some one is already working on the idea of
>> introducing a replacement for i_mutex. So I just wanted to know if there
>> are any plans already in motion for this, or if any one else could suggest
>> some ideas for the punch hole issue. Thx all!
>
> Lukas sent out a patch ([PATCH] ext4: Make reads/writes atomic with
> i_rwlock semaphore) which collected some feedbacks suggesting using
> extent lock instead of a read-write semaphore. If there is extent
> lock implementation in ext4, then fallocate can use it, maybe
> dioread-nolock can use it as well, e.g. locking a range and unlocking
> the range until the extent is converted from unwritten to init.
We have a prototype patch for extent locking for ext4. We are planning to
use this for parallel locking of htree directories, but it could potentially
be modified to for extent locking of files.
The current patch is below, but it hasn't gone through a lot of testing:
http://review.whamcloud.com/#patch,sidebyside,375,2,ldiskfs/kernel_patches/patches/ext4_pdirop-rhel6.patch
Cheers, Andreas
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists