RFC: nptl threading patch for linux
J. Johnston
jjohnstn@redhat.com
Mon May 12 19:36:00 GMT 2003
Daniel Jacobowitz wrote:
> On Sat, May 10, 2003 at 05:18:55PM -0400, Daniel Jacobowitz wrote:
>
>>On Fri, May 09, 2003 at 06:00:11PM -0400, Daniel Jacobowitz wrote:
>>
>>>On Thu, Apr 24, 2003 at 04:52:04PM -0400, J. Johnston wrote:
>>>
>>>>The following is the last part of my revised nptl patch that has
>>>>been broken up per Daniel J.'s suggestion. There are no generated
>>>>files included in the patch.
>>>
>>>Well, this patch doesn't work for me :( Using 2.5.69, since I don't
>>>have any of the Red Hat kernels available here at the moment. It looks
>>>like GDB bellies up around the second thread creation.
>>
>>Sorry, I found the problem. Configure was not finding tkill. Entirely
>>a local problem; but how would you feel about something which set the
>>default number for __NR_tkill if __i386__? Or has someone already
>>discouraged that approach?
>>
Glad to hear this.
>>So:
>>
>>
>>> - stop_wait_callback should be fixed to not be so dumb when this
>>> happens.
>>
>>This one is still true. Patch for another day.
>>
>>
>>> - we need to figure out how we got into this mess.
>>> - and why the SIGSTOP never showed up.
>>
>>But these are resolved.
>>
>>
>>I now get fairly good test results with your patch and NPTL; there are
>>some failures because of the vsyscall issue being currently discussed.
>>Backtraces in linux-dp don't work because the threads are stopped in
>>the kernel page.
>>
>>I can also report that the kernel change I am testing to report thread
>>exits does not appear to cause your patch any problems. Yay! More on
>>that in a little while.
>
More good news.
>
> I could cause segfaults in both the inferior and GDB, and some missed
> single-steps. I don't know if my kernel patch is at fault or your
> patch, but I figured I'd write them up anyway for posterity and later
> review.
>
> Start with gdb.threads/print-threads. Put a breakpoint on
> thread_function and one on the printf ("Done\n") main. Run, disable
> the first breakpoint when you hit it, and say next. You'll hit the
> breakpoint in main instead of staying within thread_function.
>
This does not fail on my test system. I end up on line 42 after the next
is issued.
> This is timing sensitive. It didn't show up with set debug
> lin-lwp/target both on.
>
> In other interesting notes, it looks like there is a (related?) problem
> with target_thread_alive. The LWP I'm single-stepping in appears to be
> marked as not alive about half the time. No idea what's up with that.
> It appears to come from thread_db_thread_alive, not from
> lin_lwp_thread_alive, which always succeeds.
>
> I can't reproduce the SIGSEGV now for some reason.
>
Have you managed to trace which test in thread_db_alive is returning false?
-- Jeff J.
More information about the Gdb-patches
mailing list