From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dietmar Eggemann Subject: Re: [PATCH v3] sched: cpuset: Don't rebuild root domains on suspend-resume Date: Mon, 13 Mar 2023 13:37:48 +0100 Message-ID: References: <20230206221428.2125324-1-qyousef@layalina.io> <20230223153859.37tqoqk33oc6tv7o@airbuntu> <5f087dd8-3e39-ce83-fe24-afa5179c05d9@arm.com> <20230227205725.dipvh3i7dvyrv4tv@airbuntu> <5a1e58bf-7eb2-bd7a-7e19-7864428a2b83@arm.com> <20230228174627.vja5aejq27dsta2u@airbuntu> <20230301122852.zgzreby42lh2zf6w@airbuntu> <20230301170322.xthlso7jfkixlyex@airbuntu> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: Content-Language: en-US In-Reply-To: List-ID: Content-Type: text/plain; charset="us-ascii" To: Juri Lelli , Qais Yousef Cc: Peter Zijlstra , Ingo Molnar , Waiman Long , Steven Rostedt , tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, luca.abeni-5rdYK369eBLQB0XuIGIEkQ@public.gmane.org, claudio-YOzL5CV4y4YG1A2ADO40+w@public.gmane.org, tommaso.cucinotta-5rdYK369eBLQB0XuIGIEkQ@public.gmane.org, bristot-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mathieu.poirier-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Vincent Guittot , Wei Wang , Rick Yiu , Quentin Perret , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sudeep Holla , Zefan Li , linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org On 08/03/2023 11:19, Juri Lelli wrote: > On 01/03/23 17:03, Qais Yousef wrote: >> On 03/01/23 15:26, Juri Lelli wrote: >>> On 01/03/23 12:28, Qais Yousef wrote: >>>> On 03/01/23 08:31, Juri Lelli wrote: >>> >>> ... >>> >>>>> Not ignoring you guys here, but it turns out I'm quite bogged down with >>>>> other stuff at the moment. :/ So, apologies and I'll try to get to this >>>>> asap. Thanks a lot for all your efforts and time reviewing so far! >>>> >>>> Np, I can feel you :-) >>> >>> Eh. :/ >> >> I hope I did not offend. That was meant as no pressure, I understand. > > No offence at all! I meant "we are all on the same boat it seems". :) > >>> BTW, do you have a repro script of some sort handy I might play with? >> >> Sorry no. You'll just need to suspend to ram. I had a simple patch to measure >> the time around the call and trace_printk'ed the result. >> >> I was working on a android phone which just suspends to ram if you turn the >> screen off and disconnect the usb. > > Looks like I could come up with the following > > https://github.com/jlelli/linux.git deadline/rework-cpusets > https://github.com/jlelli/linux/tree/deadline/rework-cpusets > > which I don't think it's at a point that I feel comfortable to propose > as an RFC (not even sure if it actually makes sense), but it survived my > very light testing. > > Could you please take a look and, if it makes some sense in theory, give > it a try on your end? sched/cpuset: Keep track of SCHED_DEADLINE task in cpusets @@ -2474,6 +2494,11 @@ static int cpuset_can_attach(struct cgroup_taskset *tset) goto out_unlock; } + if (dl_task(task)) { + cs->deadline_tasks++; + cpuset_attach_old_cs->deadline_tasks--; + } + This one looks odd. task is NULL here ? If you move a DL task from one cpuset to another this happens now: root@juno:~# ps2 | grep DLN 82 82 140 0 - DLN sugov:0 83 83 140 0 - DLN sugov:1 1615 1616 140 0 - DLN thread0-0 1615 1617 140 0 - DLN thread0-1 1615 1618 140 0 - DLN thread0-2 1615 1619 140 0 - DLN thread0-3 1615 1620 140 0 - DLN thread0-4 1615 1621 140 0 - DLN thread0-5 1615 1622 140 0 - DLN thread0-6 1615 1623 140 0 - DLN thread0-7 1615 1624 140 0 - DLN thread0-8 1615 1625 140 0 - DLN thread0-9 1615 1626 140 0 - DLN thread0-10 1615 1627 140 0 - DLN thread0-11 <-- root@juno:~# cd /sys/fs/cgroup/cpuset root@juno:~# mkdir cs1 root@juno:~# echo 0 > cs1/cpuset.mems root@juno:~# echo 0,3-5 > cs1/cpuset.cpus root@juno:~# echo 1627 > cs1/tasks root@juno:~# [ 154.968900] *** task=0000000000000000 [...]