Commit Graph
9690 Commits
Author SHA1 Message Date
vhanquez@kneesa.uk.xensource.com 253f67ff6f adjustement to default configs to build BLK_DEV_GENERIC in the kernel directly.
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
2006-04-20 17:09:53 +01:00
kaf24@firebug.cl.cam.ac.uk 4cab737e18 SVM patch to ensure that PAE bit is set for 32bit guests on 32bit PAE,
by using paging levels>=3 rather than ifdef i386.  This patch fixes
the "black screen" hang issue when building w/XEN_TARGET_X86_PAE=y on
32bit.

Tested linux debian and win2003EE guests with pae=1.  The linux
guest boots without error, while the windows guest sometimes hits a
bug() in shadow.c.  Both VT and SVM encounter the same bug.

Signed-off-by: Tom Woller <thomas.woller@amd.com>
2006-04-20 17:02:42 +01:00
vhanquez@kneesa.uk.xensource.com ce969676cb Put back some modules directly in kernel.
ATA_PIIX, PACKET and SECURITY_CAPABILITY are not correctly load on certain
distributions.

Signed-off-by: Vincent Hanquez <vincent@xensource.com>
2006-04-20 15:45:09 +01:00
kaf24@firebug.cl.cam.ac.uk a20dde6f0b In both i386 and x86-64 Linux, using a static variable (and thus
having the potential of missing synchronization there,
as I suspect exists in native Linux) is not needed with the hypercall 
approach. In the hypervisor, the patch adds the
needed synchronization.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2006-04-20 14:10:35 +01:00
kaf24@firebug.cl.cam.ac.uk 8326f5657a Build frontend drivers into the -xen kernels rather than as
modules. Most people's initrd-building tools will not know
about these drivers so it will only cause confusion not to
include them in the kernel core image.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-20 10:38:07 +01:00
vhanquez@kneesa.uk.xensource.com 0ae76444d3 Update -xen configs for 32/64 bits to be closer to what distributions use.
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
2006-04-19 23:16:58 +01:00
stekloff@dyn9047022152.beaverton.ibm.com 05a89012eb Add small memory warning message to domain configuration examples.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
2006-04-19 22:58:24 +01:00
stekloff@dyn9047022152.beaverton.ibm.com ab6021d139 Small Memory fix patch #2: I forgot to change the XmTestDomain method
minSafeMem from 16 to 32.

Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
2006-04-19 22:58:16 +01:00
stekloff@dyn9047022152.beaverton.ibm.com 3be2345829 Fix the 15_create_smallmem_pos.py test, which was failing because the
set console.limit command in the test was never being run. The select in
Console.py was never timing out because there was always someting to read on
the fd, the OOM messages are constant. So the test would hang.

The fix includes:

1) Changing MEM in 15_create_smallmem_pos.py to 32MBs, which is the default
   for the tools that should work.
2) Change the XmConsole init to add an argument to set the console limit
   when it's created.
3) Set a default large limit for console so we won't hang in the future.
4) Added a new 16_create_smallmem_neg.py test to handle failure situation.
5) Added comment in README.

Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
2006-04-19 22:58:03 +01:00
emellor@leeni.uk.xensource.com 00ee1f9b78 Under FC5 multi-line commands in bash script language have to be wrapped
in $(...) instead of '`...`', otherwise the parser seems to get
confused.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-04-19 22:54:49 +01:00
emellor@leeni.uk.xensource.com 6b884f9876 This fixes a path problem with the current ACM scripts.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-04-19 22:52:34 +01:00
kaf24@firebug.cl.cam.ac.uk 67d4dc8624 x86/64 e820-parse-and-map code should skip low 1GB now as that
is mapped by the boot code.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-19 22:28:22 +01:00
kaf24@firebug.cl.cam.ac.uk e59000337f Increase size of level-2 initial PDE identity map from first 64MB of
physical RAM to first 1GB of physical RAM. This allows x86_64 xen to boot
larger dom0 images. Without this changes large dom0 images fail to
boot with "Unknown interrupt" on xen console and wedge.

Signed-off-by: Todd Clayton <todd.clayton@sun.com>
2006-04-19 22:23:44 +01:00
kaf24@firebug.cl.cam.ac.uk 56ff805a16 Fix 64-bit Xen build after new PIT (i8254) code.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-19 22:23:30 +01:00
kaf24@firebug.cl.cam.ac.uk 202f5a0b35 The Xen Hypervisor currently operates a bit differently when the
guest is being debugged. The differences are handling of int3 exception
and missed pit timer injections. The Xen hypervisor should get back to
the normal mode when the gdb connection is closed. With the attached
patch gdbserver properly detaches from the guest when the gdb detaches
or quits.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
2006-04-19 22:19:41 +01:00
kaf24@firebug.cl.cam.ac.uk b9d8354383 Clean up the xenoprofile hypercall interface.
Signed-off-by: Jose Renato Santos <jsantos@hpl.hp.com>
2006-04-19 18:43:39 +01:00
kaf24@firebug.cl.cam.ac.uk 44d4831475 Fix swapped calloc() arguments.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
2006-04-19 18:39:36 +01:00
kaf24@firebug.cl.cam.ac.uk dacb15d5e4 Sync PIT device model with latest qemu and move it to hypervisor.
Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
2006-04-19 18:38:14 +01:00
kaf24@firebug.cl.cam.ac.uk 1a7cc0a83c Replace &foo[0] with foo where the latter seems cleaner
(which is usually, and particularly when its an argument
to one of the bitops functions).

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-19 18:32:20 +01:00
kaf24@firebug.cl.cam.ac.uk 93564fcf10 This patch defines a test_and_clear bitop for cpumask_t pointers.
Also fixes "wrong pointer type" for type specific bitops by using
&foo[0] instead of &foo.

Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
2006-04-19 18:24:49 +01:00
emellor@leeni.uk.xensource.com 0153cc5fcc This is an update on the vTPM installation instructions.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-04-19 16:08:41 +01:00
kaf24@firebug.cl.cam.ac.uk 5473475c0e Only BSP can really do clear_all_shadow_status.
This fixes SMP IA32 VMX guest booting on IA32 xen.

Signed-off-by: Xin Li <xin.b.li@intel.com>
2006-04-16 15:41:31 +01:00
kaf24@firebug.cl.cam.ac.uk caf5ad4416 Clean up new EOI ack method some more and fix unbinding
IRQ from guest (penidng EOIs must be forcibly flushed).

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-16 15:04:21 +01:00
emellor@leeni.uk.xensource.com e264f7c0c4 Merged. 2006-04-15 19:25:21 +01:00
emellor@leeni.uk.xensource.com 3ae4ba6c3c Read the message type out of the message before sending it to xenstored, and
use that saved value when handling the reply.  Xenstored will leave the
message type intact, _except_ when returning an error, in which case it will
change the type to XS_ERROR.  This meant that we failed to remove a
transaction from our internal list if xenstored returned EAGAIN, as we did not
realise that the message was XS_TRANSACTION_END.  This manifested itself as
the intended behaviour until the connection was closed, at which point all of
those failed transactions would erroneously be aborted.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-04-15 19:25:09 +01:00
kaf24@firebug.cl.cam.ac.uk f6b7b3d0c4 Big fixes for the new IO-APIC acknowledging method. The problems
were:
 1. Some critical Xen interrupts could get blocked behind
    unacknowledged guest interrupts. This is avoided by making
    all Xen-bound interrrupts strictly higher priority.
 2. Interrupts must not only be EOIed on the CPU that received
    them, but also in reverse order when interrupts are nested.
    A whole load of logic has been added to ensure this.

There are two boot parameters relating to all this:
 'ioapic_ack=old' -- use the old IO-APIC ACK method
 'ioapic_ack=new' -- use the new IO-APIC ACK method (default)
 'force_intack'   -- periodically force acknowledgement of
                     interrupts (default is no; useful for debugging)

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-15 18:09:52 +01:00
kaf24@firebug.cl.cam.ac.uk e8b7f0719c Remove bogus extern declaration.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-15 15:53:53 +01:00
kaf24@firebug.cl.cam.ac.uk b2eff55649 This patch adds a section to the documentation on the late binding
feature for PCI devices. It provides some examples (mostly stolen from
the e-mail which accompanied the late-binding patch) of how to use the
sysfs attributes for late binding.

