Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-7734

To add futex_waitv syscall to cri-o seccomp runtime default profile in RHOCP 4 - CRI-O

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 4.18
    • Node
    • None
    • Product / Portfolio Work
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      1.Proposed title of this feature request

      Add futex_waitv syscall to cri-o seccomp runtime default profile
      2. What is the nature and description of the request?
      To have the ability to modify CRI-O or to include it in the default seccomp profile

      Telco application design teams have identified a capacity improvement by using a new broadcast syscall futex_waitv. Some references of futex_waitv:

      - https://test.www.collabora.com/news-and-blog/blog/2023/02/17/the-futex-waitv-syscall-gaming-on-linux/

      - https://lwn.net/Articles/870229/

       - https://lwn.net/Articles/868473/

      futex2: Add wait on multiple futexes syscall However CRI-O by default blocks futex_waitv.

      https://github.com/cri-o/cri-o/blob/main/internal/config/seccomp/seccomp.go#L15

      https://github.com/containers/common/blob/main/pkg/seccomp/seccomp.json#L61

      The expectation would be that this should be added to the default CRI-O seccomp profile. e.g. Containerd by default allows futex_waitv:

      https://github.com/containerd/containerd/blob/main/contrib/seccomp/seccomp_default.go#L140

      Workaround: To create a custom seccomp profile but it would be better if it was part of the default.

      3. Why does the customer need this? (List the business requirements here)
      Application can use the futex syscall to exchange signals among several threads; when a condition is met, several sequential futex syscalls will be made sequentially.
      Using futex_waitv may theoretically save up to 20% of thread time spent doing futex syscalls one by one.

      Telco workloads typically deal with large numbers of lightweight threads (like for packet processing or event handlers). Without futex_waitv, each thread may wait on a separate futex and consume kernel resources/ performance under heavy load.

      4. List any affected packages or components.

      • CRI-O
      • The containers/common seccomp policy (CRI-O policy )

              gausingh@redhat.com Gaurav Singh
              rhn-support-dahernan David Hernandez Fernandez
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                None
                None