Messages in this thread | | | Date | Mon, 24 Apr 2023 12:29:00 -0500 | From | Segher Boessenkool <> | 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
| |