sigaltstack with threads
From: Doug Rabson (dfr_at_nlsystems.com)
Date: 12/27/03
- Previous message: John Baldwin: "RE: acpi_toshiba and acpi_asus drivers"
- Next in thread: Daniel Eischen: "Re: sigaltstack with threads"
- Reply: Daniel Eischen: "Re: sigaltstack with threads"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
To: arch@freebsd.org Date: Sat, 27 Dec 2003 12:12:16 +0000
I've been using my festive spare time in porting the excellent valgrind
error checker to FreeBSD. While working through the complex way that
valgrind deals with signals, I noticed a tricky problem.
When a signal stack is installed in FreeBSD, the stack location is
recorded in the per-process state (p_sigstk to be exact). This stack is
used in sendsig() for signals handlers which asked for SA_ONSTACK. This
is a problem for valgrind since it uses two threads (I use the thr_*
syscalls for this purpose).
The main thread does most of the work and wants to take a selection of
signals (SIGSEGV, SIGBUS etc) on a signal stack allocated for the
purpose - all other signals are blocked.
The other thread is used for executing blocking syscalls (actually there
can be more than one of these for pthread programs but I don't have that
working yet). This syscall thread runs with something like the debugged
program's normal signal mask so most of those signals get routed to the
syscall thread. The main problem is that the syscall thread wants to
take the signals on its normal stack but it can't use a different
setting for sigaltstack.
It seems to me that sigaltstack needs to be per-thread state, not
per-process state otherwise it is essentially useless for threaded
programs. As far as I can make out, this is the behaviour for Linux
threads created using their clone syscall.
_______________________________________________
freebsd-arch@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
- Previous message: John Baldwin: "RE: acpi_toshiba and acpi_asus drivers"
- Next in thread: Daniel Eischen: "Re: sigaltstack with threads"
- Reply: Daniel Eischen: "Re: sigaltstack with threads"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|