rpms/kernel/devel kernel-2.6.spec, 1.1222, 1.1223 linux-2.6.11-xen.patch, 1.4, 1.5 linux-2.6.9-xen-compile.patch, 1.31, 1.32

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Apr 1 03:42:50 UTC 2005


Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv25081

Modified Files:
	kernel-2.6.spec linux-2.6.11-xen.patch 
	linux-2.6.9-xen-compile.patch 
Log Message:
upgrade to new upstream Xen code


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1222
retrieving revision 1.1223
diff -u -r1.1222 -r1.1223
--- kernel-2.6.spec	31 Mar 2005 20:42:27 -0000	1.1222
+++ kernel-2.6.spec	1 Apr 2005 03:42:46 -0000	1.1223
@@ -1094,6 +1094,10 @@
 %endif
 
 %changelog
+* Thu Mar 31 2005 Rik van Riel <riel at redhat.com>
+- upgrade to new upstream Xen code
+- for performance reasons, disable CONFIG_DEBUG_PAGEALLOC for FC4t2
+
 * Wed Mar 30 2005 Rik van Riel <riel at redhat.com>
 - fix Xen kernel compilation (pci, page table, put_user, execshield, ...)
 - reenable Xen kernel compilation

linux-2.6.11-xen.patch:
 arch/xen/Kconfig                                    |  170 +
 arch/xen/Kconfig.drivers                            |   57 
 arch/xen/Makefile                                   |   70 
 arch/xen/boot/Makefile                              |    8 
 arch/xen/configs/xen0_defconfig                     | 1099 ++++++++++++
 arch/xen/configs/xenU_defconfig                     |  521 +++++
 arch/xen/i386/Kconfig                               |  971 +++++++++++
 arch/xen/i386/Makefile                              |  102 +
 arch/xen/i386/kernel/Makefile                       |   91 +
 arch/xen/i386/kernel/cpu/Makefile                   |   31 
 arch/xen/i386/kernel/cpu/common.c                   |  648 +++++++
 arch/xen/i386/kernel/cpu/mtrr/Makefile              |   16 
 arch/xen/i386/kernel/cpu/mtrr/main.c                |  165 +
 arch/xen/i386/kernel/entry.S                        | 1077 ++++++++++++
 arch/xen/i386/kernel/head.S                         |  184 ++
 arch/xen/i386/kernel/i386_ksyms.c                   |  194 ++
 arch/xen/i386/kernel/ioport.c                       |  129 +
 arch/xen/i386/kernel/irq.c                          |  258 ++
 arch/xen/i386/kernel/ldt.c                          |  264 +++
 arch/xen/i386/kernel/microcode.c                    |  163 +
 arch/xen/i386/kernel/pci-dma.c                      |  239 ++
 arch/xen/i386/kernel/process.c                      |  752 ++++++++
 arch/xen/i386/kernel/setup.c                        | 1637 ++++++++++++++++++
 arch/xen/i386/kernel/signal.c                       |  656 +++++++
 arch/xen/i386/kernel/smp.c                          |  616 +++++++
 arch/xen/i386/kernel/smpboot.c                      | 1364 +++++++++++++++
 arch/xen/i386/kernel/time.c                         |  809 +++++++++
 arch/xen/i386/kernel/timers/Makefile                |   17 
 arch/xen/i386/kernel/timers/timer_tsc.c             |  379 ++++
 arch/xen/i386/kernel/traps.c                        |  976 +++++++++++
 arch/xen/i386/kernel/vsyscall.S                     |   15 
 arch/xen/i386/kernel/vsyscall.lds                   |   69 
 arch/xen/i386/mm/Makefile                           |   24 
 arch/xen/i386/mm/fault.c                            |  562 ++++++
 arch/xen/i386/mm/highmem.c                          |  100 +
 arch/xen/i386/mm/hypervisor.c                       |  218 ++
 arch/xen/i386/mm/init.c                             |  799 +++++++++
 arch/xen/i386/mm/ioremap.c                          |  442 +++++
 arch/xen/i386/mm/pgtable.c                          |  439 +++++
 arch/xen/i386/pci/Makefile                          |   31 
 arch/xen/i386/pci/direct.c                          |   83 
 arch/xen/i386/pci/irq.c                             |  155 +
 arch/xen/kernel/Makefile                            |   15 
 arch/xen/kernel/ctrl_if.c                           |  566 ++++++
 arch/xen/kernel/devmem.c                            |  158 +
 arch/xen/kernel/evtchn.c                            |  585 ++++++
 arch/xen/kernel/fixup.c                             |   86 
 arch/xen/kernel/gnttab.c                            |  275 +++
 arch/xen/kernel/reboot.c                            |  266 +++
 arch/xen/kernel/skbuff.c                            |   47 
 arch/xen/kernel/smp.c                               |   19 
 arch/xen/kernel/xen_proc.c                          |   18 
 drivers/Makefile                                    |    1 
 drivers/char/mem.c                                  |    6 
 drivers/char/tty_io.c                               |   21 
 drivers/xen/Makefile                                |   13 
 drivers/xen/balloon/Makefile                        |    2 
 drivers/xen/balloon/balloon.c                       |  438 +++++
 drivers/xen/blkback/Makefile                        |    2 
 drivers/xen/blkback/blkback.c                       |  644 +++++++
 drivers/xen/blkback/common.h                        |  117 +
 drivers/xen/blkback/control.c                       |   61 
 drivers/xen/blkback/interface.c                     |  249 ++
 drivers/xen/blkback/vbd.c                           |  274 +++
 drivers/xen/blkfront/Kconfig                        |    6 
 drivers/xen/blkfront/Makefile                       |    3 
 drivers/xen/blkfront/blkfront.c                     | 1411 ++++++++++++++++
 drivers/xen/blkfront/block.h                        |  113 +
 drivers/xen/blkfront/vbd.c                          |  502 +++++
 drivers/xen/blktap/Makefile                         |    3 
 drivers/xen/blktap/blktap.c                         |   87 +
 drivers/xen/blktap/blktap.h                         |  252 ++
 drivers/xen/blktap/blktap_controlmsg.c              |  501 +++++
 drivers/xen/blktap/blktap_datapath.c                |  472 +++++
 drivers/xen/blktap/blktap_userdev.c                 |  471 +++++
 drivers/xen/console/Makefile                        |    2 
 drivers/xen/console/console.c                       |  796 +++++++++
 drivers/xen/evtchn/Makefile                         |    2 
 drivers/xen/evtchn/evtchn.c                         |  430 ++++
 drivers/xen/netback/Makefile                        |    2 
 drivers/xen/netback/common.h                        |  103 +
 drivers/xen/netback/control.c                       |   56 
 drivers/xen/netback/interface.c                     |  380 ++++
 drivers/xen/netback/netback.c                       |  819 +++++++++
 drivers/xen/netfront/Kconfig                        |    6 
 drivers/xen/netfront/Makefile                       |    2 
 drivers/xen/netfront/netfront.c                     | 1300 ++++++++++++++
 drivers/xen/privcmd/Makefile                        |    2 
 drivers/xen/privcmd/privcmd.c                       |  220 ++
 drivers/xen/usbback/common.h                        |   85 
 drivers/xen/usbback/control.c                       |   61 
 drivers/xen/usbback/interface.c                     |  252 ++
 drivers/xen/usbback/usbback.c                       | 1070 ++++++++++++
 drivers/xen/usbfront/usbfront.c                     | 1738 ++++++++++++++++++++
 drivers/xen/usbfront/xhci.h                         |  183 ++
 include/asm-generic/pgtable.h                       |   10 
 include/asm-xen/asm-i386/agp.h                      |   37 
 include/asm-xen/asm-i386/desc.h                     |  142 +
 include/asm-xen/asm-i386/dma-mapping.h              |  177 ++
 include/asm-xen/asm-i386/fixmap.h                   |  171 +
 include/asm-xen/asm-i386/floppy.h                   |  147 +
 include/asm-xen/asm-i386/highmem.h                  |   82 
 include/asm-xen/asm-i386/io.h                       |  425 ++++
 include/asm-xen/asm-i386/mach-xen/irq_vectors.h     |  137 +
 include/asm-xen/asm-i386/mach-xen/setup_arch_post.h |   46 
 include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h  |    5 
 include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h   |   59 
 include/asm-xen/asm-i386/mmu_context.h              |   73 
 include/asm-xen/asm-i386/page.h                     |  203 ++
 include/asm-xen/asm-i386/param.h                    |   23 
 include/asm-xen/asm-i386/pci.h                      |  117 +
 include/asm-xen/asm-i386/pgalloc.h                  |   50 
 include/asm-xen/asm-i386/pgtable-2level-defs.h      |   19 
 include/asm-xen/asm-i386/pgtable-2level.h           |  100 +
 include/asm-xen/asm-i386/pgtable.h                  |  484 +++++
 include/asm-xen/asm-i386/processor.h                |  684 +++++++
 include/asm-xen/asm-i386/ptrace.h                   |   69 
 include/asm-xen/asm-i386/segment.h                  |   96 +
 include/asm-xen/asm-i386/setup.h                    |   66 
 include/asm-xen/asm-i386/spinlock.h                 |  250 ++
 include/asm-xen/asm-i386/synch_bitops.h             |   83 
 include/asm-xen/asm-i386/system.h                   |  521 +++++
 include/asm-xen/asm-i386/tlbflush.h                 |  102 +
 include/asm-xen/asm-i386/vga.h                      |   20 
 include/asm-xen/balloon.h                           |   51 
 include/asm-xen/ctrl_if.h                           |  160 +
 include/asm-xen/evtchn.h                            |  106 +
 include/asm-xen/foreign_page.h                      |   30 
 include/asm-xen/gnttab.h                            |   39 
 include/asm-xen/hypervisor.h                        |  617 +++++++
 include/asm-xen/linux-public/privcmd.h              |   88 +
 include/asm-xen/linux-public/suspend.h              |   43 
 include/asm-xen/queues.h                            |   81 
 include/asm-xen/xen-public/COPYING                  |   28 
 include/asm-xen/xen-public/arch-ia64.h              |  100 +
 include/asm-xen/xen-public/arch-x86_32.h            |  158 +
 include/asm-xen/xen-public/arch-x86_64.h            |  209 ++
 include/asm-xen/xen-public/dom0_ops.h               |  446 +++++
 include/asm-xen/xen-public/event_channel.h          |  176 ++
 include/asm-xen/xen-public/grant_table.h            |  276 +++
 include/asm-xen/xen-public/io/blkif.h               |  100 +
 include/asm-xen/xen-public/io/domain_controller.h   |  771 ++++++++
 include/asm-xen/xen-public/io/ioreq.h               |   61 
 include/asm-xen/xen-public/io/netif.h               |   92 +
 include/asm-xen/xen-public/io/ring.h                |  194 ++
 include/asm-xen/xen-public/io/usbif.h               |   66 
 include/asm-xen/xen-public/physdev.h                |  106 +
 include/asm-xen/xen-public/sched_ctl.h              |   70 
 include/asm-xen/xen-public/trace.h                  |   33 
 include/asm-xen/xen-public/xen.h                    |  474 +++++
 include/asm-xen/xen_proc.h                          |   13 
 include/linux/gfp.h                                 |    6 
 include/linux/highmem.h                             |    2 
 include/linux/irq.h                                 |    1 
 kernel/irq/manage.c                                 |   83 
 mm/highmem.c                                        |    9 
 mm/page_alloc.c                                     |    6 
 157 files changed, 40855 insertions(+), 31 deletions(-)

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.4 -r 1.5 linux-2.6.11-xen.patch
Index: linux-2.6.11-xen.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6.11-xen.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6.11-xen.patch	22 Mar 2005 20:28:30 -0000	1.4
+++ linux-2.6.11-xen.patch	1 Apr 2005 03:42:47 -0000	1.5
@@ -1,6 +1,315 @@
+diff -Nurp pristine-linux-2.6.11/arch/xen/Kconfig tmp-linux-2.6.11-xen.patch/arch/xen/Kconfig
+--- pristine-linux-2.6.11/arch/xen/Kconfig	1969-12-31 19:00:00.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/arch/xen/Kconfig	2005-03-31 13:19:45.000000000 -0500
+@@ -0,0 +1,170 @@
++#
++# For a description of the syntax of this configuration file,
++# see Documentation/kbuild/kconfig-language.txt.
++#
++
++mainmenu "Linux Kernel Configuration"
++
++config XEN
++	bool
++	default y
++	help
++	  This is the Linux Xen port.
++
++config ARCH_XEN
++	bool
++	default y
++
++
++config NO_IDLE_HZ
++	bool
++	default y
++
++
++menu "XEN"
++
++config XEN_PRIVILEGED_GUEST
++	bool "Privileged Guest (domain 0)"
++	default n
++	select XEN_PHYSDEV_ACCESS
++	help
++	  Support for privileged operation (domain 0)
++
++config XEN_PHYSDEV_ACCESS
++	bool "Physical device access"
++	default XEN_PRIVILEGED_GUEST
++	help
++	  Assume access is available to physical hardware devices
++	  (e.g., hard drives, network cards). This allows you to configure
++	  such devices and also includes some low-level support that is
++	  otherwise not compiled into the kernel.
++
++config XEN_BLKDEV_BACKEND
++	bool "Block-device backend driver"
++	depends on XEN_PHYSDEV_ACCESS
++	default y
++	help
++	  The block-device backend driver allows the kernel to export its
++	  block devices to other guests via a high-performance shared-memory
++	  interface.
++
++config XEN_BLKDEV_TAP_BE
++        bool "Block Tap support for backend driver (DANGEROUS)"
++        depends on XEN_BLKDEV_BACKEND
++        default n
++        help
++          If you intend to use the block tap driver, the backend domain will
++          not know the domain id of the real frontend, and so will not be able
++          to map its data pages.  This modifies the backend to attempt to map
++          from both the tap domain and the real frontend.  This presents a
++          security risk, and so should ONLY be used for development
++          with the blktap.  This option will be removed as the block drivers are
++          modified to use grant tables.
++
++config XEN_NETDEV_BACKEND
++	bool "Network-device backend driver"
++	depends on XEN_PHYSDEV_ACCESS
++	default y
++	help
++	  The network-device backend driver allows the kernel to export its
++	  network devices to other guests via a high-performance shared-memory
++	  interface.
++
++config XEN_BLKDEV_FRONTEND
++	bool "Block-device frontend driver"
++	default y
++	help
++	  The block-device frontend driver allows the kernel to access block
++	  devices mounted within another guest OS. Unless you are building a
++	  dedicated device-driver domain, or your master control domain
++	  (domain 0), then you almost certainly want to say Y here.
++
++config XEN_NETDEV_FRONTEND
++	bool "Network-device frontend driver"
++	default y
++	help
++	  The network-device frontend driver allows the kernel to access
++	  network interfaces within another guest OS. Unless you are building a
++	  dedicated device-driver domain, or your master control domain
++	  (domain 0), then you almost certainly want to say Y here.
++
++config XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER
++	bool "Pipelined transmitter (DANGEROUS)"
++	depends on XEN_NETDEV_FRONTEND
++	default n
++	help
++	  The driver will assume that the backend is pipelining packets for
++	  transmission: whenever packets are pending in the remote backend,
++	  the driver will not send asynchronous notifications when it queues
++	  additional packets for transmission.
++	  If the backend is a dumb domain, such as a transparent Ethernet
++	  bridge with no local IP interface, it is safe to say Y here to get
++	  slightly lower network overhead.
++	  If the backend has a local IP interface; or may be doing smart things
++	  like reassembling packets to perform firewall filtering; or if you
++	  are unsure; or if you experience network hangs when this option is
++	  enabled; then you must say N here.
++
++config XEN_BLKDEV_TAP
++	bool "Block device tap driver"
++	default n
++	help
++	  This driver allows a VM to interact on block device channels
++	  to other VMs.  Block messages may be passed through or redirected
++	  to a character device, allowing device prototyping in application
++	  space.  Odds are that you want to say N here.
++
++config XEN_SCRUB_PAGES
++	bool "Scrub memory before freeing it to Xen"
++	default y
++	help
++	  Erase memory contents before freeing it back to Xen's global
++	  pool. This ensures that any secrets contained within that
++	  memory (e.g., private keys) cannot be found by other guests that
++	  may be running on the machine. Most people will want to say Y here.
++	  If security is not a concern then you may increase performance by
++	  saying N.
++
++choice
++	prompt "Processor Type"
++	default X86
++
++config X86
++	bool "X86"
++	help
++	  Choose this option if your computer is a X86 architecture.
++
++config X86_64
++	bool "X86_64"
++	help
++	  Choose this option if your computer is a X86 architecture.
++
++endchoice
++
++endmenu
++
++config HAVE_ARCH_DEV_ALLOC_SKB
++	bool
++	default y
++
++source "init/Kconfig"
++
++if X86
++source "arch/xen/i386/Kconfig"
++endif
++
++menu "Executable file formats"
++
++source "fs/Kconfig.binfmt"
++
++endmenu
++
++source "arch/xen/Kconfig.drivers"
++
++source "fs/Kconfig"
++
++source "security/Kconfig"
++
++source "crypto/Kconfig"
++
++source "lib/Kconfig"
+diff -Nurp pristine-linux-2.6.11/arch/xen/Kconfig.drivers tmp-linux-2.6.11-xen.patch/arch/xen/Kconfig.drivers
+--- pristine-linux-2.6.11/arch/xen/Kconfig.drivers	1969-12-31 19:00:00.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/arch/xen/Kconfig.drivers	2005-03-31 13:19:45.000000000 -0500
+@@ -0,0 +1,57 @@
++# arch/xen/Kconfig.drivers
++
++menu "Device Drivers"
++
++source "drivers/base/Kconfig"
++
++if XEN_PHYSDEV_ACCESS
++source "drivers/mtd/Kconfig"
++source "drivers/parport/Kconfig"
++source "drivers/pnp/Kconfig"
++endif
++
++source "drivers/block/Kconfig"
[...11415 lines suppressed...]
-+ * 
-+ *   val[7:0] == MMUEXT_REASSIGN_PAGE:
-+ *   ptr[:2]  -- A machine address within the page to be reassigned to the FD.
-+ *               (NB. page must currently belong to the calling domain).
 + */
 +#define MMU_NORMAL_PT_UPDATE     0 /* checked '*ptr = val'. ptr is MA.       */
