Hello,
the i386 and amd64 ports of NetBSD both offer extensive support for the
Xen Hypervisor. This includes running a NetBSD kernel in paravirtualised (PV)
mode as the dom0 (the virtual machine instance controlling the hardware of
the host system) and domU (a normal virtual instance). Support for
paravirtualization is mandatory for dom0 and greatly improves performance
of a domU as no hardware emulation is required. Paravirtualization also
allows using Xen on CPUs without hardware virtualization support.
At the moment NetBSD doesn’t support using multiple CPUs (or CPU cores)
when it runs in paravirtualised mode. This is not only a severe performance
limitation on modern x86 hardware it also makes NetBSD a suboptimal
platform for use on Amazon EC2 service (which uses images of paravirtualized
Xen domU systems).
The Core team and the Board of the NetBSD project have created the attached
specification for funded development to add Xen Paravirtualized Multi Processor
Support to NetBSD. If you are interested in realizing this project send
a proposal to and ,
please.
Kind regards
Matthias Scheler
On behalf of the board of directors
$NetBSD: 201009-XenMP,v 1.1 2010/09/05 13:51:46 tron Exp $
Targeted Development
====================
1. Project name
201009 – Xen Paravirtualized Multi Processor Support
2. Project Description
The i386 and amd64 ports of NetBSD both offer extensive support for the
Xen Hypervisor. This includes running a NetBSD kernel in paravirtualised (PV)
mode as the dom0 (the virtual machine instance controlling the hardware of
the host system) and domU (a normal virtual instance). Support for
paravirtualization is mandatory for dom0 and greatly improves performance
of a domU as no hardware emulation is required. Paravirtualization also
allows using Xen on CPUs without hardware virtualization support.
At the moment NetBSD doesn’t support using multiple CPUs (or CPU cores)
when it runs in paravirtualised mode. This is not only a severe performance
limitation on modern x86 hardware it also makes NetBSD a suboptimal
platform for use on Amazon EC2 service (which uses images of paravirtualized
Xen domU systems).
The goal of this project is to add the Xen Paravirtualized Multi Processor
Support to NetBSD. This will require a number of kernel changes. The most
significant part will be improvements to the machine-dependent portion of
the virtual memory system. The i386 and amd64 ports use atomic operations
to update PTE entries to avoid using locking. This approach can however not
be used under Xen where the page table is mapped read-only in the kernel.
Updates require calls to the HyperVisor which are currently protected in
an SMP-unsafe manner via spl(9) functions.
3. Deliverables
In order of priority:
* NetBSD PV domU using multiple CPUs for amd64, i386 and i386PAE
* NetBSD PV dom0 using multiple CPUs for amd64, i386 and i386PAE
4. Brief outline of expected timescales, and milestones
Suggested milestones are:
1. Probing and startup of secondary CPUs by a domU kernel,
receiving clock interrupts on all CPUs.
2. A domU kernel with an SMP-safe pmap(9) implementation that
allows to fully use multiple CPUs.
3. An SMP-safe dom0 kernel
Additional stretch goals are:
4. SMP-safe Xen frontend and backend drivers.
5. Interrupt distribution across different CPUs
It is expected that the first two milestones will take the most time as
they form the majority of the project.
6. Brief explanation of skillset needed
Knowledge of Xen internals and i386 and x86_64 instruction set.
7. Test Suites to be delivered
Performance comparisons between a NetBSD Xen paravirtualized domU using
multiple CPUs and a NetBSD HVM domU using the same number of CPUs.
Project Developer
=================
8. Login name of developer allocated
9. Brief outline of skillset of developer
Notes
=====
10. Core will manage all the targeted development projects
11. A presence on IRC (mollari.NetBSD.org), #NetBSD channel is recommended.
12. Payment will be triggered by board approval, going on a
recommendation from core, when the project has finished, and when all
aspects of the project have been delivered
13. No interim payments will be made
14. Any board or core members who are bidding for, or carrying out, any
work must declare an interest; they must then recuse themselves from
everything related to targeted development on that project
15. Weekly progress reports will be made to developers@, stating
progress from previous week, expected work for the next week, and any
issues or concerns that may arise. A maximum of 6 lines is wanted.