Commit ee399151 authored by Pavel Emelyanov's avatar Pavel Emelyanov

mem: Add pstree_item arg to dump_pages calls

Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 6349ffe0
...@@ -1161,7 +1161,7 @@ static int pre_dump_one_task(struct pstree_item *item) ...@@ -1161,7 +1161,7 @@ static int pre_dump_one_task(struct pstree_item *item)
mdc.pre_dump = true; mdc.pre_dump = true;
ret = parasite_dump_pages_seized(parasite_ctl, &vmas, &mdc); ret = parasite_dump_pages_seized(item, &vmas, &mdc, parasite_ctl);
if (ret) if (ret)
goto err_cure; goto err_cure;
...@@ -1320,7 +1320,7 @@ static int dump_one_task(struct pstree_item *item) ...@@ -1320,7 +1320,7 @@ static int dump_one_task(struct pstree_item *item)
mdc.pre_dump = false; mdc.pre_dump = false;
ret = parasite_dump_pages_seized(parasite_ctl, &vmas, &mdc); ret = parasite_dump_pages_seized(item, &vmas, &mdc, parasite_ctl);
if (ret) if (ret)
goto err_cure; goto err_cure;
......
...@@ -18,9 +18,10 @@ extern bool page_in_parent(bool dirty); ...@@ -18,9 +18,10 @@ extern bool page_in_parent(bool dirty);
extern int prepare_mm_pid(struct pstree_item *i); extern int prepare_mm_pid(struct pstree_item *i);
extern int do_task_reset_dirty_track(int pid); extern int do_task_reset_dirty_track(int pid);
extern unsigned int dump_pages_args_size(struct vm_area_list *vmas); extern unsigned int dump_pages_args_size(struct vm_area_list *vmas);
extern int parasite_dump_pages_seized(struct parasite_ctl *ctl, extern int parasite_dump_pages_seized(struct pstree_item *item,
struct vm_area_list *vma_area_list, struct vm_area_list *vma_area_list,
struct mem_dump_ctl *mdc); struct mem_dump_ctl *mdc,
struct parasite_ctl *ctl);
#define PME_PRESENT (1ULL << 63) #define PME_PRESENT (1ULL << 63)
#define PME_SWAP (1ULL << 62) #define PME_SWAP (1ULL << 62)
......
...@@ -262,10 +262,11 @@ static int xfer_pages(struct page_pipe *pp, struct page_xfer *xfer) ...@@ -262,10 +262,11 @@ static int xfer_pages(struct page_pipe *pp, struct page_xfer *xfer)
return ret; return ret;
} }
static int __parasite_dump_pages_seized(struct parasite_ctl *ctl, static int __parasite_dump_pages_seized(struct pstree_item *item,
struct parasite_dump_pages_args *args, struct parasite_dump_pages_args *args,
struct vm_area_list *vma_area_list, struct vm_area_list *vma_area_list,
struct mem_dump_ctl *mdc) struct mem_dump_ctl *mdc,
struct parasite_ctl *ctl)
{ {
pmc_t pmc = PMC_INIT; pmc_t pmc = PMC_INIT;
struct page_pipe *pp; struct page_pipe *pp;
...@@ -395,9 +396,10 @@ out: ...@@ -395,9 +396,10 @@ out:
return ret; return ret;
} }
int parasite_dump_pages_seized(struct parasite_ctl *ctl, int parasite_dump_pages_seized(struct pstree_item *item,
struct vm_area_list *vma_area_list, struct vm_area_list *vma_area_list,
struct mem_dump_ctl *mdc) struct mem_dump_ctl *mdc,
struct parasite_ctl *ctl)
{ {
int ret; int ret;
struct parasite_dump_pages_args *pargs; struct parasite_dump_pages_args *pargs;
...@@ -424,7 +426,7 @@ int parasite_dump_pages_seized(struct parasite_ctl *ctl, ...@@ -424,7 +426,7 @@ int parasite_dump_pages_seized(struct parasite_ctl *ctl,
return -1; return -1;
} }
ret = __parasite_dump_pages_seized(ctl, pargs, vma_area_list, mdc); ret = __parasite_dump_pages_seized(item, pargs, vma_area_list, mdc, ctl);
if (ret) { if (ret) {
pr_err("Can't dump page with parasite\n"); pr_err("Can't dump page with parasite\n");
/* Parasite will unprotect VMAs after fail in fini() */ /* Parasite will unprotect VMAs after fail in fini() */
......
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