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][RFC][TAKE4] the P2M/VP patches

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx, dan.magenheimer@xxxxxx
Subject: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Fri, 7 Apr 2006 13:16:27 +0900
Delivery-date: Thu, 06 Apr 2006 21:16:43 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
Hello.        
I attached the P2M/VP model patches take 4 for the change set
9492:2133fb78dba3cf6b6b88d1566fc5cc9de3039f43.
Please comments/request/review.

* contents
summary
the patches for upstream(xen-unstable.hg)
proposal for the merge of the P2M/VP patches
work around patches for broken copy_to_guest(), copy_from_guest()
some random notes
patch list


* summary
With these patches, dom0, domU boot and vnif, balloon works.
Code clean up is still needed.
Some uninteresting patches are already posted, but aren't 
included to xen-ia64-unstable.hg.
It seems it's time to start merge effort.


* the patches for upstream(xen-unstable.hg)
The result of the grant table clean up is the following patches.
comments/questions?
I'll post the patches to xen-devel (with cc: xen-ia64-devel).

9504:c50a58f28451_fix_grant_entry_t_frame.patch
        change the type of grant_entry::frame from uint32_t to unsigned long.
        In theory IA64 supports 50 bits physical address, 
        36 bits is needed with 16KBytes page size.
        As Kevin pointed out xen/ia64 can work fine for several years
        without this patch.
        If this patch is rejected, we can go without this patch.

9509:001c9b59774d_increase_grant_frames_and_update_grant_mapping_t.patch
        change ORDER_GRANT_FRAMES from 0 to 3.
        change NR_GRANT_FRAMES from 1 to 8.
        change the type of grant_mapping_t::ref_and_flags from u16 to u32.
        xen/x86 u16 grant_mapping_t::ref_and_flags can handle up to 2048
        entries because 5bits is used for other purpose.
        On the other hand with 16Kbyte page size of xen/ia64 
        (BLK_RING_SIZE + NET_RX_RING_SIZE + NET_TX_RING_SIZE) > 2048

9519:d6c77b041a70_page_to_bus.patch
        introduce page_to_bus() and used for pci-dma-xen.c and swiotlb.c
        On xen/ia64 with the P2M/VP model pseudo physical address is fully
        virtualized so it defines as
        xen_features(XENFEAT_auto_translated_physmap) = 1.
        In this case page_to_phys(sg[i].page) should return pseudo physical
        address like pfn_to_mfn() and its families.
        However dma is not virtualized, it can't be used for pci-dma-xen.c,
        swiotlb.c.

        If this patch is rejected, we can introduce xenLinux/ia64-specific
        pci-dma-xen.c swiotlb.c. But such a divergence is not desirable.

9523:7d24ab6eb7bd_dev_bus_addr_contains_gpaddr.patch
        grant table map/unmap use dev_bus_addr to pass pseudo physical address
        to xen.
        grant table map/unmap on Xen/x86 needs virtual address.
        On the other hand grant table map/unmap on Xen/IA64 needs pseudo
        physical address.
        use dev_bus_addr member to pass pseudo physical address.

        This patch is needed for other patches.
        Without this patch many ifdef/ifndef __ia64__ in vnif, balloon
        is required.

9526:f93f01f21f37_arch_specific_xen_feature.patch
        allow arch to define arch-specific xen_feature()
        Xen/ia64 with the P2M/VP model define 
        xen_features(XENFEAT_auto_translated_physmap) = 1.
        It is NOT run-time feature. It is desirable to code it explicitly
        like
        static inline int
        xen_feature(int flag)
        {
               switch (flag)
               {
               case XENFEAT_auto_translated_physmap:
                       return 1;
               default:
                       return xen_features[flag];
               }
               /* NOTREACHED */
        }
        This patch allows it.