-+#define MMU_MACHPHYS_UPDATE      2 /* ptr = MA of frame to modify entry for  */
-+#define MMU_EXTENDED_COMMAND     3 /* least 8 bits of val demux further      */
++#define MMU_MACHPHYS_UPDATE      1 /* ptr = MA of frame to modify entry for  */
++
++/*
++ * MMU EXTENDED OPERATIONS
++ * 
++ * HYPERVISOR_mmuext_op() accepts a list of mmuext_op structures.
++ * A foreigndom (FD) can be specified (or DOMID_SELF for none).
++ * Where the FD has some effect, it is described below.
++ * 
++ * cmd: MMUEXT_(UN)PIN_*_TABLE
++ * mfn: Machine frame number to be (un)pinned as a p.t. page.
++ *      The frame must belong to the FD, if one is specified.
++ * 
++ * cmd: MMUEXT_NEW_BASEPTR
++ * mfn: Machine frame number of new page-table base to install in MMU.
++ * 
++ * cmd: MMUEXT_NEW_USER_BASEPTR [x86/64 only]
++ * mfn: Machine frame number of new page-table base to install in MMU
++ *      when in user space.
++ * 
++ * cmd: MMUEXT_TLB_FLUSH_LOCAL
++ * No additional arguments. Flushes local TLB.
++ * 
++ * cmd: MMUEXT_INVLPG_LOCAL
++ * linear_addr: Linear address to be flushed from the local TLB.
++ * 
++ * cmd: MMUEXT_TLB_FLUSH_MULTI
++ * cpuset: Set of VCPUs to be flushed.
++ * 
++ * cmd: MMUEXT_INVLPG_MULTI
++ * linear_addr: Linear address to be flushed.
++ * cpuset: Set of VCPUs to be flushed.
++ * 
++ * cmd: MMUEXT_TLB_FLUSH_ALL
++ * No additional arguments. Flushes all VCPUs' TLBs.
++ * 
++ * cmd: MMUEXT_INVLPG_ALL
++ * linear_addr: Linear address to be flushed from all VCPUs' TLBs.
++ * 
++ * cmd: MMUEXT_FLUSH_CACHE
++ * No additional arguments. Writes back and flushes cache contents.
++ * 
++ * cmd: MMUEXT_SET_LDT
++ * linear_addr: Linear address of LDT base (NB. must be page-aligned).
++ * nr_ents: Number of entries in LDT.
++ * 
++ * cmd: MMUEXT_REASSIGN_PAGE
++ * mfn: Machine frame number to be reassigned to the FD.
++ *      (NB. page must currently belong to the calling domain).
++ */
 +#define MMUEXT_PIN_L1_TABLE      0 /* ptr = MA of frame to pin               */
 +#define MMUEXT_PIN_L2_TABLE      1 /* ptr = MA of frame to pin               */
 +#define MMUEXT_PIN_L3_TABLE      2 /* ptr = MA of frame to pin               */
 +#define MMUEXT_PIN_L4_TABLE      3 /* ptr = MA of frame to pin               */
 +#define MMUEXT_UNPIN_TABLE       4 /* ptr = MA of frame to unpin             */
 +#define MMUEXT_NEW_BASEPTR       5 /* ptr = MA of new pagetable base         */
