Commit 6853c480 authored by Pavel Emelyanov's avatar Pavel Emelyanov

mem: Handle the case when kernel doesn't support dirty track reset

Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
Acked-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Tested-by: 's avatarAdrian Reber <adrian@lisas.de>
parent d7684252
...@@ -50,15 +50,20 @@ int do_task_reset_dirty_track(int pid) ...@@ -50,15 +50,20 @@ int do_task_reset_dirty_track(int pid)
return errno == EACCES ? 1 : -1; return errno == EACCES ? 1 : -1;
ret = write(fd, cmd, sizeof(cmd)); ret = write(fd, cmd, sizeof(cmd));
close(fd);
if (ret < 0) { if (ret < 0) {
pr_warn("Can't reset %d's dirty memory tracker (%d)\n", pid, errno); if (errno == EINVAL) /* No clear-soft-dirty in kernel */
return -1; ret = 1;
else {
pr_perror("Can't reset %d's dirty memory tracker (%d)\n", pid, errno);
ret = -1;
}
} else {
pr_info(" ... done\n");
ret = 0;
} }
pr_info(" ... done\n"); close(fd);
return 0; return ret;
} }
unsigned int dump_pages_args_size(struct vm_area_list *vmas) unsigned int dump_pages_args_size(struct vm_area_list *vmas)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment