Commit Graph
109 Commits
Author SHA1 Message Date
kfraser@localhost.localdomain 87f272150c linux: Add trivial forwarding of dma_{,un}map_page when not using highmem
Use non-trivial dma_{un,}map_page only when CONFIG_HIGHMEM, allowing
to not compile swiotlb_{un,}map_page in that case, which in neither
case need exporting.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-01-12 15:35:52 +00:00
kfraser@localhost.localdomain d779bf9529 linux: Reduce restrictions on address width for DMA operations
Use address width needed by device rather than dma_bits in
dma_alloc_coherent().
Probe supported address width in swiotlb initialization.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-01-12 15:34:30 +00:00
kfraser@localhost.localdomain e8922851b5 [LINUX] swiotlb: eliminate KM_SWIOTLB and thus the need for a Xen-specific kmap_types.h.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-01-12 10:31:16 +00:00
kfraser@localhost.localdomain 9f7105d6ac linux/i386: allow CONFIG_HIGHPTE on i386
While, as discussed, the performance impact of this option is
certainly higher than on native Linux, the option should not be
entirely disallowed if people want to sacrifice performance for less
lowmem pressure.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-01-12 10:28:54 +00:00
kfraser@localhost.localdomain 576a882bc5 [LINUX] dma: Use swiotlb mask for coherent mappings too
The recent change to use a default DMA bit width of 30 bits (required
by chips like the b44) only converted the streaming DMA primitives.
The coherent mappings are still hard-coded to 31 bits.  This means
that b44 still doesn't work under Xen.

This patch makes the io_tlb_dma_bits variable global and uses it for
coherent memory mappings.

Thanks to Calvin Webster for providing a machine with a b44 and 2G
of memory I've been able to verify that this finally makes the b44
work under Xen.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Rename 'io_tlb_dma_bits' to the more correct 'dma_bits'. This also
affects the name of the boot parameter, which is now 'dma_bits='.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-20 11:21:04 +00:00
Ian Campbell 69f0c953b4 [LINUX] Kexec: Reapply kexec patches to sparse tree.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2006-12-08 11:47:09 +00:00
Ian Campbell 24a9aad534 [LINUX] Kexec: add kexec files to sparse tree.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2006-12-08 11:47:09 +00:00
Ian Campbell 92491dae02 [XEN] Kexec / Kdump: x86_32 specific code
This patch contains the x86_32 implementation of Kexec / Kdump for Xen.

Signed-Off-By: Magnus Damm <magnus@valinux.co.jp>
Signed-Off-By: Simon Horman <horms@verge.net.au>
2006-11-30 12:38:51 +00:00
kfraser@localhost.localdomain b63e5446b8 [XEN] Cleanups to phys/mach address handling.
1. Balloon driver does not need to set M2P entry.
    This is done by the populate_physmap hypercall.

 2. Xen now translates foreign mappings from GMFN->MFN.
    Tools are simplified because of this.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-11-27 14:20:44 +00:00
kfraser@localhost.localdomain e9542d25de [HVM] Fix building PV-on-HVM drivers on i386.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-11-27 10:02:24 +00:00
kfraser@localhost.localdomain 217b97f42d [LINUX] Make xen /dev/mem aware of IA64 to use X.
The original /dev/mem (linux/drivers/char/mem.c) is aware of IA64
specific issues. On the other hand paravirtualized /dev/mem
(linux-2.6-xen-sparse/drivers/xen/char/mem.c) is simplifed not to be
aware of IA64. This patch makes it IA64-aware to use X on domain0/IA64.
With this patch and ia64-specific patches, X server can boot on domain0/IA64.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-11-22 10:23:14 +00:00
kfraser@localhost.localdomain b77e35477f [XENOPROFILE] Update xenoprof linux side patch following Renato's comment.
- compilation fix when CONFIG_OPROFILE=m with minor clean up
 - don't export xenoprof_is_primary.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-11-22 09:51:20 +00:00