-+#define MMUEXT_TLB_FLUSH         6 /* ptr = NULL                             */
-+#define MMUEXT_INVLPG            7 /* ptr = VA to invalidate                 */
-+#define MMUEXT_FLUSH_CACHE       8
-+#define MMUEXT_SET_LDT           9 /* ptr = VA of table; val = # entries     */
-+#define MMUEXT_SET_FOREIGNDOM   10 /* val[31:16] = dom                       */
-+#define MMUEXT_CLEAR_FOREIGNDOM 11
-+#define MMUEXT_TRANSFER_PAGE    12 /* ptr = MA of frame; val[31:16] = dom    */
-+#define MMUEXT_REASSIGN_PAGE    13
-+#define MMUEXT_NEW_USER_BASEPTR 14
-+#define MMUEXT_CMD_MASK        255
-+#define MMUEXT_CMD_SHIFT         8
++#define MMUEXT_TLB_FLUSH_LOCAL   6 /* ptr = NULL                             */
++#define MMUEXT_INVLPG_LOCAL      7 /* ptr = VA to invalidate                 */
++#define MMUEXT_TLB_FLUSH_MULTI   8 /* ptr = NULL; mask = VCPUs to flush      */
++#define MMUEXT_INVLPG_MULTI      9 /* ptr = VA to inval.; mask = VCPUs       */
++#define MMUEXT_TLB_FLUSH_ALL    10
++#define MMUEXT_INVLPG_ALL       11
++#define MMUEXT_FLUSH_CACHE      12
++#define MMUEXT_SET_LDT          13 /* ptr = VA of table; val = # entries     */
++#define MMUEXT_REASSIGN_PAGE    14
++#define MMUEXT_NEW_USER_BASEPTR 15
 +
