On 06/12/2014 09:36 PM, Andy Lutomirski wrote: > > 1. Parsing the vDSO is a PITA. What if we bundled the reference > parser inside the vdso? Concretely, we could have AT_VDSO_FINDENTRY > point to a function like: > > void *vdso_find_entry(const char *name, const char *version) > > Then things like Go and maybe even musl (and klibc?) could just call > that function. And we'd never have to worry about maintaining > compatibility with more and more weird vdso parsers. > > Implementing this could be as simple as shoving parse_vdso.c into the > vdso, although vdso2c could help and allow a really simple in-vdso > implementation. >
I'm not really sure how much of a win that is... you have to parse *something*, and for the vast majority of all implementations there will be a dynamic linker just sitting there, and that is what it *does*. > 2. Go uses a segmented stack, and the vdso is quite unfriendly for > segmented stack. If we can get compiler support, is there a > reasonable way that we could advertise the maximum stack usage of each > vdso entry point? I suspect an easier way to do that would just be to define a maximum stack usage for *any* vdso entry point, and then enable the gcc stack depth warning (perhaps even with Werror)... we can do this now. -hpa -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/