diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-07 15:33:32 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-08-13 16:26:21 -0400 |
commit | 4a556f4f56da3110b27e265b79f0e7582115445c (patch) | |
tree | f5af0b865c867160855e4722b49d7e850dddf944 /arch/tile/kernel/entry.S | |
parent | 0c1d1917c547c8e787fb58e20e2de577453c980c (diff) |
tile: implement gettimeofday() via vDSO
This change creates the framework for vDSO calls, makes the existing
rt_sigreturn() mechanism use it, and adds a fast gettimeofday().
Now that we need to expose the vDSO address to userspace, we add
AT_SYSINFO_EHDR to the set of aux entries provided to userspace.
(You can disable any extra vDSO support by booting with vdso=0,
but the rt_sigreturn vDSO page will still be provided.)
Note that glibc has supported the tile vDSO since release 2.17.
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/kernel/entry.S')
-rw-r--r-- | arch/tile/kernel/entry.S | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/arch/tile/kernel/entry.S b/arch/tile/kernel/entry.S index f116cb0bce20..3d9175992a20 100644 --- a/arch/tile/kernel/entry.S +++ b/arch/tile/kernel/entry.S | |||
@@ -27,22 +27,6 @@ STD_ENTRY(current_text_addr) | |||
27 | { move r0, lr; jrp lr } | 27 | { move r0, lr; jrp lr } |
28 | STD_ENDPROC(current_text_addr) | 28 | STD_ENDPROC(current_text_addr) |
29 | 29 | ||
30 | /* | ||
31 | * We don't run this function directly, but instead copy it to a page | ||
32 | * we map into every user process. See vdso_setup(). | ||
33 | * | ||
34 | * Note that libc has a copy of this function that it uses to compare | ||
35 | * against the PC when a stack backtrace ends, so if this code is | ||
36 | * changed, the libc implementation(s) should also be updated. | ||
37 | */ | ||
38 | .pushsection .data | ||
39 | ENTRY(__rt_sigreturn) | ||
40 | moveli TREG_SYSCALL_NR_NAME,__NR_rt_sigreturn | ||
41 | swint1 | ||
42 | ENDPROC(__rt_sigreturn) | ||
43 | ENTRY(__rt_sigreturn_end) | ||
44 | .popsection | ||
45 | |||
46 | STD_ENTRY(dump_stack) | 30 | STD_ENTRY(dump_stack) |
47 | { move r2, lr; lnk r1 } | 31 | { move r2, lr; lnk r1 } |
48 | { move r4, r52; addli r1, r1, dump_stack - . } | 32 | { move r4, r52; addli r1, r1, dump_stack - . } |