[CRIU] [PATCH 02/10] x86/vdso: add ia32 vdso symbols

Dmitry Safonov dsafonov at virtuozzo.com
Thu Feb 16 08:20:37 PST 2017


For 32-bit at this moment there are follwing entries:
o __vdso_clock_gettime
o __vdso_gettimeofday
o __vdso_time
o __kernel_vsyscall
o __kernel_sigreturn
o __kernel_rt_sigreturn

So, there isn't __vdso_getcpu(), which is present in 64-bit vDSO,
and 64-bit vDSO doesn't have those __kernel_*.
This is fine as two vdso blobs with the same not present symbols
are considered to be the same in comparison.
I didn't introduce ARCH_VDSO_SYMBOLS_32, as it would have different
size and that will result in quite painful conversion of struct
vdso_symtable (it's fixed size and e.g., inside parasite's parameters)
Which is not needed by the described behavior of vdso blobs comparison.

Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
---
 criu/arch/x86/include/asm/vdso.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/criu/arch/x86/include/asm/vdso.h b/criu/arch/x86/include/asm/vdso.h
index a1cc9bb9751b..37296f96af30 100644
--- a/criu/arch/x86/include/asm/vdso.h
+++ b/criu/arch/x86/include/asm/vdso.h
@@ -12,13 +12,16 @@
  * This is a minimal amount of symbols
  * we should support at the moment.
  */
-#define VDSO_SYMBOL_MAX	4
+#define VDSO_SYMBOL_MAX	7
 
 #define ARCH_VDSO_SYMBOLS			\
 	"__vdso_clock_gettime",			\
 	"__vdso_getcpu",			\
 	"__vdso_gettimeofday",			\
-	"__vdso_time"
+	"__vdso_time",				\
+	"__kernel_vsyscall",			\
+	"__kernel_sigreturn",			\
+	"__kernel_rt_sigreturn"
 
 
 struct vdso_symtable;
-- 
2.11.1



More information about the CRIU mailing list