Commit Graph
274 Commits
Author SHA1 Message Date
kaf24@firebug.cl.cam.ac.uk fd8719a931 Clean up and fix VCPU hotplug and SMP save/restore.
1. No longer hold xenbus_lock while taking down VCPUs
    in SMP suspend path. This allows block device hotplug
    to continue working and so we will not deadlock on
    paging in userspace hotplug code.
 2. Track xenbus and local-admin permitted cpumasks for 
    VCPUs to bring online. So, if a local admin takes a
    CPU down, that won't surprisingly get overridden next
    time the kernel interrogates xenstore.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-28 18:43:30 +01:00
cl349@firebug.cl.cam.ac.uk e8e51446b5 Remove special handling of {set,clear}_in_cr4().
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-03-28 10:09:44 +01:00
kaf24@firebug.cl.cam.ac.uk c671da80d2 Rename generic_page_range as apply_to_page_range, export the symbol
to GPL modules. Rename pte_page parameter to pmd_page (following the
Linux idiom). apply_to_pte_range() should take the pte spinlock.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-23 15:30:00 +01:00
kaf24@firebug.cl.cam.ac.uk c048a39db2 Paravirtualise the CPUID instruction by forcing emulation with an invalid-opcode prefix.
This allows to clear feature flags and hide unsupported features from guests.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-22 19:05:50 +01:00
kaf24@firebug.cl.cam.ac.uk ea509d3a44 Use shiny new mutexes instead of semaphores where possible in our Linux code.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-22 11:55:43 +01:00
kaf24@firebug.cl.cam.ac.uk 8d9256b041 Licensing clarifications in Linux source files:
1. Make it clear in all dual-licensed files that the
    license when distributed with Linux is GPLv2.
 2. Add MODULE_LICENSE(dual) in a few places.
 3. Change many of our EXPORT_SYMBOL() decls to EXPORT_SYMBOL_GPL().
    This is the preference of the Linux maintainers, and avoids any
    trouble down the road if our EXPORT_SYMBOL'ed functions use Linux
    internal interfaces that are GPL only.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-22 11:30:57 +01:00
kaf24@firebug.cl.cam.ac.uk 728b3dab17 Creates a module that exports Xen Hypervisor attributes to sysfs. The
module has a tri-state configuration so it can be a loadable module.

Views the hypervisor as hardware device, uses sysfs as  a scripting
interface for user space tools that need these attributes.

Some user space apps, particularly for systems management, need to
know if their kernel is running in a virtual machine and if so in
what type of virtual machine. This property is contained in the
file /sys/hypervisor/type.

The file hypervisor_sysfs.c creates a generic  hypervisor subsystem
that can be linked to by any hypervisor. The file xen_sysfs.c exports
the xen-specific attributes.

Signed-off-by: Mike D. Day <ncmike@us.ibm.com>
2006-03-21 12:17:19 +01:00
kaf24@firebug.cl.cam.ac.uk ed87d736e9 merge with xen-ia64-unstable.hg 2006-03-18 10:59:11 +01:00
cl349@firebug.cl.cam.ac.uk ce0bcf0e64 Update to Linux 2.6.16-rc6.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>


--HG--
rename : patches/linux-2.6.16-rc5/i386-mach-io-check-nmi.patch => patches/linux-2.6.16-rc6/i386-mach-io-check-nmi.patch
rename : patches/linux-2.6.16-rc5/net-csum.patch => patches/linux-2.6.16-rc6/net-csum.patch
rename : patches/linux-2.6.16-rc5/pmd-shared.patch => patches/linux-2.6.16-rc6/pmd-shared.patch
rename : patches/linux-2.6.16-rc5/smp-alts.patch => patches/linux-2.6.16-rc6/smp-alts.patch
2006-03-18 00:12:26 +00:00
awilliam@xenbuild.aw 824bd8fc88 [IA64] remaining privified insns removed
Privified insns replaced by hyperprivops.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
2006-03-16 12:20:59 -07:00
awilliam@xenbuild.aw 499341ff62 [IA64] remove warning of xen_init()
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
2006-03-15 08:20:28 -07:00
awilliam@xenbuild.aw 44784246fc merge 2006-03-14 13:50:35 -07:00
kaf24@firebug.cl.cam.ac.uk badff410e4 Define a new sched_op hypercall called sched_op_new, which differs from the
legacy hypercall in that it takes a pointer to a block of extra arguments
rather than an opaque unsigned long. The old hypercall still exists, for
backwards compatibility.