kfraser@localhost.localdomain 17bdaf4a74 [XENOPROF] Make xenoprof of linux side arch generic with some bug fixes.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-11-22 09:50:37 +00:00
kfraser@localhost.localdomain a832c0ef5b [XENOPROFILE] Split linux-2.6-xen-sparse/arch/i386/oprofile/xenoprof.c into
linux-2.6-xen-sparse/drivers/xen/xenoprof/xenoprofile.c
without code changes except slight adjustment to compile.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-11-22 09:49:55 +00:00
kfraser@localhost.localdomain 1a9e089e65 [LINUX] Preserve flags when converting PTEs from machine to phys.
Signed-off-by: John Byrne <john.l.byrne@hp.com>
2006-11-14 11:57:53 +00:00
kfraser@localhost.localdomain b63bf4c482 [LINUX] Support variable hypervisor_virt_start.
Introduce a new elfnote that specifies the lower boundary the kernel
wants to tolerate for the hypervisor hole.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-11-10 17:35:09 +00:00
kfraser@localhost.localdomain afb74c5973 Revert 12361:32f7b40ace426d3acdf26c21c20cb6b4562d9f10.
We should support the XENMEM_memory_map hypercall properly
to fix this issue.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-11-10 14:53:00 +00:00
kfraser@localhost.localdomain 6de27d5b5e [LINUX] Extend physical mapping to maxmem instead of mem
As currently physical mapping only reaches the initial reservation,
we're unable to balloon up to more than mem (even when maxmem > mem)
in any situation.

Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
2006-11-10 14:22:30 +00:00
kfraser@localhost.localdomain 66d409985f [LINUX] Clean up header includes (gnttab.h from fixmap.h).
include/asm-{i386,x86_64}/mach-xen/asm/fixmap.h was needlessly
including include/xen/gnttab.h. Removing this made necessary explicit
inclusion of that header in tpm_xen.c, the build of which should not
have succeeded on non-x86 architectures before.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-11-03 12:10:02 +00:00
kfraser@localhost.localdomain 11b39cba56 [LINUX] Fix build breakage from previous patch.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-10-30 14:28:29 +00:00
kfraser@localhost.localdomain 3d91901864 [LINUX] Use CONFIG_XEN_COMPAT_030002 where possible.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-10-30 14:14:46 +00:00
kfraser@localhost.localdomain fa088340b4 [LINUX] Declare structs as 'static __initdata' where possible.
Probably still not catching all possible cases, but using static
(where not already the case) makes the code size smaller, and using __initdata
has the usual advantages.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-10-30 14:09:13 +00:00
Ian Campbell 06b12ba822 PV-on-HVM: Add infrastructure for a compatibility shim in order to
support PV-on-HVM drivers for older kernel releases.

The compatability code is included in the xen-platform-pci module
since this module underpins all the others.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
2006-10-25 13:58:30 +01:00
kfraser@localhost.localdomain b3ea76b1e0 [HVM] Clean ups for PV-on-HVM drivers. In particular, platform-pci
driver can now handle multi-page hypercall stub areas.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-22 17:16:58 +01:00
kaf24@localhost.localdomain 35f4fc005c [LINUX] Replace uses of CONFIG_XEN_PRIVILEGED_GUEST with is_initial_xendomain().
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-08-19 12:08:12 +01:00
kfraser@localhost.localdomain e3e351919c [LINUX] Define is_initial_xendomain() to zero for HVM drivers.
Signed-off-by: Steven Smith <ssmith@xensource.com>
2006-08-16 16:16:32 +01:00
kfraser@localhost.localdomain b8f69c1f51 [NET] back: Support copying packets to the frontend on receive path.
Signed-off-by: Steven Smith <ssmith@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-16 16:01:00 +01:00
kfraser@localhost.localdomain 2b88d7ed5f [LINUX] Provide a handy macro for detrmining if we are domain0.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-14 14:44:31 +01:00
kfraser@localhost.localdomain 30b586b9fb [LINUX] Split useful bits of page.h into new header maddr.h.
Split the bits of page.h which are needed by PV-on-HVM drivers out
into a separate header file, so that it's a bit easier to get the xenolinux
machine address functions when compiled against a native kernel.