-+/* These are passed as 'flags' to update_va_mapping. They can be ORed. */
-+#define UVMF_FLUSH_TLB          1 /* Flush entire TLB. */
-+#define UVMF_INVLPG             2 /* Flush the VA mapping being updated. */
++#ifndef __ASSEMBLY__
++struct mmuext_op {
++    unsigned int cmd;
++    union {
++        /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR, REASSIGN_PAGE */
++        memory_t mfn;
++        /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
++        memory_t linear_addr;
++    };
++    union {
++        /* SET_LDT */
++        unsigned int nr_ents;
++        /* TLB_FLUSH_MULTI, INVLPG_MULTI */
++        unsigned long cpuset;
++    };
++};
++#endif
 +
++/* These are passed as 'flags' to update_va_mapping. They can be ORed. */
++#define UVMF_TLB_FLUSH_LOCAL    1 /* Flush local CPU's TLB.          */
++#define UVMF_INVLPG_LOCAL       2 /* Flush VA from local CPU's TLB.  */
++#define UVMF_TLB_FLUSH_ALL      3 /* Flush all TLBs.                 */
++#define UVMF_INVLPG_ALL         4 /* Flush VA from all TLBs.         */
++#define UVMF_FLUSH_MASK         7
 +
 +/*
 + * Commands to HYPERVISOR_sched_op().
@@ -41979,8 +41214,8 @@
 + */
 +typedef struct
 +{
-+    memory_t ptr;    /* Machine address of PTE. */
-+    memory_t val;    /* New contents of PTE.    */
++    memory_t ptr;       /* Machine address of PTE. */
++    memory_t val;       /* New contents of PTE.    */
 +} PACKED mmu_update_t;
 +
 +/*
@@ -42175,9 +41410,26 @@
 +#endif /* !__ASSEMBLY__ */
 +
 +#endif /* __XEN_PUBLIC_XEN_H__ */
