Commit Graph
12728 Commits
Author SHA1 Message Date
Ewan Mellor bcf6d372d8 Diagnose a failing server, rather than just locking up the whole daemon.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 13:56:27 +00:00
Ewan Mellor d529c3d93b Added rudimentary "xend reload" functionality. This allows you to reconfigure
the services offered by Xend, without restarting the daemon itself.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 13:37:53 +00:00
Ewan Mellor aeb915bbac Tidy error message.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:27:23 +00:00
Ewan Mellor 3dca648478 More capitalisation fixes.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:24:54 +00:00
Ewan Mellor 78bc404b6b With PERMISSIVE turned on, diagnose missing Enums and Bools, and improve the
diagnosis of missing structure values.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-04 10:20:56 +00:00
kfraser@localhost.localdomain a52cacaef9 [QEMU] Error reporting in IDE device model.
Following on from my patch to make blktap report I/O errors back to
guest OS, a similar problem exists in the QEMU codebase. The IDE
driver never reports I/O errors during read/write operations back to
the guest OS. Instead all I/O operations are reported as
succesfull. If, for example, the host FS holding the disk image fills
up, then writes may fail due to lack of space. Since the guest OS
never sees these failures, it assumes all is well & will continue
writing. Eventually this can lead to severe & unrecoverable filesystem
corruption.

The attached patch fixes QEMU ide driver such that any failure of a
read or write operation sets the appropriate IDE status/error
registers. Having read the ATA-6 spec I think the most compliant
behaviour is to set the status register to 'READY_STAT | ERR_STAT',
and the error register to ABRT_ERR. There is already a convenience
function ide_abort_command() in the QEMU codebase which does just
this, so the attached patch simply calls that function.

With this patch the guest OS sees the I/O failure & the kernel logs
IDE errors and then retries the operation. This at least ensures that
the guest can be shutdown the out of space issue in the host corrected
and the guest restarted, without any serious filesystem damage having
occurred.

From: Daniel Berrange <berrange@redhat.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-04 09:29:26 +00:00
kfraser@localhost.localdomain 00f75a257f Add XEN_FRAMEBUFFER to -xen defconfigs.
Signed-off-by: Atsushi SAKAI <sakaia@jp.fujitsu.com>
2006-12-04 09:21:10 +00:00
kfraser@localhost.localdomain b3fba4e07b Remove useless segments push/pop in VMXAssist.
According to Intel Spec, segments registors are cleared when exiting
virtual-8086 mode through trap or interrupts gate, so it's no need to
save their values in stack.
Signed-off-by: Xin Li <xin.b.li@intel.com>
2006-12-04 09:20:12 +00:00
Ian Campbell f5bdee9abd [PATCH 02/02] Kexec / Kdump: Don't declare _end
_end is already declared in xen/include/asm/config.h, so don't declare
it twice. This solves a powerpc/ia64 build problem where _end is declared
as char _end[] compared to unsigned long _end on x86.

Signed-Off-By: Magnus Damm <magnus@valinux.co.jp>
2006-12-04 09:08:47 +00:00
Ian Campbell 6b995a3b55 [PATCH 01/02] Kexec / Kdump: Use NOTE_ALIGN() instead of ALIGN()
ALIGN() is already defined in xen/include/asm-ia64/config.h. This patch
renames ALIGN() to NOTE_ALIGN() to make the kexec code build on ia64.

Signed-Off-By: Magnus Damm <magnus@valinux.co.jp>
2006-12-04 09:08:47 +00:00
kaf24@firebug.cl.cam.ac.uk 0831896293 [XEN] Fix 32-bit build.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-03 17:44:14 +00:00
kaf24@localhost.localdomain df69bc8551 [XEN] Add 'insn_fetch' memory operation to the x86_emulator.
This can be used to perform correct access checks, provide appropriate
error codes when injecting faults, and to implement an
instruction-stream prefetch cache (which is included here for HVM PTE
update emulations).

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-03 17:15:48 +00:00
Ewan Mellor 43bbe5bc96 Revert the change to destroy all VMs when skipping or failing tests -- this
needs more thought, because people shouldn't need to set up their Xen-API server
to run the non-Xen-API bits of the test, and at the moment, you get
authentication failures on every SKIP.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-03 13:30:23 +00:00
Ewan Mellor 7169017f84 Make the xenfb tools an optional part of the build, as they introduce new
dependencies (libvncserver and libsdl devel packages).  Enable them with
XENFB_TOOLS=y.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-02 16:39:53 +00:00
Alastair Tse f24b8a3348 [XEND] Fix mis-types in XendConfig
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 18:35:19 +00:00
Alastair Tse 63f6456e92 Merge 2006-12-01 18:33:11 +00:00
Alastair Tse 77f0ea8ba8 Merge 2006-12-01 17:43:18 +00:00
Alastair Tse f83b348cf8 Merge 2006-12-01 17:42:39 +00:00
Ewan Mellor 468c5c0084 Use the new xen-api.sock for the calls to the Xen-API server.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 17:40:07 +00:00
Alastair Tse 0f07569d15 [XEND] Re-add vtpm device support in XendConfig
This patch re-adds a recently removed vTPM device handling code.
I am also removing that one code part in the test script that does not
work.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-12-01 17:37:42 +00:00
Ewan Mellor cebaab7c6b This patch provides XmTestManagedDomain and XenManagedDomain classes
similar to the XmTestDomain and XenDomain classes. I have wrapped the
xen-api for VM configuration creation, starting and stopping of VMs and
destruction of the VM configuration in the XenManagedDomain class's
methods. No device-related functions are provided through the class.

