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

[Xen-ia64-devel] Re: [Xen-devel] Porting PV-on-HVM for ia64 platform



Hi,

Doi.Tsunehisa@xxxxxxxxxxxxxx wrote:
>   Currently, we are trying to modify PV-on-HVM feature for IPF with
> the same method of x86 code. And in preliminary implement, we could do
> the feature.

  I will post patches for PV-on-HVM on ia64 platform. These patches
modify common code for PV-on-HVM on IPF.

  We ported PV-on-HVM for IPF under this consideration:

   * Expand memory_op hypercall
     + Introduce XENMEM_add_to_physmap
       - A virtual space allocated on HVM-guest OS is remapped original
         shared_info and grant_table page with this hypercall.
       - This method is same as x86 method.
   * Reduce hvm_op hypercall
     + Delete functions introduced for old PV-on-HVM on IPF.
   * Revert domain destroy logic
     + revert arch_domain_destroy() for old PV-on-HVM on IPF.
   * Modify unmodified_drivers initialization
     + cut off unused codes for IPF
     + modify build rule for IPF

  These patch include: (common code)

   * unmodified-driver.patch
     - unmodified_drivers modification for IPF
   * unmodified-build.patch
     - unmodified_drivers build rule modification for IPF

  We have tested that this patch doesn't affect dom0, domVTi without
pv-on-hvm driver attaching, and domVTi using pv-on-hvm driver works
VBD/VNIF on IPF.

Thanks,
- Tsunehisa Doi
# HG changeset patch
# User Doi.Tsunehisa@xxxxxxxxxxxxxx
# Node ID 96749232df478225e939252e704927be89dbae07
# Parent  259aea558618ad79219d838dcb520142a5f04897
Modify unmodified_drivers code for IPF

Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@xxxxxxxxxxxxxx>
Signed-off-by: Tomonari Horikoshi <t.horikoshi@xxxxxxxxxxxxxx>

diff -r 259aea558618 -r 96749232df47 
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c  Tue Aug 29 
18:42:04 2006 +0900
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c  Tue Aug 29 
18:45:43 2006 +0900
@@ -115,6 +115,7 @@ unsigned long alloc_xen_mmio(unsigned lo
        return addr;
 }
 
+#ifndef __ia64__
 /* Lifted from hvmloader.c */
 static int get_hypercall_stubs(void)
 {
@@ -160,6 +161,7 @@ static int get_hypercall_stubs(void)
 
        return 0;
 }
+#endif /* !__ia64__ */
 
 static int __devinit platform_pci_init(struct pci_dev *pdev,
                                       const struct pci_device_id *ent)
@@ -201,9 +203,11 @@ static int __devinit platform_pci_init(s
        platform_mmio = mmio_addr;
        platform_mmiolen = mmio_len;
 
+#ifndef __ia64__
        ret = get_hypercall_stubs();
        if (ret < 0)
                goto out;
+#endif /* __ia64__ */
 
        
        if ((ret = init_xen_info()))
diff -r 259aea558618 -r 96749232df47 
unmodified_drivers/linux-2.6/platform-pci/xen_support.c
--- a/unmodified_drivers/linux-2.6/platform-pci/xen_support.c   Tue Aug 29 
18:42:04 2006 +0900
+++ b/unmodified_drivers/linux-2.6/platform-pci/xen_support.c   Tue Aug 29 
18:45:43 2006 +0900
@@ -26,11 +26,13 @@
 #include <asm/hypervisor.h>
 #include "platform-pci.h"
 
+#ifndef __ia64__
 void xen_machphys_update(unsigned long mfn, unsigned long pfn)
 {
        BUG();
 }
 EXPORT_SYMBOL(xen_machphys_update);
+#endif /* __ia64__ */
 
 void balloon_update_driver_allowance(long delta)
 {
@@ -41,3 +43,15 @@ void balloon_release_driver_page(struct 
 {
 }
 EXPORT_SYMBOL(balloon_release_driver_page);
+
+#ifdef __ia64__ 
+int running_on_xen=1;
+EXPORT_SYMBOL(running_on_xen);
+
+int ia64_xenmem_reservation_op(unsigned long op,
+                           struct xen_memory_reservation* reservation__)
+{
+       return 0;
+}
+EXPORT_SYMBOL(ia64_xenmem_reservation_op);
+#endif /* __ia64__ */
# HG changeset patch
# User Doi.Tsunehisa@xxxxxxxxxxxxxx
# Node ID b5cafa21c61f2789b6a78c5980a2414486917f69
# Parent  96749232df478225e939252e704927be89dbae07
Modify unmodified_drivers build rule for IPF

Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@xxxxxxxxxxxxxx>
Signed-off-by: Tomonari Horikoshi <t.horikoshi@xxxxxxxxxxxxxx>

diff -r 96749232df47 -r b5cafa21c61f unmodified_drivers/linux-2.6/mkbuildtree
--- a/unmodified_drivers/linux-2.6/mkbuildtree  Tue Aug 29 18:45:43 2006 +0900
+++ b/unmodified_drivers/linux-2.6/mkbuildtree  Tue Aug 29 18:46:45 2006 +0900
@@ -42,6 +42,12 @@ i[34567]86)
        ln -sf ${XL}/include/asm-i386/mach-xen/asm/synch_bitops.h include/asm
        ln -sf ${XL}/include/asm-i386/mach-xen/asm/maddr.h include/asm
        ;;
+"ia64")
+       ln -sf ${XL}/include/asm-ia64/hypervisor.h include/asm
+       ln -sf ${XL}/include/asm-ia64/hypercall.h include/asm
+       ln -sf ${XL}/include/asm-ia64/synch_bitops.h include/asm
+       ln -sf ${XL}/include/asm-ia64/maddr.h include/asm
+       ;;
 *)
        echo unknown architecture $uname
        exit 1
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel

 


Rackspace

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