From: Eric Sandeen <sandeen@sandeen.net>
To: Dave Chinner <david@fromorbit.com>, Ben Myers <bpm@sgi.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 0/5] xfs: more patches for 3.13
Date: Tue, 12 Nov 2013 19:16:03 -0600 [thread overview]
Message-ID: <5282D2D3.3040601@sandeen.net> (raw)
In-Reply-To: <20131107015706.GM6188@dastard>
On 11/6/13, 7:57 PM, Dave Chinner wrote:
> On Wed, Nov 06, 2013 at 05:01:33PM -0600, Ben Myers wrote:
>> On Fri, Nov 01, 2013 at 03:27:15PM +1100, Dave Chinner wrote:
>>> Hi folks,
>>>
>>> The following series follows up the recently committed series of
>>> patches for 3.13. The first two patches are the remaining
>>> uncommitted patches from the previous series.
>>>
>>> The next two patches are tracing patches, one for AIL manipulations
>>> and the other for AGF and AGI read operations. Both of these were
>>> written during recent debugging sessions, and both proved useful so
>>> should be added to the menagerie of tracepoints we already have
>>> avaialble.
>>>
>>> The final patch is the increasing of the inode cluster size for v5
>>> filesystems. I'd like to get this into v5 filesystems for 3.13 so we
>>> get wider exposure of it ASAP so we have more data available to be
>>> able to make informed decisions about how to bring this back to v4
>>> filesystems in a safe and controlled manner.
>>
>> Applied 3 and 4. I still don't understand why the locking on patch 2 is
>> correct. Seems like the readers of i_version hold different locks than we do
>> when we log the inode. Maybe Christoph can help me with that.
>
> Readers don't need to hold a spinlock, and many don't. The spinlock
> is only there to prevent concurrent updates from "losing" an update
> due to races. All modifications to XFS inodes occur via
> transactions, inodes are locked exclusively in transactions and
> hence we will never lose i_version updates due to races. Hence we
> don't need the spinlock during the update, either.
I'm not completely convinced that readers don't need to. What happens when
we read in the middle of an update? Especially when a 32-bit box reads the
64-bit value in the middle of an update?
NFS is the only reader we care about (right?)
I see a several paths to i_version reads in nfs; so far I'm finding locked reads:
<2 callers of nfs_refresh_inode_locked>
spin_lock(&inode->i_lock);
nfs_refresh_inode_locked
nfs_update_inode
nfs_wcc_update_inode
(... && inode->i_version == fattr->pre_change_attr)
...
if (inode->i_version != fattr->change_attr) {
...
nfs_check_inode_attributes
(... && inode->i_version != fattr->change_attr)
---
update_changeattr
spin_lock(&dir->i_lock);
if (!cinfo->atomic || cinfo->before != dir->i_version)
---
nfs_post_op_update_inode_force_wcc
spin_lock(&inode->i_lock);
fattr->pre_change_attr = inode->i_version;
---
I haven't audited everything but do you have an example of an unlocked
reader (which is relevant to xfs)?
-Eric
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2013-11-13 1:16 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-01 4:27 [PATCH 0/5] xfs: more patches for 3.13 Dave Chinner
2013-11-01 4:27 ` [PATCH 1/5] xfs: xfs_remove deadlocks due to inverted AGF vs AGI lock ordering Dave Chinner
2013-11-01 4:27 ` [PATCH 2/5] xfs: open code inc_inode_iversion when logging an inode Dave Chinner
2013-11-05 16:41 ` Christoph Hellwig
2013-11-18 21:54 ` Eric Sandeen
2013-11-18 22:28 ` Ben Myers
2013-11-18 22:45 ` Eric Sandeen
2013-11-01 4:27 ` [PATCH 3/5] xfs: trace AIL manipulations Dave Chinner
2013-11-05 16:41 ` Christoph Hellwig
2013-11-01 4:27 ` [PATCH 4/5] xfs: add tracepoints to AGF/AGI read operations Dave Chinner
2013-11-05 16:42 ` Christoph Hellwig
2013-11-01 4:27 ` [PATCH 5/5] xfs: increase inode cluster size for v5 filesystems Dave Chinner
2013-11-05 16:43 ` Christoph Hellwig
2013-11-05 19:56 ` Dave Chinner
2013-11-06 21:31 ` Ben Myers
2013-11-07 0:32 ` Dave Chinner
2013-11-12 17:33 ` Christoph Hellwig
2013-11-08 18:21 ` Eric Sandeen
2013-11-11 22:45 ` Dave Chinner
2013-11-12 0:24 ` Eric Sandeen
2013-11-14 18:51 ` Eric Sandeen
2013-11-06 23:01 ` [PATCH 0/5] xfs: more patches for 3.13 Ben Myers
2013-11-07 1:57 ` Dave Chinner
2013-11-13 1:16 ` Eric Sandeen [this message]
2013-11-14 1:16 ` Dave Chinner
2013-11-15 17:19 ` Eric Sandeen
2013-11-15 17:55 ` Eric Sandeen
2013-11-17 19:48 ` Dave Chinner
2013-11-18 21:52 ` Eric Sandeen
2013-11-18 20:30 ` Ben Myers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5282D2D3.3040601@sandeen.net \
--to=sandeen@sandeen.net \
--cc=bpm@sgi.com \
--cc=david@fromorbit.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.