From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97DAFC25B7C for ; Thu, 23 May 2024 15:45:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1C6216B0099; Thu, 23 May 2024 11:45:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 127B66B009A; Thu, 23 May 2024 11:45:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 015FA6B009B; Thu, 23 May 2024 11:45:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D7D9D6B0099 for ; Thu, 23 May 2024 11:45:01 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8D74116068F for ; Thu, 23 May 2024 15:45:01 +0000 (UTC) X-FDA: 82150084002.19.E4B90F5 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf29.hostedemail.com (Postfix) with ESMTP id D5171120024 for ; Thu, 23 May 2024 15:44:59 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf29.hostedemail.com: domain of "SRS0=o7wx=M2=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=o7wx=M2=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1716479100; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cK/6CDfY125ekiINveTyF1l/aWNNdPbTIOKtjbCltmA=; b=wcnG8pU6GfIS/TrbAB2ToVYQrsjumpof0TFjOk5xuUWwHXbrVFugfqOOuwmUImfpZgCJUL IRM/k+divQf8RvgWCIF1GYbl2/ZZIHPm5FBGp0hjgDnJsPf68kQe1rPnQJNDIELM6je/Rn MEbSOLvCun/E0K2E5lDSqSC9ZBN51Pw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf29.hostedemail.com: domain of "SRS0=o7wx=M2=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=o7wx=M2=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1716479100; a=rsa-sha256; cv=none; b=sJXlhQgbL6WO9hvtGXiX10uLkXJiG95Y/40GKrgQwUzT48ImqvMz0TfnAaJNARM7BCZ01H gBuBASqSBiIBiiCsEDPUEdKkJ9pMgqFkVDQXRVwu+dSUnH40AfO1abQoKtqcH/vbziKyg7 zZAW7blS0VtBRfhW42zsuf4EKSP92Vw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id D55E762CEE; Thu, 23 May 2024 15:44:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 71C0EC2BD10; Thu, 23 May 2024 15:44:56 +0000 (UTC) Date: Thu, 23 May 2024 11:45:40 -0400 From: Steven Rostedt To: Qais Yousef Cc: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Daniel Bristot de Oliveira , Thomas Gleixner , Sebastian Andrzej Siewior , Alexander Viro , Christian Brauner , Andrew Morton , Jens Axboe , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org, Phil Auld Subject: Re: [PATCH v2] sched/rt: Clean up usage of rt_task() Message-ID: <20240523114540.2856c109@gandalf.local.home> In-Reply-To: <20240515220536.823145-1-qyousef@layalina.io> References: <20240515220536.823145-1-qyousef@layalina.io> X-Mailer: Claws Mail 3.20.0git84 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: ky33dkhx7js4ybpd4b18e6tntb9p1hae X-Rspamd-Queue-Id: D5171120024 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1716479099-670298 X-HE-Meta: U2FsdGVkX19NN+PyCzeWJeYB73DwpP4z8t9lidphVro/axhgLTXpNYS3hN6X+W/RqUHBQd90dCkfUeeyy5NfLuHWU+A4dXSGQ9iTmZ1Z+hMeiIiBVqJB6YPQc9dV0+dKqLb7jRznjznJLu8GjFwRUwhLkDQc10/K1uI5B4JRjh8u3bZzfusPCuQDn30gcNLr1VWsVSZLZKsplOcVpjHY9IeRS08/kx7ofXHC4aIZnISBnBcOGYooBqinxhb9kIt/HrqVm/rQtEfEs5D8KgB7gO3JQZ1vhv3POOVcWqlGVpSUpsTyDkg8kD5b6bzqjCXCbiyAU753ZF46QaM/BxrSB1SMcHTdMOyn6gMYucxKWmgh2EOO41S8ekXC1fuGUMEVDvW1bY2tnnyOAtS2UrfTRkLyxihVDX7qXuKT+5nSWxMlsH3EUMIMqrgsvsI/BIJsfv2QniPrg04opGZVfNEIajXTGcUyY5UIqfwkCgDadnWn1DlDDCkppg2FSEb0R9VL5KbnuCY3x6fuwIF9tNxevmsLckYjGCgRgPrVt5U/8JeB511TJ/r22sQZRcTBsk5B86s0HSy0xrQiXRJ19jErsp5PIPeTbw/QvzBI7D5QAVzqI5KadqdUit6ouo3i9vnWc8M04lmhr/kYTW1250clTh0ZTGozeETwIm1m15d6eW03KA0DtcDPQRY/5nOvx1SxBEWijNfQ4b3kyzz+D4XwtWJn0CfYbF9OHtZEgT3TbL7/aNIqjVjeMe624ahyC5zlxX8Na3X5jYg8d+Z8D8rXnqu2ziEabK6i3dbOpurVfhZXivwYZLBrXYx5ETlZSo7k884emcUmGeX1OUoT3llCtBnZ7TOHwVxqiNC/C+PItnP/YGDXHUV6XOASzE5o1SiQc5SaHW71VutKN0JrMWh3lJnBUj9OemSqTiq2wEzO9JaXOM9El+xzep/TO+pWidRJcNgMe/sF3GrVYZA5rat i1QlZmvn 0wMvmP0kc/yfSkDIzzFRqU1zdnB17JEmAoz4cxLTCAPeVK/WiKp7Wf/r3UF9tEucqU3HUucHpUCq06zmQb9n57msOONgLPdNdZ7y/xOuk5/BRAJRUIzaFwC/2EA6w6s5jPBbhU82l7ORw2jAMlbZCdlt3RFr5QJV39cFhN6brFHoidSsHsZsBw+vkrWSQ5UMFUlEjaWu676tQO3zF5SUQ3j8mboOJbVPunrMzK+TYVvRGn4bgPNTwcjmCeIfK2vB1D0Wf3oSFl1zFvRkmqdpAytuVejG5tPKhOCXyHJevCCUM1akPqRMJUqeDTFgIMMLP7ERdkyYFo3Qijf6FaS51B7VFATvhgpBIg0Npr0f1x/9pXELC6aAqlBGxFKqkRcyctyh/woExG2nyzeI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, 15 May 2024 23:05:36 +0100 Qais Yousef wrote: > diff --git a/include/linux/sched/deadline.h b/include/linux/sched/deadline.h > index df3aca89d4f5..5cb88b748ad6 100644 > --- a/include/linux/sched/deadline.h > +++ b/include/linux/sched/deadline.h > @@ -10,8 +10,6 @@ > > #include > > -#define MAX_DL_PRIO 0 > - > static inline int dl_prio(int prio) > { > if (unlikely(prio < MAX_DL_PRIO)) > @@ -19,6 +17,10 @@ static inline int dl_prio(int prio) > return 0; > } > > +/* > + * Returns true if a task has a priority that belongs to DL class. PI-boosted > + * tasks will return true. Use dl_policy() to ignore PI-boosted tasks. > + */ > static inline int dl_task(struct task_struct *p) > { > return dl_prio(p->prio); > diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h > index ab83d85e1183..6ab43b4f72f9 100644 > --- a/include/linux/sched/prio.h > +++ b/include/linux/sched/prio.h > @@ -14,6 +14,7 @@ > */ > > #define MAX_RT_PRIO 100 > +#define MAX_DL_PRIO 0 > > #define MAX_PRIO (MAX_RT_PRIO + NICE_WIDTH) > #define DEFAULT_PRIO (MAX_RT_PRIO + NICE_WIDTH / 2) > diff --git a/include/linux/sched/rt.h b/include/linux/sched/rt.h > index b2b9e6eb9683..a055dd68a77c 100644 > --- a/include/linux/sched/rt.h > +++ b/include/linux/sched/rt.h > @@ -7,18 +7,43 @@ > struct task_struct; > > static inline int rt_prio(int prio) > +{ > + if (unlikely(prio < MAX_RT_PRIO && prio >= MAX_DL_PRIO)) > + return 1; > + return 0; > +} > + > +static inline int realtime_prio(int prio) > { > if (unlikely(prio < MAX_RT_PRIO)) > return 1; > return 0; > } I'm thinking we should change the above to bool (separate patch), as returning an int may give one the impression that it returns the actual priority number. Having it return bool will clear that up. In fact, if we are touching theses functions, might as well change all of them to bool when returning true/false. Just to make it easier to understand what they are doing. > > +/* > + * Returns true if a task has a priority that belongs to RT class. PI-boosted > + * tasks will return true. Use rt_policy() to ignore PI-boosted tasks. > + */ > static inline int rt_task(struct task_struct *p) > { > return rt_prio(p->prio); > } > > -static inline bool task_is_realtime(struct task_struct *tsk) > +/* > + * Returns true if a task has a priority that belongs to RT or DL classes. > + * PI-boosted tasks will return true. Use realtime_task_policy() to ignore > + * PI-boosted tasks. > + */ > +static inline int realtime_task(struct task_struct *p) > +{ > + return realtime_prio(p->prio); > +} > + > +/* > + * Returns true if a task has a policy that belongs to RT or DL classes. > + * PI-boosted tasks will return false. > + */ > +static inline bool realtime_task_policy(struct task_struct *tsk) > { > int policy = tsk->policy; > > diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c > index 0469a04a355f..19d737742e29 100644 > --- a/kernel/trace/trace_sched_wakeup.c > +++ b/kernel/trace/trace_sched_wakeup.c > @@ -545,7 +545,7 @@ probe_wakeup(void *ignore, struct task_struct *p) > * - wakeup_dl handles tasks belonging to sched_dl class only. > */ > if (tracing_dl || (wakeup_dl && !dl_task(p)) || > - (wakeup_rt && !dl_task(p) && !rt_task(p)) || > + (wakeup_rt && !realtime_task(p)) || > (!dl_task(p) && (p->prio >= wakeup_prio || p->prio >= current->prio))) > return; > Reviewed-by: Steven Rostedt (Google)