WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [HVM] Change vlapic printk()s into approp

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [HVM] Change vlapic printk()s into appropriate gdprintk()s.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 09 Nov 2006 19:50:16 +0000
Delivery-date: Thu, 09 Nov 2006 11:50:23 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID 452010ddef2462f04171f5596c500d774054ea95
# Parent  617c187322ab3bdd82de7512adbcba2213ad0bc4
[HVM] Change vlapic printk()s into appropriate gdprintk()s.
Simplify apic_round_robin().
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/ia64/vmx/vlsapic.c         |    1 
 xen/arch/x86/hvm/vioapic.c          |    2 
 xen/arch/x86/hvm/vlapic.c           |   86 ++++++++++++------------------------
 xen/include/asm-ia64/vmx_platform.h |    2 
 xen/include/asm-x86/hvm/vlapic.h    |    6 --
 5 files changed, 35 insertions(+), 62 deletions(-)

diff -r 617c187322ab -r 452010ddef24 xen/arch/ia64/vmx/vlsapic.c
--- a/xen/arch/ia64/vmx/vlsapic.c       Thu Nov 09 17:53:05 2006 +0000
+++ b/xen/arch/ia64/vmx/vlsapic.c       Thu Nov 09 18:14:53 2006 +0000
@@ -330,7 +330,6 @@ int vlapic_match_logical_addr(struct vla
 }
 
 struct vlapic* apic_round_robin(struct domain *d,
-                               uint8_t dest_mode,
                                uint8_t vector,
                                uint32_t bitmap)
 {
diff -r 617c187322ab -r 452010ddef24 xen/arch/x86/hvm/vioapic.c
--- a/xen/arch/x86/hvm/vioapic.c        Thu Nov 09 17:53:05 2006 +0000
+++ b/xen/arch/x86/hvm/vioapic.c        Thu Nov 09 18:14:53 2006 +0000
@@ -403,7 +403,7 @@ static void ioapic_deliver(struct vioapi
         }
         else
 #endif
-            target = apic_round_robin(vioapic_domain(vioapic), dest_mode,
+            target = apic_round_robin(vioapic_domain(vioapic),
                                       vector, deliver_bitmask);
         if ( target != NULL )
         {
diff -r 617c187322ab -r 452010ddef24 xen/arch/x86/hvm/vlapic.c
--- a/xen/arch/x86/hvm/vlapic.c Thu Nov 09 17:53:05 2006 +0000
+++ b/xen/arch/x86/hvm/vlapic.c Thu Nov 09 18:14:53 2006 +0000
@@ -246,8 +246,8 @@ static int vlapic_match_dest(struct vcpu
                      (dest == 0xff) )
                 {
                     /* What shall we do now? */
-                    printk("Broadcast IPI with lowest priority "
-                           "delivery mode\n");
+                    gdprintk(XENLOG_ERR, "Broadcast IPI with lowest priority "
+                             "delivery mode\n");
                     domain_crash_synchronous();
                 }
                 result = ((GET_APIC_LOGICAL_ID(ldr) == (dest & 0xf)) ?
@@ -287,7 +287,8 @@ static int vlapic_accept_irq(struct vcpu
     int result = 0;
     struct vlapic *vlapic = vcpu_vlapic(v);
 
-    switch ( delivery_mode ) {
+    switch ( delivery_mode )
+    {
     case APIC_DM_FIXED:
     case APIC_DM_LOWEST:
         /* FIXME add logic for vcpu on reset */
@@ -314,13 +315,12 @@ static int vlapic_accept_irq(struct vcpu
         break;
 
     case APIC_DM_REMRD:
-        printk("Ignore deliver mode 3 in vlapic_accept_irq\n");
+        gdprintk(XENLOG_WARNING, "Ignoring delivery mode 3\n");
         break;
 
     case APIC_DM_SMI:
     case APIC_DM_NMI:
-        /* Fixme */
-        printk("TODO: for guest SMI/NMI\n");
+        gdprintk(XENLOG_WARNING, "Ignoring guest SMI/NMI\n");
         break;
 
     case APIC_DM_INIT:
@@ -348,7 +348,7 @@ static int vlapic_accept_irq(struct vcpu
 
         if ( test_bit(_VCPUF_initialised, &v->vcpu_flags) )
         {
-            printk("SIPI for initialized vcpu vcpuid %x\n", v->vcpu_id);
+            gdprintk(XENLOG_ERR, "SIPI for initialized vcpu %x\n", v->vcpu_id);
             domain_crash_synchronous();
         }
 
@@ -357,7 +357,8 @@ static int vlapic_accept_irq(struct vcpu
         break;
 
     default:
-        printk("TODO: not support interrupt type %x\n", delivery_mode);
+        gdprintk(XENLOG_ERR, "TODO: unsupported delivery mode %x\n",
+                 delivery_mode);
         domain_crash_synchronous();
         break;
     }
@@ -365,52 +366,31 @@ static int vlapic_accept_irq(struct vcpu
     return result;
 }
 
-/*
- * This function is used by both ioapic and local APIC
- * The bitmap is for vcpu_id
- */
-struct vlapic *apic_round_robin(struct domain *d,
-                                uint8_t dest_mode,
-                                uint8_t vector,
-                                uint32_t bitmap)
+/* This function is used by both ioapic and lapic.The bitmap is for vcpu_id. */
+struct vlapic *apic_round_robin(
+    struct domain *d, uint8_t vector, uint32_t bitmap)
 {
     int next, old;
-    struct vlapic* target = NULL;
-
-    if ( dest_mode == 0 ) /* Physical mode */
-    {
-        printk("<apic_round_robin> lowest priority for physical mode.\n");
-        return NULL;
-    }
-
-    if ( !bitmap )
-    {
-        printk("<apic_round_robin> no bit set in bitmap.\n");
-        return NULL;
-    }
+    struct vlapic *target = NULL;
 
     spin_lock(&d->arch.hvm_domain.round_robin_lock);
 
     old = next = d->arch.hvm_domain.round_info[vector];
 
     /* the vcpu array is arranged according to vcpu_id */
-    do
-    {
+    do {
         if ( ++next == MAX_VIRT_CPUS ) 
             next = 0;
-        if ( d->vcpu[next] == NULL ||
+        if ( (d->vcpu[next] == NULL) ||
              !test_bit(_VCPUF_initialised, &d->vcpu[next]->vcpu_flags) )
             continue;
 
         if ( test_bit(next, &bitmap) )
         {
             target = vcpu_vlapic(d->vcpu[next]);
-            if ( target == NULL || !vlapic_enabled(target) )
-            {
-                printk("warning: targe round robin local apic disabled\n");
-                /* XXX should we domain crash?? Or should we return NULL */
-            }
-            break;
+            if ( vlapic_enabled(target) )
+                break;
+            target = NULL;
         }
     } while ( next != old );
 
@@ -471,10 +451,9 @@ static void vlapic_ipi(struct vlapic *vl
         }
     }
 
-    if ( delivery_mode == APIC_DM_LOWEST)
-    {
-        target = apic_round_robin(vlapic_domain(v), dest_mode,
-                                  vector, lpr_map);
+    if ( delivery_mode == APIC_DM_LOWEST )
+    {
+        target = apic_round_robin(vlapic_domain(v), vector, lpr_map);
         if ( target != NULL )
             vlapic_accept_irq(vlapic_vcpu(target), delivery_mode,
                               vector, level, trig_mode);
@@ -543,15 +522,10 @@ static void vlapic_read_aligned(struct v
 {
     ASSERT((len == 4) && (offset > 0) && (offset <= APIC_TDCR));
 
-    *result = 0;
-
-    switch ( offset ) {
+    switch ( offset )
+    {
     case APIC_PROCPRI:
         *result = vlapic_get_ppr(vlapic);
-        break;
-
-    case APIC_ARBPRI:
-        printk("access local APIC ARBPRI register which is for P6\n");
         break;
 
     case APIC_TMCCT: /* Timer CCR */
@@ -585,7 +559,8 @@ static unsigned long vlapic_read(struct 
     alignment = offset & 0x3;
 
     vlapic_read_aligned(vlapic, offset & ~0x3, 4, &tmp);
-    switch ( len ) {
+    switch ( len )
+    {
     case 1:
         result = *((unsigned char *)&tmp + alignment);
         break;
@@ -601,7 +576,8 @@ static unsigned long vlapic_read(struct 
         break;
 
     default:
-        printk("Local APIC read with len=0x%lx, should be 4 instead.\n", len);
+        gdprintk(XENLOG_ERR, "Local APIC read with len=0x%lx, "
+                 "should be 4 instead.\n", len);
         domain_crash_synchronous();
         break;
     }
@@ -929,9 +905,8 @@ void vlapic_post_injection(struct vcpu *
         }
         break;
 
-    /*XXX deal with these later */
     case APIC_DM_REMRD:
-        printk("Ignore deliver mode 3 in vlapic_post_injection\n");
+        gdprintk(XENLOG_WARNING, "Ignoring delivery mode 3.\n");
         break;
 
     case APIC_DM_SMI:
@@ -941,7 +916,7 @@ void vlapic_post_injection(struct vcpu *
         break;
 
     default:
-        printk("<vlapic_post_injection> invalid deliver mode\n");
+        gdprintk(XENLOG_WARNING, "Invalid delivery mode\n");
         break;
     }
 }
@@ -989,7 +964,8 @@ int vlapic_init(struct vcpu *v)
     vlapic->regs_page = alloc_domheap_page(NULL);
     if ( vlapic->regs_page == NULL )
     {
-        printk("malloc vlapic regs error for vcpu %x\n", v->vcpu_id);
+        dprintk(XENLOG_ERR, "malloc vlapic regs error for vcpu %x\n",
+                v->vcpu_id);
         xfree(vlapic);
         return -ENOMEM;
     }
diff -r 617c187322ab -r 452010ddef24 xen/include/asm-ia64/vmx_platform.h
--- a/xen/include/asm-ia64/vmx_platform.h       Thu Nov 09 17:53:05 2006 +0000
+++ b/xen/include/asm-ia64/vmx_platform.h       Thu Nov 09 18:14:53 2006 +0000
@@ -55,7 +55,7 @@ extern uint64_t dummy_tmr[];
 extern uint64_t dummy_tmr[];
 #define VLAPIC_ID(l) (uint16_t)(((l)->vcpu->arch.privregs->lid) >> 16)
 #define VLAPIC_IRR(l) ((l)->vcpu->arch.privregs->irr[0])
-struct vlapic* apic_round_robin(struct domain *d, uint8_t dest_mode, uint8_t 
vector, uint32_t bitmap);
+struct vlapic *apic_round_robin(struct domain *d, uint8_t vector, uint32_t 
bitmap);
 extern int vmx_vcpu_pend_interrupt(struct vcpu *vcpu, uint8_t vector);
 static inline int vlapic_set_irq(struct vlapic *t, uint8_t vec, uint8_t trig)
 {
diff -r 617c187322ab -r 452010ddef24 xen/include/asm-x86/hvm/vlapic.h
--- a/xen/include/asm-x86/hvm/vlapic.h  Thu Nov 09 17:53:05 2006 +0000
+++ b/xen/include/asm-x86/hvm/vlapic.h  Thu Nov 09 18:14:53 2006 +0000
@@ -85,10 +85,8 @@ void vlapic_msr_set(struct vlapic *vlapi
 
 int vlapic_accept_pic_intr(struct vcpu *v);
 
-struct vlapic *apic_round_robin(struct domain *d,
-                                uint8_t dest_mode,
-                                uint8_t vector,
-                                uint32_t bitmap);
+struct vlapic *apic_round_robin(
+    struct domain *d, uint8_t vector, uint32_t bitmap);
 
 s_time_t get_apictime_scheduled(struct vcpu *v);
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [HVM] Change vlapic printk()s into appropriate gdprintk()s., Xen patchbot-unstable <=