+diff -Nurp pristine-linux-2.6.11/include/asm-xen/xen_proc.h tmp-linux-2.6.11-xen.patch/include/asm-xen/xen_proc.h
+--- pristine-linux-2.6.11/include/asm-xen/xen_proc.h	1969-12-31 19:00:00.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/include/asm-xen/xen_proc.h	2005-03-31 13:19:51.000000000 -0500
+@@ -0,0 +1,13 @@
++
++#ifndef __ASM_XEN_PROC_H__
++#define __ASM_XEN_PROC_H__
++
++#include <linux/config.h>
++#include <linux/proc_fs.h>
++
++extern struct proc_dir_entry *create_xen_proc_entry(
++    const char *name, mode_t mode);
++extern void remove_xen_proc_entry(
++    const char *name);
++
++#endif /* __ASM_XEN_PROC_H__ */
 diff -Nurp pristine-linux-2.6.11/include/linux/gfp.h tmp-linux-2.6.11-xen.patch/include/linux/gfp.h
 --- pristine-linux-2.6.11/include/linux/gfp.h	2005-03-02 02:37:50.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/include/linux/gfp.h	2005-03-16 14:42:24.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/include/linux/gfp.h	2005-03-31 13:21:54.000000000 -0500
 @@ -75,8 +75,12 @@ struct vm_area_struct;
   * optimized to &contig_page_data at compile-time.
   */
