Your SlideShare is downloading. ×
  • Like
PVOps Update
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,605
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
73
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PV-ops Linux kernel update Jeremy Fitzhardinge & Konrad Rzeszutek Wilk Xen Summit at AMD 1 April 28-29, 2010
  • 2. Agenda  Primer on para-virtualized operations  Pros & cons of PV-ops vs XenLinux  Upstream strategy  Current status  Outstanding issues  Explanation of GIT branches Xen Summit at AMD 2 April 28-29, 2010
  • 3. Primer (1/2)  http://wiki.xensource.com/xenwiki/XenParavirtOps  Linux kernel can be booted on:  Baremetal  Hardware assisted virtualization (HVM)  Para-virtualization (PV)  PV requires modifications in the Linux kernel.  In the past, two variants of the kernel:  baremetal (which can also do HVM) - kernel  Para-virtualized kernel (kernel-xen) Xen Summit at AMD 3 April 28-29, 2010
  • 4. Primer (2/2)  Para-Virtualization Operations (PV-ops):  Detects if running in HVM, VMWare, Xen, KVM  Patches all low-level privileged operations (memory updates, spinlocks, etc) with appropiate virtualization aware calls.  End-result:  One kernel to boot under different X86 platforms.  Lower QA  No #ifdef CONFIG_XEN (frowned on by everybody) Xen Summit at AMD 4 April 28-29, 2010
  • 5. PV-ops & XenLinux (1/2)  XenLinux (2.6.18, 2.6.27, 2.6.31, 2.6.32):  Runs only under Xen.  Has much big breadth of Xen back/front drivers (PV scsi, PV usb, Netchannel 2) and can work with proprietary drivers: nvidia, acronis snapapi, etc.  Super stable (2.6.18, 2.6.27)  Not upstreamable  Performance  PV-ops (2.6.31, 2.6.32):  Lower testing requirements (one kernel)  Share code base with X86 common code function. Xen Summit at AMD 5  New development April 28-29, 2010
  • 6. PV-ops & XenLinux (2/2)  http://wiki.xensource.com/xenwiki/XenDom0Kernels  XenLinux distros:  RHEL5, OVM  OpenSUSE 11/SLES11  Debian (lenny, etch)  XenSource (XCP)  PV-ops distributions:  Fedora Core (unofficial)  http://myoung.fedorapeople.org/dom0  Debian squeeze  http://packages.debian.org/xen-linux-system-2.6.32 Xen Summit at AMD 6 April 28-29, 2010
  • 7. Upstream strategy (1/3)  Three code ”camps”:  DomU (unprivileged PV guests). Mostly frontend drivers and Linux has many already in: Network, Disk, Framebuffer, Keyboard, and Console. Missing: PCI frontend.  Dom0 (privileged PV guest). Main guest handling PCI devices, ACPI, IOAPIC, KMS, XServer. PAT, MTRR, MSI, etc. None are upstream.  Shared between baremetal, DomU and Dom0. For example: Software IOMMU (SWIOTLB). Xen Summit at AMD 7 April 28-29, 2010
  • 8. Upstream strategy (2/3)  Jeremy git branch has DomU, Dom0 and shared code.  Konrad git has DomU and shared code.  Strategy is to seperate the functionality patches in separate branches so they can be submitted upstream as whole ”functional” pieces. For example: xen/core, xen/dom0/apic  But many are built on top of each other. For example: XenPCI front requires Xen-SWIOTLB. Xen Summit at AMD 8 April 28-29, 2010
  • 9. Upstream strategy (3/3)  Three-pronged strategy:  Constantly refactor code for upstream submission.  Stabilize existing Dom0 branch so that distros can pick it up (Debian, Fedora, Qubes-OS, XenServer)  Rebase existing branches against newer kernels to keep up Xen Summit at AMD 9 April 28-29, 2010
  • 10. Status (1/3) - refactoring  SWIOTLB changes submitted upstream  Xen-SWIOTLB – waiting  Xen PCI and Xen PCI frontend– waiting  Has been tested by community members with success  pv/merge-2.6.33, pv/merge.2.6.34-rc3  PV on HVM – work in progress  PAT – being tested  IO APIC/ACPI – researching solution  MSI – researching solution Xen Summit at AMD 10 April 28-29, 2010
  • 11. Status (2/3) - stabilizing  xen/stable-2.6.[31|32|33].x:  Community providing many reports  And patches as well  And Wiki writeups!  Tracking mainline long-term stable-2.6.[31|32|33] while incorporating Xen fixes  xen/next is the development branch:  Xen bug-fixes only  New ideas on solving problems (ACPI GSI IRQ 20)  What is stable trickles down to xen/stable-2.6.[31|32| 33].x Xen Summit at AMD 11 April 28-29, 2010
  • 12. Status (3/3) - rebasing  Konrad's pv/pcifront-2.6.3[X] and swiotlb-0.Y rebased to keep up with upstream tree.  Unprivileged PV (DomU) and X86 shared code  git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git  Jeremy's xen/stable-2.6.3[X]:  privileged & unprivileged PV & X86 shared code.  git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git  .34 still work in progress Xen Summit at AMD 12 April 28-29, 2010
  • 13. Outstanding issues  Desktop video card (Nvidia, ATI, Intel)  http://wiki.xensource.com/xenwiki/XenPVOPSDRM  DRM  X Server  Kernel Mode Setting  Direct Rendering Manager/TTM  Network between DomU and Dom0 Xen Summit at AMD 13 April 28-29, 2010
  • 14. Thanks  Thanks to Xen community who have taken the time and effort to work with and on the PV-ops kernel. Xen Summit at AMD 14 April 28-29, 2010
  • 15. Jeremy's GIT branches  git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git  xen/next – base Xen developments against 2.6.32, no kernel updates or fixes  xen/stable-2.6.[31|32|33] – tracking mainline long-term stable-2.6.[31|32|33] while incorporating Xen updates  xen/core – PV and shared code. PTE, IRQ  xen/dev-evtchn – PV and shared code. Events  xen/dom0/core – privileged PV (dom0) code. MTRR, PAT, HPET, etc  xen/dom0/msi – privileged PV (dom0) MSI code  xen/backend/core – Xen backend base Xen Summit at AMD 15 April 28-29, 2010
  • 16. Konrad's GIT branches  git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git  pv/pcifront-2.6.[32|33|34] – Xen PCI & Xen PCI frontend driver.  xen-swiotlb-0.7 – latest Xen-SWIOTLB code  pv/merge.2.6.[32|33|34] – both branches above combined Xen Summit at AMD 16 April 28-29, 2010
  • 17. Stefano's GIT branches  git://xenbits.xen.org/people/sstabellini/linux-pvhvm  2.6.32-pvhvm – development branch Xen Summit at AMD 17 April 28-29, 2010