All of lore.kernel.org
 help / color / mirror / Atom feed
From: rahulimpdocs@gmail.com (Rahul Bhattacharya)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Changing RT task to a different cgroup
Date: Wed, 14 Sep 2016 17:21:20 +0200	[thread overview]
Message-ID: <CA+f8H1DbdTGtwgv1e5dzDXAV32HfYEq=SPEfemBbeB4mpGoS1Q@mail.gmail.com> (raw)

When I try to move a RT task to a different cgroup(shown below) I get
a EINVAL error.

However I can change the cgroup first and then change the sched policy.

After looking into kernel source code(*I dont use
CONFIG_RT_GROUP_SCHED config*) I was able to extract this piece of
logic



*chrt -p 777*
pid 777's current scheduling policy: SCHED_OTHER
pid 777's current scheduling priority: 0
*cat /proc/777/cgroup*
2:cpu,cpuacct:/system.slice
1:name=systemd:/system.slice/d.service
*chrt -f -p 50 777*

root at mgu-high:~# chrt -p 777
pid 777's current scheduling policy: SCHED_FIFO
pid 777's current scheduling priority: 50
*/bin/echo 777>/sys/fs/cgroup/cpu,cpuacct/interaction.slice/tasks**echo:
write error: Invalid argument*


After browsing kernel sources I was able to find out the reason of failure.


static int cpu_cgroup_can_attach(struct cgroup_subsys_state *css,
				 struct cgroup_taskset *tset)
{
	struct task_struct *task;

		
	cgroup_taskset_for_each(task, tset) {
#ifdef CONFIG_RT_GROUP_SCHED
		if (!sched_rt_can_attach(css_tg(css), task))
			return -EINVAL;
#else
		



*/* We don't support RT-tasks being in separate groups */		if
(task->sched_class != &fair_sched_class)		{			return -EINVAL;		}*
#endif
	}
	return 0;
}

My question is why is this check required? Also, changing cgroups
first and then the policy of FIFO works without issue(?) for the task.

Thanks


br

rb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20160914/6b44141e/attachment.html 

             reply	other threads:[~2016-09-14 15:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-14 15:21 Rahul Bhattacharya [this message]
2016-09-20 12:39 ` Changing RT task to a different cgroup Rahul Bhattacharya
2016-09-20 13:09   ` Juan Luis De Sousa-Valadas Castano

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='CA+f8H1DbdTGtwgv1e5dzDXAV32HfYEq=SPEfemBbeB4mpGoS1Q@mail.gmail.com' \
    --to=rahulimpdocs@gmail.com \
    --cc=kernelnewbies@lists.kernelnewbies.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.