On 8/5/06, Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:
On Fri, 2006-08-04 at 13:00 -0400, Manu Garg wrote: > I am writing this to announce an article on "sysenter" way of doing > systems calls in newer linux kernels. Here is the link: > http://manugarg.blogspot.com/2006/07/sysenter-based-system-call-mechanism.html > > Abstract: Hi, it's good to see articles like this written. I have one important thing that really should be fixed in it though: You mention several times that the address of the vdso page is 0xffffe400 and you even show an example where userspace calls that address directly. THIS IS WRONG!!! This address is not fixed, and not an ABI and in fact it is changing already in 2.6.18. The actual ABI convention is that the kernel informs userspace of the address via an AT_ elf parameter (AT_SYSINFO to be exact), and applications should use the address they get from this, not the hardcoded value!
Thanks for mentioning it and the information. I need some more help it seems. What I see in gdb is: call *%gs:0x10 I am not able to figure out how is that related to AT_SYSINFO elf parameter. Can you help me understand that? You see, I am not so good at ABI stuff.
Would you mind fixing your otherwise excellent document to reflect this, the last thing we'd all want is people starting to use 0xffffe400 in their applications, because they'll just break all the time...
I'll surely fix it as soon as I'll understand this part. Thanks for your kind words about the document. -- Manu Garg http://www.manugarg.com "Journey is the destination of the life." -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/