X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fvm.c;h=f53a5985f74bc812ee2635d7f9e3403d059355b3;hb=47f2237e5c6a71a63f04bc3dc0215fbbe2f40490;hp=00111fce1a2325cd789c619435bd32efb653d52c;hpb=3a64514e2fbdb79da57b289fc94b336b78046ba2;p=palacios.releases.git diff --git a/linux_module/vm.c b/linux_module/vm.c index 00111fc..f53a598 100644 --- a/linux_module/vm.c +++ b/linux_module/vm.c @@ -12,7 +12,7 @@ #include #include #include - +#include #include #include #include @@ -143,6 +143,22 @@ static long v3_vm_ioctl(struct file * filp, v3_continue_vm(guest->v3_ctx); break; } + case V3_VM_MOVE_CORE: { + struct v3_core_move_cmd cmd; + void __user * argp = (void __user *)arg; + + memset(&cmd, 0, sizeof(struct v3_core_move_cmd)); + + if (copy_from_user(&cmd, argp, sizeof(struct v3_core_move_cmd))) { + printk("copy from user error getting migrate command...\n"); + return -EFAULT; + } + + printk("moving guest %s vcore %d to CPU %d\n", guest->name, cmd.vcore_id, cmd.pcore_id); + + v3_move_vm_core(guest->v3_ctx, cmd.vcore_id, cmd.pcore_id); + } + break; default: { struct vm_ctrl * ctrl = get_ctrl(guest, ioctl);