mbox series

[SRU,jammy,0/1] performance: address_space: add padding for i_map and i_mmap_rwsem to mitigate a false sharing

Message ID 20240213204221.661294-1-philip.cox@canonical.com
Headers show
Series performance: address_space: add padding for i_map and i_mmap_rwsem to mitigate a false sharing | expand

Message

Philip Cox Feb. 13, 2024, 8:42 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2053069

SRU Justification:

[Impact]
In high core count systems such as Intel Sapphire Rapids
(with a 112C/224T count) this this change improvesgeekbench performance by
~5.3% due to moving the elements in the address_space struct.

[Fix]
by moving i_mmap_rwsema, vma_interval_tree_remove is no longer in cacheline 0
which improves the performance.


[Test Plan]
I've tested this change, as has Intel.  This change has also been upstreamed
for some time.

[Where problems could occur]
The risk for regression is fairly low, as we are just changing the layout
of a stuct to change where members land in the cache.

--

Zhu, Lipeng (1):
  fs/address_space: add alignment padding for i_map and i_mmap_rwsem to
    mitigate a false sharing.

 include/linux/fs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ian May Feb. 13, 2024, 9:06 p.m. UTC | #1
Acked-by: Ian May <ian.may@canonical.com>

On 2024-02-13 15:42:20 , Philip Cox wrote:
> 
> BugLink: https://bugs.launchpad.net/bugs/2053069
> 
> SRU Justification:
> 
> [Impact]
> In high core count systems such as Intel Sapphire Rapids
> (with a 112C/224T count) this this change improvesgeekbench performance by
> ~5.3% due to moving the elements in the address_space struct.
> 
> [Fix]
> by moving i_mmap_rwsema, vma_interval_tree_remove is no longer in cacheline 0
> which improves the performance.
> 
> 
> [Test Plan]
> I've tested this change, as has Intel.  This change has also been upstreamed
> for some time.
> 
> [Where problems could occur]
> The risk for regression is fairly low, as we are just changing the layout
> of a stuct to change where members land in the cache.
> 
> --
> 
> Zhu, Lipeng (1):
>   fs/address_space: add alignment padding for i_map and i_mmap_rwsem to
>     mitigate a false sharing.
> 
>  include/linux/fs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> -- 
> 2.34.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Stefan Bader Feb. 15, 2024, 8:37 a.m. UTC | #2
On 13.02.24 21:42, Philip Cox wrote:
> 
> BugLink: https://bugs.launchpad.net/bugs/2053069
> 
> SRU Justification:
> 
> [Impact]
> In high core count systems such as Intel Sapphire Rapids
> (with a 112C/224T count) this this change improvesgeekbench performance by
> ~5.3% due to moving the elements in the address_space struct.
> 
> [Fix]
> by moving i_mmap_rwsema, vma_interval_tree_remove is no longer in cacheline 0
> which improves the performance.
> 
> 
> [Test Plan]
> I've tested this change, as has Intel.  This change has also been upstreamed
> for some time.
> 
> [Where problems could occur]
> The risk for regression is fairly low, as we are just changing the layout
> of a stuct to change where members land in the cache.
> 
> --
> 
> Zhu, Lipeng (1):
>    fs/address_space: add alignment padding for i_map and i_mmap_rwsem to
>      mitigate a false sharing.
> 
>   include/linux/fs.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 

This patch is upstream as of v6.6 (the devel task of the bug report 
should be fix-released or invalid). However that brings up the question 
about Mantic/6.5. Should this not also be included there?

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Andrei Gherzan Feb. 15, 2024, 1:11 p.m. UTC | #3
On 24/02/13 03:42PM, Philip Cox wrote:
> 
> BugLink: https://bugs.launchpad.net/bugs/2053069
> 
> SRU Justification:
> 
> [Impact]
> In high core count systems such as Intel Sapphire Rapids
> (with a 112C/224T count) this this change improvesgeekbench performance by
> ~5.3% due to moving the elements in the address_space struct.
> 
> [Fix]
> by moving i_mmap_rwsema, vma_interval_tree_remove is no longer in cacheline 0
> which improves the performance.
> 
> 
> [Test Plan]
> I've tested this change, as has Intel.  This change has also been upstreamed
> for some time.
> 
> [Where problems could occur]
> The risk for regression is fairly low, as we are just changing the layout
> of a stuct to change where members land in the cache.
> 
> --
> 
> Zhu, Lipeng (1):
>   fs/address_space: add alignment padding for i_map and i_mmap_rwsem to
>     mitigate a false sharing.
> 
>  include/linux/fs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Acked-by: Andrei Gherzan <andrei.gherzan@canonical.com>
Stefan Bader Feb. 19, 2024, 1:26 p.m. UTC | #4
On 13.02.24 21:42, Philip Cox wrote:
> 
> BugLink: https://bugs.launchpad.net/bugs/2053069
> 
> SRU Justification:
> 
> [Impact]
> In high core count systems such as Intel Sapphire Rapids
> (with a 112C/224T count) this this change improvesgeekbench performance by
> ~5.3% due to moving the elements in the address_space struct.
> 
> [Fix]
> by moving i_mmap_rwsema, vma_interval_tree_remove is no longer in cacheline 0
> which improves the performance.
> 
> 
> [Test Plan]
> I've tested this change, as has Intel.  This change has also been upstreamed
> for some time.
> 
> [Where problems could occur]
> The risk for regression is fairly low, as we are just changing the layout
> of a stuct to change where members land in the cache.
> 
> --
> 
> Zhu, Lipeng (1):
>    fs/address_space: add alignment padding for i_map and i_mmap_rwsem to
>      mitigate a false sharing.
> 
>   include/linux/fs.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 

I found that this patch, although originating in v6.6-rc1, already is 
applied to Mantic. But it does not use the full cherry pick format (no 
upstream SHA1 reference). So I initially missed it.

Applied to jammy:linux/master-next. Thanks.

-Stefan