Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Merge branch 'kitten' of ssh://sharedev@localhost/home/sharedev/palacios into kitten
Trammell Hudson [Wed, 22 Oct 2008 16:35:42 +0000 (11:35 -0500)]
kitten/init/main.c
kitten/kernel/printk.c
kitten/palacios-glue/vmm_stubs.c
palacios/src/palacios/svm.c

index 070f67c..9b8c086 100644 (file)
@@ -118,6 +118,8 @@ start_kernel()
 
 #ifdef CONFIG_V3VEE
        v3vee_run_vmm();
+       printk( "%s: VMM returned.  We're spinning\n", __func__ );
+       while(1) { asm( "hlt" ); }
 #else
        /*
         * Start up user-space...
@@ -128,6 +130,6 @@ start_kernel()
                panic("Failed to create init_task (status=%d).", status);
 
        schedule();  /* This should not return */
-#endif
        BUG();
+#endif
 }
index b410ec6..772c872 100644 (file)
@@ -15,6 +15,9 @@ int printk(const char *fmt, ...)
 }
 
 
+int printk_print_cpu_number;
+
+
 int
 vprintk(
        const char *            fmt,
@@ -30,9 +33,12 @@ vprintk(
        *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);
index 0721a1e..bf41dd9 100644 (file)
@@ -228,7 +228,7 @@ v3vee_printk(
 
 
 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
index 7d91c45..33d878f 100644 (file)
@@ -309,7 +309,7 @@ static int start_svm_guest(struct guest_info *info) {
     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);
 
@@ -321,7 +321,7 @@ static int start_svm_guest(struct guest_info *info) {
     rdtscll(tmp_tsc);
 
     v3_set_msr(0xc0000101, vm_cr_high, vm_cr_low);
-    PrintDebug("SVM Returned\n");
+    //PrintDebug("SVM Returned\n");
 
 
 #if PrintDebug
@@ -335,11 +335,11 @@ static int start_svm_guest(struct guest_info *info) {
     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);