]> xenbits.xensource.com Git - people/liuw/talks.git/commitdiff
First draft
authorWei Liu <wei.liu2@citrix.com>
Tue, 4 Jul 2017 20:41:16 +0000 (21:41 +0100)
committerWei Liu <wei.liu2@citrix.com>
Tue, 4 Jul 2017 20:41:16 +0000 (21:41 +0100)
slides.tex

index d978d2fddb79ac74ea9ed1386b735147d9c5c4cd..f8d74f8576a203dc3ca5cc2f403a414662f99e8c 100644 (file)
 \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}