Linux kernel -stable discussions
 help / color / mirror / Atom feed
From: Luiz Capitulino <luizcap@amazon.com>
To: <stable@vger.kernel.org>, <juri.lelli@redhat.com>,
	<longman@redhat.com>, <neelx@redhat.com>
Cc: <tj@kernel.org>, <lizefan.x@bytedance.com>, <hannes@cmpxchg.org>,
	<lcapitulino@gmail.com>, Luiz Capitulino <luizcap@amazon.com>
Subject: [PATH 6.1.y 0/5] Backport "sched cpuset: Bring back cpuset_mutex"
Date: Thu, 31 Aug 2023 18:13:01 +0000	[thread overview]
Message-ID: <cover.1693505570.git.luizcap@amazon.com> (raw)

Hi,

When using KVM on systems that require iTLB multihit mitigation enabled[1],
we're observing very high latency (70ms+) in KVM_CREATE_VM ioctl() in 6.1
kernel in comparison to older stable kernels such as 5.10. This is true even
when using favordynmods mount option.

We debugged this down to the cpuset controller trying to acquire cpuset_rwsem
in cpuset_can_attach(). This happens because KVM creates a worker thread which
calls cgroup_attach_task_all() during KVM_CREATE_VM. I don't know if
favordynmods is supposed to cover this case or not, but removing cpuset_rwsem
certainly solves the issue.

For the backport I tried to pick as many dependent commits as required to avoid
conflicts. I would highly appreciate review from cgroup people.

Tests performed:
 * Measured latency in KVM_CREATE_VM ioctl(), it goes down to less than 1ms
 * Ran the cgroup kselftest tests, got same results with or without this series
    * However, some tests such as test_memcontrol and test_kmem are failing
      in 6.1. This probably needs to be looked at
    * To make test_cpuset_prs.sh work, I had to increase the timeout on line
      592 to 1 second. With this change, the test runs and passes
 * I run our downstream test suite against our downstream 6.1 kernel with this
   series applied, it passed

 [1] For the case where the CPU is not vulnerable to iTLB multihit we can
     simply disable the iTLB multihit mitigation in KVM which avoids this
     whole situation. Disabling the mitigation is possible since upstream
     commit 0b210faf337 which I plan to backport soon

Daniel Vacek (1):
  cgroup/cpuset: no need to explicitly init a global static variable

Juri Lelli (1):
  sched/cpuset: Bring back cpuset_mutex

Waiman Long (3):
  cgroup/cpuset: Optimize cpuset_attach() on v2
  cgroup/cpuset: Skip task update if hotplug doesn't affect current
    cpuset
  cgroup/cpuset: Include offline CPUs when tasks' cpumasks in top_cpuset
    are updated

 include/linux/cpuset.h |   8 +-
 kernel/cgroup/cpuset.c | 211 +++++++++++++++++++++++------------------
 kernel/sched/core.c    |  22 +++--
 3 files changed, 139 insertions(+), 102 deletions(-)

-- 
2.40.1


             reply	other threads:[~2023-08-31 18:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-31 18:13 Luiz Capitulino [this message]
2023-08-31 18:13 ` [PATH 6.1.y 1/5] cgroup/cpuset: Optimize cpuset_attach() on v2 Luiz Capitulino
2023-08-31 18:13 ` [PATH 6.1.y 2/5] cgroup/cpuset: no need to explicitly init a global static variable Luiz Capitulino
2023-08-31 18:13 ` [PATH 6.1.y 3/5] cgroup/cpuset: Skip task update if hotplug doesn't affect current cpuset Luiz Capitulino
2023-08-31 18:13 ` [PATH 6.1.y 4/5] cgroup/cpuset: Include offline CPUs when tasks' cpumasks in top_cpuset are updated Luiz Capitulino
2023-08-31 18:13 ` [PATH 6.1.y 5/5] sched/cpuset: Bring back cpuset_mutex Luiz Capitulino
2023-08-31 18:22 ` [PATH 6.1.y 0/5] Backport "sched cpuset: Bring back cpuset_mutex" Greg KH
2023-08-31 18:31   ` Luiz Capitulino
2023-08-31 19:07     ` Luiz Capitulino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1693505570.git.luizcap@amazon.com \
    --to=luizcap@amazon.com \
    --cc=hannes@cmpxchg.org \
    --cc=juri.lelli@redhat.com \
    --cc=lcapitulino@gmail.com \
    --cc=lizefan.x@bytedance.com \
    --cc=longman@redhat.com \
    --cc=neelx@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox