[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches
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 _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |