[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[win-pv-devel] [PATCH 1/4] Make it more obvious when per-CPU upcalls are not implemented...



...and break out of the per-CPU loop at that point.

Also mention that the callback via has been set up and which vector it is
using.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 src/xenbus/evtchn.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index a5a3caf..fa5a980 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -971,6 +971,7 @@ EvtchnInterruptEnable(
         PXENBUS_EVTCHN_PROCESSOR    Processor;
         unsigned int                vcpu_id;
         UCHAR                       Vector;
+        PROCESSOR_NUMBER            ProcNumber;
 
         Processor = &Context->Processor[Index];
 
@@ -981,15 +982,22 @@ EvtchnInterruptEnable(
         Vector = FdoGetInterruptVector(Context->Fdo, Processor->Interrupt);
 
         status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
-        if (NT_SUCCESS(status)) {
-            PROCESSOR_NUMBER    ProcNumber;
+        if (!NT_SUCCESS(status)) {
+            if (status != STATUS_NOT_IMPLEMENTED )
+                continue;
 
-            status = KeGetProcessorNumberFromIndex(Index, &ProcNumber);
-            ASSERT(NT_SUCCESS(status));
-
-            Info("CPU %u:%u\n", ProcNumber.Group, ProcNumber.Number);
-            Processor->UpcallEnabled = TRUE;
+            Info("PER-CPU UPCALL NOT IMPLEMENTED\n");
+            break;
         }
+
+        status = KeGetProcessorNumberFromIndex(Index, &ProcNumber);
+        ASSERT(NT_SUCCESS(status));
+
+        Info("CPU %u:%u (Vector = %u)\n",
+             ProcNumber.Group,
+             ProcNumber.Number,
+             Vector);
+        Processor->UpcallEnabled = TRUE;
     }
 
     Line = FdoGetInterruptLine(Context->Fdo, Context->Interrupt);
@@ -997,6 +1005,8 @@ EvtchnInterruptEnable(
     status = HvmSetParam(HVM_PARAM_CALLBACK_IRQ, Line);
     ASSERT(NT_SUCCESS(status));
 
+    Info("CALLBACK VIA (Vector = %u)\n", Line);
+
     Trace("<====\n");
 }
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.