| To: | Dave Chinner <david@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH v2] xfs: re-enable xfsaild idle mode and fix associated races |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Thu, 21 Jun 2012 03:11:36 -0400 |
| Cc: | Brian Foster <bfoster@xxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx |
| In-reply-to: | <20120620223548.GK30705@dastard> |
| References: | <1339087793-45731-1-git-send-email-bfoster@xxxxxxxxxx> <20120620080523.GA26167@xxxxxxxxxxxxx> <4FE1F37E.6090706@xxxxxxxxxx> <20120620223548.GK30705@dastard> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
On Thu, Jun 21, 2012 at 08:35:48AM +1000, Dave Chinner wrote: > writes are single instructions on 64 bit systems. The lock is > required for 32 bit systems because the write requires separate 32 > bit writes to the LSN which can result in unlocked accesses seeing > partially updated (and hence incorrect) LSN values. > > So the memory barriers are definitely needed for 64 bit machines > because there is no locking on the update and spinlocks only provide > memory barriers via unlock->lock transitions, not via a single > spin_lock() call. Indeed. So we'll either need the barriers, or just always take xa_lock in xfs_ail_push. Given that xa_lock and xa_target appear in the same cache line it probably wouldn't even make much of a difference. |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Debugging file truncation problem, Ling Ho |
|---|---|
| Next by Date: | Re: [PATCH] xfs: shutdown xfs_sync_worker before the log, Christoph Hellwig |
| Previous by Thread: | Re: [PATCH v2] xfs: re-enable xfsaild idle mode and fix associated races, Dave Chinner |
| Next by Thread: | [PATCH 0/9] xfs: discontiguous directory buffer support, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |