Re: [PATCH 0/5] pnfs-submit fix kfree under spin lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jul. 20, 2010, 20:30 +0300, "William A. (Andy) Adamson" <androsadamson@xxxxxxxxx> wrote:
> Trond and Fred informed me that kfree under a spin lock is actually
> OK. So, maybe these patches aren't needed.
> 
> On the other hand, with these patches we don't hold the spin lock over
> function calls which to my mind is easier to read. Also, the
> free_layout/free_lseg layoutdriver calls may do more than call kfree.

I'm all for that.
Just document they must not block.
If we ever see that as a requirement we can then change the caller
to drop the spin lock before calling the free method.

Beny

> 
> At least, we should document what we expect from the
> free_layout/free_lseg - e.g. no side affects that conflict with being
> called under a spinlock..
> 
> -->Andy
> 
> On Tue, Jul 20, 2010 at 1:01 PM,  <andros@xxxxxxxxxx> wrote:
>>
>> Fix kfree under spin lock
>>
>> Both put_lseg and put_layout are called under the inode i_lock where the
>> last reference will end up freeing structures.
>>
>> I know there has been a lot of churn in this code, but free'ing under the
>> spin lock is a no-no.
>> In this patch I refactor the layout allocation, combining it with the
>> layout segment lookup code. The new function, pnfs_get_layout_segment takes
>> inode spin lock, and looks to see if the requested range is serviced by an
>> existing layout segment. If the layout has not been allocated, allocate it.
>> If a layout segement is found, reference it and give up the lock. If no
>> layout segment is found, reference the layout for the layoutget call and
>> give up the lock.
>>
>> 0001-SQUASHME-pnfs-submit-alloc-layout-don-t-call-put_lay.patch
>> 0002-SQUASHME-pnfs-submit-use-atomic_dec_and_lock-for-lay.patch
>>
>> Fix the put_lseg under spin lock.
>> 0003-SQUASHME-pnfs-submit-don-t-call-put_lseg-under-spin-.patch
>>
>> Cleanup.
>> 0004-SQUASHME-pnfs-submit-pnfs_release_layout-just-use-in.patch
>> 0005-SQUASHME-pnfs-submit-fix-has_layout-compile-error.patch
>>
>> Tests:
>> CONFIG_NFS_V4_1 set:
>> Connectathon tests pass against GFS2 and pyNFS file layout servers.
>>
>> CONFIG_NFS_V4_1 not set:
>> Connectathon tests pass.
>>
>> -->Andy
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux