commit d3b1a9a778e1a014c5331d1e8d4863fd999eb0b5 upstream. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=d3b1a9a778e1a014c5331d1e8d4863fd999eb0b5 In the struct address_space, there is a 32-byte gap between i_mmap and i_mmap_rwsem. Due to the alignment of struct address_space variables to 8 bytes, in certain situations, i_mmap and i_mmap_rwsem may end up in the same CACHE line. While running Unixbench/execl, we observe high false sharing issues when accessing i_mmap against i_mmap_rwsem. We move i_mmap_rwsem after i_private_list, ensuring a 64-byte gap between i_mmap and i_mmap_rwsem. For Intel Silver machines (2 sockets) using kernel v6.8 rc-2, the score of Unixbench/execl improves by ~3.94%, and the score of Unixbench/shell improves by ~3.26%.
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/6259