Re: [PATCH 0/6][RFC] Rework vsyscall to avoid truncation/roundingissue in timekeeping core

From: John Stultz
Date: Wed Sep 19 2012 - 17:12:11 EST


On 09/19/2012 01:50 PM, Luck, Tony wrote:
Does anything except the vDSO actually use the vDSO data page? It's
mapped as part of the vDSO image (i.e. at a non-constant address), and
it's not immediate obvious how userspace would locate that page.
Just for reference - on ia64 the address of the entry point for the magic
fast system call page is passed to each applications via the "auxv" structure
that exec(2) drops at the top of stack after args/env in the AT_SYSINFO
entry. Apps look for it to find out where to jump for fast system call entry
(if it isn't there, they fall back to regular slow syscall path).

Nice. So we could "disable" fsyscalls on a kernel and not break userland. That makes it easier to replace with the vdso method at some point. So that's good to hear!

Same method could be used to provide the address of a magic read-only
for users page that kernel fills with stuff for simple system calls.

Now, I suspect the difficult part will be finding someone with the time and interest to try get the vdso gettime working on ia64 (or s390 or powerpc), and then try to unify the kernel side implementation. Reducing the maintenance burden might not be inspirational enough, especially if there is a small performance cost along with it.

I sort of suspect that its more likely that such unification work could be done as part of enabling vdso on an otherwise non vsyscall enabled arch (like ARM), since at least there they have the carrot of the performance gain to drive them.

And also, all this discussion is a bit far afield of the patchset I'm proposing here. :) I'd still like to hear any thoughts on it from the various arch maintainers, otherwise I'll submit it to Thomas.

thanks
-john

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/