Archived/Xen Development Projects: Difference between revisions
(Removed the ones that are obsolete and not interesting. Fleshed out a bit the ones under my name.) |
|||
Line 23: | Line 23: | ||
|Project=Upstreaming Xen PVSCSI drivers to mainline Linux kernel |
|Project=Upstreaming Xen PVSCSI drivers to mainline Linux kernel |
||
|Date=01/08/2012 |
|Date=01/08/2012 |
||
|Difficulty=Hard |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
|GSoC=No |
|GSoC=No |
||
Line 40: | Line 41: | ||
|Date=01/08/2012 |
|Date=01/08/2012 |
||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
|Difficulty=Hard |
|||
|GSoC=No, unless Konrad believes these can be done |
|GSoC=No, unless Konrad believes these can be done. |
||
|Desc= |
|Desc= |
||
PVUSB drivers needs to be upstreamed yet. Necessary operations may include: |
PVUSB drivers needs to be upstreamed yet. Necessary operations may include: |
||
Line 90: | Line 92: | ||
|Project=Block backend/frontend improvements |
|Project=Block backend/frontend improvements |
||
|Date=01/01/2013 |
|Date=01/01/2013 |
||
|Difficulty=Medium |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
|Desc= |
|Desc= |
||
Line 98: | Line 101: | ||
* Add DIF/DIX support [http://oss.oracle.com/~mkp/docs/lpc08-data-integrity.pdf] for T10 PI (Protection Information), to support data integrity fields and checksums. |
* Add DIF/DIX support [http://oss.oracle.com/~mkp/docs/lpc08-data-integrity.pdf] for T10 PI (Protection Information), to support data integrity fields and checksums. |
||
* Further perf evaluation needs to be done to see how it behaves under high load. |
* Further perf evaluation needs to be done to see how it behaves under high load. |
||
* Further discussion and issues outlined in http://lists.xen.org/archives/html/xen-devel/2012-12/msg01346.html |
* Further discussion and issues outlined in http://lists.xen.org/archives/html/xen-devel/2012-12/msg01346.html and https://docs.google.com/document/d/1Vh5T8Z3Tx3sUEhVB0DnNDKBNiqB_ZA8Z5YVqAsCIjuI |
||
|GSoC=Yes, but we would have to chop them in a nice chunks |
|GSoC=Yes, but we would have to chop them in a nice chunks |
||
}} |
}} |
||
Line 105: | Line 109: | ||
|Project=Utilize Intel QuickPath on network and block path. |
|Project=Utilize Intel QuickPath on network and block path. |
||
|Date=01/22/2013 |
|Date=01/22/2013 |
||
|Difficulty=High |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
|Desc=The Intel QuickPath, also known as Direct Cache Access, is the chipset that sits in the PCIe subsystem in the Intel systems. It allows the PCIe subsystem to tag which PCIe writes to memory should reside in the Last Level Cache (LLC, also known as L3, which in some cases can be of 15MB or 2.5MB per CPU). This offers incredible boosts of speed - as we bypass the DIMMs and instead the CPU can process the data in the cache. |
|Desc=The Intel QuickPath, also known as Direct Cache Access, is the chipset that sits in the PCIe subsystem in the Intel systems. It allows the PCIe subsystem to tag which PCIe writes to memory should reside in the Last Level Cache (LLC, also known as L3, which in some cases can be of 15MB or 2.5MB per CPU). This offers incredible boosts of speed - as we bypass the DIMMs and instead the CPU can process the data in the cache. |
||
Adding this component in the network or block backends can mean that we can keep the data longer in the cache |
Adding this component in the network or block backends can mean that we can keep the data longer in the cache and the guest can process the data right off the cache. |
||
and the guest can process the data right off the cache. |
|||
|Skills=The basic requirement for this project is Linux kernel programming skill. |
|Skills=The basic requirement for this project is Linux kernel programming skill. |
||
Line 119: | Line 123: | ||
|GSoC=Yes |
|GSoC=Yes |
||
}} |
}} |
||
{{project |
|||
|Project=perf working with Xen |
|||
|Date=01/01/2013 |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|||
|Desc= |
|||
The perf framework in the Linux kernel is incredibly easy to use and very good at spotting issues. It |
|||
currently works great inside HVM guests, but fails short of working properly in PV and also collecting the hypervisor's EIPs. This work would be involved in closing that gap by implementing an 'perf --xen' option which would allow perf to collect the counter's information system-wide. Part of this work is figuring out whether we can piggyback on the oprofile hypercalls and in the Linux kernel side transmute the oprofile hypercalls <=> msr values (which is what perf uses). |
|||
⚫ | |||
⚫ | |||
* perf --xen top working. |
|||
⚫ | |||
}} |
|||
{{project |
|||
|Project=PAT writecombine fixup |
|||
|Date=02/08/2012 |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|||
|Desc= |
|||
The writecombine feature (especially for graphic adapters) is turned off due to stability reasons. More specifically, the code involved in page transition from WC to WB gets confused about the PSE bit state in the page, resulting in a set of repeated warnings. |
|||
For more informations please check: |
|||
* Linux git revision 8eaffa67b43e99ae581622c5133e20b0f48bcef1 |
|||
* http://lists.xen.org/archives/html/xen-devel/2012-06/msg01950.html |
|||
The goal is to create in the Linux kernel a general PAT lookup system where it can determine which page bits |
|||
need to be enabled for WB, UC, and WC. This would allow different programming of the PAT entries during bootup. |
|||
}} |
|||
{{project |
{{project |
||
|Project=Parallel xenwatch |
|Project=Parallel xenwatch kthread |
||
|Date=01/08/2012 |
|Date=01/08/2012 |
||
|Difficulty=Low-Medium |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
||
|Desc= |
|Desc= |
||
Xenwatch is locked with a coarse lock. For a huge number of guests this represents a scalability issue. The need is to rewrite the xenwatch locking in order to support full scalability. |
Xenwatch is locked with a coarse lock. For a huge number of guests this represents a scalability issue. The need is to rewrite the xenwatch locking in order to support full scalability. |
||
⚫ | |||
⚫ | |||
* benchmark report of with and without. |
|||
⚫ | |||
}} |
}} |
||
Revision as of 19:41, 12 February 2014
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
|
Utilize Intel QuickPath on network and block path.
|
Parallel xenwatch kthread
|
Enabling the 9P File System transport as a paravirt device
|
OVMF Compatibility Support Module support in Xen
|
Hypervisor
Introducing PowerClamp-like driver for Xen
|
Integrating NUMA and Tmem
|
HVM per-event-channel interrupts
|
Userspace Tools
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
|
Lazy restore using memory paging
|
CPUID Programming for Humans
|
Performance
Create a tiny VM for easy load testing
|
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
Please see XenRepositories wiki page!