\note{Welcome}
}
-\section{Agenda}
-\subsection{agenda}
-
\begin{frame}
- \frametitle{Agenda}
+ \frametitle{Two big projects}
\begin{itemize}
- \item Xen release timeline
- \item Development update
+ \item Splitting PV and HVM code:
+Refactor x86 hypervisor code. Make guest supporting interface configurable (Kconfig).
+ \item PV ABI in PVH container:
+Implement a PV ABI shim. Use it to translate PV hypercall into PVH ones.
\end{itemize}
\end{frame}
-\note{}
-
-\section{Xen release timeline}
-
-\subsection{timeline}
\begin{frame}
- \frametitle{Xen 4.7 timeline}
+ \frametitle{Why?}
\begin{itemize}
- \item First fixed term release, actually 9 months cycle
- \begin{itemize}
- \item Development start: 9 September 2015
- \item Freeze: 8 April 2016
- \item Release date: 20 June 2016
- \end{itemize}
- \item Main goal is make the release schedule preditable but also take into account really exceptional situations
+ \item Users can pick and choose the guest types
\begin{itemize}
- \item Several XSAs
- \item Livepatching feature
- \item 2 weeks overdue, still acceptable
+ \item Smaller binary, smaller attach surface
+ \item Reclaim precious address space if PV is disabled
\end{itemize}
+ \item Continue to support PV in a more secure manner if necessary
+ \item *NOT* intending to kill PV in the hypervisor since it is still useful in certain scenario
\end{itemize}
\end{frame}
-\note{
-}
\begin{frame}
- \frametitle{Xen 4.8 timeline}
+ \frametitle{Game plan for splitting PV and HVM code}
\begin{itemize}
- \item Second fixed term release, first 6 months cycle
+ \item Identify all the components that need refactoring
\begin{itemize}
- \item Development start: 6 June 2016
- \item Freeze: 30 September 2016
- \item Release date: 2 December 2016
+ \item Dom0 builder
+ \item Trap handling code
+ \item Memory management code
+ \item Guest memory accessor
+ \item ...
\end{itemize}
- \item First shorter release cycle
\end{itemize}
\end{frame}
-\note{
-}
-
-\section{Development update}
-\subsection{development update}
\begin{frame}
- \frametitle{Development update}
- \begin{itemize}
- \item Xen code base
- \begin{itemize}
- \item Hypervisor: general, x86 and ARM
- \item Toolstack
- \item Others upcoming things
- \end{itemize}
- \item Test lab
- \item Guest OSes support
- \end{itemize}
-\end{frame}
-\note{
-}
-
-\begin{frame}
- \frametitle{Development update: Hypervisor general}
+ \frametitle{Game plan for splitting PV and HVM code}
+ \begin{itemize}
+ \item Coarse-grained refactoring -- mostly for PV code
\begin{itemize}
- \item KConfig support
- \item Improved Virutal Machine Introspection subsystem
- \item Credit2 scheduler improvement
- \item RTDS scheduler improvement
+ \item Moving code around
+ \item Split code into manageable trunks
+ \item Some basic cleanups:
\begin{itemize}
- \item converted to event-driven model
- \item support per-vcpu parameter
+ \item Use better function names
+ \item Use better coding style
\end{itemize}
- \item Per-cpu reader-writer lock to improve performance
- \end{itemize}
-\end{frame}
-\note{
-}
-
-
-\begin{frame}
- \frametitle{Development update: Hypervisor x86}
- \begin{itemize}
- \item Hypervisor live patching
- \item CPUID leveling
- \item PV guest memory limit bumped to TB range
- \item Intel VT-d Posted Interrupt
- \item Intel Code and Data Prioritization
- \item Intel VMX TSC Scaling
- \item Intel XSave/Xrtors support
- \item Intel Memory Protection Keys
- \end{itemize}
-\end{frame}
-\note{
-}
-
-
-\begin{frame}
- \frametitle{Development update: Hypervisor ARM}
- \begin{itemize}
- \item Server Base Boot Requirement compliance
- \item PSCI 1.0 compatibility
- \item ARM vGICv3 support
- \item Support getting wallclock directly from Xen
- \item Bug fixes for existing platforms
- \end{itemize}
-\end{frame}
-\note{
-}
-
-
-\begin{frame}
- \frametitle{Development update: Toolstack}
- \begin{itemize}
- \item PVUSB support
- \item Hot-plugging of QEMU-backed disks
- \item Soft-reset support
- \item Building and migrating large PV domain
- \item libxenctrl broken into a set of stable libraries
- \item Coarse-grained Lock-stepping Xen part upstreamed
- \end{itemize}
-\end{frame}
-\note{
-}
-
-
-\begin{frame}
- \frametitle{Development update: upcoming }
- \begin{itemize}
- \item PVHv2/HVMLite DomU and Dom0
- \item Livepatching for ARM
- \item IOREQ server for XenGT
- \item Loading arbitrary firmware blob via toolstack
- \item vNVDIMM support
- \item Libxl PVSCSI support
- \item Depriviledged QEMU
- \item Mini-OS balloon driver support
- \item Mini-OS PVHv2/HVMLite mode support
- \item Restartable Dom0
- \item and more ...
- \end{itemize}
-\end{frame}
-\note{
-}
-
-\begin{frame}
- \frametitle{Development update: 4.7 diffstat}
- \begin{itemize}
- \item Added lines: +86378
- \item Removed lines: -28012
- \item Lines of changes: +58366
\end{itemize}
+ \end{itemize}
\end{frame}
-\note{
-}
\begin{frame}
- \frametitle{Development update: Test lab}
+ \frametitle{Game plan for splitting PV and HVM code}
+ \begin{itemize}
+ \item Fine-grained refactoring -- for both PV and HVM code
\begin{itemize}
- \item Work to integrate XTF into OSSTest underway
- \item Work to improve OSSTest throughput underway
+ \item Abstract out a set of guest interfaces
+ \item Adjust internal interfaces between components if necessary
+ \item Fix x86 common code, make PV and HVM configurable
\end{itemize}
+ \end{itemize}
\end{frame}
-\note{
-}
\begin{frame}
- \frametitle{Development update: Guest OSes}
- Linux
- \begin{itemize}
- \item Experimental support in Xen for ACPI on ARM64 machines
- \item Xen wallclock support in Xen and Linux on ARM and ARM64
- \item Xen stolen ticks support in Xen and Linux on ARM and ARM64
- \item Many GICv2 and GICv3 correctness improvements in Xen
- \item Netback dynamic multicast control support
- \item Blkback multiqueue support
- \item Dozens other fixes and minor improvements
- \end{itemize}
+ \frametitle{Game plan for PV ABI in PVH container}
+ \begin{itemize}
+ \item Essentially a stripped down version of Xen hypervisor
+ \item Go through all PV hypercall handlers, identify the ones that need translation
+ \item Further refactor PV guest supporting code: provide the "real PV" handlers and "PV shim" handlers while sharing as much code as possible
+ \item Change the build system to pull in the right objects
+ \end{itemize}
\end{frame}
-\note{
-}
-
\begin{frame}
- \frametitle{Development update: Guest OSes (cont.)}
- FreeBSD
- \begin{itemize}
- \item Netfront multiqueue support
- \item Blkback support for hotplug scripts
- \item Fixes for clock skew during suspend / resume
- \item Netfront packet forwarding fixes
- \end{itemize}
- Mini-OS
+ \frametitle{Current status}
+ \begin{itemize}
+ \item Doing coarse-grained refactoring:
\begin{itemize}
- \item Ballooning support
- \item Build system fixes and cleanup
+ \item Dom0 builder (done)
+ \item Trap handling code (done)
+ \item Memory management code (doing)
+ \item Guest memory accessor
+ \item ...
\end{itemize}
+ \item ETA: None :(
+ \end{itemize}
\end{frame}
-\note{
-}
-
\begin{frame}
\frametitle{\null}
\begin{center}
- \Huge Thank you!
+ \Huge Q\&A
\end{center}
\end{frame}