* proposal for the merge of the P2M/VP patches
It was decided that the P2M/VP patches would go to 
xen-ia64-unstable-Intel.hg at first and then would be pulled up to
xen-ia64-unstable.hg once it was stabilized.
However the P2M/VP patches have become too big.
(We didn't expect at that time, did we?)
It might be very difficult to merge at a time, I think.
So I propose merging gradually reducing the patch size.
The P2M/VP patches have a compile-time option.
The option is disabled by default at first.

As the first step I propose merging the patches which import header files.
It is trivial to import those header files.
In fact this might increase the repository maintainer's (Alex) task.
But those header files are quite stable, so I hope importing
the files won't increase the task.
Concretely I propose merging the following patches.
9510:60247c40232d_move_linux_efi_h_to_linux_xen_linux_efi_h.patch
9511:46a10ae8d89e_dom0_vp_model_xen_side_README_orig_efi_h.patch
9513:c7021ef2e2be_import_io_h.patch
9514:b921fd53d768_import_page_h.patch
9515:1959454246ca_import_pgalloc_h.patch
9516:faffc27d897c_import_dma_mapping_h.patch
9517:b58eb5f96c36_import_machvec_h.patch
9518:04b6d3ea75c9_import_agp_h.patch

As the next step I'd like to merge some small patches.
For example, dom0 construction change, adding hyper-calls.


* work around patches for broken copy_to_guest(), copy_from_guest()
Current xen/ia64's copy_to_guest(), copy_from_guest() and its families
are broken. The following patches are needed as work around.
After fixes the following patches will be removed.
Is there anyone who is working on this issue?

9507:3c4c79b78fb8_xen_console_work_around.patch
9508:b12beea301df_libxc_ia64_get_pfn_list_work_around.patch
        Anthony's hash vtlb patch include a similar work around.
9528:020116583c5f_xenmem_decrease_reservation_work_around.patch


* some random notes
- allocation-on-demand
  Kevin's add_memory_op.patch removed page allocation-on-demand.
  However some effort is needed for the P2M/VP model to work, 
  it is re-added for now. It will be removed again later.

- code clean up
  I cleaned the patches up somewhat. But more code clean up is needed.
  Some newly-added hyper-call can be removed.

- 9536:357ffc54d5ca_make_vhpt_64kb.patch
  Without this patch linux software lock up detection is triggered.
  This is a temporal work around.


* patch list
9504:c50a58f28451_fix_grant_entry_t_frame.patch
9505:8dd4ffbe20ef_fix_gnttab_transfer_mfn_check.patch
9506:3fcbc43a4bca_remove_printk_warning_of_xen_init.patch
9507:3c4c79b78fb8_xen_console_work_around.patch
9508:b12beea301df_libxc_ia64_get_pfn_list_work_around.patch
9509:001c9b59774d_increase_grant_frames_and_update_grant_mapping_t.patch
9510:60247c40232d_move_linux_efi_h_to_linux_xen_linux_efi_h.patch
9511:46a10ae8d89e_dom0_vp_model_xen_side_README_orig_efi_h.patch
9512:f5d0a531cb58_dom0_vp_model_xen_part.patch
9513:c7021ef2e2be_import_io_h.patch
9514:b921fd53d768_import_page_h.patch
9515:1959454246ca_import_pgalloc_h.patch
9516:faffc27d897c_import_dma_mapping_h.patch
9517:b58eb5f96c36_import_machvec_h.patch
9518:04b6d3ea75c9_import_agp_h.patch
9519:d6c77b041a70_page_to_bus.patch
9520:3bd1acff159b_dom0_vp_model_linux_part.patch
9521:365c9827c48d_grant_table_xen_part.patch
9522:68e258e005b3_grant_table_linux_part.patch
9523:7d24ab6eb7bd_dev_bus_addr_contains_gpaddr.patch
9524:b29e950e2e3a_create_grant_host_mapping_destroy_grant_host_mapping.patch
9525:f490491e70f1_grant_host_mapping_from_mpaddr_to_gpaddr.patch
9526:f93f01f21f37_arch_specific_xen_feature.patch
9527:57a05dfe9daa_arch_specific_xen_feature_for_config_xen_ia64_dom0_vp.patch
9528:020116583c5f_xenmem_decrease_reservation_work_around.patch
9529:b85df10b1a10_ia64_netback_netfront_linux_part.patch
9530:417b3dcb50ce_balloon_driver_fix_xen_part.patch
9531:eb5ed4f4cdeb_balloon_driver_linux_part.patch
9536:357ffc54d5ca_make_vhpt_64kb.patch

thanks

-- 
yamahata

Attachment: p2m_vp_patches.tar.bz2
Description: Binary data

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