Archived/GSoC 2015: Difference between revisions
(Remove the MirageOS projects as they've been ported to the Pioneer Projects page) |
Lars.kurth (talk | contribs) No edit summary |
||
(27 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Info|Unfortunately the project has not been accepted for GSoC in 2015! However, there are Xen related projects hosted in various organisations, such as |
|||
{{InfoLeft|Please read this [http://lists.xen.org/archives/html/xen-devel/2015-02/msg00902.html message] if you are a mentor to and want to prepare for GSoC 2015}} |
|||
* [http://wiki.centos.org/GSoC/2015/Ideas#head-ecb615be72e53950f08df92809020721d44c6694 Xen based Hypervisor in a Box @ Centos] |
|||
* [http://www.openbsdfoundation.org/gsoc2015.html#xenguest Xen guest support for OpenBSD @ Open BSD Foundation] |
|||
* [https://code.google.com/p/ganeti/wiki/SummerOfCode2015Ideas 3 Xen related projects @ Ganeti] |
|||
We should also be able to find mentors and add Xen related projects in the following places: |
|||
* [https://www.google-melange.com/gsoc/org2/google/gsoc2015/qemu qemu] - if you are interested, please get in touch with developers on xen-devel |
|||
⚫ | |||
__TOC__ |
__TOC__ |
||
Line 8: | Line 14: | ||
The Xen Project is a Linux Foundation collaborative project that develops the |
The Xen Project is a Linux Foundation collaborative project that develops the |
||
* [http://xenproject.org/developers/teams/pvops.html |
* [http://xenproject.org/developers/teams/pvops.html Domain Support] |
||
* [http://xenproject.org/developers/teams/hypervisor.html Xen Hypervisor] (for x86 and [http://xenproject.org/developers/teams/arm-hypervisor.html ARM]) |
* [http://xenproject.org/developers/teams/hypervisor.html Xen Hypervisor] (for x86 and [http://xenproject.org/developers/teams/arm-hypervisor.html ARM]) |
||
* [http://xenproject.org/developers/teams/xapi.html The XAPI toolstack] |
* [http://xenproject.org/developers/teams/xapi.html The XAPI toolstack] |
||
Line 30: | Line 36: | ||
'''To work on a project:''' |
'''To work on a project:''' |
||
* Find a project that looks interesting (or a bug if you want to start with something simple) |
* Find a project that looks interesting (or a bug if you want to start with something simple) |
||
* Send an email to the relevant [http://www.xenproject.org/help/mailing-list.html mailing list] (see '''Developer Mailing Lists''') and let us know if you are interested in starting to work or applying on a specific project. |
* Send an email to the relevant [http://www.xenproject.org/help/mailing-list.html mailing list] (see '''Developer Mailing Lists''') - the correct list should also be on the project - and let us know if you are interested in starting to work or applying on a specific project. |
||
* Post your ideas, questions, RFCs to the relevant [http://www.xenproject.org/help/mailing-list.html mailing list] sooner than later so you can get comments and feedback. |
* Post your ideas, questions, RFCs to the relevant [http://www.xenproject.org/help/mailing-list.html mailing list] sooner than later so you can get comments and feedback. |
||
Line 44: | Line 50: | ||
* Any work you submit before applying for a project should be based on xen-unstable development tree, if the project is Xen Hypervisor and/or tools related. Linux kernel related patches should be based on upstream kernel.org Linux git tree (latest version). XAPI and Mirage OS patches should be based on the right codeline too. Check out the '''navigation by audience''' section on the left to find resources. |
* Any work you submit before applying for a project should be based on xen-unstable development tree, if the project is Xen Hypervisor and/or tools related. Linux kernel related patches should be based on upstream kernel.org Linux git tree (latest version). XAPI and Mirage OS patches should be based on the right codeline too. Check out the '''navigation by audience''' section on the left to find resources. |
||
==== More |
==== More Resources ==== |
||
Project resources are listed in below's table. Projects in the GSoC project list are under headline that maps to one of the entries below, e.g. a project under [[#Xen Hypervisor Userspace Tools|Xen Hypervisor Userspace Tools]] will map to the '''Xen Hypervisor''' in the table below. Also note that the links in the '''Sub-Project/Team''' column will get you to a page with general resources related to that project. |
|||
Quick links to changelogs of the various Xen related repositories/trees: Please see [[XenRepositories]] wiki page! |
|||
{|class="prettytable" style="text-align: left;" valign="top" |
|||
Before to submit patches, please look at [[Submitting Xen Patches]] wiki page and the relevant [http://www.xenproject.org/developers/teams.html Xen Project team page]. This will contain more information. |
|||
!style="width: 20%;"|Sub-Project/Team |
|||
!style="width: 30%;"|Mailing List |
|||
If you have new ideas, suggestions or development plans let us know and we'll update this list! |
|||
!style="width: 30%;"|Code Repos |
|||
!style="width: 20%;"|Additional Information |
|||
|- |
|||
|[http://xenproject.org/developers/teams/pvops.html Domain Support] |
|||
|Start with [http://lists.xenproject.org/cgi-bin/mailman/listinfo/xen-devel xen-devel@lists.xenproject.org] |
|||
|[[Mainline Linux Kernel Configs]], [[Xen Project Repositories]] |
|||
|[[:Category:Developers|Xen Developer Wiki]] |
|||
|- |
|||
|[http://xenproject.org/developers/teams/hypervisor.html Xen Hypervisor] (x86 & ARM) |
|||
|[http://lists.xenproject.org/cgi-bin/mailman/listinfo/xen-devel xen-devel@lists.xenproject.org] |
|||
|[[Xen Project Repositories]] |
|||
|[[:Category:Developers|Xen Developer Wiki]], [[Xen_ARM_with_Virtualization_Extensions|Xen Developer Wiki (ARM related info)]] |
|||
|- |
|||
|[http://xenproject.org/developers/teams/xapi.html The XAPI toolstack] |
|||
|[http://lists.xenproject.org/cgi-bin/mailman/listinfo/xen-api xen-api@lists.xenproject.org] |
|||
|[https://github.com/xapi-project/ xapi-project on GitHub] |
|||
|[[:Category:XAPI_Devel|XAPI Developer Wiki]] |
|||
|- |
|||
|[http://xenproject.org/developers/teams/mirage-os.html Mirage OS] |
|||
|[http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel mirageos-devel@lists.xenproject.org] |
|||
|[https://github.com/mirage/ mirage on GitHub] - you can check out all repos via ''git clone --recursive git://github.com/mirage/megamirage'' |
|||
|[[:Category:Mirage_Devel|Mirage OS Developer Wiki]], [http://www.openmirage.org/ Mirage OS Site] |
|||
|- |
|||
|[http://xenproject.org/developers/teams/windows-pv-drivers.html Windows PV Drivers] |
|||
|[http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel win-pv-devel@lists.xenproject.org] |
|||
|[[Windows_PV_Drivers/Repositories]] |
|||
|[[:Category:Windows_PV_Drivers|Windows PV Drivers Developer Wiki]] |
|||
|- |
|||
|[http://xenproject.org/developers/teams/embedded-and-automotive.html Embedded & Automotive Drivers] |
|||
|[http://lists.xenproject.org/cgi-bin/mailman/listinfo/embedded-pv-devel embedded-pv-devel@lists.xenproject.org] |
|||
|None yet |
|||
|[[:Category:Embedded_and_Automotive_PV_Drivers|Embedded & Automotive Drivers Developer Wiki]] |
|||
|} |
|||
=== Aspiring Students === |
=== Aspiring Students === |
||
* Please contact the mailing list and CC the mentor (you can find mentor e-mail addresses on the [[Talk:GSoC 2015|talk]] page). Please do *not* contact the mentor without CC'ing the list: GSoC is about community engagement and you will need to get used to working in public on the mailing list. |
|||
* Please contact the mentor and CC the most appropriate mailing list |
|||
* Get a bite-size task from the mentor before the application starts |
* Get a bite-size task from the mentor before the application starts |
||
* If you feel comfortable with an idea, please put your name to an idea using the following format |
* If you feel comfortable with an idea, please put your name to an idea using the following format |
||
Line 98: | Line 137: | ||
|GSoC=Yes |
|GSoC=Yes |
||
}} |
}} |
||
{{project |
|||
|Project=Xen block backend/frontend multiqueue support |
|||
|Date=03/09/2014 |
|||
|Difficulty=High |
|||
|Contact=Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
|||
|Desc= |
|||
The Linux kernel (and FreeBSD, Windows, etc) have ParaVirtualized (PV) drivers to perform |
|||
the I/O instead of using the emulated devices that appear in QEMU (IDE, SCSI, etc). This is |
|||
done because the emulation of the IDE drivers is quite slow - and if you dig in how it |
|||
actually is done - it is full of bit-banging registers. The PV drivers are an answer to this |
|||
and eliminate the need for emulation. The mechanism by which they work is |
|||
nicely draw out in http://wiki.xen.org/wiki/PV_Protocol |
|||
and http://www.informit.com/articles/article.aspx?p=1160234&seqNum=3 |
|||
("Definitive Guide to the Xen Hypervisor, The") |
|||
There have been improvements done in it - see http://wiki.xen.org/wiki/Xen_4.3_Block_Protocol_Scalability |
|||
and http://blog.xen.org/index.php/2013/08/07/indirect-descriptors-for-xen-pv-disks/ |
|||
However, there are still room for improvement. We can utilize the new |
|||
block multiqueue API support in Linux (See https://lwn.net/Articles/552904/ |
|||
and http://kernel.dk/systor13-final18.pdf) |
|||
to allocate per CPU a block thread (which handles the I/O transmission). |
|||
That should provide greater throughput and lower latency for I/O workloads. |
|||
Also see https://docs.google.com/document/d/1Vh5T8Z3Tx3sUEhVB0DnNDKBNiqB_ZA8Z5YVqAsCIjuI |
|||
which has some of the explanation. |
|||
| Skills=You need to have understanding of: |
|||
* Knowledge of Linux kernel |
|||
* How I/O works |
|||
* C language |
|||
|Outcomes=Expected outcome: |
|||
* Patches for the Linux Kernel Mailing list (LKML). |
|||
* Benchmark reports. |
|||
|GSoC=Yes |
|||
⚫ | |||
{{project |
{{project |
||
|Project=Enabling the 9P File System transport as a paravirt device |
|Project=Enabling the 9P File System transport as a paravirt device |
||
|Date=01/20/2014 |
|Date=01/20/2014 |
||
|Verified=02/13/2015 |
|||
|Difficulty=High |
|Difficulty=High |
||
|Contact=Wei Liu <wei.liu2@citrix.com> Julien Grall <julien.grall@citrix.com> |
|||
|Contact=Andres Lagar-Cavilla <andres@lagarcavilla.org> |
|||
|GSoC=Yes |
|GSoC=Yes |
||
|Desc=VirtIO provides a 9P FS transport, which is essentially a paravirt file system device. VMs can mount arbitrary file system hierarchies exposed by the backend. The 9P FS specification has been around for a while, while the VirtIO transport is relatively new. The project would consist of implementing a classic Xen front/back pv driver pair to provide a transport for the 9P FS Protocol. |
|Desc=VirtIO provides a 9P FS transport, which is essentially a paravirt file system device. VMs can mount arbitrary file system hierarchies exposed by the backend. The 9P FS specification has been around for a while, while the VirtIO transport is relatively new. The project would consist of implementing a classic Xen front/back pv driver pair to provide a transport for the 9P FS Protocol. |
||
Line 174: | Line 176: | ||
|Project=KDD (Windows Debugger Stub) enhancements |
|Project=KDD (Windows Debugger Stub) enhancements |
||
|Date=01/30/2014 |
|Date=01/30/2014 |
||
|Verified=02/10/2015 |
|||
|Contact=Paul Durrant <paul.durrant@citrix.com> |
|Contact=Paul Durrant <paul.durrant@citrix.com> |
||
|Difficulty=Medium |
|Difficulty=Medium |
||
Line 258: | Line 261: | ||
|Difficulty=Various levels of difficulty |
|Difficulty=Various levels of difficulty |
||
|Skills=OCaml |
|Skills=OCaml |
||
|Desc=This is a list of pioneer projects for Mirage OS, covering area such as '''Build Tools''', '''New Libraries''', '''Storage Technologies''', '''Networking Technologies''', '''Interfaces to Non- |
|Desc=This is a list of pioneer projects for Mirage OS, covering area such as '''Build Tools''', '''New Libraries''', '''Storage Technologies''', '''Networking Technologies''', '''Interfaces to Non-OCaml (aka foreign) Languages''', '''Testing''' and other topics. Note that some of these projects may be too small or too big for a single GSoC project. If you are interested in one of these, make sure you discuss first on mirageos-devel@lists.xenproject.org - we can then merge or split these as needed for GSoC. |
||
References: |
References: |
||
* [https://github.com/mirage/mirage-www/wiki/Pioneer-Projects Complete list of Pioneer Projects] |
* [https://github.com/mirage/mirage-www/wiki/Pioneer-Projects Complete list of Pioneer Projects] (currently approximately 15 projects) |
||
|Outcomes=Listed in [https://github.com/mirage/mirage-www/wiki/Pioneer-Projects Complete list of Pioneer Projects] |
|||
|GSoC=yes, but do check mirageos-devel@lists.xenproject.org first |
|GSoC=yes, but do check mirageos-devel@lists.xenproject.org first |
||
}} |
}} |
||
Line 516: | Line 520: | ||
[[Category:GSoC 2015]] |
[[Category:GSoC 2015]] |
||
[[Category:Developers]] |
[[Category:Developers]] |
||
[[Category:Archived]] |
|||
[[Category:Index]] |
[[Category:Index]] |
||
[[Category:Project]] |
[[Category:Project]] |
||
[[Category:Transient]] <!-- as if not maintained it becomes stale --> |
[[Category:Transient]] <!-- as if not maintained it becomes stale --> |
||
[[Category:Internships]] |
|||
[[Category:Archived]] |
Latest revision as of 18:06, 2 February 2017
Unfortunately the project has not been accepted for GSoC in 2015! However, there are Xen related projects hosted in various organisations, such as
We should also be able to find mentors and add Xen related projects in the following places:
|
Xen Project
The Xen Project is a Linux Foundation collaborative project that develops the
- Domain Support
- Xen Hypervisor (for x86 and ARM)
- The XAPI toolstack
- Mirage OS
- Windows PV Drivers
- Embedded & Automotive Drivers
The project also has excellent relationships with its upstreams (Linux Kernel, the BSDs, QEMU and other projects) and upstreams such as Linux distributions. This is reflected in the project list, which contains many interesting cross-project development projects for students.
GSoC and Xen Project
This page is used to list project ideas for Google Summer of Code (GSOC) 2015.
Key GSoC resources
The Xen Project is planning to apply as a Mentoring Organization. Stay posted.
Finding a project that fits you
This page lists Xen Project development projects for GSoC that can be picked up by anyone! If you're interesting in hacking Xen Project code and want to become a part of our friendly developer community 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 the relevant mailing list (see Developer Mailing Lists) - the correct list should also be on the project - and let us know if you are interested in starting to work or applying on a specific project.
- Post your ideas, questions, RFCs to the relevant mailing list sooner than later so you can get comments and feedback.
You have your own project idea: no problem!
- If you have your own project idea, outline what you are trying to do on the mailing list. If you know the right list, post your project idea on mailing list. Failing that post on xen-devel and we can redirect you to the right list. Make sure you add GSoC 2015 to the subject line.
It is a good idea to ...
The Xen Project has also participated in the Gnome Outreach Program for Women (OPW) in the past. One of the things we learned by participating in OPW is that you will be more successful, happier and get more out of participating in student programs such as GSoC, if you do a bit of prep-work before writing an application. Here is some stuff you can do:
- Contact your mentor early and get to know him or her
- If the Xen Project is accepted into GSoC, start hanging out on our IRC channel. You can use the #xen-opw IRC channel on freenode.net for now (if accepted, we will create a GSoC channel)
- You may want to ask the mentor for a couple of small bitesize work-items (such as reviewing someones patch, a bitesize bug, ...) and start communicating on the relevant mailing list. That helps you become familiar with our development process, the mentor and other community members and will help you chose the right project and help you decide whether the Xen project is for you.
- Note that quite a few Xen maintainers used to be GSoC students once. Feel free to ask community dot manager at xenproject dot org to put you in touch with them if you have questions about their experience.
- Any work you submit before applying for a project should be based on xen-unstable development tree, if the project is Xen Hypervisor and/or tools related. Linux kernel related patches should be based on upstream kernel.org Linux git tree (latest version). XAPI and Mirage OS patches should be based on the right codeline too. Check out the navigation by audience section on the left to find resources.
More Resources
Project resources are listed in below's table. Projects in the GSoC project list are under headline that maps to one of the entries below, e.g. a project under Xen Hypervisor Userspace Tools will map to the Xen Hypervisor in the table below. Also note that the links in the Sub-Project/Team column will get you to a page with general resources related to that project.
Sub-Project/Team | Mailing List | Code Repos | Additional Information |
---|---|---|---|
Domain Support | Start with xen-devel@lists.xenproject.org | Mainline Linux Kernel Configs, Xen Project Repositories | Xen Developer Wiki |
Xen Hypervisor (x86 & ARM) | xen-devel@lists.xenproject.org | Xen Project Repositories | Xen Developer Wiki, Xen Developer Wiki (ARM related info) |
The XAPI toolstack | xen-api@lists.xenproject.org | xapi-project on GitHub | XAPI Developer Wiki |
Mirage OS | mirageos-devel@lists.xenproject.org | mirage on GitHub - you can check out all repos via git clone --recursive git://github.com/mirage/megamirage | Mirage OS Developer Wiki, Mirage OS Site |
Windows PV Drivers | win-pv-devel@lists.xenproject.org | Windows_PV_Drivers/Repositories | Windows PV Drivers Developer Wiki |
Embedded & Automotive Drivers | embedded-pv-devel@lists.xenproject.org | None yet | Embedded & Automotive Drivers Developer Wiki |
Aspiring Students
- Please contact the mailing list and CC the mentor (you can find mentor e-mail addresses on the talk page). Please do *not* contact the mentor without CC'ing the list: GSoC is about community engagement and you will need to get used to working in public on the mailing list.
- Get a bite-size task from the mentor before the application starts
- If you feel comfortable with an idea, please put your name to an idea using the following format
{{project ... |Review=(delete as addressed) * {{Comment|~~~~:}} I am interested in this idea ... (note that you may also want to link to the e-mail thread with the mentor)
- You will need to request write access to the wiki by filling out this form
Applying for GSoC
Note that we will update this section when more student information on melange is available, to make it easier for you to find information. And of course assuming that the Xen Project will be accepted into GSoC. |
To apply for a project, follow the steps outlined on
- melange
- We do have our own GSoC Student Application Template form
List of peer reviewed Projects
Domain support (PVOPS and Linux)
Utilize Intel QuickData on network and block path.
|
Enabling the 9P File System transport as a paravirt device
Peer Review Comments(delete as addressed)
|
Xen Hypervisor Userspace Tools
CPU/RAM/PCI diagram tool
|
KDD (Windows Debugger Stub) enhancements
|
CPUID Programming for Humans
|
Rump kernel based stubdom
|
MirageOS
Various MirageOS Pioneer Projects
|
List of projects that need more work
Xen Hypervisor
Introducing PowerClamp-like driver for Xen
|
Xen Hypervisor Userspace Tools
Refactor Linux hotplug scripts
|
XL to XCP VM motion
|
Advanced Scheduling Parameters
|
PCI Pass-through improvements
Allowing guests to boot with a passed-through GPU as the primary display
|
Improve PCIe Advanced Error Reporting (AER) handling for passed-through devices
|
XAPI
DRBD Integration
|
New Project Ideas
Please add new project ideas here, following
Archive
GSoC Projects that were accepted in 2014
Implement Xen PVUSB support in xl/libxl toolstack
|
Lazy restore using memory paging
|
HVM per-event-channel interrupts
|
Mirage OS cloud API support
|
Parallel xenwatch kthread
|
Conventions for Projects and Project Mentors
Rules and Advice for Adding Ideas
- Be creative
- Add projects into New Project Ideas or improve projects in Project Ideas that Need Review or more work through review comments.
- Use the {{GSoC Project}} template to encode ideas on this page. Please read the Template Documentation before you do so.
- Be specific: what do you want to be implemented; if at all possible provide an indication of size and complexity as described above to make it easier for a student to choose ideas
- Check that the project meets the GSoC Program Goals
- If you are willing to mentors those ideas, add your name and email to the idea.
- Aspiring mentors should introduce themselves on the most appropriate Xen Project mailing list
Peer Review Goals
We strongly recommend and invite project proposers and project mentors to review each others proposals. When you review, please look out for
- Can a student get going and started with the information in the project description
- Are any unstated assumptions in the proposal, is there undefined terminology, etc. in the proposal
- Can the project completed in 3 months (assume that one month is needed for preparation)
- Does the project meet Google Summer of Code goals, which are
- Create and release open source code for the benefit of all
- Inspire young developers to begin participating in open source development
- Help open source projects identify and bring in new developers and committers
- Provide students the opportunity to do work related to their academic pursuits (think "flip bits, not burgers")
- Give students more exposure to real-world software development scenarios (e.g., distributed development, software licensing questions, mailing-list etiquette)
Peer Review Conventions
The {{GSoC Project}} template used to encode GSoC projects, contains some review functionality. Please read the Template Documentation before you add a template, also please use the conventions below to make comments.
|Review=(delete as addressed) * {{Comment|~~~~:}} Comment 1 * {{Comment|~~~~:}} Comment 2
Choosing Projects
We have a bi-weekly mentor meeting overlooked by our program management team, which are a core team of 2-3 mentors and a program administrator. This group will work with mentors to ensure that project proposals are of good quality and whether mentors are engaging with the program management team and students in the weeks before the application period ends.