All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Ofsthun <sofsthun@virtualiron.com>
To: Venefax <venefax@gmail.com>
Cc: xen-devel@lists.xensource.com,
	'Andrew Lyon' <andrew.lyon@gmail.com>,
	'Dirk Utterback' <dirk.utterback@gmail.com>,
	'Keir Fraser' <keir.fraser@eu.citrix.com>,
	'James Harper' <james.harper@bendigoit.com.au>
Subject: Re: Windows SMP
Date: Tue, 06 Jan 2009 16:20:29 -0500	[thread overview]
Message-ID: <4963CB1D.60501@virtualiron.com> (raw)
In-Reply-To: <03e901c96f72$3029a400$907cec00$@com>

[-- Attachment #1: Type: text/plain, Size: 1006 bytes --]

Venefax wrote:
> Dear Gentlemen
> One silly question, maybe, how do I apply the patch supplied in SLES SP2? I have not compiled anything from sources.
> Federico

I believe the proper sequence is:

download the SLES10 SDK iso from you Novell support account:

SLE-10-SP2-SDK-DVD-x86_64-GM-DVD1.iso

Add this ISO as a yast installation source.

install the xen-3.2.0_16718_14-0.4.src.rpm rpm via yast or:

# rpm -i xen-3.2.0_16718_14-0.4.src.rpm

Note that this is the .src.rpm not the binary rpm.

Prep the source tree using:

# rpmbuild -bc /usr/src/packages/SPECS/xen.spec

This should build, patch and compile the package.  If it fails due to dependencies, add the missing RPMs using yast.

Once it succeeds, apply the attached patch (I attached the wrong one previously):

# cd /usr/src/packages/BUILD/xen-3.2-testing
# patch -p0 < ~/xen-vioapic-callback-routing.patch

Build the hypervisor:

# cd /usr/src/packages/BUILD/xen-3.2-testing
# make xen

try out the resulting xen/xen.gz manually.

Steve



[-- Attachment #2: xen-vioapic-callback-routing.patch --]
[-- Type: text/x-patch, Size: 2117 bytes --]

--- xen/arch/x86/hvm/vioapic.c.orig	2008-01-16 15:19:06.000000000 -0500
+++ xen/arch/x86/hvm/vioapic.c	2009-01-06 16:00:10.000000000 -0500
@@ -44,6 +44,7 @@
 #define IRQ0_SPECIAL_ROUTING 1
 
 static void vioapic_deliver(struct hvm_hw_vioapic *vioapic, int irq);
+static int is_hvm_callback_irq(struct hvm_hw_vioapic *vioapic,int irq);
 
 static unsigned long vioapic_read_indirect(struct hvm_hw_vioapic *vioapic,
                                            unsigned long addr,
@@ -334,7 +335,8 @@
     {
 #ifdef IRQ0_SPECIAL_ROUTING
         /* Force round-robin to pick VCPU 0 */
-        if ( (irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled() )
+        if ( ((irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled()) ||
+             is_hvm_callback_irq(vioapic, irq) )
         {
             v = vioapic_domain(vioapic)->vcpu[0];
             target = v ? vcpu_vlapic(v) : NULL;
@@ -366,7 +368,8 @@
             deliver_bitmask &= ~(1 << bit);
 #ifdef IRQ0_SPECIAL_ROUTING
             /* Do not deliver timer interrupts to VCPU != 0 */
-            if ( (irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled() )
+            if ( ((irq == hvm_isa_irq_to_gsi(0)) && pit_channel0_enabled()) ||
+                 is_hvm_callback_irq(vioapic, irq) )
                 v = vioapic_domain(vioapic)->vcpu[0];
             else
 #endif
@@ -544,3 +547,29 @@
     xfree(d->arch.hvm_domain.vioapic);
     d->arch.hvm_domain.vioapic = NULL;
 }
+
+static int is_hvm_callback_irq(struct hvm_hw_vioapic *vioapic,int irq)
+{
+   unsigned int gsi = VIOAPIC_NUM_PINS;
+   struct domain *d = vioapic_domain(vioapic);
+   struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+
+
+   switch ( hvm_irq->callback_via_type )
+    {
+    case HVMIRQ_callback_gsi:
+        gsi = hvm_irq->callback_via.gsi;
+        break;
+    case HVMIRQ_callback_pci_intx:
+        gsi = hvm_pci_intx_gsi(hvm_irq->callback_via.pci.dev,
+                                hvm_irq->callback_via.pci.intx);
+        break;
+    default:
+        break;
+    }
+
+    if (gsi == irq)  /*Event Channel Interrupt*/
+      return(1);
+
+    return(0);
+}

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

  reply	other threads:[~2009-01-06 21:20 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AclomJHRZPQAxvWTTHS1LTFPOLU6fA==>
2008-12-28  3:01 ` Windows SMP Venefax
2008-12-28 16:03   ` Randy McAnally
2008-12-29  2:39   ` Dirk Utterback
2008-12-29  2:48     ` Venefax
2008-12-29  2:53       ` James Harper
2008-12-29  2:59         ` Venefax
2008-12-29  6:46           ` Dirk Utterback
2008-12-29  8:14           ` Keir Fraser
2008-12-29  8:20             ` James Harper
2008-12-29  8:37               ` Keir Fraser
2008-12-29  8:47                 ` James Harper
2008-12-29  8:56                   ` Keir Fraser
2008-12-29  9:03                     ` James Harper
2008-12-29  9:16                       ` Keir Fraser
2008-12-29  9:40                         ` James Harper
2008-12-29  9:58                           ` Keir Fraser
2008-12-29 10:01                             ` James Harper
2008-12-30 16:58                   ` Wei Huang
2008-12-30 22:24                     ` Keir Fraser
2008-12-31  8:22                       ` James Harper
2008-12-31  8:31                         ` Tian, Kevin
2008-12-31  8:35                           ` James Harper
2008-12-31  8:50                             ` Tian, Kevin
2008-12-31  9:46                               ` Keir Fraser
2008-12-31  2:35                   ` Tian, Kevin
2008-12-29 21:40             ` Andrew Lyon
2008-12-29 21:57               ` Keir Fraser
2008-12-30 10:34                 ` Andrew Lyon
2008-12-30 11:04                   ` Keir Fraser
2008-12-30 12:41                     ` Andrew Lyon
2008-12-30 14:41                       ` Keir Fraser
2008-12-31 10:08                         ` Andrew Lyon
2008-12-31 10:10                           ` Keir Fraser
2008-12-31 14:36                             ` Venefax
2009-01-05 18:59                               ` Steve Ofsthun
2009-01-05 19:08                                 ` Venefax
2009-01-05 20:05                                   ` Steve Ofsthun
2009-01-05 20:11                                     ` Venefax
2009-01-05 20:14                                     ` Venefax
2009-01-06 21:20                                       ` Steve Ofsthun [this message]
2009-01-07  2:06                                         ` Venefax
2009-01-07 14:47                                           ` Steve Ofsthun
2009-01-07 14:57                                             ` Venefax
2009-01-07 15:41                                               ` Steve Ofsthun
2009-01-09  1:56                                                 ` Venefax
2009-01-09 14:29                                                   ` Steve Ofsthun
2009-03-07 15:59                                                     ` Venefax
2008-12-30 13:15                     ` Ian Pratt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4963CB1D.60501@virtualiron.com \
    --to=sofsthun@virtualiron.com \
    --cc=andrew.lyon@gmail.com \
    --cc=dirk.utterback@gmail.com \
    --cc=james.harper@bendigoit.com.au \
    --cc=keir.fraser@eu.citrix.com \
    --cc=venefax@gmail.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.