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-ia64-devel

[Xen-ia64-devel] [PATCH][LINUX] Support timer vector IPIs in PV code

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] [PATCH][LINUX] Support timer vector IPIs in PV code
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Thu, 24 Jul 2008 12:28:27 -0600
Cc: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 24 Jul 2008 11:28:31 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: OSLO R&D
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Upstream Linux recently added this change:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3463a93def55c309f3c0d0a8aaf216be3be42d64

Now, for a platform bug check, we issue an IPI for the IA64_TIMER_VECTOR
and wait for it to show up in the IRR.  Since a PV kernel doesn't
support a timer IPI, this never happens.  The fix is simply to tie this
into xen_send_ipi() for this case.  This doesn't actually happen on
2.6.18, but since vendors are backporting changes from upstream, I think
it's good to have this in the reference tree.  Thanks,

Alex


Add support for IA64_TIMER_VECTOR as a paravirtualized IPI target

Necessary for the latest upstream Linux implementation of
check_sal_cache_flush() 3463a93def55c309f3c0d0a8aaf216be3be42d64

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
--

diff -r 8a3dc4fdb478 arch/ia64/kernel/irq_ia64.c
--- a/arch/ia64/kernel/irq_ia64.c       Tue Jul 22 11:59:42 2008 +0100
+++ b/arch/ia64/kernel/irq_ia64.c       Thu Jul 24 12:19:05 2008 -0600
@@ -534,12 +534,11 @@ xen_platform_send_ipi(int cpu, int vecto
 xen_platform_send_ipi(int cpu, int vector, int delivery_mode, int redirect)
 {
        int irq = -1;
+       extern void xen_send_ipi(int cpu, int vec);
 
 #ifdef CONFIG_SMP
        /* TODO: we need to call vcpu_up here */
        if (unlikely(vector == ap_wakeup_vector)) {
-               extern void xen_send_ipi (int cpu, int vec);
-
                /* XXX
                 * This should be in __cpu_up(cpu) in ia64 smpboot.c
                 * like x86. But don't want to modify it,
@@ -566,6 +565,9 @@ xen_platform_send_ipi(int cpu, int vecto
                case IA64_CPEP_VECTOR:
                        irq = per_cpu(ipi_to_irq, cpu)[CPEP_VECTOR];
                        break;
+               case IA64_TIMER_VECTOR:
+                       xen_send_ipi(cpu, vector);
+                       return;
                default:
                        printk(KERN_WARNING "Unsupported IPI type 0x%x\n",
                               vector);



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

<Prev in Thread] Current Thread [Next in Thread>