Skip to content

Commit

Permalink
support user set remote mmap vma address
Browse files Browse the repository at this point in the history
1. os auto assignment vma addr maybe conflict with vma in gpu living migrate scene;
2. so, we should give choice to user;

Signed-off-by: haozi007 <[email protected]>
  • Loading branch information
duguhaotian committed Aug 8, 2024
1 parent 93746eb commit 5fa3ab4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
1 change: 1 addition & 0 deletions compel/include/uapi/infect.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ struct infect_ctx {
open_proc_fn open_proc;

int log_fd; /* fd for parasite code to send messages to */
unsigned long user_set_remote_map;
};

extern struct infect_ctx *compel_infect_ctx(struct parasite_ctl *);
Expand Down
8 changes: 6 additions & 2 deletions compel/src/lib/infect.c
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,7 @@ static int parasite_memfd_exchange(struct parasite_ctl *ctl, unsigned long size,
uint8_t orig_code[MEMFD_FNAME_SZ] = MEMFD_FNAME;
pid_t pid = ctl->rpid;
long sret = -ENOSYS;
int ret, fd, lfd;
int ret, fd, lfd, remote_mmap_flags;

if (ctl->ictx.flags & INFECT_NO_MEMFD)
return 1;
Expand Down Expand Up @@ -860,7 +860,11 @@ static int parasite_memfd_exchange(struct parasite_ctl *ctl, unsigned long size,
goto err_cure;
}

ctl->remote_map = remote_mmap(ctl, NULL, size, remote_prot, MAP_FILE | MAP_SHARED, fd, 0);
remote_mmap_flags = MAP_FILE | MAP_SHARED;
if (ctl->ictx.user_set_remote_map != 0L){
remote_mmap_flags |= MAP_FIXED_NOREPLACE;
}
ctl->remote_map = remote_mmap(ctl, (void *)ctl->ictx.user_set_remote_map, size, remote_prot, remote_mmap_flags, fd, 0);
if (!ctl->remote_map) {
pr_err("Can't rmap memfd for parasite blob\n");
goto err_curef;
Expand Down

0 comments on commit 5fa3ab4

Please sign in to comment.