@@ -42194,7 +41446,7 @@
  extern struct page *
 diff -Nurp pristine-linux-2.6.11/include/linux/highmem.h tmp-linux-2.6.11-xen.patch/include/linux/highmem.h
 --- pristine-linux-2.6.11/include/linux/highmem.h	2005-03-02 02:38:17.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/include/linux/highmem.h	2005-03-16 14:42:25.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/include/linux/highmem.h	2005-03-31 13:21:54.000000000 -0500
 @@ -13,10 +13,12 @@
  
  /* declarations for linux/mm/highmem.c */
@@ -42210,7 +41462,7 @@
  {
 diff -Nurp pristine-linux-2.6.11/include/linux/irq.h tmp-linux-2.6.11-xen.patch/include/linux/irq.h
 --- pristine-linux-2.6.11/include/linux/irq.h	2005-03-02 02:38:37.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/include/linux/irq.h	2005-03-16 14:42:25.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/include/linux/irq.h	2005-03-31 13:21:54.000000000 -0500
 @@ -74,6 +74,7 @@ extern irq_desc_t irq_desc [NR_IRQS];
  #include <asm/hw_irq.h> /* the arch dependent stuff */
  
@@ -42221,7 +41473,7 @@
  extern cpumask_t irq_affinity[NR_IRQS];
 diff -Nurp pristine-linux-2.6.11/kernel/irq/manage.c tmp-linux-2.6.11-xen.patch/kernel/irq/manage.c
 --- pristine-linux-2.6.11/kernel/irq/manage.c	2005-03-02 02:38:37.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/kernel/irq/manage.c	2005-03-16 14:42:25.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/kernel/irq/manage.c	2005-03-31 13:21:54.000000000 -0500
 @@ -146,9 +146,14 @@ int can_request_irq(unsigned int irq, un
  	return !action;
  }
@@ -42348,7 +41600,7 @@
  EXPORT_SYMBOL(free_irq);
 diff -Nurp pristine-linux-2.6.11/mm/highmem.c tmp-linux-2.6.11-xen.patch/mm/highmem.c
 --- pristine-linux-2.6.11/mm/highmem.c	2005-03-02 02:38:12.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/mm/highmem.c	2005-03-16 14:42:25.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/mm/highmem.c	2005-03-31 13:21:54.000000000 -0500
 @@ -146,6 +146,15 @@ start:
  	return vaddr;
  }
