[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251107081254.110947-1-sieberf@amazon.com>
Date: Fri, 7 Nov 2025 10:12:53 +0200
From: Fernand Sieber <sieberf@...zon.com>
To: kernel test robot <lkp@...el.com>, <mingo@...hat.com>,
<peterz@...radead.org>, <juri.lelli@...hat.com>,
<vincent.guittot@...aro.org>, <dietmar.eggemann@....com>,
<rostedt@...dmis.org>, <bsegall@...gle.com>, <mgorman@...e.de>,
<vschneid@...hat.com>
CC: <oe-kbuild-all@...ts.linux.dev>, <linux-kernel@...r.kernel.org>,
<dwmw@...zon.co.uk>, <jschoenh@...zon.de>, <liuyuxua@...zon.com>
Subject: Re: [PATCH] sched: Proxy yields to donor tasks
On Thu, Nov 07, 2025 at 02:31:16PM +0800, kernel test robot wrote:
> sparse warnings: (new ones prefixed by >>)
>
>>> kernel/sched/rt.c:529:55: sparse: warning: incorrect type in initializer (different address spaces)
>>> kernel/sched/rt.c:976:39: sparse: warning: incorrect type in initializer (different address spaces)
Thank you for the report.
The warnings occur because my patch changes scheduler yield functions from
accessing rq->curr to rq->donor, both of which have identical __rcu annotations.
These are pre-existing annotation issues in the scheduler code, which has been
directly accessing RCU-annotated pointers without proper dereferencing, relying
on runqueue lock protection instead.
If we do want to address these sparse warnings, I can make modifications like:
- curr = rq->donor;
+ curr = rcu_dereference_protected(rq->donor, lockdep_is_held(&rq->__lock));
This would have zero runtime overhead while satisfying sparse's RCU checking.
Peter, let me know if these warnings should be addressed.
Thanks,
Fernand
Amazon Development Centre (South Africa) (Proprietary) Limited
29 Gogosoa Street, Observatory, Cape Town, Western Cape, 7925, South Africa
Registration Number: 2004 / 034463 / 07
Powered by blists - more mailing lists