On Wednesday 22 May 2013 09:22:09 Michael Kerrisk wrote: > On 04/12/13 03:28, Mike Frysinger wrote: > > here's v2 w/Andy's feedback > > Thanks for this--it's a nice piece of work. Could you take a > look at my comments below and send a v3, please. anything i didn't explicitly respond to below i merged with my version > > the kernel you wish to make a syscall. > > However, this instruction is expensive: it goes through the full > > interrupt handling paths in the processor's microcode as well as in the > > kernel. Newer processors have faster (but backwards incompatible) > > instructions to initiate system calls. > > Rather than require the C library to figure out if this functionality is > > available at runtime itself, it can use functions provided by the kernel > > in the vDSO. > > That last point (after the comma) is the most interesting (IMO) of the use > cases of the vDSO. If you cared to expand on the details (i.e., are what > are mechanics of the operation of those functions provided by the kernel), > I think that would be interesting for the reader. i think the paragraph after this explains things somewhat as you'd like (where it talks about gettimeofday) ? > > All symbols are also versioned (using the GNU version format). > > This allows the kernel (in the very unlikely situation) to update the > > function > > s/situation/case that it is necessary/ hmm, i see what you mean, but i think your version isn't really better ... just different. i'll just delete the (...) text. > > You use the standard C calling conventions when calling any of these > > functions. No need to worry about weird register or stack behavior. > > That last sentence is a little incomplete. Could you expand/reword a little > please. it's meant as a follow up to the previous sentence. so the implication is that there are no functions which violate the C ABI for your particular target. arguments get passed in the standard way (registers/stack), and all the registers have corresponding behavior: scratch are scratch, caller- preserved are caller-preserved, callee-preserved are callee-preserved, etc... > > Note that the vDSO that is used is based on the ABI of your userspace > > code and not the ABI of the kernel. > > i.e. If you run an i386 32bit ELF under an i386 32bit kernel or under an > > s/i.e. If/In other words, if/ i.e. shows up a lot in man pages as does e.g. (and both show up in this new vdso(7) page) ... > > So when referring to sections below, use the userspace ABI. > > It's not clear what you mean here when you say "use the userspace ABI." > Could you clarify? the two sentences that preceded this one explained things ... -mike
Attachment:
signature.asc
Description: This is a digitally signed message part.