Archived/Xen Development Projects: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 292: | Line 292: | ||
|Date=12/12/2012 |
|Date=12/12/2012 |
||
|Contact=Dario Faggioli <[mailto:dario.faggioli@citrix.com dario.faggioli@citrix.com]> |
|Contact=Dario Faggioli <[mailto:dario.faggioli@citrix.com dario.faggioli@citrix.com]> |
||
|Desc=NUMA (Non-Uniform Memory Access) systems are advanced server platforms, comprising multiple ''nodes''. Each node contains processors and memory. An advanced memory controller allows a node to use memory from all other nodes, but that happens, data transfer is slower than accessing local memory. Memory access times are not uniform and depend on the location of the memory and the node from which it is accessed, hence the name. |
|Desc=NUMA ([http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access Non-Uniform Memory Access]) systems are advanced server platforms, comprising multiple ''nodes''. Each node contains processors and memory. An advanced memory controller allows a node to use memory from all other nodes, but that happens, data transfer is slower than accessing local memory. Memory access times are not uniform and depend on the location of the memory and the node from which it is accessed, hence the name. |
||
Ideally, each VM should have its memory allocated out of just one node |
Ideally, each VM should have its memory allocated out of just one node and, as long as its vCPUs also run there, both throughput and latency are optimal. However, in cases where a VM ends up having its memory allocated from multiple nodes, we should inform it that it's running on a NUMA platform: a virtual NUMA. This could be very important, especially for some specific workloads (for instance, HPC applications). In fact, if the guest OS and application have any NUMA support, exporting the virtual topology is the only way to render that effective, and perhaps filling, at least to some extent, the gap in the performances introduced by the needs of distributing the guests on more than one node. Just for reference, this feature, under the name of vNUMA, is one of the key and most advertised ones of VMWare vSphere 5 ([http://cto.vmware.com/vnuma-what-it-is-and-why-it-matters/ vNUMA: what it is and why it matters]). |
||
This project aims at introducing virtual NUMA in Xen. This has some non-trivial interaction with other aspects of the NUMA support of Xen itself, namely automatic placement at VM creation time, dynamic memory migration among nodes, and others, meaning that some design decision needs to be made. After that, virtual topology exposure will be implemented for all the kind of guests supported by Xen. |
This project aims at introducing virtual NUMA in Xen. This has some non-trivial interaction with other aspects of the NUMA support of Xen itself, namely automatic placement at VM creation time, dynamic memory migration among nodes, and others, meaning that some design decision needs to be made. After that, virtual topology exposure will have to be implemented for all the kind of guests supported by Xen. |
||
This project fits in the efforts the Xen community is making for improving the performances of Xen on NUMA systems. The full roadmap is available on this Wiki page: [[Xen NUMA Roadmap]] |
This project fits in the efforts the Xen community is making for improving the performances of Xen on NUMA systems. The full roadmap is available on this Wiki page: [[Xen NUMA Roadmap]] |
Revision as of 00:30, 31 January 2013
This page lists various Xen related development projects that can be picked up by anyone! If you're interesting in hacking Xen this is the place to start! Ready for the challenge?
To work on a project:
- Find a project that looks interesting (or a bug if you want to start with something simple)
- Send an email to xen-devel mailinglist and let us know you started working on a specific project.
- Post your ideas, questions, RFCs to xen-devel sooner than later so you can get comments and feedback.
- Send patches to xen-devel early for review so you can get feedback and be sure you're going into correct direction.
- Your work should be based on xen-unstable development tree, if it's Xen and/or tools related. After your patch has been merged to xen-unstable it can be backported to stable branches (Xen 4.2, Xen 4.1, etc).
- Your kernel related patches should be based on upstream kernel.org Linux git tree (latest version).
xen-devel mailinglist subscription and archives: http://lists.xensource.com/mailman/listinfo/xen-devel
Before to submit patches, please look at Submitting Xen Patches wiki page.
If you have new ideas, suggestions or development plans let us know and we'll update this list!
List of projects
Domain support
Upstreaming Xen PVSCSI drivers to mainline Linux kernel
|
Upstreaming Xen PVUSB drivers to mainline Linux kernel
|
Implement Xen PVSCSI support in xl/libxl toolstack
|
Implement Xen PVUSB support in xl/libxl toolstack
|
Block backend/frontend improvements
|
Netback overhaul
|
Multiqueue support for Xen netback/netfront in Linux kernel
|
Block backend/frontend improvements
|
Utilize Intel QuickPath on network and block path.
|
perf working with Xen
|
PAT writecombine fixup
|
Parallel xenwatch
|
dom0 kgdb support
|
Hypervisor
Microcode uploader implementation
|
Introducing PowerClamp-like driver for Xen
|
Is Xen ready for the Real-Time/Embedded World?
|
Implement Temporal Isolation and Multiplocessor Support in the SEDF Scheduler
|
Virtual NUMA topology exposure to VMs
|
NUMA and ballooning on Xen
|
NUMA effects on inter-VM communication and on multi-VM workloads
|
Integrating NUMA and Tmem
|
IOMMU control for SWIOTLB, to avoid dom0 copy of all >4K DMA allocations
|
HVM per-event-channel interrupts
|
Userspace Tools
Convert PyGrub to C
|
Refactor Linux hotplug scripts
|
XL to XCP VM motion
|
VM Snapshots
|
Allowing guests to boot with a passed-through GPU as the primary display
|
Advanced Scheduling Parameters
|
CPU/RAM/PCI diagram tool
|
KDD (Windows Debugger Stub) enhancements
|
Performance
Performance tools overhaul
|
Create a tiny VM for easy load testing
|
Upstream bugs!
VCPU hotplug bug
|
RCU timer sent to offline VCPU
|
CONFIG_NUMA on 32-bit.
|
Time accounting for stolen ticks.
|
Xen Cloud Platform (XCP) and XAPI projects
There are separate wiki pages about XCP and XAPI related projects. Make sure you check these out aswell!
Fuzz testing Xen with Mirage
|
Mirage OS XCP/Xen support
|
From simulation to emulation to production: self-scaling apps
|
Towards a multi-language unikernel substrate for Xen
|
DRBD Integration
|
Expose counters for additional aspects of system performance in XCP
|
Add support for XCP performance counters to be sampled at varying rates
|
XCP backend to Juju/Chef/Puppet/Vagrant
|
RBD (Ceph) client support in XCP
|
Add connection tracking capability to the Linux OVS
|
- XCP and XAPI development projects: XAPI project suggestions
- XCP short-term roadmap: XCP short term roadmap
- XCP monthly developer meetings: XCP Monthly Meetings
- XAPI developer guide: XAPI Developer Guide
Xen.org testing system
Testing PV and HVM installs of Debian using debian-installer
|
Testing NetBSD
|
Please see XenRepositories wiki page!