public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2 v3] xfs: improve transaction rate scalability
@ 2020-05-19 22:23 Dave Chinner
  2020-05-19 22:23 ` [PATCH 1/2] xfs: separate read-only variables in struct xfs_mount Dave Chinner
  2020-05-19 22:23 ` [PATCH 2/2] xfs: remove the m_active_trans counter Dave Chinner
  0 siblings, 2 replies; 15+ messages in thread
From: Dave Chinner @ 2020-05-19 22:23 UTC (permalink / raw)
  To: linux-xfs

Hi folks,

This is the third version of the patchset to improve the transaction
rate on higher CPU count machines. The previous versions can be found
here:

https://lore.kernel.org/linux-xfs/20200512025949.1807131-1-david@fromorbit.com/
https://lore.kernel.org/linux-xfs/20200512092811.1846252-1-david@fromorbit.com/

Changes for v3 are:
- completely reorganise the struct xfs_mount, not just a subset of
  the variables. This seems to improve performance even more than
  the original version. (Christoph requested this.)
- remove the m_active_trans counter rather than convert it to percpu
  as Darrick suggested.

Results are just as good or better than previous versions, passes
fstests without regressions on both low PCU count and high CPU count
test VMs.

Cheers,

Dave.


^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH 0/2] xfs: fix a couple of performance issues
@ 2020-05-12  2:59 Dave Chinner
  2020-05-12  2:59 ` [PATCH 1/2] xfs: separate read-only variables in struct xfs_mount Dave Chinner
  0 siblings, 1 reply; 15+ messages in thread
From: Dave Chinner @ 2020-05-12  2:59 UTC (permalink / raw)
  To: linux-xfs

Hi folks,

I was comparing profiles between two machines and realised there was
a big discrepancy between them on an unlink workload that was kinda
weird. I pulled the string, and realised the problem was cacheline
bouncing interfering with cache residency of read-only variables.
Hence the first patch.

The second patch came about from working out what variable was
causing the cacheline bouncing that wasn't showing up in the CPU
usage profiles as overhead in the code paths that were contending on
it. And for larger machines, converting the atomic variable to a
per-cpu counter provides a major performance win.

Thoughts, comments, etc all welcome.

-Dave.



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

end of thread, other threads:[~2020-05-20 21:51 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-19 22:23 [PATCH 0/2 v3] xfs: improve transaction rate scalability Dave Chinner
2020-05-19 22:23 ` [PATCH 1/2] xfs: separate read-only variables in struct xfs_mount Dave Chinner
2020-05-20  6:57   ` Christoph Hellwig
2020-05-20  7:12     ` Dave Chinner
2020-05-20  9:43   ` Chaitanya Kulkarni
2020-05-20 20:44   ` Darrick J. Wong
2020-05-19 22:23 ` [PATCH 2/2] xfs: remove the m_active_trans counter Dave Chinner
2020-05-20  7:01   ` Christoph Hellwig
2020-05-20  7:13     ` Dave Chinner
2020-05-20  7:17       ` Christoph Hellwig
2020-05-20 20:47   ` Darrick J. Wong
2020-05-20 21:51     ` Dave Chinner
  -- strict thread matches above, loose matches on Subject: below --
2020-05-12  2:59 [PATCH 0/2] xfs: fix a couple of performance issues Dave Chinner
2020-05-12  2:59 ` [PATCH 1/2] xfs: separate read-only variables in struct xfs_mount Dave Chinner
2020-05-12  8:14   ` Christoph Hellwig
2020-05-12  9:11     ` Dave Chinner

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