The managed domains' UUIDs are tracked and all created VMs are destroyed
upon failure or skipping of the test or by calling
xapi.vm_destroy_all().

I am adding a new grouptest 'xapi' for running xen-api tests.

Only caveat: I am using an empty username and password
(XmTestList/xapi.py) with Xend's authentication deactivated to run these
tests.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2006-12-01 17:37:09 +00:00
Alastair Tse c88422678e Merge 2006-12-01 17:31:50 +00:00
Alastair Tse 0ee9d7cc29 [XENAPI] Add extra param for VM.start and fix case for printing out
the output of VM.get_record.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:31:30 +00:00
Alastair Tse 486d848417 [XEND] Proper importing of Xen API VM Struct into new XendConfig
Use a smarter method of importing the Xen API VM struct when adding to
XendConfig.

Also add a commented __setitem__ override for XendConfig to type check
certain configuration values.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:30:39 +00:00
kfraser@localhost.localdomain 1016756b1d [XEN] Allow shutdown code to be set at most once per domain.
SIgned-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 17:29:04 +00:00
Alastair Tse 123c8f3d8c [XEND] Fix case mismatch in VM.get_record for Xen API
Also make VM.get_all return halted domains too.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 17:21:19 +00:00
Andrew Warfield ed6af790ae Fix a number of flaws in the blktap userspace daemon when dealing
with I/O errors.

