0
PV-ops Linux kernel update

Jeremy Fitzhardinge &
Konrad Rzeszutek Wilk




   Xen Summit at AMD    1
    April 28-29, 2010
Agenda

   Primer on para-virtualized operations
   Pros & cons of PV-ops vs XenLinux
   Upstream strategy
   Current ...
Primer (1/2)

   http://wiki.xensource.com/xenwiki/XenParavirtOps
   Linux kernel can be booted on:
       Baremetal
  ...
Primer (2/2)

   Para-Virtualization Operations (PV-ops):
       Detects if running in HVM, VMWare, Xen, KVM
       Pat...
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 ...
PV-ops & XenLinux (2/2)

   http://wiki.xensource.com/xenwiki/XenDom0Kernels
       XenLinux distros:
                 ...
Upstream strategy (1/3)

   Three code ”camps”:
       DomU (unprivileged PV guests). Mostly frontend
        drivers an...
Upstream strategy (2/3)

   Jeremy git branch has DomU, Dom0 and
    shared code.
   Konrad git has DomU and shared code...
Upstream strategy (3/3)

   Three-pronged strategy:
       Constantly refactor code for upstream submission.
       Sta...
Status (1/3) - refactoring

   SWIOTLB changes submitted upstream
       Xen-SWIOTLB – waiting
       Xen PCI and Xen P...
Status (2/3) - stabilizing

   xen/stable-2.6.[31|32|33].x:
       Community providing many reports
       And patches ...
Status (3/3) - rebasing

   Konrad's pv/pcifront-2.6.3[X] and swiotlb-0.Y
    rebased to keep up with upstream tree.
    ...
Outstanding issues

   Desktop video card (Nvidia, ATI, Intel)
   http://wiki.xensource.com/xenwiki/XenPVOPSDRM
       ...
Thanks

   Thanks to Xen community who have taken the
    time and effort to work with and on the PV-ops
    kernel.




...
Jeremy's GIT branches

   git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
        xen/next – base Xen devel...
Konrad's GIT branches

   git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git
        pv/pcifront-2.6.[32|33|34...
Stefano's GIT branches

   git://xenbits.xen.org/people/sstabellini/linux-pvhvm
       2.6.32-pvhvm – development branch...
Upcoming SlideShare
Loading in...5
×

PVOps Update

4,702

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,702
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
74
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "PVOps Update "

  1. 1. PV-ops Linux kernel update Jeremy Fitzhardinge & Konrad Rzeszutek Wilk Xen Summit at AMD 1 April 28-29, 2010
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×