The new hypercall supports new sub-command SCHEDOP_poll, which can be used to
wait on a set of event-channel ports with an optional timeout. This is exported
in XenLinux as HYPERVISOR_poll, and used in the pcifront driver to wait on a
response from the pciback driver.

Can also be used for debuggers. :-)

Signed-off-by: Keir Fraser <keir@xensource.com>
Signed-off-by: John Levon <john.levon@sun.com>
2006-03-14 19:33:45 +01:00
kaf24@firebug.cl.cam.ac.uk d82dd13c9e Fix PAE ptep_get_and_clear_full(). The fast path requires us to manually clear
the low half before the high half. Otherwise the compiler may reorder the writes
and validation in Xen will fail.

From: Jan Beulich
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-14 15:25:33 +01:00
kaf24@firebug.cl.cam.ac.uk 1e0419bfee No need to pin/unpin intermediate pagetables in x86/64 xenlinux.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-12 19:37:38 +01:00
awilliam@xenbuild.aw 5950e11777 [IA64] compilation fix hypercall.h
it refers dom0_op_t.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-03-10 09:18:52 -07:00
cl349@firebug.cl.cam.ac.uk 16c73f7f6c Map grant table pages in vmalloc kernel address space instead of fixmap.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-03-10 13:27:24 +00:00
cl349@firebug.cl.cam.ac.uk e2b8c75165 Change the location of the shared_info page for auto_translated_physmap guests.
Instead of putting the page outside of the guests pseudo-physical address
space, we put it next to the other pages filled by the domain builder,
such that the page is already mapped in the initial pagetables and/or a
lowmem-type memory mapping.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-03-09 16:24:57 +00:00
kaf24@firebug.cl.cam.ac.uk b76d31960b Fix 64-bit Linux build.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-08 11:11:53 +01:00
kaf24@firebug.cl.cam.ac.uk 97bdaa5bdf Upgrade all hypercalls to use the new guest_handle interface (on the Xen side).
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-03-07 18:40:42 +01:00
cl349@firebug.cl.cam.ac.uk 343d7d9b01 Cleanup whitespace.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-03-06 17:15:10 +00:00
emellor@leeni.uk.xensource.com f8de6179af Added a 'state' field to the xenbus_device structure, which caches the state
at the local end of the xenbus connection (i.e. that value that is passed
through xenbus_switch_state).  This means that xenbus_probe can wait for all
the boot devices to become ready without having to hurt the store.

Also, fix this probing -- previously, the wrong value was being returned by 
all_devices_ready_, so this polling would only have waited for one device. 

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-03-04 19:10:56 +01:00
cl349@firebug.cl.cam.ac.uk 99e08d6078 linux: clean up setup_arch_post.h
- machine_specific_memory_setup() was unused on x86-64
- machine_specific_modify_cpu_capabilities() must not be __init (for CPU hotplug)
- machine_specific_modify_cpu_capabilities() should be called in similar ways on 32- and 64-bits

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-03-02 15:33:47 +00:00
kaf24@firebug.cl.cam.ac.uk 2f760d09a8 Merge xen-ia64-unstable.hg 2006-03-02 10:49:19 +01:00
vhanquez@kneesa.uk.xensource.com dcb858b089 Removing out-of-date unused file.
current code available in io/xs_wire.h

Signed-off-by: Vincent Hanquez <vincent@xensource.com>
2006-03-02 02:14:45 +00:00
awilliam@xenbuild.aw 8bda27c810 merge 2006-03-01 12:47:25 -07:00
awilliam@xenbuild.aw 138d5932c2 [IA64] Cleanup hypercall.h
Cleanup to hypercall.h of ia64 xenlinux, and remove used stuff.

Signed-off-by Kevin Tian <kevin.tian@intel.com>
2006-02-28 10:13:55 -07:00
cl349@firebug.cl.cam.ac.uk 9d77d697b1 Update to Linux 2.6.16-rc5.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-27 16:56:08 +00:00
cl349@firebug.cl.cam.ac.uk 0a28c5336a Fix non-xen build for: Make the fixmap area moveable in kernel address space.
From: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-27 10:34:03 +00:00
cl349@firebug.cl.cam.ac.uk 566a61fa41 Fix non-xen build for: Move the gate page (vsyscall) out of the fixmap area
into user address space, just below PAGE_OFFSET.

From: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-27 10:27:57 +00:00
cl349@firebug.cl.cam.ac.uk 62d449275c Add include/asm-i386/{fixmap,page}.h to sparse tree.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-27 10:26:01 +00:00
awilliam@xenbuild.aw 3a310f793d merge 2006-02-24 15:41:08 -07:00
awilliam@xenbuild.aw 77f6ce9bd0 [IA64] bug fix reserve_memory()
reserved_region[].start is of virtual address in identity
mapping. not physical address.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-02-24 08:44:34 -07:00
awilliam@xenbuild.aw 28c70b0a59 [IA64] import linux/include/asm-ia64/meminit.h from 2.6.16-rc3.
this is needed for a later patch to modify meminit.h

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-02-24 08:41:21 -07:00
awilliam@xenbuild.aw 979c647186 [IA64] hypercall cleanup
hypercall clean up.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-02-24 08:24:58 -07:00
cl349@firebug.cl.cam.ac.uk bb5d5f577a linux-i386: cleanup head.S, sync default_ldt and {new,boot}_cpu_data with native.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-24 14:41:45 +00:00
kaf24@firebug.cl.cam.ac.uk 9925f4a7dc Remove explicit munging of selector RPLs from Xen Linux x86/64.
Not needed now it's done by Xen.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-02-23 18:27:18 +01:00
cl349@firebug.cl.cam.ac.uk f79142a93d Make the fixmap area moveable in kernel address space.
From: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-23 15:59:54 +00:00
cl349@firebug.cl.cam.ac.uk 7ac0b750e5 Move the gate page (vsyscall) out of the fixmap area into user address space,
just below PAGE_OFFSET.

From: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-23 15:22:19 +00:00
cl349@firebug.cl.cam.ac.uk 14fbb23123 Add include/asm-i386/{a.out,elf}.h to sparse tree
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-23 15:22:17 +00:00
kaf24@firebug.cl.cam.ac.uk 186366e279 Remove some unnecessary diffs vs. native Linux. We now don't use the Xen
FLAT_foo segment selectors at all.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-02-23 15:33:08 +01:00
kaf24@firebug.cl.cam.ac.uk cc0225babb Fix netfront receive path for auto_translate_physmap mode.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-02-23 15:22:12 +01:00
kaf24@firebug.cl.cam.ac.uk 55232abc7e Rename XENFEAT_ring0_kernel to slightly more generic XENFEAT_supervisor_mode_kernel.
Add comments in public header version.h to explain what all the different
feature flags mean. Add a new flag XENFEAT_pae_pgdir_above_4gb to inform the guest
that its PAE page directories do not need to conform to the usual hardware
restriction.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-02-23 11:59:27 +01:00
Ian.Campbell@xensource.com a58703d1ed Add feature flag allowing guest kernel to run in domain 0.
To support this we give kernel GDT entries DPL=0 and use kernel
segment selectors with RPL=0. Xen will crunch these to ring 1 when
they are passed in. When a segment selector is used directly or placed
in a stack frame the guest OS is reponsible for crunching the RPL.

Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
2006-02-22 19:11:23 +00:00
Ian.Campbell@xensource.com 3d7e20748b Move lgdt_finish inline
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
2006-02-22 15:17:04 +00:00
cl349@firebug.cl.cam.ac.uk 471759d839 Update to Linux 2.6.16-rc4.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>


--HG--
rename : patches/linux-2.6.16-rc3/i386-mach-io-check-nmi.patch => patches/linux-2.6.16-rc4/i386-mach-io-check-nmi.patch
rename : patches/linux-2.6.16-rc3/net-csum.patch => patches/linux-2.6.16-rc4/net-csum.patch
rename : patches/linux-2.6.16-rc3/pmd-shared.patch => patches/linux-2.6.16-rc4/pmd-shared.patch
rename : patches/linux-2.6.16-rc3/smp-alts.patch => patches/linux-2.6.16-rc4/smp-alts.patch
2006-02-21 11:19:13 +00:00
cl349@firebug.cl.cam.ac.uk bc5d7734b3 linux-i386: Fix CONFIG_X86_NO_TSS and CONFIG_X86_SYSENTER.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-20 23:01:50 +00:00
cl349@firebug.cl.cam.ac.uk 4d0d0e2ed5 Fix I/O port address for first floppy controller on x86_64.
As a consequence, some of the i386 changes over native code need to also be
added to x86-64.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-20 17:59:41 +00:00
cl349@firebug.cl.cam.ac.uk 49fa33098b Fix read_cr3() and use it.
From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-20 17:34:21 +00:00
cl349@firebug.cl.cam.ac.uk d685638f98 Eliminate x86_64 idt_table.
Add CONFIG_X86_NO_IDT to exclude all code which references the idt table.
Also fix the non-Xen cpu_gdt_init() handling.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2006-02-20 17:32:29 +00:00