X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fpalacios-dev.c;h=f019e186535d6dc03bb3ced9565adb8c02496d82;hb=ec8e7606831a6768d67c47ca8f48119af64f3453;hp=bb9598f403dfc011b483abaa57da81d35a05d33c;hpb=b44db8fef71ea6c1c996b6c1fb162f61317a53be;p=palacios.git diff --git a/linux_module/palacios-dev.c b/linux_module/palacios-dev.c index bb9598f..f019e18 100644 --- a/linux_module/palacios-dev.c +++ b/linux_module/palacios-dev.c @@ -29,7 +29,7 @@ #include "palacios-packet.h" #ifdef V3_CONFIG_EXT_INSPECTOR -#include "palacios-debugfs.h" +#include "palacios-inspector.h" #endif MODULE_LICENSE("GPL"); @@ -138,7 +138,25 @@ static long v3_dev_ioctl(struct file * filp, init_completion(&(guest->start_done)); init_completion(&(guest->thread_done)); - kthread_run(start_palacios_vm, guest, guest->name); + { + struct task_struct * launch_thread = NULL; + // At some point we're going to want to allow the user to specify a CPU mask + // But for now, well just launch from the local core, and rely on the global cpu mask + + preempt_disable(); + launch_thread = kthread_create(start_palacios_vm, guest, guest->name); + + if (IS_ERR(launch_thread)) { + preempt_enable(); + printk("Palacios error creating launch thread for vm (%s)\n", guest->name); + return -EFAULT; + } + + kthread_bind(launch_thread, smp_processor_id()); + preempt_enable(); + + wake_up_process(launch_thread); + } wait_for_completion(&(guest->start_done)); @@ -162,14 +180,6 @@ static long v3_dev_ioctl(struct file * filp, return -EFAULT; } - // Mem test... - /* - { - void * vaddr = __va(alloc_palacios_pgs(131072, 4096)); - memset(vaddr, 0xfe492fe2, mem.num_pages * 4096); - } - */ - break; } @@ -253,8 +263,8 @@ static int __init v3_init(void) { palacios_init_console(); #endif -#ifdef V3_CONFIG_INSPECTOR - palacios_init_debugfs(); +#ifdef V3_CONFIG_EXT_INSPECTOR + palacios_init_inspector(); #endif #ifdef V3_CONFIG_SOCKET @@ -311,7 +321,7 @@ static void __exit v3_exit(void) { #ifdef V3_CONFIG_EXT_INSPECTOR - palacios_deinit_debugfs(); + palacios_deinit_inspector(); #endif #ifdef V3_CONFIG_FILE