Date: Sat, 12 Jan 2013 04:17:27 -0500 From: Alfred Perlstein <bright@mu.org> To: freebsd-arch@freebsd.org Subject: Re: Fast sigblock (AKA rtld speedup) Message-ID: <50F12A27.1000103@mu.org> In-Reply-To: <20130112053252.GI2561@kib.kiev.ua> References: <20130107182235.GA65279@kib.kiev.ua> <20130111095459.GZ2561@kib.kiev.ua> <50EFE830.3030500@freebsd.org> <20130111204938.GD2561@kib.kiev.ua> <20130111232906.GA29017@stack.nl> <50F0ADDA.4000801@gmail.com> <20130112053252.GI2561@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1/12/13 12:32 AM, Konstantin Belousov wrote: > On Sat, Jan 12, 2013 at 08:27:06AM +0800, David Xu wrote: >> On 2013/01/12 07:29, Jilles Tjoelker wrote: >>> On Fri, Jan 11, 2013 at 10:49:38PM +0200, Konstantin Belousov wrote: >>>> http://people.freebsd.org/~kib/misc/rtld-sigblock.3.patch >>> The new fields td_sigblock_ptr and td_sigblock_val are in the part that >>> is zeroed for new threads, while the code in rtld appears to expect them >>> to be copied (on fork, vfork and pthread_create). The fields are >>> correctly zeroed on exec. >>> >>> Sharing the magic variable between threads means that one thread holding >>> an rtld lock will block signals for all other threads as well. This is >>> different from how the normal signal mask works but I don't know whether >>> it may break things. However, the patch depends on it in some way >>> because sigtd() does not know about fast sigblock and will therefore >>> happily select a thread that is fast-sigblocking to handle a signal >>> directed at the process. >>> >>> Although libthr's postpone approach is somewhat ugly, it does not depend >>> on any non-standard kernel features and does not delay the default >>> action. Would it be possible to move that code to libc to make things >>> easier for rtld? It looks like this requires teaching libc about various >>> threading concepts, though. >> Long time ago, if i remembered correctly, kib said that he wanted to >> merge libthr code into libc, I don't know its state. > Yes, this is correct, and I still want this. Can we just do this already? No offense intended if the challenge is technical, I'm assuming it's political? It's only 10 years overdue. -Alfred
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50F12A27.1000103>