xfs
[Top] [All Lists]

Re: PARTIAL TAKE 946630 - Contention on incore superblock lock

To: David Chinner <dgc@xxxxxxx>
Subject: Re: PARTIAL TAKE 946630 - Contention on incore superblock lock
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 8 Feb 2006 09:21:28 +0000
Cc: linux-xfs@xxxxxxxxxxx, sgi.bugs.xfs@xxxxxxxxxxxx
In-reply-to: <20060203061930.8672A494E42E@xxxxxxxxxxxxxxxxxxxxxxx>
References: <20060203061930.8672A494E42E@xxxxxxxxxxxxxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
On Fri, Feb 03, 2006 at 05:19:30PM +1100, David Chinner wrote:
> When running parallel I/O threads on machines with lots of
> CPUs, the incore superblock lock becomes the limiting factor
> for buffered write throughput. Make the contended fields in
> the incore superblock use per-cpu counters so that there is
> no global lock to limit scalability.

This looks like it's wrong in case of hotplug cpus.  Various functions only
iterate over all online cpus, e.g. to initialize structures and update the
ondisk counters on unmount.  It would oops when adding a new cpu online
due to uninitialized spinlocks or corrupt the filesystems when removing cpus
while a filesystem is mounted.  Changing all for_each_online_cpu to
for_each_possible_cpu should fix all this.


<Prev in Thread] Current Thread [Next in Thread>