[CRIU] [PATCH 11/11] vdso: Don't read pagemap or parse symtable under vdso_hint_reliable

Dmitry Safonov dsafonov at virtuozzo.com
Mon Jul 17 15:40:02 MSK 2017


We can save some syscalls for *each* dumpee if we don't
open()/seek()/read()/close() /proc/pid/pagemap for each
dumpee and even don't use parasite to parse symtable if
pagemap is unavailable.

Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
---
 criu/vdso.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/criu/vdso.c b/criu/vdso.c
index 013a9a6c2c0a..731f941657ad 100644
--- a/criu/vdso.c
+++ b/criu/vdso.c
@@ -55,7 +55,12 @@ static enum vdso_check_t get_vdso_check_type(struct parasite_ctl *ctl)
 	 * hint stays in /proc/../maps file and is correct.
 	 */
 	if (!compel_mode_native(ctl)) {
-		pr_info("Don't check vdso\n");
+		pr_info("Don't check vdso for compat task\n");
+		return VDSO_NO_CHECK;
+	}
+
+	if (kdat.vdso_hint_reliable) {
+		pr_info("vDSO hint is reliable - omit checking\n");
 		return VDSO_NO_CHECK;
 	}
 
-- 
2.13.1



More information about the CRIU mailing list