On Tue, Nov 24, 2009 at 1:31 PM, Paul Pluzhnikov <[email protected]>wrote:

> On Tue, Nov 24, 2009 at 12:12 PM, Arun Sharma <[email protected]> wrote:
>
> > You're right. This part is broken for dwarf. We'll need to fix it along
> the
> > lines of src/ia64/Gscript.c
>
> Tricky (unless we drastically reduce cache size): current
> sizeof(local_addr_space) on x86_64 is 43664, and adding this much
> TLS to each thread may run into glibc issue: glibc does not
>

Large per-thread cache size doesn't seem to be a dwarf or x86_64 specific
issue. Seems to be there on ia64 (from where this code was derived) as well.


> automatically add required TLS space at pthread_create, so if you
> specify e.g. 64K stack, pthread_create will fail with EINVAL just
> because you linked to libunwind.
>
> > Agree that fix#1 is suboptimal. The choice is really between fix #2 and a
> > fixed UNW_CACHE_PER_THREAD.
>
> Hmm, I don't think that's the choice: libunwind *should* work with either!
>

If you meant any caching policy, yes it should. But dwarf is broken right
now for UNW_CACHE_PER_THREAD and it remains broken with fix2A. I'll apply
fix2 instead.

If we find a reasonable implementation strategy (eg: smaller caches) for per
thread caches in the future, we can try to create a more optimal code path
(which doesn't involve memcpy) for that case.

 -Arun
_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to