[CRIU] [PATCH] proc_parse: Speedup VMA range parsing

Cyrill Gorcunov gorcunov at openvz.org
Mon Feb 3 05:24:12 PST 2014


In /proc/<pid>/smaps/ output we may omit testing
for capital hex letters, since we know the format
kernel provides.

Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 proc_parse.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/proc_parse.c b/proc_parse.c
index 254fced638cb..4ca80bde4481 100644
--- a/proc_parse.c
+++ b/proc_parse.c
@@ -69,19 +69,24 @@ int parse_cpuinfo_features(int (*handler)(char *tok))
 /* check the @line starts with "%lx-%lx" format */
 static bool is_vma_range_fmt(char *line)
 {
-	while (*line && is_hex_digit(*line))
+#define ____is_vma_addr_char(__c)		\
+	(((__c) <= '9' && (__c) >= '0') ||	\
+	((__c) <= 'f' && (__c) >= 'a'))
+
+	while (*line && ____is_vma_addr_char(*line))
 		line++;
 
 	if (*line++ != '-')
 		return false;
 
-	while (*line && is_hex_digit(*line))
+	while (*line && ____is_vma_addr_char(*line))
 		line++;
 
 	if (*line++ != ' ')
 		return false;
 
 	return true;
+#undef ____is_vma_addr_char
 }
 
 static int parse_vmflags(char *buf, struct vma_area *vma_area)
-- 
1.8.3.1



More information about the CRIU mailing list