This patch was revised from the last documentation patch that I
submitted which included this and some documentation on the permissive
flag. I've divided the two sections up and I'd like this one considered
for acceptance now while I revise the permissive flag code.

Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
2006-04-15 11:28:55 +01:00
kaf24@firebug.cl.cam.ac.uk dcdbc9744c Touch softlockup watchdog while warning user about use of
tls libraries.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-15 10:16:05 +01:00
kaf24@firebug.cl.cam.ac.uk c702fb4c9d Fix whitespace in libxc. Tabs are manually fixed.
Trailing whitespace removed with:
 perl -p -i -e 's/\s+$/\n/g' tools/libxc/*.[ch]

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
2006-04-15 10:07:31 +01:00
kaf24@firebug.cl.cam.ac.uk 660442fdaf Fix SETMAXMEM dom0_op with proper locking.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-15 09:52:32 +01:00
kaf24@firebug.cl.cam.ac.uk 16d1b5e9db Currently, it is possible to set the mem-max value to value lower than
what has been currently allocated to the domain causing the kernel to
crash. This patch validates the value passed in and prevents setting the
value below the current allocation level.

Signed-off-by: ksrinivasan@novell.com
2006-04-15 09:47:55 +01:00
emellor@leeni.uk.xensource.com abd30192c0 This patch enables external devices, such as for example a mounted hard
drive image or a TPM, to be migrated to a remote machine. The patch
hooks into the checkpointing (XendCheckpoint.py) code and performs
migration in 4 different steps:

In a 1st step (step = 0 in the code) migration of all devices of a
domain is 'tested', that means their driver implementations (blkif.py,
netif.py, tpmif.py, usbif.py, pciif.py) are queried whether migration is
possible at all. Currently all device representations respond with a
'yes' (=0), although probably a VM mounting a hard drive partition
should respond with a 'no' (-1) already. This first step is a quick
check to see whether devices can be migrated.

The 2nd step is to do whatever can be done before the domain is
suspended. At this point migration of the device could be initiated, if
at all possible.

The 3rd step is to migrate a device after the domain has been suspended,
meaning that it is not scheduled anymore and the VM is 'settled'. All
devices are called again and a good implementation would initiate the
migration in a background process to achieve as much concurrency as
possible.

The 4th step is to synchronize with the 3rd step. At this point the
implementor has to make sure that anything that was initiated in step 3
has completed. Once all steps 4 have been processed, the VM will resume
on the remove machine.

I have implemented hooks for migration of a virtual TPM in
xen/xend/server/tpmif.py. These hooks call a configurable external
migration tool using the os.popen() call with a fixed command line
parameter set. The implementation refuses to migrate a VM attached to a
virtual TPM if no tool has been provided for migration.
All other devices do not currently overload the 'migrate' method defined
in the DevController.py and therefore will just let migration happen.

I have added hooks for error recovery such that whatever part of
migration has been initiated can be rolled back when any of the devices
fail to migrate in one of the steps. The interface (in tpmif.py) to the
external application now uses os.popen() to allow error handling by
reading the application's output.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-04-14 21:22:09 +01:00
Ryan Harper 73b491c2a0 Allow cpus parameter to xm create to accept a range string by removing the
restriction of cpus accepting only integers.

Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
2006-04-14 21:15:38 +01:00
kaf24@firebug.cl.cam.ac.uk 40212eeb61 Restrict netfront to 256 grant references to avoid
exhausting the global pool.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-04-14 15:05:28 +01:00
kaf24@firebug.cl.cam.ac.uk eea1cdc7f4 Introduce gnttab_empty_grant_references() to check whether grant
references is empty.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-04-14 15:05:04 +01:00
kaf24@firebug.cl.cam.ac.uk 813669dd41 Replace grant-table typedefs with explicit structs.
Reduce MAPTRACK_MAX_ENTRIES to something plausible.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-14 14:54:46 +01:00
kaf24@firebug.cl.cam.ac.uk 8965df86b5 Clean up grant_mapping_t. Increase its size from 4bytes to 8bytes and
removed tight encoding of flag and ref.  This change is xen-internal
so this shouldn't affect domain api.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
2006-04-14 14:40:30 +01:00
kaf24@firebug.cl.cam.ac.uk 5808f24cc1 Use ioremap instead of __va to map VGA memory area (to be uncached).
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
2006-04-14 14:37:19 +01:00
kaf24@firebug.cl.cam.ac.uk f53ffaef76 This patch removes the ignored "Unconditional I/O exiting" setting in VMCS for
the vmx guest since "Use I/O bitmaps" setting is being used.

Signed-off-by: Himanshu Raj <rhim.list@nosuchaddr.com>
2006-04-14 14:33:53 +01:00
kaf24@firebug.cl.cam.ac.uk a7909ccaf6 This patch enables tracing VMEXIT/ENTRY for 64-bit systems.
Signed-off-by: Himanshu Raj <rhim.list@nosuchaddr.com>
2006-04-14 14:31:27 +01:00
kaf24@firebug.cl.cam.ac.uk 6afda10e40 Since we don't reset the proto_csum_blank flag in the skb, the
checksum calculation gets done twice, which is not twice as good as
once.

With this patch, TCP/UDP checksum errors from dom0 are fixed, and
domUs can use TCP/UDP without turning off TX checksum offload.  Normal
non-VLAN bridged configs still work fine, tested with xm-test.

Signed-off-by: Jim Dykman <dykman@us.ibm.com>
2006-04-14 14:23:40 +01:00
kaf24@firebug.cl.cam.ac.uk e4287d87ae This is a patch for XenMon which only applies to the userspace tools.
The primary purpose of this patch is to add support for non-polling 
access to the xen trace buffers. The hypervisor changes have already 
been accepted.

Also included are a few bug fixes and some minor new features:

1. If xenmon is run without first allocating trace buffers (via 
'setsize') and enabling them (via 'tbctl'), then this is done 
automatically using sensible defaults.

2. There was a bug that caused the first second's worth of data output 
from xenmon to be erroneous; This has been fixed.

3. There was a bug that caused xenmon to sometimes not display data for 
newly created domains; This has also been fixed.

4. The xenmon display has a 'heartbeat' which flickers once per second. 
This is to show that xenmon is still alive, even though the display 
isn't changing at all, a situation that can happen sometimes when there 
is nothing at all happening on a particular cpu.

5. Added cpu utilization display to the top of the xenmon window.

6. Added a bunch of options in xenmon to control exactly which metrics 
are displayed, so the screen doesn't get cluttered with stuff you're not 
interested in. The new options are:
  --allocated
  --noallocated
  --blocked
  --noblocked
  --waited
  --nowaited
  --excount
  --noexcount
  --iocount
  --noiocount

7. Added an option ("--cpu=N") to xenmon to specify which physical cpu 
you'd like data displayed for.

8. Updated the README with information about default trace buffer size, etc.

Signed-off-by: Rob Gardner <rob.gardner@hp.com>
2006-04-14 14:21:12 +01:00
kaf24@firebug.cl.cam.ac.uk 2256643d06 Trivial patch to fix x86_64 builds in which XEN_TARGET_ARCH
is specified on the make command line, e.g.:
     make XEN_TARGET_ARCH=x86_64

This busted the vmxassist and hvmloader builds, which must
be done -m32.  Using "override" in the vmxassist/hvmloader
Makefiles fixes the problem by not allowing this to be
overridden from the command line.

Signed-off-by: Dave Lively <dlively@virtualiron.com>
2006-04-14 14:18:39 +01:00
kaf24@firebug.cl.cam.ac.uk 6cd90d7bb2 New IO-APIC ACK method seems to cause problems on some systems
(e.g., Dell 1850). Disable it by default for now, but allow the
new mwethod to be tested by passing boot parameter 'new_ack'
to Xen.

You can tell which ACK method you are using because Xen prints
out "Using old ACK method" or "Using new ACK method" during boot.

This workaround can be removed if/when the problems with the new
ACK method are flushed out.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-14 14:14:24 +01:00
kaf24@firebug.cl.cam.ac.uk 52b9331de2 Fix Xen's interrupt acknowledgement routines on certain
(apparently broken) IO-APIC hardware:
 1. Do not mask/unmask the IO-APIC pin during normal ISR
    processing. This seems to have really bizarre side effects
    on some chipsets.
 2. Since we instead tickle the local APIC in the ->end
    irq hook function, it *must* run on the CPU that
    received the interrupt. Therefore we track which CPUs
    need to do final acknowledgement and IPI them if
    necessary to do so.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-14 12:01:15 +01:00
kaf24@firebug.cl.cam.ac.uk a56425fa9d Call move_irq() during evtchn ->ack irq hook functions. This
triggers SMP affinity work.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-14 11:58:49 +01:00
kaf24@firebug.cl.cam.ac.uk e90ce31de3 Must use __copy_to_user_inatomic() in swiotlb's sync_single()
function, as we cannot sleep there.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-04-14 11:58:11 +01:00
kaf24@firebug.cl.cam.ac.uk e59a11f58d Fix stack corruption in the libxs python interface. domid_t is a short;
instead use uint32_t like we do in xc.c.

Signed-off-by: John Levon <john.levon@sun.com>
2006-04-13 19:14:11 +01:00
vhanquez@kneesa.uk.xensource.com e43071c7b1 add quota to xenstored.
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
2006-04-13 16:21:13 +00:00