Skip to content

Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface

Jeremy Fitzhardinge linux-arch lkml netdev virtualization xen-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest26 patches 164 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26Xen-paravirt_ops: Fix typo in sync_constant_test_bit()s name.include/asm-i386/sync_bitops.h+1 -11 reply
2/26Xen-paravirt_ops: ignore vgacon if hardware not presentdrivers/video/console/vgacon.c+2 -11 reply
3/26Xen-paravirt_ops: use paravirt_nop to consistently mark no-op operationsarch/i386/kernel/paravirt.c include/asm-i386/paravirt.h+14 -117 replies
4/26Xen-paravirt_ops: Add pagetable accessors to pack and unpack pagetable entriesarch/i386/kernel/paravirt.c arch/i386/kernel/vmi.c include/asm-i386/page.h +4 more+178 -1302 replies
5/26Xen-paravirt_ops: paravirt_ops: hooks to set up initial pagetablearch/i386/kernel/paravirt.c arch/i386/mm/init.c include/asm-i386/paravirt.h +1 more+143 -524 replies
6/26Xen-paravirt_ops: paravirt_ops: allocate a fixmap slotinclude/asm-i386/fixmap.h+3 -01 reply
7/26Xen-paravirt_ops: Allow paravirt backend to choose kernel PMD sharingarch/i386/kernel/paravirt.c arch/i386/mm/fault.c arch/i386/mm/init.c +8 more+105 -261 reply
8/26Xen-paravirt_ops: add hooks to intercept mm creation and destructionarch/i386/kernel/paravirt.c include/asm-i386/mmu_context.h include/asm-i386/paravirt.h +3 more+45 -22 replies
9/26Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementationsinclude/asm-alpha/mmu_context.h include/asm-arm/mmu_context.h include/asm-arm26/mmu_context.h +26 more+61 -111 reply
10/26Xen-paravirt_ops: rename struct paravirt_patch to paravirt_patch_site for clarityarch/i386/kernel/alternative.c arch/i386/kernel/vmi.c include/asm-i386/alternative.h +1 more+10 -130 replies
11/26Xen-paravirt_ops: Use patch site IDs computed from offset in paravirt_ops structurearch/i386/kernel/asm-offsets.c arch/i386/kernel/paravirt.c arch/i386/kernel/vmi.c +1 more+70 -940 replies
12/26Xen-paravirt_ops: Fix patch site clobbers to include return registerinclude/asm-i386/paravirt.h+2 -27 replies
13/26Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchableinclude/asm-i386/paravirt.h+442 -13582 replies
14/26Xen-paravirt_ops: add common patching machineryarch/i386/kernel/alternative.c arch/i386/kernel/paravirt.c include/asm-i386/paravirt.h+147 -302 replies
15/26Xen-paravirt_ops: Add apply_to_page_range() which applies a function to a pte range.include/linux/mm.h mm/memory.c+99 -03 replies
16/26Xen-paravirt_ops: Allocate and free vmalloc areasarch/i386/mm/fault.c include/linux/vmalloc.h+47 -02 replies
17/26Xen-paravirt_ops: Add nosegneg capability to the vsyscall page notesarch/i386/kernel/vsyscall-note.S+28 -04 replies
18/26Xen-paravirt_ops: Add XEN config optionsarch/i386/Kconfig arch/i386/xen/Kconfig+12 -02 replies
19/26Xen-paravirt_ops: Add Xen interface header filesinclude/asm-i386/xen/hypercall.h include/asm-i386/xen/hypervisor.h include/asm-i386/xen/interface.h +16 more+2901 -00 replies
20/26Xen-paravirt_ops: Core Xen implementationarch/i386/Makefile arch/i386/kernel/cpu/common.c arch/i386/kernel/entry.S +22 more+2841 -2611 replies
21/26Xen-paravirt_ops: Use the hvc console infrastructure for Xen consolearch/i386/xen/Kconfig arch/i386/xen/events.c drivers/Makefile +3 more+142 -113 replies
22/26Xen-paravirt_ops: Add early printk support via hvc consolearch/x86_64/kernel/early_printk.c drivers/xen/hvc-console.c include/xen/hvc-console.h+36 -01 reply
23/26Xen-paravirt_ops: Add Xen grant table supportdrivers/xen/Makefile drivers/xen/grant-table.c include/xen/grant_table.h+562 -02 replies
24/26Xen-paravirt_ops: Add the Xenbus sysfs and virtual device hotplug driver.arch/i386/xen/Kconfig drivers/xen/Makefile drivers/xen/xenbus/Makefile +9 more+3121 -06 replies
25/26Xen-paravirt_ops: Add Xen virtual block device driver.drivers/block/Kconfig drivers/block/Makefile drivers/block/xen/Kconfig +5 more+1232 -00 replies
26/26Xen-paravirt_ops: Add the Xen virtual network device driver.drivers/net/Kconfig drivers/net/Makefile drivers/net/xen-netfront.c +1 more+2082 -020 replies

Reviews trailers per patch

12 of 26 patches have a Reviewed-by or Acked-by.

PatchZachary AmsdenIngo Molnar
1/26A-b
2/26A-b
3/26A-b
4/26A-b
5/26
6/26A-b
7/26A-b
8/26A-b
9/26A-b
10/26
11/26
12/26
13/26
14/26A-b
15/26A-b
16/26
17/26A-b
18/26
19/26
20/26
21/26
22/26A-b
23/26
24/26
25/26
26/26

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/26] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface

Hi Andi,

This patch series implements the Linux Xen guest as a paravirt_ops backend. The features in implemented this patch series are:
* domU only
* UP only (most code is SMP-safe, but there's no way to create a new vcpu)
* writable pagetables, with late pinning/early unpinning
(no shadow pagetable support)
* supports both PAE and non-PAE modes
* xen hvc console (console=hvc0)
* virtual block device (blockfront)
* virtual network device (netfront)

The patch series is in three parts:
1-2 Cleanup patches to various parts of the kernel
3-15 Extensions to the core code and/or paravirt ops, needed to support
Xen. Includes hooks into get/setting pte values and the new patching machinery.
16-26 The Xen paravirt_ops implementation itself.

(Some of the earlier patches in the series have already been posted,
but are included to make the series self-contained.)

I've tried to make each patch as self-explanatory as possible. The series is based on 2.6.21-rc2-git1.

Changes since the previous posting:
- Moved the arch_*_mmap stubs to asm-generic/mm_hooks.h, and included that in asm-*/mmu_context.h (James Bottomley)
- Use unsigned long consistently for addresses (Andi Kleen)
- Moved xenboot_console declaration to its own header. (Andi Kleen)
- Renamed FIX_PARAVIRT to FIX_PARAVIRT_BOOTMAP to emphasize that its intended for bootstrap only (Ingo Molnar)
- Cleaned up headers a fair bit. Moved a lot of the native_* functions to their "home" headers, so that they can be used either for native paravirt boots, or when CONFIG_PARAVIRT is disabled. This cuts down on duplication, and makes paravirt.h simpler.
- Various cleanups from Adrian Bunk

Thanks,
J