public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] xfs_repair: scalability inmprovements
@ 2013-12-12  7:22 Dave Chinner
  2013-12-12  7:22 ` [PATCH 1/5] repair: translation lookups limit scalability Dave Chinner
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Dave Chinner @ 2013-12-12  7:22 UTC (permalink / raw)
  To: xfs

HI folks,

The following 5 patches to xfs_repair improve scalability on high
IOPS devices. They remove contention points that limit the number of
IO threads that we can use, whilst also protecting against using too
much concurrency.

The first patch removes a contention point in a 3rd party
translation library by avoiding translating static data repeatedly.

The second separates the per-ag locks into separate cachelines, so
we don't get threads working on different AGs contending on
cachelines shared by non-shared locks.

THe third parallelises phase 6, which was never done because the
original repair parallelism work didn't show it to be a significant
contributor to runtime. Even serialised it was as fast as the
parallelised phases. However, that's a different story now with SSDs
- it's the only phase that is CPU bound because it doesn't spread
the work across multiple CPUs, and so is by far the slowest phase of
repair on SSDs.

The fourht patch corrects a problem with CPU usage in the buffer
cache - the hash table distributions are awful.

Finally, the last patch fixes a problem reported by Michael Semon
where too much concurrency was being used by xfs_repair and hence
failing because it was unable to allocate threads.

Cheers,

Dave.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-12-13 14:23 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-12  7:22 [PATCH 0/5] xfs_repair: scalability inmprovements Dave Chinner
2013-12-12  7:22 ` [PATCH 1/5] repair: translation lookups limit scalability Dave Chinner
2013-12-12 18:26   ` Christoph Hellwig
2013-12-12 18:58   ` Brian Foster
2013-12-12  7:22 ` [PATCH 2/5] repair: per AG locks contend for cachelines Dave Chinner
2013-12-12 18:27   ` Christoph Hellwig
2013-12-12 18:58   ` Brian Foster
2013-12-12 20:46     ` Dave Chinner
2013-12-12  7:22 ` [PATCH 3/5] repair: phase 6 is trivially parallelisable Dave Chinner
2013-12-12 18:43   ` Christoph Hellwig
2013-12-12 20:53     ` Dave Chinner
2013-12-12 18:59   ` Brian Foster
2013-12-12  7:22 ` [PATCH 4/5] libxfs: buffer cache hashing is suboptimal Dave Chinner
2013-12-12 18:28   ` Christoph Hellwig
2013-12-12 18:59   ` Brian Foster
2013-12-12 20:56     ` Dave Chinner
2013-12-13 14:23       ` Brian Foster
2013-12-12  7:22 ` [PATCH 5/5] repair: limit auto-striding concurrency apprpriately Dave Chinner
2013-12-12 18:29   ` Christoph Hellwig
2013-12-12 21:00     ` Dave Chinner
2013-12-12 18:59   ` Brian Foster

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox