[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230424172900.GR19790@gate.crashing.org>
Date: Mon, 24 Apr 2023 12:29:00 -0500
From: Segher Boessenkool <segher@...nel.crashing.org>
To: Boqun Feng <boqun.feng@...il.com>
Cc: Michael Ellerman <mpe@...erman.id.au>,
Joel Fernandes <joel@...lfernandes.org>,
Zhouyi Zhou <zhouzhouyi@...il.com>,
linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>,
rcu <rcu@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>, lance@...osl.org,
"Paul E. McKenney" <paulmck@...nel.org>
Subject: Re: BUG : PowerPC RCU: torture test failed with __stack_chk_fail
On Mon, Apr 24, 2023 at 08:28:55AM -0700, Boqun Feng wrote:
> On Mon, Apr 24, 2023 at 10:13:51AM -0500, Segher Boessenkool wrote:
> > At what points can r13 change? Only when some particular functions are
> > called?
>
> r13 is the local paca:
>
> register struct paca_struct *local_paca asm("r13");
>
> , which is a pointer to percpu data.
Yes, it is a global register variable.
> So if a task schedule from one CPU to anotehr CPU, the value gets
> changed.
But the compiler does not see that something else changes local_paca (or
r13 some other way, via assembler code perhaps)? Or is there a compiler
bug?
If the latter is true:
Can you make a reproducer and open a GCC PR? <https://gcc.gnu.org/bugs/>
for how to get started doing that. We need *exact* code that shows the
problem, together with a compiler command line. So that we can
reproduce the problem. That is step 0 in figuring out what is going on,
and then maybe fixing the problem :-)
Segher
Powered by blists - more mailing lists