Unverified Commit 7feb1eea authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!893 mitigatin cacheline false sharing

Merge Pull Request from: @zhangjialin11 
 
In the test of execl, shell1 and shell8 of UnixBench, L3 false sharing occurs between rwsem_try_write_lock_unqueued() and filemap_map_pages().

The offset between address_space.host and address_space.i_mmap_rwsem is 48. It may occur L3 false sharing. Their offsets in struct ext4_inode_info is 696 and 744, so when the address of ext4_inode_info after L3 aligned, it may occur L3 false sharing in the following condition:

[0x00 ~ 0x10] false sharing
[0x18 ~ 0x40] no false sharing
[0x48 ~ 0x80] false sharing

Change the offset of 'vfs_inode' from 320 to 360 in ext4_inode_info and make the address of ext4_inode_info L3 aligned, so the offset of host and i_mmap_rwsem in ext4_inode_info is changed to 736 and 784, it can make them in different L3 to avoid false sharing.

./Run -c 96 -i 3 execl

Before this patch:
System Benchmarks Partial Index              BASELINE       RESULT    INDEX
Execl Throughput                                 43.0      24238.0   5636.8
                                                                   ========
System Benchmarks Index Score (Partial Only)                         5636.8

After this patch:
System Benchmarks Partial Index              BASELINE       RESULT    INDEX
Execl Throughput                                 43.0      29363.7   6828.8
                                                                   ========
System Benchmarks Index Score (Partial Only)                         6828.8 
 
Link:https://gitee.com/openeuler/kernel/pulls/893

 

Reviewed-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parents 4ac8d141 137c85fc
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment