This bug is awaiting verification that the linux-intel-
iotg/5.15.0-1052.58 kernel in -proposed solves the problem. Please test
the kernel and update this bug with the results. If the problem is
solved, change the tag 'verification-needed-jammy-linux-intel-iotg' to
'verification-done-jammy-linux-intel-iotg'. If the problem still exists,
change the tag 'verification-needed-jammy-linux-intel-iotg' to
'verification-failed-jammy-linux-intel-iotg'.


If verification is not done by 5 working days from today, this fix will
be dropped from the source code, and this bug will be closed.


See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how
to enable and use -proposed. Thank you!


** Tags added: kernel-spammed-jammy-linux-intel-iotg-v2 
verification-needed-jammy-linux-intel-iotg

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2053152

Title:
  performance: mm/percpu-internal.h: Re-layout pcpu_chunk to mitigate
  false sharing

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Jammy:
  Fix Released

Bug description:
  This is a public version of https://bugs.launchpad.net/bugs/2034984

  [Description]
    When running UnixBench/Execl throughput case, false sharing is observed due 
to frequent read on base_addr and write on free_bytes, chunk_md.
    UnixBench/Execl represents a class of workload where bash scripts are 
spawned frequently to do some short jobs. It will do system call on execl 
frequently, and execl will call mm_init to initialize mm_struct of the process. 
mm_init will call __percpu_counter_init for percpu_counters initialization. 
Then pcpu_alloc is called to read the base_addr of pcpu_chunk for memory 
allocation. Inside pcpu_alloc, it will call pcpu_alloc_area to allocate memory 
from a specified chunk. This function will update "free_bytes" and "chunk_md" 
to record the rest free bytes and other meta data for this chunk. 
Correspondingly, pcpu_free_area will also update these 2 members when free 
memory.

    In current pcpu_chunk layout, `base_addr' is in the same cache line
  with `free_bytes' and `chunk_md', and `base_addr' is at the last 8
  bytes. This patch moves `bound_map' up to `base_addr', to let
  `base_addr' locate in a new cacheline.

  [Hardware Information]
    Architecture:
      Intel / AMD (x86_64)
    Platform(s):
      Platform-Independent
    Date HW is expected at Canonical:

    Component(s):
      Performance and Scalability

  [Software Information]
    Target Version:
      23.10
    Target Kernel:
      6.5
    Commit IDs:
      3a6358c0dbe6 percpu-internal/pcpu_chunk: re-layout pcpu_chunk structure 
to reduce false sharing
    External Links:

  [Business Justification]

  [Testing guidance]

  [External ID]
    OSVE-5160


  The following requested patch has been applied upstream for v6.5-rc1:

   - 3a6358c0dbe6 percpu-internal/pcpu_chunk: re-layout pcpu_chunk
  structure to reduce false sharing

  
https://github.com/torvalds/linux/commit/3a6358c0dbe6a286a4f4504ba392a6039a9fbd12

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2053152/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to