|
Message-ID: <20210122185053.ze3oaeexwjii2r7s@work-tp> Date: Fri, 22 Jan 2021 15:50:53 -0300 From: Raoni Fassina Firmino <raoni@...ux.ibm.com> To: Rich Felker <dalias@...c.org> Cc: Florian Weimer <fweimer@...hat.com>, musl@...ts.openwall.com, libc-alpha@...rceware.org, linuxppc-dev@...ts.ozlabs.org, Nicholas Piggin <npiggin@...il.com>, Alan Modra <amodra@...il.com> Subject: Re: Re: [PATCH v2] powerpc/64/signal: balance return predictor stack in signal trampoline On Fri, Jan 22, 2021 at 01:31:27PM -0500, Rich Felker wrote: > On Fri, Jan 22, 2021 at 03:19:22PM -0300, Raoni Fassina Firmino wrote: > > On Fri, Jan 22, 2021 at 09:44:05AM -0500, Rich Felker wrote: > > > Maybe I'm missing something but I don't see how this would break musl; > > > we just inspect the PC in the mcontext, which I don't see any changes > > > to and which should still point to the next instruction of the > > > interrupted context. I don't have a test environment though so I'll > > > have to wait for feedback from ppc users to be sure. Are there any > > > further details on how it's breaking glibc? > > > > For glibc, backtrace() compares the return-address from each stack frame > > to the value of `__kernel_sigtramp_rt64` to identify the frame with the > > mcontext information, but now the return-address is not the start of the > > routine, but the middle of it, so it fails to catch this special frame. > > Is there a reason it's backtracing rather than just looking at the > interrupted context (pointed to by the third argument to the signal > handler)? The regression is exposed in the backtrace() routine. More precisely, when the backtrace() is called from inside a signal handling. What I described is the way backtrace() uses to identify this special situation. What is failling in glibc is the test for this. o/ Raoni Fassina
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.