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 <core%NetBSD.org@localhost> and <board%NetBSD.org@localhost>, 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.
Attachment:
pgp0T3JASmfCC.pgp
Description: PGP signature