There are a number of flaws in the blktap userspace daemon when dealing
with I/O errors.

 - The backends which use AIO check the io_events.res member to determine
  if an I/O error occurred. Which is good. But when calling the callback
  to signal completion of the I/O, they pass the io_events.res2 member

  Now this seems fine at first glance[1]

    "res is the usual result of an I/O operation: the number of bytes
     transfered, or a negative error code. res2 is a second status
     value which will be returned to the user"

  Except that

     "currently (2.6.0-test9), callers of aio_complete() within the
      kernel always set res2 to zero."

  And this hasn't changed anytime since 2.6.0, so by passing through
  the status from 'res2', the callback thinks the I/O operation succeeded
  even when it failed :-(

  The fix is simple instead of passing 'res2', just pass

     ep->res == io->u.c.nbytes ? 0 : 1

  This would solve the error reporting to the guest, except that there
  is a second flaw...

 - The tapdisk I/O completion callback checks the status parameter
  passed in, syslog's it and then returns. It never bothers to send
  the I/O completion response back to the blktap kernel driver when
  a failure occurrs.

  Fortunately the fix for this is also simple. Instead of returning
  from the callback when dealing with an error, we simply toggle the
  status field for the pending response to BLKIF_RSP_ERROR and then
  continue with the normal codepath. So the error eventually gets
  back to the guest.


The scenario I used to discover the problem and test the patch is thus:

 - In dom0  create a filesystem with only 200 MB of free space
 - Create a 1 GB sparse file on this volume.
 - Configure the guest so this sparse file appears as /dev/xvdb
 - In the domU create a single partition on /dev/xvdb and format
  it with ext3.
 - In the DomU, mount /dev/xvdb1 on /mnt and then run

     dd if=/dev/zero of=/mnt/data.bin bs=1GB count=1


Without this patch, the 'dd' command would succeed in writing 1 GB of data
even though the underlying disk in Dom0 was only 200 MB in size. More complex
tests of copying a whole directory heirarchy across resulted in catastrophic
data corruption of the filessytem itself. Manual fsck was needed to fixup
the filesystem & there were many very bad errors needing fixing.


With this patch applied the DomU sees the I/O failures and kernel  logs
messages

Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 722127
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 730327
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 738527
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 746727
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 754927
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 763127
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 771327
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 779527
Dec  1 11:02:53 dhcp-5-203 kernel: end_request: I/O error, dev xvdc, sector 792399

It will retry the I/O operation until it runs out of sectors to try, and then
fail the operation. The filesystem is not seriously damaged - ext3 journal
recovery will trivially cleanup if the guest is rebooted after the disk in
Dom0 is enlarged.

  Signed-off-by: Daniel P. Berrange <berrange@redhat.com>


[1] http://lwn.net/Articles/24366/
2006-12-01 09:01:04 -08:00
Alastair Tse 916bea06a7 [XEND] Fix outputting device SXPs when domain is halted.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 16:31:36 +00:00
kfraser@localhost.localdomain c7f32070ae [HVM] Cache segment-register contents during PTE-update emulations.
Also clean up page-fault propagation to inject the correct error
code and CR2 value.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 15:45:59 +00:00
Alastair Tse b331298825 [TOOLS] Checks for libvncserver-dev and libsdl-dev.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 15:12:48 +00:00
Alastair Tse feeb19b8cb [XEND] Fix missing vncpasswd option for HVM domains.
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 14:35:33 +00:00
kfraser@localhost.localdomain 11ae19768d Update hgignore list. 2006-12-01 14:30:42 +00:00
kfraser@localhost.localdomain 99d29a0c3f [XEN] Remove uses of 'extern inline'.
Original patch by Christoph Egger at AMD.

Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 14:29:32 +00:00
kfraser@localhost.localdomain fcad36eb80 [LIBXC] Add new AP{I function xc_evtchn_bind_unbound_port().
Add a comment clarifying how this function differs from
xc_evtchn_alloc_unbound().
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 14:25:36 +00:00
kfraser@localhost.localdomain 2aba25fee2 [XEN] Emulate XADD instruction.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 13:57:46 +00:00
Alastair Tse ea1248436a [XEND] Reapply fix for ever expanding kernel_args in XendConfig
Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 13:55:28 +00:00
Alastair Tse 2e23acca55 [XEND] Ensure config value types in XendConfig
Add definitions of what we expect the types to be for the values in
XendConfig and apply them when parsing SXP where all values are either
strings or list.

Also fix missing stdvga in HVM config.

Signed-off-by: Alastair Tse <atse@xensource.com>
2006-12-01 13:53:04 +00:00
kfraser@localhost.localdomain 65ade46c57 [LINUX] dev/mem: Rename Xen's mmap_mem to xen_mmap_mem to
avoid conflict with the definition (which still exists and
is used) in drivers/char/mem.c.
Signed-off-by: Keir Fraser <keir@xensource.com>
2006-12-01 13:44:33 +00:00
Ewan Mellor 4bdbd7644a Actually return something from bool0.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:25:33 +00:00
Ewan Mellor 4dc8c41b11 Update README to reflect moved library.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:09:30 +00:00
Steven Smith e812bdf5c4 Merge. 2006-12-01 13:12:41 +00:00
Steven Smith 4ffdeb2ddc [PVFB][TOOLS] Don't unwatch the framebuffer frontend's state node just
because it want to state Closed.  Otherwise, we don't notice when
the node gets deleted, and can't reliably shut the backend down.

Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 13:11:53 +00:00
Ewan Mellor 7be5d5173c Set localtime, enable_audio, clock_offset, and std_vga back to being bools, not
ints.  This is a recent breakage.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:08:36 +00:00
Ewan Mellor 2f61385eed Added log message for when a VM is deleted.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:07:19 +00:00
Ewan Mellor c7a44ef04b Include the rotated xend.log.X in the bug report.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 13:06:15 +00:00
Steven Smith e9167464c4 [PVFB][TOOLS] Fix save/restore for domains with PV framebuffers.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 12:38:41 +00:00
Ewan Mellor 91e35907b2 Link test/test_bindings against libxenapi in the new location.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
2006-12-01 12:24:42 +00:00
Steven Smith 4ae8d4056e [TOOLS][PVFB] Avoid zombie framebuffer backends.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 12:20:12 +00:00
Steven Smith f44748c2b6 [TOOLS] Remove some dead code.
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
2006-12-01 12:09:10 +00:00
Steven Smith becaa718c2 Merge. 2006-12-01 12:03:38 +00:00