All of lore.kernel.org
 help / color / mirror / Atom feed
From: Waiman Long <longman@redhat.com>
To: Felix Moessbauer <felix.moessbauer@siemens.com>
Cc: akpm@linux-foundation.org, cgroups@vger.kernel.org,
	corbet@lwn.net, frederic@kernel.org, guro@fb.com,
	hannes@cmpxchg.org, juri.lelli@redhat.com,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org, lizefan.x@bytedance.com,
	mkoutny@suse.com, mtosatti@redhat.com, pauld@redhat.com,
	peterz@infradead.org, shuah@kernel.org, tj@kernel.org,
	jan.kiszka@siemens.com, henning.schild@siemens.com
Subject: Re: [PATCH v8 0/6] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus
Date: Wed, 10 Nov 2021 10:20:29 -0500	[thread overview]
Message-ID: <e082b943-65ac-e92b-0637-6a2431830054@redhat.com> (raw)
In-Reply-To: <20211110111357.17617-1-felix.moessbauer@siemens.com>


On 11/10/21 06:13, Felix Moessbauer wrote:
> Hi Weiman,
>
>> v8:
>>   - Reorganize the patch series and rationalize the features and
>>     constraints of a partition.
>>   - Update patch descriptions and documentation accordingly.
>>
>> v7:
>>   - Simplify the documentation patch (patch 5) as suggested by Tejun.
>>   - Fix a typo in patch 2 and improper commit log in patch 3.
>>
>> v6:
>>   - Remove duplicated tmpmask from update_prstate() which should fix the
>>     frame size too large problem reported by kernel test robot.
>>
>> This patchset makes four enhancements to the cpuset v2 code.
>>
>>   Patch 1: Enable partition with no task to have empty cpuset.cpus.effective.
>>
>>   Patch 2: Refining the features and constraints of a cpuset partition
>>   clarifying what changes are allowed.
>>
>>   Patch 3: Add a new partition state "isolated" to create a partition
>>   root without load balancing. This is for handling intermitten workloads
>>   that have a strict low latency requirement.
>
> I just tested this patch-series and can confirm that it works on 5.15.0-rc7-rt15 (PREEMT_RT).
>
> However, I was not able to see any latency improvements when using
> cpuset.cpus.partition=isolated.
> The test was performed with jitterdebugger on CPUs 1-3 and the following cmdline:
> rcu_nocbs=1-4 nohz_full=1-4 irqaffinity=0,5-6,11 intel_pstate=disable
> On the other cpus, stress-ng was executed to generate load.
>
> Just some more general notes:
>
> Even with this new "isolated" type, it is still very tricky to get a similar
> behavior as with isolcpus (as long as I don't miss something here):
>
> Consider an RT application that consists of a non-rt thread that should be floating
> and a rt-thread that should be placed in the isolated domain.
> This requires cgroup.type=threaded on both cgroups and changes to the application
> (threads have to be born in non-rt group and moved to rt-group).
>
> Theoretically, this could be done externally, but in case the application sets the
> affinity mask manually, you run into a timing issue (setting affinities to CPUs
> outside the current cpuset.cpus results in EINVAL).

I believe the "isolated" type will have more benefit on non PREEMPT_RT 
kernel. Anyway, having the "isolated" type is just the first step. It 
should be equivalent to "isolcpus=domain". There are other patches 
floating that attempt to move some of the isolcpus=nohz features into 
cpuset as well. It is not there yet, but we should be able to have 
better dynamic cpu isolation down the road.

Cheers,
Longman


      parent reply	other threads:[~2021-11-10 15:21 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18 14:36 [PATCH v8 0/6] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus Waiman Long
2021-10-18 14:36 ` Waiman Long
2021-10-18 14:36 ` [PATCH v8 1/6] cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective Waiman Long
2021-10-18 14:36   ` Waiman Long
2021-10-18 14:36 ` [PATCH v8 2/6] cgroup/cpuset: Refining features and constraints of a partition Waiman Long
2021-10-18 14:36   ` Waiman Long
2021-10-18 14:36 ` [PATCH v8 3/6] cgroup/cpuset: Add a new isolated cpus.partition type Waiman Long
2021-10-18 14:36 ` [PATCH v8 4/6] cgroup/cpuset: Show invalid partition reason string Waiman Long
2021-10-18 14:36 ` [PATCH v8 5/6] cgroup/cpuset: Update description of cpuset.cpus.partition in cgroup-v2.rst Waiman Long
2021-11-15 19:31   ` Michal Koutný
2021-11-15 19:31     ` Michal Koutný
2021-11-15 20:11     ` Tejun Heo
2021-11-15 20:11       ` Tejun Heo
2021-11-15 21:27       ` Waiman Long
2021-11-15 21:27         ` Waiman Long
2021-11-15 21:10     ` Waiman Long
2021-11-16 17:54       ` Michal Koutný
2021-11-30 15:35         ` Waiman Long
2021-11-30 17:11           ` Tejun Heo
2021-11-30 17:11             ` Tejun Heo
2021-12-01  3:56             ` Waiman Long
2021-12-01 14:13               ` Michal Koutný
2021-12-01 14:13                 ` Michal Koutný
2021-12-01 14:56                 ` Waiman Long
2021-12-01 14:56                   ` Waiman Long
2021-12-01 16:39                   ` Tejun Heo
2021-12-01 17:49                     ` Waiman Long
2021-12-01 17:49                       ` Waiman Long
2021-12-01 14:26               ` Waiman Long
2021-12-01 14:26                 ` Waiman Long
2021-12-01 16:46               ` Tejun Heo
2021-12-01 16:46                 ` Tejun Heo
2021-12-01 18:05                 ` Waiman Long
2021-12-02  1:28                   ` Waiman Long
2021-12-03 18:25                     ` Michal Koutný
2021-12-03 18:25                       ` Michal Koutný
2021-12-03 19:27                       ` Waiman Long
2021-10-18 14:36 ` [PATCH v8 6/6] kselftest/cgroup: Add cpuset v2 partition root state test Waiman Long
2021-10-18 14:36   ` Waiman Long
2021-10-27 23:05 ` [PATCH v8 0/6] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus Waiman Long
2021-11-10 11:13 ` Felix Moessbauer
2021-11-10 13:21   ` Marcelo Tosatti
2021-11-10 13:56   ` Michal Koutný
2021-11-10 15:21     ` Moessbauer, Felix
2021-11-10 15:21       ` Moessbauer, Felix
2021-11-10 16:10       ` Marcelo Tosatti
2021-11-10 16:10         ` Marcelo Tosatti
2021-11-10 16:14         ` Marcelo Tosatti
2021-11-10 16:14           ` Marcelo Tosatti
2021-11-10 16:15         ` Jan Kiszka
2021-11-10 16:15           ` Jan Kiszka
2021-11-10 17:29           ` Marcelo Tosatti
2021-11-10 17:29             ` Marcelo Tosatti
2021-11-10 18:30             ` Waiman Long
2021-11-10 18:30               ` Waiman Long
2021-11-10 17:52           ` Michal Koutný
2021-11-10 17:52             ` Michal Koutný
2021-11-10 18:04             ` Jan Kiszka
2021-11-10 18:04               ` Jan Kiszka
2021-11-10 18:15       ` Michal Koutný
2021-11-10 18:15         ` Michal Koutný
2021-11-10 15:20   ` Waiman Long [this message]

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=e082b943-65ac-e92b-0637-6a2431830054@redhat.com \
    --to=longman@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=corbet@lwn.net \
    --cc=felix.moessbauer@siemens.com \
    --cc=frederic@kernel.org \
    --cc=guro@fb.com \
    --cc=hannes@cmpxchg.org \
    --cc=henning.schild@siemens.com \
    --cc=jan.kiszka@siemens.com \
    --cc=juri.lelli@redhat.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=lizefan.x@bytedance.com \
    --cc=mkoutny@suse.com \
    --cc=mtosatti@redhat.com \
    --cc=pauld@redhat.com \
    --cc=peterz@infradead.org \
    --cc=shuah@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.