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] [TAKE3] P2M/VP (incomplete) patches

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH] [RFC] [TAKE3] P2M/VP (incomplete) patches
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Fri, 24 Mar 2006 18:41:18 +0900
Delivery-date: Fri, 24 Mar 2006 09:42:33 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20060310064648.GD11421%yamahata@xxxxxxxxxxxxx>
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>
References: <20060221135845.GA24990%yamahata@xxxxxxxxxxxxx> <20060310064648.GD11421%yamahata@xxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
Hello all xen/ia64 developers.
The attached patches for xen-ia64-unstable.hg are the incomplete patches
of P2M/VP model take 3.
With these patches I can ssh to domU from a remote machine.
These patches are incomplete yet, but grant table API clean up is planned.
It should be discussed before actual coding. 
So I post take 3 patches to discuss on it.
I will post a documentation for discussion by another mail.

* contents
status summary
current status
issues
known bugs
other TODOs
patches

* status summary
Item                    Status
dom0 builder            done
ACPI                    done
mm I/O                  done
phys2mach               done
dma API                 done
swiotlb                 done
agp                     not yet
                        the modification is done. testers are needed
foreign mapping         work in progress
                        It's working now, but code clean up is needed.
vbd                     work in progress
                        It's working now, but code clean up is needed.
vnif                    work in progress
                        It's working now with many ifdef/ifndef __ia64__.
                        code clean up is needed depending grant table API
                        clean up.
grant table             work in progress
                        It's working now but it's performance is horrible.
                        API clean up and performance tuning are needed.
balloon                 work in progress
blktap                  not yet


* current status
vnif is already working on xen/IA64 with many ifdef/ifndef __ia64__,
I can ssh to domU from a physically remote machine.
However its performance is horrible because of full tlb/vhpt flush every
grant table unmap/transfer.
Other virtual devices except balloon and blktap should work,
but I haven't tested them.


* issues
  These are in random order.
  Another document will be posted to discuss on grant table API clean up and
  performance tuning.

- HP ZX1
  Some modification is necessary for linux/arch/ia64/hp/common/sba_iommu.c.
  I haven't worked on it yet and I have no access to HP ZX1.

- SGI Altix
  There are many custom drivers under linux/arch/ia64/sn directory.
  They also need modifications.
  I don't know whether the current(P==M) xen/IA64 can boot on Altix.

- AGP
  AGP should work, but I haven't tested it.

- grant table API clean up
  This is necessary for merging to xen/x86 upstream.
  A documentation might be also needed.
  - grant table read-only mapping
  - number of grant table entries

- performance tuning
  Current performance is horrible so that it isn't for a practical use yet.

- grant table mapped page reference count and domain destruction
  If a domain is destroyed when it maps a foreign domain's page
  via grant table, its page reference count will be leaked.
  Page freeing code is needed.

- xen_start_info->{console_mfn, store_mfn}
  These are defined as machine frame number. However on Xen/IA64 with
  P2M/VP model, these should be pseudo physical frame number.
  So they should be gmfn instead of mfn.

- ballon driver
  (XENMEM_populate_physmap, XENMEM_decrease_reservation,
   XENMEM_increase_reservation)
  I'm working on this.  
  Balloon driver can be compiled but it doesn't work yet.(machine reboot)
  Debug is needed.

- SMP
  Currently nosmp option to xen/IA64 is needed.
  This will be addressed after grant table API clean up.
  (maybe before performance tuning implementation.)

- IOCTL_PRIVCMD_MMAP, IOCTL_PRIVCMD_MMAPBATCH
  re-implement xen/IA64 implementation using PageForeign() and its families.

- transparent para-virtualization
  Some of xen/IA64 developers value transparent para-virtualization.
  "if (running_on_xen) { }" is be used, but it isn't tested.
  Or is it worthwhile to define a kind of switch which is determined at boot up 
 time ?

- Rusty's share
  This might need to be researched.
  This can be a clean inter domain communication API.

- merge effort
  more code clean up is necessary.

- stability/test/benchmark

- blktap
  grant table GNTMAP_application_map and GNTMAP_contains_pte.