@@ -42367,7 +41619,7 @@
  	unsigned long vaddr;
 diff -Nurp pristine-linux-2.6.11/mm/page_alloc.c tmp-linux-2.6.11-xen.patch/mm/page_alloc.c
 --- pristine-linux-2.6.11/mm/page_alloc.c	2005-03-02 02:38:34.000000000 -0500
-+++ tmp-linux-2.6.11-xen.patch/mm/page_alloc.c	2005-03-16 14:42:25.000000000 -0500
++++ tmp-linux-2.6.11-xen.patch/mm/page_alloc.c	2005-03-31 13:21:54.000000000 -0500
 @@ -332,7 +332,8 @@ void __free_pages_ok(struct page *page, 
  	LIST_HEAD(list);
  	int i;

linux-2.6.9-xen-compile.patch:
 linux-2.6.10/arch/xen/i386/pci/irq.c                              |    1 
 linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h |    2 
 linux-2.6.11/arch/xen/Kconfig                                     |    2 
 linux-2.6.11/arch/xen/i386/kernel/Makefile                        |    2 
 linux-2.6.11/arch/xen/i386/kernel/i386_ksyms.c                    |    5 
 linux-2.6.11/arch/xen/i386/kernel/putuser.S                       |   87 ++++++++++
 linux-2.6.11/arch/xen/i386/kernel/time.c                          |   45 ++++-
 linux-2.6.11/arch/xen/i386/pci/irq.c                              |    4 
 linux-2.6.11/drivers/char/mem.c                                   |    4 
 linux-2.6.11/drivers/char/tty_io.c                                |    2 
 linux-2.6.11/include/asm-generic/pgtable.h                        |    1 
 linux-2.6.11/include/asm-xen/asm-i386/pgtable.h                   |   19 +-
 linux-2.6.11/mm/memory.c                                          |    4 
 linux-2.6.8/arch/xen/i386/kernel/time.c                           |    2 
 linux-2.6.9/Makefile                                              |    2 
 linux-2.6.9/arch/xen/Makefile                                     |    3 
 linux-2.6.9/arch/xen/boot/Makefile                                |    3 
 linux-2.6.9/include/asm-i386/irq.h                                |    4 
 linux-2.6.9/kernel/profile.c                                      |    1 
 19 files changed, 169 insertions(+), 24 deletions(-)

Index: linux-2.6.9-xen-compile.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6.9-xen-compile.patch,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- linux-2.6.9-xen-compile.patch	31 Mar 2005 03:09:41 -0000	1.31
+++ linux-2.6.9-xen-compile.patch	1 Apr 2005 03:42:47 -0000	1.32
@@ -153,38 +153,32 @@
  {
  	pte_t pte = *ptep;
  	int ret = pte_young(pte);
-@@ -270,11 +270,11 @@ static inline int ptep_test_and_clear_yo
- 	return ret;
+@@ -264,7 +264,7 @@ static inline int ptep_test_and_clear_yo
+ 	return test_and_clear_bit(_PAGE_BIT_ACCESSED, &ptep->pte_low);
  }
  
 -static inline void ptep_set_wrprotect(pte_t *ptep)
 +static inline void ptep_set_wrprotect(struct mm_struct * mm, unsigned long addr, pte_t *ptep)
  {
- 	pte_t pte = *ptep;
- 	if (pte_write(pte))
--		set_pte(ptep, pte_wrprotect(pte));
-+		xen_l1_entry_update(ptep, pte_wrprotect(pte).pte_low);
- }
- static inline void ptep_mkdirty(pte_t *ptep)
- {
-@@ -448,6 +448,17 @@ do {				  					\
+ 	if (pte_write(*ptep))
+ 		clear_bit(_PAGE_BIT_RW, &ptep->pte_low);
+@@ -434,6 +434,16 @@ do {				  					\
  	}								\
  } while (0)
  
 +#define set_pte_at_new(__mm, __address, __ptep, __entry)		\
 +do {									\
 +	if (likely((__mm) == current->mm)) {				\
-+		xen_flush_page_update_queue();				\
 +		HYPERVISOR_update_va_mapping((__address),		\
-+					     __entry, 0);		\
++						__entry, 0);		\
 +	} else {							\
 +		xen_l1_entry_update((__ptep), (__entry).pte_low);	\
 +	}								\
 +} while (0)
-+		
- /* NOTE: make_page* callers must call flush_page_update_queue() */
++
  void make_lowmem_page_readonly(void *va);
  void make_lowmem_page_writable(void *va);
+ void make_page_readonly(void *va);
 --- linux-2.6.11/mm/memory.c.xen	2005-03-22 11:58:40.000000000 -0500
 +++ linux-2.6.11/mm/memory.c	2005-03-22 13:00:27.000000000 -0500
 @@ -1700,7 +1700,7 @@ do_anonymous_page(struct mm_struct *mm, 
@@ -207,15 +201,15 @@
  			page_add_anon_rmap(new_page, vma, address);
 --- linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h	2005-03-21 22:39:28.000000000 -0600
 +++ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h	2005-03-22 15:55:40.000000000 -0600
-@@ -40,7 +40,7 @@ do { \
-  * each domain will have separate page tables, with their own versions of
-  * accessed & dirty state.
-  */
--static inline pte_t ptep_get_and_clear(pte_t *xp)
-+static inline pte_t ptep_get_and_clear(struct mm_struct * mm, unsigned long address, pte_t *xp)
- {
- 	pte_t pte = *xp;
- 	if (pte.pte_low)
+@@ -17,7 +17,7 @@
+ #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)
+ #define set_pmd(pmdptr, pmdval) xen_l2_entry_update((pmdptr), (pmdval))
+ 
+-#define ptep_get_and_clear(xp)	__pte_ma(xchg(&(xp)->pte_low, 0))
++#define ptep_get_and_clear(mm, address, xp)	__pte_ma(xchg(&(xp)->pte_low, 0))
+ #define pte_same(a, b)		((a).pte_low == (b).pte_low)
+ /*
+  * We detect special mappings in one of two ways:
 --- linux-2.6.11/arch/xen/Kconfig.xen	2005-03-23 15:19:50.000000000 -0500
 +++ linux-2.6.11/arch/xen/Kconfig	2005-03-23 15:20:33.000000000 -0500
 @@ -167,6 +167,8 @@ source "arch/xen/Kconfig.drivers"
@@ -408,10 +402,10 @@
  
  obj-y	:= process.o signal.o entry.o traps.o \
  		time.o ioport.o ldt.o setup.o \
--		pci-dma.o i386_ksyms.o
-+		pci-dma.o i386_ksyms.o putuser.o
+-		pci-dma.o i386_ksyms.o irq.o
++		pci-dma.o i386_ksyms.o irq.o putuser.o
  
- c-obj-y	:= semaphore.o irq.o vm86.o \
+ c-obj-y	:= semaphore.o vm86.o \
  		ptrace.o sys_i386.o \
 --- linux-2.6.11/arch/xen/i386/kernel/i386_ksyms.c.orig	2005-03-30 22:07:13.000000000 -0500
 +++ linux-2.6.11/arch/xen/i386/kernel/i386_ksyms.c	2005-03-30 22:07:48.000000000 -0500




More information about the fedora-cvs-commits mailing list