This may not be a kernel question per se but I was hoping someone on this list might be able to shed some light into where RBP is saved to on an x86-64 system when a non-tracing system call is made. An ioctl() triggers my kernel module and I need to have a way to reliably retrieve what RBP was immediately before the system call. RBP is not saved on the process' stack on kernel entry. The code in entry.S says that it's up to the C code (which I'm taking to mean glibc) to deal with these non-saved registers. I have a statically compiled application and I can't see the glibc code doing anything to save or restore RBP in the assembly. It has to be saved somewhere or these would be all kinds of problems after control returned to the user application from the system call. Please reply directly to me as well as the list as I'm not a current subscriber. Thanks for your time.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
- Follow-Ups:
- Re: RBP save and restore on x86-64 system calls
- From: Andi Kleen <[email protected]>
- Re: RBP save and restore on x86-64 system calls
- Prev by Date: Re: [PATCH 1/4] net: VM deadlock avoidance framework
- Next by Date: Re: 2.6.18-rc4-mm3: ROOT_NFS=y compile error
- Previous by thread: megaraid_sas suspend ok, resume oops
- Next by thread: Re: RBP save and restore on x86-64 system calls
- Index(es):