Difference between revisions of "Xen ARM TODO"

From Xen
(bootwrapper + wallclock)
 
(17 intermediate revisions by 5 users not shown)
Line 3: Line 3:
   
 
== In progress ==
 
== In progress ==
 
* Xen 64-bit guests support: http://marc.info/?l=xen-devel&m=136310027317761 by Ian Campbell
 
* Xen SMP: http://marc.info/?l=xen-devel&m=136256023123214 by Ian Campbell
 
* Xen guest SMP support: http://marc.info/?l=xen-devel&m=136430925010828 by Stefano Stabellini
 
* Linux SMP on Xen: http://marc.info/?l=xen-devel&m=136430899410714&w=2, http://marc.info/?l=linux-arm-kernel&m=136516745725167&w=2 by Stefano Stabellini
 
* trap WFI in Xen: http://marc.info/?l=xen-devel&m=136516806725359 by Stefano Stabellini
 
* Remove hardcoded numbers and addresses in Xen, use device tree for everything. This enables a single Xen binary to boot on multiple platforms (Julien Grall).
 
 
 
== Known Bugs ==
 
=== Versatile Express ===
 
{{Open Bug
 
|Bug=linux v3.8-rc2 boot failed on versatile express
 
|Status=Fixed
 
|Desc=
 
Linux v3.8-rc2 fails to change the MMC voltage during boot on Versatile Express.
 
|References=[http://marc.info/?l=linux-kernel&m=135843574114719&w=2 patch] is needed to fix the bug.
 
}}
 
 
=== Arndale Board ===
 
{{Open Bug
 
|Bug=Guest hang with multi-vcpu
 
|Status=Fixed
 
|Desc=Hangs on the Arndale board with multi-vcpu guests.
 
|References=[http://marc.info/?l=xen-devel&m=136510786507930 patch] is needed to fix the bug.
 
}}
 
{{Open Bug
 
|Bug=Network doesn't work in the guest
 
|Contact=julien.grall@citrix.com
 
|Status=In progress
 
|Desc=Network doesn't work in the guest when an ehternet cable is plugged
 
|References=http://pastebin.com/gEP3HdCg
 
}}
 
{{Open Bug
 
|Bug=Sometimes Guest can't extract the initramfs
 
|Status=Open
 
|Desc=When Xen tries to copy data from the guest, it fails to unmap some page because nobody(?) mapped it.
 
|References=http://pastebin.com/frbeiuxz
 
}}
 
 
   
 
== Open Work Items ==
 
== Open Work Items ==
   
 
{{Open Project
 
{{Open Project
|Project=vGIC interrupt prioritisation
+
|Project=Save/restore and migration
 
|Desc=
 
|Desc=
  +
Make VM save/restore and VM migration work on ARM.
Currently the vGIC only implements a very basic form of interrupt priority, in particular it is not able to preempt an inflight lower priority interrupt when a new higher priority one occurs. The emulation needs to consider the vCPUs current IAR as well as the priorities of pending and inflight interrupts.
 
  +
|References=An initial prototype was written a couple of years ago for arm32 but never completed: http://lists.xen.org/archives/html/xen-devel/2014-06/msg02076.html
 
}}
 
}}
   
 
{{Open Project
 
{{Open Project
|Project=VCPU virtual time support
+
|Project=PCI device assignment to DomUs
|Desc=Currently the concept of virtual time exposed to the guests is very simplistic and is just a static offset from physical time based on the time when the guest was started. We need to consider if this is actually what is needed/wanted and consider cases such as stolen time etc.
 
}}
 
 
{{Open Project
 
|Project=IOMMU support in Xen
 
 
|Desc=
 
|Desc=
  +
Assign one or more devices to an unprivileged guest, re-program the SMMU accordingly.
write a driver in Xen for the ARM System Memory Management Unit (SMMU), use it to assign devices to Dom0.
 
 
}}
 
}}
   
 
{{Open Project
 
{{Open Project
|Project=Autogenerate DomU's device trees
+
|Project=ITS support
 
|Desc=
 
|Desc=
  +
Physical and virtual ITS support for GICv3.
Xen or the Xen tools (ie. XL) should be able to generate the device tree for the guest automatically.
 
  +
|References=Work underway: http://marc.info/?i=1426775889-29442-1-git-send-email-vijay.kilari%40gmail.com
 
}}
 
}}
   
 
{{Open Project
 
{{Open Project
|Project=Linux 64-bit on Xen
+
|Project=More flexible early printk support
  +
|Desc=Allow a single Xen binary to support multiple platforms for early_printk
|Contact=Stefano Stabellini <stefano.stabellini@eu.citrix.com>
 
  +
Rather than parsing the DTB early in asm to get the command line it would probably be sufficient to have a magic hex byte at a specific offset which could be edited by a simple tool.
|Desc=
 
  +
|References=http://lists.xen.org/archives/html/xen-devel/2014-02/msg01880.html
Introduce Xen support for ARMv8 in Linux.
 
 
}}
 
}}
   
 
{{Open Project
 
{{Open Project
|Project=Save/restore and migration
+
|Project=Investigation on HCR.FB
  +
|Desc=Setting HCR.FB will upgrade local flush instructions (TLB, instruction cache, branch predictor) to innershareable. It would be nice to benchmark the performance impact on a UP-aware kernel and see if this could be reduced by flushing when a vCPU is migrating to another physical CPUs.
|Desc=
 
  +
|References=http://lists.xen.org/archives/html/xen-devel/2016-04/msg03157.html
Make VM save/restore and VM migration work on ARM.
 
}}
 
 
{{Open Project
 
|Project=Device assignment to DomUs
 
|Desc=
 
Assign one or more devices to an unprivileged guest, re-program the SMMU accordingly.
 
 
}}
 
}}
   
  +
[[Category:XenARM]]
{{Open Project
 
|Project=Bootwrapper support for systems with non-HYP mode aware bootloaders and platform quirks
 
|Desc=Currently Xen includes (in mode_switch.S, called from head.S) various workarounds for platforms which do not start the hypervisor in HYP mode and to initialise various board level values (either because when running on the model there is no firmware to do this or because the board firmware is buggy). In order to maintain the clean separation of such hacks from the main Xen code base and to achieve the single image goal this platform specific code should be extracted into a separate boot-wrapper project, similar to http://xenbits.xen.org/gitweb/?p=people/ianc/boot-wrapper.git;a=summary which can be used on the Fast Models.
 
}}
 
 
{{Open Project
 
|Project=Expose Wallclock time to guests
 
|Desc=Current Xen on ARM does not popular the wallclock time fields of the shared info with anything useful. It should do so...
 
}}
 

Latest revision as of 10:22, 27 April 2016

This is a list of open work items and known bugs for the Xen on ARM with virtualization extension project.


In progress

Open Work Items

Save/restore and migration
Contact: xen-devel@lists.xen.org
Description: Make VM save/restore and VM migration work on ARM.
References: An initial prototype was written a couple of years ago for arm32 but never completed: http://lists.xen.org/archives/html/xen-devel/2014-06/msg02076.html

PCI device assignment to DomUs
Contact: xen-devel@lists.xen.org
Description: Assign one or more devices to an unprivileged guest, re-program the SMMU accordingly.
References: Not specified, useful references.

ITS support
Contact: xen-devel@lists.xen.org
Description: Physical and virtual ITS support for GICv3.
References: Work underway: http://marc.info/?i=1426775889-29442-1-git-send-email-vijay.kilari%40gmail.com

More flexible early printk support
Contact: xen-devel@lists.xen.org
Description: Allow a single Xen binary to support multiple platforms for early_printk Rather than parsing the DTB early in asm to get the command line it would probably be sufficient to have a magic hex byte at a specific offset which could be edited by a simple tool.
References: http://lists.xen.org/archives/html/xen-devel/2014-02/msg01880.html

Investigation on HCR.FB
Contact: xen-devel@lists.xen.org
Description: Setting HCR.FB will upgrade local flush instructions (TLB, instruction cache, branch predictor) to innershareable. It would be nice to benchmark the performance impact on a UP-aware kernel and see if this could be reduced by flushing when a vCPU is migrating to another physical CPUs.
References: http://lists.xen.org/archives/html/xen-devel/2016-04/msg03157.html