#ifdef CONFIG_V3VEE
v3vee_run_vmm();
+ printk( "%s: VMM returned. We're spinning\n", __func__ );
+ while(1) { asm( "hlt" ); }
#else
/*
* Start up user-space...
panic("Failed to create init_task (status=%d).", status);
schedule(); /* This should not return */
-#endif
BUG();
+#endif
}
}
+int printk_print_cpu_number;
+
+
int
vprintk(
const char * fmt,
*p = '\0';
/* Tack on the logical CPU ID */
- len = sprintf(p, "[%u]:", this_cpu);
- p += len;
- remain -= len;
+ if( printk_print_cpu_number )
+ {
+ len = sprintf(p, "[%u]:", this_cpu);
+ p += len;
+ remain -= len;
+ }
/* Construct the string... */
len = vscnprintf(p, remain, fmt, args);
struct v3_os_hooks v3vee_os_hooks = {
- .print_debug = 0, // printk, // serial print ideally
+ .print_debug = v3vee_printk, // serial print ideally
.print_info = v3vee_printk, // serial print ideally
.print_trace = v3vee_printk, // serial print ideally
.allocate_pages = Allocate_VMM_Pages, // defined in vmm_stubs
v3_clgi();
- PrintDebug("SVM Entry to rip=%p...\n", (void *)info->rip);
+ //PrintDebug("SVM Entry to rip=%p...\n", (void *)info->rip);
v3_get_msr(0xc0000101, &vm_cr_high, &vm_cr_low);
rdtscll(tmp_tsc);
v3_set_msr(0xc0000101, vm_cr_high, vm_cr_low);
- PrintDebug("SVM Returned\n");
+ //PrintDebug("SVM Returned\n");
#if PrintDebug
v3_update_time(info, tmp_tsc - info->time_state.cached_host_tsc);
num_exits++;
- PrintDebug("Turning on global interrupts\n");
+ //PrintDebug("Turning on global interrupts\n");
v3_stgi();
- PrintDebug("SVM Exit number %d\n", num_exits);
+ //PrintDebug("SVM Exit number %d\n", num_exits);