|
From: Julian S. <js...@ac...> - 2005-06-20 21:45:17
|
The vsyscall stuff stopped working recently on amd64, which means that the vsyscalls vgettimeofday and vtime cause the system to die. I haven't figured out why this is. The redirection stuff still works fine, but the instructions we get redirected to seem to be a bunch of zeroes, which isn't right. I can track this down given long enough. But looking at the trampoline/vsyscall stuff for x86 and amd64, I wonder if it can be simplified. m_main.c appears to allocate a page on the (root thread's) stack. On x86-linux, it then copies into it the code stubs in m_trampoline.S and then points the AT_SYSINFO entry there. This is pretty pointless because m_redir sets up redirects from _dl_sysinfo_int80 to this copy of the stuff in m_trampoline.S (x86) or from the magic hardwired addresses 0xFFFFFFFFFF600000 etc (amd64) to this copy. But why bother with the copy? Why not just redirect literally to the stuff in m_trampoline.S ? I think it's a hangover from before this was handled using the redir mechanism. Paul -- what use does ppc-linux make of the vdso mechanism? J |