|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[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
p2m_vp_patches.tar.bz2
Description: Binary data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|