Signed-off-by: Steven Smith <ssmith@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-14 13:54:10 +01:00
kfraser@localhost.localdomain 13fbff7760 [HVM] Add stubs to Linux for the new hvm_op hypercall.
Signed-off-by: Steven Smith <ssmith@xensource.com>
2006-08-14 11:33:50 +01:00
Ian.Campbell@xensource.com 0f5fbb45a0 Fix BUG_ON on switch_mm if XENFEAT_writable_page_tables is enabled.
Signed-of-by: Ian Campbell <ian.campbell@xensource.com>
2006-08-09 11:26:11 +01:00
kaf24@firebug.cl.cam.ac.uk 7e9fd035da [LINUX] Fix a couple of benign diffs against vanilla spinlock.h.
From: Jan Beulich
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-07 16:07:20 +01:00
kfraser@localhost.localdomain 177155de98 [LINUX] Do not early-unpin pagetables that contain foreign mappings.
This fixes a bug whereby foreign pages were freed by the unpin, which
then become owned by the local domain before it destroys its ptes.
It therefore (erroneously) detects the mappings as local and so
updates reference counts, leading to crashes.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-08-01 15:48:48 +01:00
kfraser@localhost.localdomain 160bfb4e1c [LINUX] update_va_mapping multicalls: Use MULTI_UVMxxx_INDEX where possible.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-07-28 17:25:20 +01:00
kfraser@localhost.localdomain 3863ac76d1 [LINUX] Define dma_get_cache_alignment even on x86/64.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-07-10 17:33:45 +01:00
kaf24@firebug.cl.cam.ac.uk 10e88b13f4 Use explicit accessors to handle unusually-sized atomic operations in grant table code.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
2006-06-30 10:10:39 +01:00
kfraser@dhcp93.uk.xensource.com 19c8828f4b Add new XENMEM_machphys_mapping to get info about location and
sizeof of the mach2phys table default mapping. Use this in Linux to
dynamically adapt the mfn_to_pfn() routine to undelrying hypervisor.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-20 14:45:46 +01:00
kfraser@dhcp93.uk.xensource.com 0f296e1985 [LINUX] Another fix to i386 mfn_to_pfn().
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-20 13:45:23 +01:00
kfraser@dhcp93.uk.xensource.com 2a2bc9fabb [LINUX] Fix i386 build -- define max_mapnr in mfn_to_pfn().
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-20 13:42:08 +01:00
kfraser@dhcp93.uk.xensource.com 5363eb610a Export machine_to_phys start and end addresses to guests.
Use this info in Linux to bounds-check accesses to the
m2p table.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-20 12:01:09 +01:00
kaf24@firebug.cl.cam.ac.uk 1bf1344c7c [LINUX][PAE] Fix e820 setup for PAE guests: preserve high-order bits of max_pfn.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-15 13:30:35 +01:00
kaf24@firebug.cl.cam.ac.uk 1d0986e6b4 [LINUX] Eliminates a deadlock and reduce (sometimes significantly) the time
interrupts are off during context switch.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-06-13 15:56:28 +01:00
Ian.Campbell@xensource.com c9c67d5a02 [LINUX] Correctly return the results of {event_channel_op,physdev_op}_compat
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2006-06-13 10:14:20 +01:00
kaf24@firebug.cl.cam.ac.uk 3729abf36e [LINUX] Rename hw_resend_irq to allow it to be defined seperately per arch.
Signed-off-by Kevin Tian <kevin.tian@intel.com>
2006-06-07 14:38:36 +01:00
kaf24@firebug.cl.cam.ac.uk 44beffcd61 [LINUX] Simply shared_info mapping code. Always use a fixmap.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-02 19:14:44 +01:00
kaf24@firebug.cl.cam.ac.uk 6d747ccc8f [PAE] Fix support for pgdirs above 4GB. Requires an interface change so that %cr3
is extended to include high-order address bits at bottom of %cr3 value.
Guests who understand this interface change publish the fact by setting the
option 'PAE=yes[extended-cr3]' in their __xen_guest section.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-06-02 11:46:24 +01:00
kaf24@firebug.cl.cam.ac.uk 9fea9fb410 [ACM] Add a hypervisor call macro to the linux kernel; it
completes the alignment of the ACM call interface with the other Xen 
hypervisor call interfaces. This macro is used to call from the a guest 
kernel directly into the ACM hypervisor module.

Signed-off by: Reiner Sailer <sailer@us.ibm.com>
Signed-off by: Bryan D. Payne <bdpayne@us.ibm.com>
2006-05-31 07:23:54 +01:00
kaf24@firebug.cl.cam.ac.uk 6b85882e12 Fix x86/64 definition of dma_get_cache_alignment().
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-05-31 07:20:36 +01:00
kaf24@firebug.cl.cam.ac.uk 3231ebb6ba Define halt() and safe_halt() properly for Linux-on-Xen. Remove duplicated
code for initial bringup of secondary VCPUs.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-05-30 13:29:29 +01:00
Ian.Campbell@xensource.com 87fa9db8a1 Convert x86/32 Linux to use the new memory map hypercall.
This change removes several of the differences between the bare-metal
and Xen versions.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2006-05-22 09:23:03 +01:00