Re: [PATCH 08/16] pnfs: wave 3: lseg refcounting

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

 



On Tue, Feb 15, 2011 at 10:06 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> Btw, what's the point for deferring the free_lseg calls?  It looks like it's
> to avoid calling something that might block under i_lock, but looking around
> the pnfs-submit branch it seems that root cause could be fixed trivially.
>
> In common code *free_lseg* and *put_layout_hdr* do nothing but list
> manipulations and kfrees.  And in filelayout_free_lseg we have just kfrees
> and a call to pnfs_put_deviceid which may sleep due to calling
> synchronize_rcu.  But synchronize_rcu is horribly inefficient to start with,
> and you'd better be off using call_rcu to free the device id, which will
> lead to much saner code and better performance.
>

The fundamental reason was that filelayout_free_lseg can call
nfs_put_client (through nfs4_fl_free_deviceid_callback), which in some
codepaths grabs a mutex.

Fred
--
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