- ski simulator
  simscsi, simeth are broken.

- guest domain page size < xen page size
  This is not supported yet by the current implementation.
  And this isn't addressed right now at the early stage of dom0 virtual
  physical model.
  This is the future issue.


* known bugs
Known bugs are listed heres for those who want to test/debug the P2M/VP model
patch.

- unaligned access
  When using network, (perhaps) dom0 complains with following messages.
  kernel unaligned access to 0xe0000000189ec21e, ip=0xa0000001005644f1
  kernel unaligned access to 0xe0000000189ec21e, ip=0xa000000100564590
  kernel unaligned access to 0xe0000000189ec21e, ip=0xa000000100564630
  On my environment, these ip's happened to be of Linux bridge.
  I haven't tracked them down yet and I'm not very familiar a directory
  linux/net/bridge. So I'm not sure that this is due to
  the original Linux/IA64 or Xen/IA64 or the P2M/VP model patch.
  Is there anyone who want to dig into this?

- sometimes Xen hangs with the following message.
  (XEN) ia64_fault: General Exception: IA-64 Reserved Register/Field fault 
(data access): reflecting

- domU boot and OOM
  sometimes OOM occurs during domU boot with infinite following messages.

  Out of Memory: Kill process 2 (migration/0) score 0 and children.
  ...
  lasting forever.


* other TODOs unrelated to M2P/VP model patches
These are not related to M2P/VP model patch directly.
I list them here for record.

- copy_to_guest(), copy_from_guest()
  They are broken.
  Their copy may success or may result in EFAULT depending on tlb cache state.
  Fortunately xen/PPC port already solved similar problems. 
- SUBARCH
- panic_domain()
  This function is called when a domain behaves a way xen can't handle well.
  A domain should be stopped, but xen should continue to run.
  But the current implementation results in BUG() in xen or drops to debugger
  so that xen itself stops.
- dltb miss handler optimization
- alt itlb miss handler fix
  fix dom0 startup environment to remove alt itlb miss which occurs 
  at dom0 boot time.


* patches

Following 5 patches should go to xen-ia64-unstable.hg
9408:88f91dc71d0b_ia64_xen_mkbuildtree_pre_use_ln_sf.patch
9409:b62b4f620800_fix_prtype_info.patch
9410:02cf21f8fbff_fix_xen_ia64_debugger_h.patch
9411:01888a0427b7_fix_hypercall_h_hypervisor_h.patch
9412:41930dbd2235_dump_stack.patch

The following 9 patches are for grant table and vbd.
9413:3b3fe797eb18_fix_gnttab_transfer_mfn_check.patch
9414:724625ac7e85_move_linux_efi_h_to_linux_xen_linux_efi_h.patch
9415:2d6a8d5c172c_dom0_vp_model_xen_side_README_orig_efi_h.patch
9416:3548f050c4a4_dom0_vp_model_xen_part.patch
9417:0aaf9d8dc312_import_io_h.patch
9418:2de54534aff6_import_page_h.patch
9419:4fa8c2c33135_import_pgalloc_h.patch
9420:35a2bbe63b57_import_dma_mapping_h.patch
9421:fc68ef226160_import_machvec_h.patch
9422:737fbc3ec214_import_agp_h.patch
9423:5003ac79c506_dom0_vp_model_linux_part.patch

The following 8 patches are for grant table, vbd and vnif.
9424:eacbf469fa12_libxc_ia64_get_pfn_list_work_around.patch
9425:0f1b6c330dd4_dont_use_vga_area.patch
9426:41fe2ad972fd_gnttab_shared_gmfn.patch
9427:37aabbaaf4b9_fix_grant_entry_t_frame.patch
9428:b9c70c855701_grant_table_xen_part.patch
9429:3e8cbcf7102c_grant_table_linux_part.patch
9430:f447a1213993_libxc_use_mfn_for_store_mfn_and_console_mfn.patch
9431:43a697ec8ad4_ia64_netback_netfront.patch

thanks
-- 
yamahata

Attachment: dom0vp-patches.tar.bz2
Description: Binary data

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