Accepting request 214991 from Virtualization
Submission for os13.2 that matches SLE12 alpha3 submission OBS-URL: https://build.opensuse.org/request/show/214991 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xen?expand=0&rev=182
This commit is contained in:
commit
e01bc7bc2b
@ -1,32 +1,13 @@
|
||||
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
---
|
||||
tools/qemu-xen-traditional-dir-remote/hw/pci.c | 44 ++++++++++++++++
|
||||
tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 2
|
||||
tools/qemu-xen-traditional-dir-remote/qemu-xen.h | 1
|
||||
3 files changed, 47 insertions(+)
|
||||
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
|
||||
case 4:
|
||||
fprintf(logfile, "Disconnect IDE hard disk...\n");
|
||||
ide_unplug_harddisks();
|
||||
+ fprintf(logfile, "Disconnect SCSI hard disk...\n");
|
||||
+ pci_unplug_scsi();
|
||||
fprintf(logfile, "Disconnect netifs...\n");
|
||||
pci_unplug_netifs();
|
||||
fprintf(logfile, "Shutdown taps...\n");
|
||||
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque);
|
||||
#endif
|
||||
|
||||
void pci_unplug_netifs(void);
|
||||
+void pci_unplug_scsi(void);
|
||||
void destroy_hvm_domain(void);
|
||||
void unregister_iomem(target_phys_addr_t start);
|
||||
|
||||
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
|
||||
}
|
||||
}
|
||||
@ -78,3 +59,28 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/pci.c
|
||||
typedef struct {
|
||||
PCIDevice dev;
|
||||
PCIBus *bus;
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
@@ -364,6 +364,8 @@ static void suse_platform_ioport_write(v
|
||||
* If it controlled just disk or just LAN, it would use 8 below. */
|
||||
fprintf(logfile, "Disconnect IDE hard disk...\n");
|
||||
ide_unplug_harddisks();
|
||||
+ fprintf(logfile, "Disconnect SCSI hard disk...\n");
|
||||
+ pci_unplug_scsi();
|
||||
fprintf(logfile, "Disconnect netifs...\n");
|
||||
pci_unplug_netifs();
|
||||
fprintf(logfile, "Shutdown taps...\n");
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/qemu-xen.h
|
||||
@@ -47,6 +47,7 @@ void unset_vram_mapping(void *opaque);
|
||||
#endif
|
||||
|
||||
void pci_unplug_netifs(void);
|
||||
+void pci_unplug_scsi(void);
|
||||
void destroy_hvm_domain(void);
|
||||
void unregister_iomem(target_phys_addr_t start);
|
||||
|
||||
|
@ -1,7 +1,11 @@
|
||||
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
---
|
||||
tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 46 ++++++++++++++++
|
||||
1 file changed, 46 insertions(+)
|
||||
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
@@ -30,6 +30,8 @@
|
||||
#include "qemu-xen.h"
|
||||
#include "net.h"
|
||||
@ -11,13 +15,13 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
|
||||
#include <assert.h>
|
||||
#include <xenguest.h>
|
||||
@@ -335,11 +337,51 @@ static void xen_platform_ioport_writeb(v
|
||||
@@ -335,8 +337,52 @@ static void xen_platform_ioport_writeb(v
|
||||
}
|
||||
}
|
||||
|
||||
+static uint32_t ioport_base;
|
||||
+
|
||||
+static void platform_ioport_write(void *opaque, uint32_t addr, uint32_t val)
|
||||
+static void suse_platform_ioport_write(void *opaque, uint32_t addr, uint32_t val)
|
||||
+{
|
||||
+ DECLARE_DOMCTL;
|
||||
+ int rc;
|
||||
@ -27,6 +31,7 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+
|
||||
+ switch (addr - ioport_base) {
|
||||
+ case 0:
|
||||
+ /* FIXME Unknown who makes use of this code! */
|
||||
+ fprintf(logfile, "Init hypercall page %x, addr %x.\n", val, addr);
|
||||
+ domctl.domain = (domid_t)domid;
|
||||
+ domctl.u.hypercall_init.gmfn = val;
|
||||
@ -35,6 +40,10 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+ fprintf(logfile, "result -> %d.\n", rc);
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ /* xen-kmp used this since xen-3.0.4, instead the official protocol from xen-3.3+
|
||||
+ * pre vmdp 1.7 made use of 4 and 8 depending on how vmdp was configured.
|
||||
+ * If vmdp was to control both disk and LAN it would use 4.
|
||||
+ * If it controlled just disk or just LAN, it would use 8 below. */
|
||||
+ fprintf(logfile, "Disconnect IDE hard disk...\n");
|
||||
+ ide_unplug_harddisks();
|
||||
+ fprintf(logfile, "Disconnect netifs...\n");
|
||||
@ -44,8 +53,8 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+ fprintf(logfile, "Done.\n");
|
||||
+ break;
|
||||
+ default:
|
||||
+ fprintf(logfile, "Write to bad port %x (base %x) on evtchn device.\n",
|
||||
+ addr, ioport_base);
|
||||
+ fprintf(logfile, "Write %x to bad port %x (base %x) on evtchn device.\n",
|
||||
+ val, addr, ioport_base);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
@ -54,12 +63,8 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
{
|
||||
+ ioport_base = addr;
|
||||
+
|
||||
+ register_ioport_write(addr, 16, 4, platform_ioport_write, NULL);
|
||||
+/*
|
||||
+ register_ioport_write(addr, 16, 4, suse_platform_ioport_write, NULL);
|
||||
+
|
||||
PCIXenPlatformState *d = (PCIXenPlatformState *)pci_dev;
|
||||
register_ioport_write(addr, size, 1, xen_platform_ioport_writeb, d);
|
||||
register_ioport_read(addr, size, 1, xen_platform_ioport_readb, d);
|
||||
+*/
|
||||
}
|
||||
|
||||
static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr)
|
||||
|
@ -1,3 +1,2 @@
|
||||
%defattr (-,root,root)
|
||||
/lib/modules/%2-%1
|
||||
/etc/modprobe.d/xen_pvdrivers-%1.conf
|
||||
|
@ -1,8 +1,12 @@
|
||||
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
---
|
||||
tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
@@ -365,6 +365,19 @@ static void platform_ioport_write(void *
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
@@ -370,6 +370,19 @@ static void suse_platform_ioport_write(v
|
||||
net_tap_shutdown_all();
|
||||
fprintf(logfile, "Done.\n");
|
||||
break;
|
||||
@ -20,5 +24,5 @@ Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/hw/xen_platform.c
|
||||
+ }
|
||||
+ break;
|
||||
default:
|
||||
fprintf(logfile, "Write to bad port %x (base %x) on evtchn device.\n",
|
||||
addr, ioport_base);
|
||||
fprintf(logfile, "Write %x to bad port %x (base %x) on evtchn device.\n",
|
||||
val, addr, ioport_base);
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a6f6a14a6fdbe159290e7da69b3761ba2f1219b5e83211f553f6d3dadc65f2cb
|
||||
size 7570519
|
||||
oid sha256:3b56a36923b59d32ee786e4f43f4b6cf31f260d8244ca62fc9a2dcc6fc9e7dcc
|
||||
size 7571075
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ae6c395eabff717667a5853898fe59a7b46a9cd91319c46b2928ae034689433d
|
||||
size 3212965
|
||||
oid sha256:09f3f0d1ddfa65ac71bd67da2ba45992f5945bacd551cce01e6ea50aec96bca0
|
||||
size 3213079
|
||||
|
145
qemu-xen-upstream-blkif-discard.patch
Normal file
145
qemu-xen-upstream-blkif-discard.patch
Normal file
@ -0,0 +1,145 @@
|
||||
References: FATE#316071
|
||||
Subject: [RFC] qemu-upstream: add discard support for xen_disk
|
||||
|
||||
Implement discard support for xen_disk. It makes use of the existing
|
||||
discard code in qemu.
|
||||
|
||||
The discard support is enabled unconditionally. But it would be worth to
|
||||
have a knob to disable it in case the backing file was intentionally
|
||||
created non-sparse to avoid fragmentation.
|
||||
How could this be knob be passed from domU.cfg:disk=[] to the actual
|
||||
qemu process? Perhaps introduce an option discard=on|off|ignore|unmap.
|
||||
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
|
||||
---
|
||||
tools/qemu-xen-dir-remote/hw/block/xen_blkif.h | 12 ++++++++
|
||||
tools/qemu-xen-dir-remote/hw/block/xen_disk.c | 36 +++++++++++++++++++++++++
|
||||
2 files changed, 48 insertions(+)
|
||||
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_blkif.h
|
||||
@@ -79,6 +79,12 @@ static inline void blkif_get_x86_32_req(
|
||||
dst->handle = src->handle;
|
||||
dst->id = src->id;
|
||||
dst->sector_number = src->sector_number;
|
||||
+ if (src->operation == BLKIF_OP_DISCARD) {
|
||||
+ struct blkif_request_discard *s = (void *)src;
|
||||
+ struct blkif_request_discard *d = (void *)dst;
|
||||
+ d->nr_sectors = s->nr_sectors;
|
||||
+ return;
|
||||
+ }
|
||||
if (n > src->nr_segments)
|
||||
n = src->nr_segments;
|
||||
for (i = 0; i < n; i++)
|
||||
@@ -94,6 +100,12 @@ static inline void blkif_get_x86_64_req(
|
||||
dst->handle = src->handle;
|
||||
dst->id = src->id;
|
||||
dst->sector_number = src->sector_number;
|
||||
+ if (src->operation == BLKIF_OP_DISCARD) {
|
||||
+ struct blkif_request_discard *s = (void *)src;
|
||||
+ struct blkif_request_discard *d = (void *)dst;
|
||||
+ d->nr_sectors = s->nr_sectors;
|
||||
+ return;
|
||||
+ }
|
||||
if (n > src->nr_segments)
|
||||
n = src->nr_segments;
|
||||
for (i = 0; i < n; i++)
|
||||
Index: xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_disk.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/qemu-xen-dir-remote/hw/block/xen_disk.c
|
||||
+++ xen-4.4.0-testing/tools/qemu-xen-dir-remote/hw/block/xen_disk.c
|
||||
@@ -68,6 +68,8 @@ struct ioreq {
|
||||
int presync;
|
||||
int postsync;
|
||||
uint8_t mapped;
|
||||
+ int64_t sector_num;
|
||||
+ int nb_sectors;
|
||||
|
||||
/* grant mapping */
|
||||
uint32_t domids[BLKIF_MAX_SEGMENTS_PER_REQUEST];
|
||||
@@ -114,6 +116,7 @@ struct XenBlkDev {
|
||||
int requests_finished;
|
||||
|
||||
/* Persistent grants extension */
|
||||
+ gboolean feature_discard;
|
||||
gboolean feature_persistent;
|
||||
GTree *persistent_gnts;
|
||||
unsigned int persistent_gnt_count;
|
||||
@@ -232,6 +235,7 @@ static void ioreq_release(struct ioreq *
|
||||
static int ioreq_parse(struct ioreq *ioreq)
|
||||
{
|
||||
struct XenBlkDev *blkdev = ioreq->blkdev;
|
||||
+ struct blkif_request_discard *discard_req = (void *)&ioreq->req;
|
||||
uintptr_t mem;
|
||||
size_t len;
|
||||
int i;
|
||||
@@ -244,6 +248,10 @@ static int ioreq_parse(struct ioreq *ior
|
||||
case BLKIF_OP_READ:
|
||||
ioreq->prot = PROT_WRITE; /* to memory */
|
||||
break;
|
||||
+ case BLKIF_OP_DISCARD:
|
||||
+ ioreq->sector_num = discard_req->sector_number;
|
||||
+ ioreq->nb_sectors = discard_req->nr_sectors;
|
||||
+ return 0;
|
||||
case BLKIF_OP_FLUSH_DISKCACHE:
|
||||
ioreq->presync = 1;
|
||||
if (!ioreq->req.nr_segments) {
|
||||
@@ -521,6 +529,13 @@ static int ioreq_runio_qemu_aio(struct i
|
||||
&ioreq->v, ioreq->v.size / BLOCK_SIZE,
|
||||
qemu_aio_complete, ioreq);
|
||||
break;
|
||||
+ case BLKIF_OP_DISCARD:
|
||||
+ bdrv_acct_start(blkdev->bs, &ioreq->acct, ioreq->nb_sectors * BLOCK_SIZE, BDRV_ACCT_WRITE);
|
||||
+ ioreq->aio_inflight++;
|
||||
+ bdrv_aio_discard(blkdev->bs,
|
||||
+ ioreq->sector_num, ioreq->nb_sectors,
|
||||
+ qemu_aio_complete, ioreq);
|
||||
+ break;
|
||||
default:
|
||||
/* unknown operation (shouldn't happen -- parse catches this) */
|
||||
goto err;
|
||||
@@ -699,6 +714,23 @@ static void blk_alloc(struct XenDevice *
|
||||
}
|
||||
}
|
||||
|
||||
+static void blk_parse_discard(struct XenBlkDev *blkdev)
|
||||
+{
|
||||
+ int flags = BDRV_O_UNMAP;
|
||||
+#if 0
|
||||
+ char *s = xenstore_read_be_str(&blkdev->xendev, "toolstack-options-discard");
|
||||
+
|
||||
+ if (s && bdrv_parse_discard_flags(s, &flags) < 0) {
|
||||
+ xen_be_printf(xendev, 0, "property toolstack-discard-options failed to parse: %s\n", s);
|
||||
+ return;
|
||||
+ }
|
||||
+#endif
|
||||
+ blkdev->feature_discard = !!(flags & BDRV_O_UNMAP);
|
||||
+ if (!blkdev->feature_discard)
|
||||
+ return;
|
||||
+ xenstore_write_be_int(&blkdev->xendev, "feature-discard", 1);
|
||||
+}
|
||||
+
|
||||
static int blk_init(struct XenDevice *xendev)
|
||||
{
|
||||
struct XenBlkDev *blkdev = container_of(xendev, struct XenBlkDev, xendev);
|
||||
@@ -766,6 +798,8 @@ static int blk_init(struct XenDevice *xe
|
||||
xenstore_write_be_int(&blkdev->xendev, "feature-persistent", 1);
|
||||
xenstore_write_be_int(&blkdev->xendev, "info", info);
|
||||
|
||||
+ blk_parse_discard(blkdev);
|
||||
+
|
||||
g_free(directiosafe);
|
||||
return 0;
|
||||
|
||||
@@ -801,6 +835,8 @@ static int blk_connect(struct XenDevice
|
||||
qflags |= BDRV_O_RDWR;
|
||||
readonly = false;
|
||||
}
|
||||
+ if (blkdev->feature_discard)
|
||||
+ qflags |= BDRV_O_UNMAP;
|
||||
|
||||
/* init qemu block driver */
|
||||
index = (blkdev->xendev.dev - 202 * 256) / 16;
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:713b82f6be5d63b52d35838158b5b5609c700a13cfa01b84b4fb1cf2798f895d
|
||||
size 366292
|
||||
oid sha256:25e28a2c8b953e6764b76a47c5543ef986ed14864e4b6575ad82b2002c355aa6
|
||||
size 366253
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:551f2a6e4d0ee6853794cca558eb2344b45b6ad1ee0cf42a5981b70cdb7c402b
|
||||
size 4347631
|
||||
oid sha256:c60b78517141f58aeb10a7cce305bb6576d2cc45dd6bd112fbe700ae958a5221
|
||||
size 4350072
|
||||
|
@ -1,30 +0,0 @@
|
||||
Index: xen-4.4.0-testing/xen/Makefile
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/xen/Makefile
|
||||
+++ xen-4.4.0-testing/xen/Makefile
|
||||
@@ -1,3 +1,4 @@
|
||||
+export XEN_CHANGESET = unavailable
|
||||
# This is the correct place to edit the build version.
|
||||
# All other places this is stored (eg. compile.h) should be autogenerated.
|
||||
export XEN_VERSION = 4
|
||||
@@ -122,7 +123,7 @@ delete-unfresh-files:
|
||||
@mv -f $@.tmp $@
|
||||
|
||||
# compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
|
||||
-include/xen/compile.h: include/xen/compile.h.in .banner
|
||||
+include/xen/compile.h: include/xen/compile.h.in
|
||||
@sed -e 's/@@date@@/$(shell LC_ALL=C date)/g' \
|
||||
-e 's/@@time@@/$(shell LC_ALL=C date +%T)/g' \
|
||||
-e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
|
||||
@@ -132,9 +133,9 @@ include/xen/compile.h: include/xen/compi
|
||||
-e 's/@@version@@/$(XEN_VERSION)/g' \
|
||||
-e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
|
||||
-e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
|
||||
- -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \
|
||||
+ -e 's!@@changeset@@!$(XEN_CHANGESET)!g' \
|
||||
< include/xen/compile.h.in > $@.new
|
||||
- @cat .banner
|
||||
+ @echo "Xen $(XEN_FULLVERSION)" > .banner
|
||||
@$(PYTHON) tools/fig-to-oct.py < .banner >> $@.new
|
||||
@mv -f $@.new $@
|
||||
|
42
xen.changes
42
xen.changes
@ -1,3 +1,45 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 23 16:11:39 MST 2014 - carnold@suse.com
|
||||
|
||||
- Dropped xen-changeset.patch. It is no longer needed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 19 00:13:06 CET 2014 - ohering@suse.de
|
||||
|
||||
- BuildRequire libfdt1-devel on ARM
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 18 00:35:46 CET 2014 - ohering@suse.de
|
||||
|
||||
- fate#311487: remove modprobe.conf files for autoloading of
|
||||
pv-on-hvm files.
|
||||
Rely on core kernel to skip initialization of emulated hardware
|
||||
Handle xen_emul_unplug= from xenlinux based core kernel-default
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 16 13:11:32 MST 2014 - carnold@suse.com
|
||||
|
||||
- Fix the spec file to build for old distros
|
||||
The xm/xend toolstack will continue to be contained in xen-tools
|
||||
for older openSUSE and sles distros but it will be contained in
|
||||
xend-tools for os13.x
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 15 19:55:32 CET 2014 - ohering@suse.de
|
||||
|
||||
- fate#316071: add discard support for file backed storage (qdisk)
|
||||
to qemu-upstream, enabled unconditionally
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 14 12:13:45 MST 2014 - carnold@suse.com
|
||||
|
||||
- Update to Xen 4.4.0 RC2 c/s 28287
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 9 11:44:11 MST 2014 - carnold@suse.com
|
||||
|
||||
- Restore 32bit ix86 support in spec file for kmps and domU tools
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 2 11:52:11 MST 2014 - carnold@suse.com
|
||||
|
||||
|
270
xen.spec
270
xen.spec
@ -15,24 +15,36 @@
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: xen
|
||||
ExclusiveArch: x86_64 %arm aarch64
|
||||
ExclusiveArch: %ix86 x86_64 %arm aarch64
|
||||
%define xvers 4.4
|
||||
%define xvermaj 4
|
||||
%define changeset 28233
|
||||
%define changeset 28287
|
||||
%define xen_build_dir xen-4.4.0-testing
|
||||
%ifarch %arm aarch64
|
||||
%define with_kmp 0
|
||||
%define with_xend 0
|
||||
%define with_debug 0
|
||||
%define with_stubdom 0
|
||||
%define with_xend 0
|
||||
%define with_dom0_support 1
|
||||
%else
|
||||
%ifarch x86_64
|
||||
%define with_kmp 1
|
||||
%define with_debug 1
|
||||
%define with_stubdom 1
|
||||
%define with_dom0_support 1
|
||||
%define with_qemu_traditional 1
|
||||
%if %suse_version > 1230
|
||||
%define with_xend 1
|
||||
%else
|
||||
%define with_xend 1
|
||||
%endif
|
||||
%else
|
||||
%define with_xend 0
|
||||
%define with_stubdom 0
|
||||
%define with_dom0_support 0
|
||||
%define with_qemu_traditional 0
|
||||
%endif
|
||||
%endif
|
||||
# EFI requires gcc46 or newer
|
||||
# its available in 12.1 or >= sles11sp2
|
||||
@ -47,34 +59,45 @@ ExclusiveArch: x86_64 %arm aarch64
|
||||
%else
|
||||
%define with_systemd 0
|
||||
%endif
|
||||
%ifnarch %arm aarch64
|
||||
%ifarch %arm aarch64
|
||||
BuildRequires: libfdt1-devel
|
||||
%endif
|
||||
%ifarch %ix86 x86_64
|
||||
BuildRequires: dev86
|
||||
%endif
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: libaio-devel
|
||||
BuildRequires: libbz2-devel
|
||||
BuildRequires: libpixman-1-0-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: libyajl-devel
|
||||
BuildRequires: libpixman-1-0-devel
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: transfig
|
||||
%if %suse_version >= 1030
|
||||
BuildRequires: texinfo
|
||||
BuildRequires: texlive
|
||||
%if %suse_version > 1220
|
||||
BuildRequires: texlive-latex
|
||||
BuildRequires: texlive-courier
|
||||
BuildRequires: texlive-dvips
|
||||
BuildRequires: texlive-helvetic
|
||||
BuildRequires: texlive-latex
|
||||
BuildRequires: texlive-psnfss
|
||||
BuildRequires: texlive-times
|
||||
BuildRequires: transfig
|
||||
BuildRequires: tex(a4.sty)
|
||||
BuildRequires: tex(a4wide.sty)
|
||||
BuildRequires: tex(fancyhdr.sty)
|
||||
BuildRequires: tex(parskip.sty)
|
||||
BuildRequires: tex(setspace.sty)
|
||||
%endif
|
||||
%else
|
||||
BuildRequires: te_ams
|
||||
BuildRequires: te_latex
|
||||
BuildRequires: tetex
|
||||
%endif
|
||||
%if %suse_version >= 1230
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
@ -84,7 +107,7 @@ BuildRequires: xz-devel
|
||||
%if %suse_version <= 1110
|
||||
BuildRequires: pmtools
|
||||
%else
|
||||
%ifnarch %arm aarch64
|
||||
%ifarch %ix86 x86_64
|
||||
BuildRequires: acpica
|
||||
%endif
|
||||
%endif
|
||||
@ -102,11 +125,15 @@ BuildRequires: glibc-devel-32bit
|
||||
%if %{?with_kmp}0
|
||||
BuildRequires: kernel-source
|
||||
BuildRequires: kernel-syms
|
||||
BuildRequires: lndir
|
||||
BuildRequires: module-init-tools
|
||||
%if %suse_version >= 1230
|
||||
BuildRequires: lndir
|
||||
%else
|
||||
BuildRequires: xorg-x11-util-devel
|
||||
%endif
|
||||
%endif
|
||||
|
||||
Version: 4.4.0_01
|
||||
Version: 4.4.0_02
|
||||
Release: 0
|
||||
PreReq: %insserv_prereq %fillup_prereq
|
||||
Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel)
|
||||
@ -132,7 +159,6 @@ Source23: block-npiv-vport
|
||||
Source24: xmclone.sh
|
||||
Source26: init.xen_loop
|
||||
%if %{?with_kmp}0
|
||||
Source27: xen_pvdrivers.conf
|
||||
Source28: kmp_filelist
|
||||
%endif
|
||||
Source29: block-dmmd
|
||||
@ -177,8 +203,7 @@ Patch257: 0007-e1000-verify-we-have-buffers-upfront.patch
|
||||
Patch258: 0008-e1000-check-buffer-availability.patch
|
||||
# Our platform specific patches
|
||||
Patch301: xen-destdir.patch
|
||||
Patch302: xen-changeset.patch
|
||||
Patch303: xen-xmexample.patch
|
||||
Patch302: xen-xmexample.patch
|
||||
Patch310: bridge-opensuse.patch
|
||||
Patch311: bridge-vlan.patch
|
||||
Patch312: bridge-bonding.patch
|
||||
@ -226,6 +251,8 @@ Patch380: pvdrv_emulation_control.patch
|
||||
Patch381: ioemu-disable-scsi.patch
|
||||
Patch382: ioemu-disable-emulated-ide-if-pv.patch
|
||||
Patch383: xenpaging.qemu.flush-cache.patch
|
||||
Patch384: qemu-xen-upstream-blkif-discard.patch
|
||||
Patch385: xen_pvonhvm.xen_emul_unplug.patch
|
||||
# Xend
|
||||
Patch400: xen.migrate.tools_set_migration_constraints_from_cmdline.patch
|
||||
Patch401: xen.migrate.tools_add_xm_migrate_--log_progress_option.patch
|
||||
@ -234,34 +261,37 @@ Patch403: xen.migrate.tools_set_number_of_dirty_pages_during_migration.pat
|
||||
Patch404: xend-config.patch
|
||||
Patch405: xend-max-free-mem.patch
|
||||
Patch406: xend-hvm-default-pae.patch
|
||||
Patch407: xend-xenapi-console-protocol.patch
|
||||
Patch408: xend-core-dump-loc.patch
|
||||
Patch409: xend-xen-api-auth.patch
|
||||
Patch410: xend-checkpoint-rename.patch
|
||||
Patch411: xend-xm-save-check-file.patch
|
||||
Patch412: xend-xm-create-xflag.patch
|
||||
Patch413: xend-domu-usb-controller.patch
|
||||
Patch414: xend-devid-or-name.patch
|
||||
Patch415: xend-migration-domname-fix.patch
|
||||
Patch416: xend-del_usb_xend_entry.patch
|
||||
Patch417: xend-xen-domUloader.patch
|
||||
Patch418: xend-multi-xvdp.patch
|
||||
Patch419: xend-check_device_status.patch
|
||||
Patch420: xend-change_home_server.patch
|
||||
Patch421: xend-minimum-restart-time.patch
|
||||
Patch422: xend-disable-internal-logrotate.patch
|
||||
Patch423: xend-console-port-restore.patch
|
||||
Patch424: xend-vcpu-affinity-fix.patch
|
||||
Patch425: xend-migration-bridge-check.patch
|
||||
Patch426: xend-managed-pci-device.patch
|
||||
Patch427: xend-hvm-firmware-passthrough.patch
|
||||
Patch428: xend-cpuinfo-model-name.patch
|
||||
Patch429: xend-xm-reboot-fix.patch
|
||||
Patch430: xend-domain-lock.patch
|
||||
Patch431: xend-domain-lock-sfex.patch
|
||||
Patch432: xend-32on64-extra-mem.patch
|
||||
Patch433: xend-hv_extid_compatibility.patch
|
||||
Patch434: xend-xenpaging.autostart.patch
|
||||
Patch407: xend-vif-route-ifup.patch
|
||||
Patch408: xend-xenapi-console-protocol.patch
|
||||
Patch409: xend-core-dump-loc.patch
|
||||
Patch410: xend-xen-api-auth.patch
|
||||
Patch411: xend-checkpoint-rename.patch
|
||||
Patch412: xend-xm-save-check-file.patch
|
||||
Patch413: xend-xm-create-xflag.patch
|
||||
Patch414: xend-domu-usb-controller.patch
|
||||
Patch415: xend-devid-or-name.patch
|
||||
Patch416: xend-migration-domname-fix.patch
|
||||
Patch417: xend-del_usb_xend_entry.patch
|
||||
Patch418: xend-xen-domUloader.patch
|
||||
Patch419: xend-multi-xvdp.patch
|
||||
Patch420: xend-check_device_status.patch
|
||||
Patch421: xend-change_home_server.patch
|
||||
Patch422: xend-minimum-restart-time.patch
|
||||
Patch423: xend-disable-internal-logrotate.patch
|
||||
Patch424: xend-config-enable-dump-comment.patch
|
||||
Patch425: xend-tools-watchdog-support.patch
|
||||
Patch426: xend-console-port-restore.patch
|
||||
Patch427: xend-vcpu-affinity-fix.patch
|
||||
Patch428: xend-migration-bridge-check.patch
|
||||
Patch429: xend-managed-pci-device.patch
|
||||
Patch430: xend-hvm-firmware-passthrough.patch
|
||||
Patch431: xend-cpuinfo-model-name.patch
|
||||
Patch432: xend-xm-reboot-fix.patch
|
||||
Patch433: xend-domain-lock.patch
|
||||
Patch434: xend-domain-lock-sfex.patch
|
||||
Patch435: xend-32on64-extra-mem.patch
|
||||
Patch436: xend-hv_extid_compatibility.patch
|
||||
Patch437: xend-xenpaging.autostart.patch
|
||||
# Other bug fixes or features
|
||||
Patch450: libxen_permissive.patch
|
||||
Patch451: xenconsole-no-multiple-connections.patch
|
||||
@ -342,6 +372,8 @@ Authors:
|
||||
Ewan Mellor <ewan@xensource.com>
|
||||
...
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%package libs
|
||||
Summary: Xen Virtualization: Libraries
|
||||
Group: System/Kernel
|
||||
@ -398,6 +430,7 @@ Authors:
|
||||
|
||||
|
||||
%if %{?with_xend}0
|
||||
%if %suse_version > 1230
|
||||
%package xend-tools
|
||||
Summary: Xen Virtualization: Control tools for domain 0
|
||||
Group: System/Kernel
|
||||
@ -422,6 +455,8 @@ migrate, and manage virtual machines using the legacy xend/xm toolstack.
|
||||
In addition to this package you need to install kernel-xen, xen and
|
||||
xen-libs to use Xen.
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%package tools-domU
|
||||
Summary: Xen Virtualization: Control tools for domain U
|
||||
@ -479,6 +514,8 @@ virtualized guests.
|
||||
|
||||
%endif
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%package doc-html
|
||||
Summary: Xen Virtualization: HTML documentation
|
||||
Group: Documentation/HTML
|
||||
@ -496,7 +533,7 @@ your browser at file:/usr/share/doc/packages/xen/html/
|
||||
Authors:
|
||||
--------
|
||||
Ian Pratt <ian.pratt@cl.cam.ac.uk>
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -n %xen_build_dir -a 1 -a 2 -a 3 -a 4 -a 5 -a 57 -a 20000
|
||||
@ -514,7 +551,6 @@ Authors:
|
||||
# Our platform specific patches
|
||||
%patch301 -p1
|
||||
%patch302 -p1
|
||||
%patch303 -p1
|
||||
%patch310 -p1
|
||||
%patch311 -p1
|
||||
%patch312 -p1
|
||||
@ -561,6 +597,8 @@ Authors:
|
||||
%patch381 -p1
|
||||
%patch382 -p1
|
||||
%patch383 -p1
|
||||
%patch384 -p1
|
||||
%patch385 -p1
|
||||
# Xend
|
||||
%if %{?with_xend}0
|
||||
%patch400 -p1
|
||||
@ -598,6 +636,9 @@ Authors:
|
||||
%patch432 -p1
|
||||
%patch433 -p1
|
||||
%patch434 -p1
|
||||
%patch435 -p1
|
||||
%patch436 -p1
|
||||
%patch437 -p1
|
||||
%endif
|
||||
# Other bug fixes or features
|
||||
%patch450 -p1
|
||||
@ -661,8 +702,9 @@ configure_flags="${configure_flags} --disable-xend"
|
||||
--libdir=%{_libdir} \
|
||||
--datadir=%{_datadir} \
|
||||
--enable-blktap1 ${configure_flags}
|
||||
%if %{?with_dom0_support}0
|
||||
CFLAGS_SAVE=$CFLAGS
|
||||
%ifnarch %arm aarch64
|
||||
%ifarch %ix86 x86_64
|
||||
make -C xenalyze.hg CC="gcc -I../xen/include -DMAX_CPUS=%{max_cpus} ${RPM_OPT_FLAGS}" %{?_smp_mflags} -k
|
||||
%endif
|
||||
make -C tools/include/xen-foreign %{?_smp_mflags}
|
||||
@ -671,6 +713,10 @@ make -C tools/debugger/gdbsx
|
||||
%if %{?with_xend}0
|
||||
make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
|
||||
%endif
|
||||
%else
|
||||
make -C tools/include/xen-foreign %{?_smp_mflags}
|
||||
make tools docs %{?_smp_mflags}
|
||||
%endif
|
||||
%if %{?with_kmp}0
|
||||
# PV driver modules
|
||||
export XL=/usr/src/linux
|
||||
@ -690,6 +736,8 @@ done
|
||||
|
||||
%install
|
||||
export EXTRA_CFLAGS_XEN_TOOLS="$RPM_OPT_FLAGS"
|
||||
export EXTRA_CFLAGS_QEMU_TRADITIONAL="$RPM_OPT_FLAGS"
|
||||
export EXTRA_CFLAGS_QEMU_XEN="$RPM_OPT_FLAGS"
|
||||
# EFI
|
||||
%ifarch x86_64 %arm aarch64
|
||||
make -C xen install \
|
||||
@ -755,11 +803,11 @@ mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
|
||||
for flavor in %flavors_to_build; do
|
||||
make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install \
|
||||
M=$PWD/obj/$flavor
|
||||
install -m644 %SOURCE27 $RPM_BUILD_ROOT/etc/modprobe.d/xen_pvdrivers-$flavor.conf
|
||||
done
|
||||
%endif
|
||||
|
||||
# Stubdom
|
||||
%if %{?with_dom0_support}0
|
||||
%if %{?with_stubdom}0
|
||||
# remove -fstack-protector flag for stubdom build section
|
||||
export EXTRA_CFLAGS_XEN_TOOLS=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g')
|
||||
@ -932,6 +980,34 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
|
||||
# Create symlinks for keymaps
|
||||
%fdupes -s $RPM_BUILD_ROOT/%{_datadir}
|
||||
|
||||
%else
|
||||
# !with_dom0_support
|
||||
|
||||
# 32 bit hypervisor no longer supported. Remove dom0 tools.
|
||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc
|
||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/man
|
||||
rm -rf $RPM_BUILD_ROOT/%{_libdir}/fs
|
||||
rm -rf $RPM_BUILD_ROOT/%{_libdir}/xen
|
||||
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*
|
||||
rm -rf $RPM_BUILD_ROOT/usr/sbin
|
||||
rm -rf $RPM_BUILD_ROOT/etc/xen
|
||||
rm -rf $RPM_BUILD_ROOT/%{_datadir}/qemu-xen
|
||||
rm -rf $RPM_BUILD_ROOT/var
|
||||
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/xl.sh
|
||||
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/xen*
|
||||
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/xen*
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/*store*
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/*trace*
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/xenco*
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/pygrub
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/remus
|
||||
rm -f $RPM_BUILD_ROOT/usr/etc/qemu/target-x86_64.conf
|
||||
rm -f $RPM_BUILD_ROOT/usr/libexec/qemu-bridge-helper
|
||||
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.so.*
|
||||
%endif
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%files -f xen.files.txt
|
||||
%defattr(-,root,root)
|
||||
/boot/xen-%{version}-%{release}.gz
|
||||
@ -1128,7 +1204,9 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
|
||||
%{_mandir}/man8/*.8.gz
|
||||
|
||||
%if %{?with_xend}0
|
||||
%if %suse_version > 1230
|
||||
%files xend-tools
|
||||
%endif
|
||||
%defattr(-,root,root)
|
||||
%ifnarch %arm aarch64
|
||||
/etc/udev/rules.d/40-xend.rules
|
||||
@ -1167,7 +1245,6 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
|
||||
/etc/xen/scripts/vm-monitor
|
||||
/etc/xen/scripts/set-lock
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/remus/*
|
||||
#%{_libdir}/python%{pyver}/site-packages/xen/sv/*
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/util/*
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/xend/*
|
||||
%{_libdir}/python%{pyver}/site-packages/xen/xm/*
|
||||
@ -1179,6 +1256,8 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
|
||||
%{_mandir}/man1/xen-list.1.gz
|
||||
%endif
|
||||
%endif
|
||||
# with_dom0_support
|
||||
%endif
|
||||
|
||||
%files tools-domU
|
||||
%defattr(-,root,root)
|
||||
@ -1194,6 +1273,8 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
|
||||
%{_libdir}/*.so
|
||||
/usr/include/*
|
||||
|
||||
%if %{?with_dom0_support}0
|
||||
|
||||
%files doc-html
|
||||
%defattr(-,root,root)
|
||||
%{_defaultdocdir}/xen/html
|
||||
@ -1207,10 +1288,31 @@ fi
|
||||
%if %{?with_systemd}0
|
||||
%{fillup_and_insserv -i -y -n xencommons xencommons}
|
||||
/bin/systemctl enable xencommons.service
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
%{fillup_and_insserv -y -n xend xend}
|
||||
/bin/systemctl enable xend.service
|
||||
%endif
|
||||
%endif
|
||||
%else
|
||||
%{fillup_and_insserv -y -n xencommons xencommons}
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
# enable both xm (xend based) and xl (libxl based)
|
||||
if /bin/ls /etc/init.d/rc3.d/S??xend > /dev/null 2>&1 ; then
|
||||
if ! /bin/ls /etc/init.d/rc3.d/S??xencommons > /dev/null 2>&1 ; then
|
||||
echo "postin %{name}-tools: Forcing insserv xencommons during package upgrade because xend was enabled."
|
||||
echo "postin %{name}-tools: with xend"
|
||||
fi
|
||||
%{fillup_and_insserv -Y -n xencommons xencommons}
|
||||
else
|
||||
%{fillup_and_insserv -y -n xencommons xencommons}
|
||||
fi
|
||||
%{fillup_and_insserv -y -n xend xend}
|
||||
%endif
|
||||
#
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%ifnarch %arm aarch64
|
||||
%if %{?with_systemd}0
|
||||
%{fillup_and_insserv -i -y -n xendomains xendomains}
|
||||
@ -1247,20 +1349,7 @@ if [ -f /usr/bin/qemu-io ]; then
|
||||
fi
|
||||
%endif
|
||||
|
||||
%preun tools
|
||||
%if %{?with_systemd}0
|
||||
if [ $1 -eq 0 ]; then
|
||||
/bin/systemctl disable xencommons.service
|
||||
/bin/systemctl disable xendomains.service
|
||||
fi
|
||||
%else
|
||||
%{stop_on_removal xendomains xencommons}
|
||||
%endif
|
||||
|
||||
%postun tools
|
||||
%{insserv_cleanup}
|
||||
|
||||
# Scripts only if creating the xend-tools package
|
||||
%if %suse_version > 1230
|
||||
%if %{?with_xend}0
|
||||
%post xend-tools
|
||||
%if %{?with_systemd}0
|
||||
@ -1269,7 +1358,31 @@ fi
|
||||
%else
|
||||
%{fillup_and_insserv -y -n xend xend}
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%preun tools
|
||||
%if %{?with_systemd}0
|
||||
if [ $1 -eq 0 ]; then
|
||||
/bin/systemctl disable xencommons.service
|
||||
/bin/systemctl disable xendomains.service
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
/bin/systemctl disable xend.service
|
||||
%endif
|
||||
%endif
|
||||
fi
|
||||
%else
|
||||
%{stop_on_removal xendomains xencommons}
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
%{stop_on_removal xend}
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %suse_version > 1230
|
||||
%if %{?with_xend}0
|
||||
%preun xend-tools
|
||||
%if %{?with_systemd}0
|
||||
if [ $1 -eq 0 ]; then
|
||||
@ -1278,14 +1391,47 @@ fi
|
||||
%else
|
||||
%{stop_on_removal xend}
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%postun tools
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
%{restart_on_update xend}
|
||||
%endif
|
||||
%endif
|
||||
%{insserv_cleanup}
|
||||
%ifnarch %arm aarch64
|
||||
%if %suse_version <= 1230
|
||||
%if %{?with_xend}0
|
||||
if [ -f /usr/bin/qemu-img-xen ]; then
|
||||
rm /usr/bin/qemu-img-xen
|
||||
fi
|
||||
if [ -f /usr/bin/qemu-nbd-xen ]; then
|
||||
rm /usr/bin/qemu-nbd-xen
|
||||
fi
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %suse_version > 1230
|
||||
%if %{?with_xend}0
|
||||
%postun xend-tools
|
||||
%{restart_on_update xend}
|
||||
%{insserv_cleanup}
|
||||
if [ -f /usr/bin/qemu-img-xen ]; then
|
||||
rm /usr/bin/qemu-img-xen
|
||||
fi
|
||||
if [ -f /usr/bin/qemu-nbd-xen ]; then
|
||||
rm /usr/bin/qemu-nbd-xen
|
||||
fi
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
@ -1,8 +0,0 @@
|
||||
# Install the paravirtualized drivers
|
||||
install libata /sbin/modprobe xen-vbd 2>&1 |:; /sbin/modprobe --ignore-install libata
|
||||
install ata_piix /sbin/modprobe xen-vbd 2>&1 |:; /sbin/modprobe --ignore-install ata_piix
|
||||
|
||||
install 8139cp /sbin/modprobe xen-vnif 2>&1 |:; /sbin/modprobe --ignore-install 8139cp
|
||||
|
||||
install 8139too /sbin/modprobe xen-vnif 2>&1 |:; /sbin/modprobe --ignore-install 8139too
|
||||
|
44
xen_pvonhvm.xen_emul_unplug.patch
Normal file
44
xen_pvonhvm.xen_emul_unplug.patch
Normal file
@ -0,0 +1,44 @@
|
||||
fate#311487
|
||||
|
||||
Handle xen_emul_unplug from xenlinux based core kernel.
|
||||
|
||||
If the kernel was booted with xen_emul_unplug=(never|ide-disks|nics) unplug only
|
||||
what was requested. Kernel cmdline option is prefered over module option.
|
||||
|
||||
---
|
||||
unmodified_drivers/linux-2.6/platform-pci/platform-pci.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
Index: xen-4.4.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||
+++ xen-4.4.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||
@@ -39,6 +39,9 @@
|
||||
#include <xen/interface/hvm/params.h>
|
||||
#include <xen/features.h>
|
||||
#include <xen/evtchn.h>
|
||||
+#ifdef HAVE_XEN_PVONHVM_UNPLUG
|
||||
+#include <xen/xen_pvonhvm.h>
|
||||
+#endif
|
||||
#ifdef __ia64__
|
||||
#include <asm/xen/xencomm.h>
|
||||
#endif
|
||||
@@ -290,6 +293,18 @@ static int check_platform_magic(struct d
|
||||
short magic, unplug = 0;
|
||||
char protocol, *p, *q, *err;
|
||||
|
||||
+#ifdef HAVE_XEN_PVONHVM_UNPLUG
|
||||
+ if (xen_pvonhvm_unplug) {
|
||||
+ /* Use kernel cmdline setting */
|
||||
+ if (dev_unplug)
|
||||
+ printk(KERN_INFO DRV_NAME ": ignoring option dev_unplug=%s \n", dev_unplug);
|
||||
+ dev_unplug = NULL;
|
||||
+ if (xen_pvonhvm_unplugged_disks)
|
||||
+ unplug |= UNPLUG_ALL_IDE_DISKS | UNPLUG_AUX_IDE_DISKS;
|
||||
+ if (xen_pvonhvm_unplugged_nics)
|
||||
+ unplug |= UNPLUG_ALL_NICS;
|
||||
+ } else
|
||||
+#endif
|
||||
/* Unconditionally unplug everything */
|
||||
if (!dev_unplug)
|
||||
unplug = UNPLUG_ALL;
|
20
xend-config-enable-dump-comment.patch
Normal file
20
xend-config-enable-dump-comment.patch
Normal file
@ -0,0 +1,20 @@
|
||||
bnc#684305
|
||||
|
||||
---
|
||||
tools/examples/xend-config.sxp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
|
||||
===================================================================
|
||||
--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
|
||||
+++ xen-4.2.0-testing/tools/examples/xend-config.sxp
|
||||
@@ -250,6 +250,9 @@
|
||||
(dom0-cpus 0)
|
||||
|
||||
# Whether to enable core-dumps when domains crash.
|
||||
+# This setting overrides the per-domain dump value 'on_crash' and causes a
|
||||
+# core dump on all crashed domains. For finer grain control, it is best to
|
||||
+# disable this setting (which is default) and use the per-domain controls.
|
||||
#(enable-dump no)
|
||||
|
||||
# The tool used for initiating virtual TPM migration
|
@ -2,7 +2,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
|
||||
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
@@ -334,7 +334,7 @@
|
||||
@@ -354,7 +354,7 @@
|
||||
# path /<xend-domain-lock-path>/<vm-uuid>
|
||||
# Return 0 on success, non-zero on error.
|
||||
#
|
||||
@ -11,7 +11,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
# -s Lock status. If lock is acquired, print any contents
|
||||
# on stdout and return 0. Return non-zero if lock is
|
||||
# available.
|
||||
@@ -360,6 +360,11 @@
|
||||
@@ -380,6 +380,11 @@
|
||||
#
|
||||
#(xend-domain-lock-utility domain-lock)
|
||||
|
||||
|
@ -12,7 +12,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
|
||||
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
@@ -301,6 +301,65 @@
|
||||
@@ -321,6 +321,65 @@
|
||||
# device assignment could really work properly even after we do this.
|
||||
#(pci-passthrough-strict-check yes)
|
||||
|
||||
|
@ -10,7 +10,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
|
||||
'rtc_timeoffset': int,
|
||||
'parallel': str,
|
||||
'serial': str,
|
||||
@@ -520,6 +521,8 @@ class XendConfig(dict):
|
||||
@@ -522,6 +523,8 @@ class XendConfig(dict):
|
||||
self['platform']['acpi_firmware'] = ""
|
||||
if 'timer_mode' not in self['platform']:
|
||||
self['platform']['timer_mode'] = 1
|
||||
@ -46,16 +46,16 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
|
||||
gopts.var('acpi', val='ACPI',
|
||||
fn=set_int, default=1,
|
||||
use="Disable or enable ACPI of HVM domain.")
|
||||
@@ -1056,7 +1060,7 @@ def configure_hvm(config_image, vals):
|
||||
@@ -1071,7 +1075,7 @@ def configure_hvm(config_image, vals):
|
||||
'timer_mode',
|
||||
'usb', 'usbdevice',
|
||||
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
|
||||
- 'vncunused', 'viridian', 'vpt_align',
|
||||
+ 'vncunused', 'vpt_align',
|
||||
'watchdog', 'watchdog_action',
|
||||
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
|
||||
'memory_sharing' ]
|
||||
|
||||
@@ -1065,6 +1069,10 @@ def configure_hvm(config_image, vals):
|
||||
@@ -1081,6 +1085,10 @@ def configure_hvm(config_image, vals):
|
||||
config_image.append([a, vals.__dict__[a]])
|
||||
if vals.vncpasswd is not None:
|
||||
config_image.append(['vncpasswd', vals.vncpasswd])
|
||||
|
@ -19,7 +19,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
|
||||
gopts.var('device_model', val='FILE',
|
||||
fn=set_value, default=None,
|
||||
use="Path to device model program.")
|
||||
@@ -1033,6 +1041,7 @@ def configure_hvm(config_image, vals):
|
||||
@@ -1048,6 +1056,7 @@ def configure_hvm(config_image, vals):
|
||||
'boot',
|
||||
'cpuid', 'cpuid_check',
|
||||
'device_model', 'display',
|
||||
@ -62,7 +62,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
|
||||
self.display = vmConfig['platform'].get('display')
|
||||
self.xauthority = vmConfig['platform'].get('xauthority')
|
||||
self.vncconsole = int(vmConfig['platform'].get('vncconsole', 0))
|
||||
@@ -943,6 +945,38 @@ class HVMImageHandler(ImageHandler):
|
||||
@@ -945,6 +947,38 @@ class HVMImageHandler(ImageHandler):
|
||||
self.vm.getDomid() ])
|
||||
return args
|
||||
|
||||
@ -101,7 +101,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
|
||||
def buildDomain(self):
|
||||
store_evtchn = self.vm.getStorePort()
|
||||
|
||||
@@ -958,6 +992,8 @@ class HVMImageHandler(ImageHandler):
|
||||
@@ -960,6 +994,8 @@ class HVMImageHandler(ImageHandler):
|
||||
log.debug("vcpu_avail = %li", self.vm.getVCpuAvail())
|
||||
log.debug("acpi = %d", self.acpi)
|
||||
log.debug("apic = %d", self.apic)
|
||||
@ -110,7 +110,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
|
||||
|
||||
rc = xc.hvm_build(domid = self.vm.getDomid(),
|
||||
image = self.loader,
|
||||
@@ -966,7 +1002,9 @@ class HVMImageHandler(ImageHandler):
|
||||
@@ -968,7 +1004,9 @@ class HVMImageHandler(ImageHandler):
|
||||
vcpus = self.vm.getVCpuCount(),
|
||||
vcpu_avail = self.vm.getVCpuAvail(),
|
||||
acpi = self.acpi,
|
||||
@ -134,7 +134,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
|
||||
'loader': str,
|
||||
'display' : str,
|
||||
'fda': str,
|
||||
@@ -512,6 +514,10 @@ class XendConfig(dict):
|
||||
@@ -514,6 +516,10 @@ class XendConfig(dict):
|
||||
self['platform']['nomigrate'] = 0
|
||||
|
||||
if self.is_hvm():
|
||||
|
140
xend-tools-watchdog-support.patch
Normal file
140
xend-tools-watchdog-support.patch
Normal file
@ -0,0 +1,140 @@
|
||||
Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/python/xen/xm/create.py
|
||||
+++ xen-4.4.0-testing/tools/python/xen/xm/create.py
|
||||
@@ -517,6 +517,21 @@ gopts.var('usbdevice', val='NAME',
|
||||
fn=set_value, default='',
|
||||
use="Name of USB device to add?")
|
||||
|
||||
+gopts.var('watchdog', val='NAME',
|
||||
+ fn=set_value, default='',
|
||||
+ use="Watchdog device to use. May be ib700 or i6300esb")
|
||||
+
|
||||
+gopts.var('watchdog_action', val='reset|shutdown|poweroff|pause|none|dump',
|
||||
+ fn=set_value, default="reset",
|
||||
+ use="""Action when watchdog timer expires:
|
||||
+ - reset: Default, forcefully reset the guest;
|
||||
+ - shutdown: Gracefully shutdown the guest (not recommended);
|
||||
+ - poweroff: Forcefully power off the guest;
|
||||
+ - pause: Pause the guest;
|
||||
+ - none: Do nothing;
|
||||
+ - dump: Automatically dump the guest;
|
||||
+ """)
|
||||
+
|
||||
gopts.var('description', val='NAME',
|
||||
fn=set_value, default='',
|
||||
use="Description of a domain")
|
||||
@@ -1048,6 +1063,7 @@ def configure_hvm(config_image, vals):
|
||||
'usb', 'usbdevice',
|
||||
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
|
||||
'vncunused', 'viridian', 'vpt_align',
|
||||
+ 'watchdog', 'watchdog_action',
|
||||
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
|
||||
'memory_sharing' ]
|
||||
|
||||
Index: xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/python/xen/xm/xenapi_create.py
|
||||
+++ xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py
|
||||
@@ -1074,7 +1074,9 @@ class sxp2xml:
|
||||
'xen_platform_pci',
|
||||
'tsc_mode'
|
||||
'description',
|
||||
- 'nomigrate'
|
||||
+ 'nomigrate',
|
||||
+ 'watchdog',
|
||||
+ 'watchdog_action'
|
||||
]
|
||||
|
||||
platform_configs = []
|
||||
Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/python/xen/xend/image.py
|
||||
+++ xen-4.4.0-testing/tools/python/xen/xend/image.py
|
||||
@@ -855,7 +855,8 @@ class HVMImageHandler(ImageHandler):
|
||||
|
||||
dmargs = [ 'boot', 'fda', 'fdb', 'soundhw',
|
||||
'localtime', 'serial', 'stdvga', 'isa',
|
||||
- 'acpi', 'usb', 'usbdevice', 'gfx_passthru' ]
|
||||
+ 'acpi', 'usb', 'usbdevice', 'gfx_passthru',
|
||||
+ 'watchdog', 'watchdog_action' ]
|
||||
|
||||
for a in dmargs:
|
||||
v = vmConfig['platform'].get(a)
|
||||
@@ -863,6 +864,7 @@ class HVMImageHandler(ImageHandler):
|
||||
# python doesn't allow '-' in variable names
|
||||
if a == 'stdvga': a = 'std-vga'
|
||||
if a == 'keymap': a = 'k'
|
||||
+ if a == 'watchdog_action': a = 'watchdog-action'
|
||||
|
||||
# Handle booleans gracefully
|
||||
if a in ['localtime', 'std-vga', 'isa', 'usb', 'acpi']:
|
||||
Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/python/xen/xend/XendConfig.py
|
||||
+++ xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
|
||||
@@ -192,6 +192,8 @@ XENAPI_PLATFORM_CFG_TYPES = {
|
||||
'xen_platform_pci': int,
|
||||
"gfx_passthru": int,
|
||||
'oos' : int,
|
||||
+ 'watchdog': str,
|
||||
+ 'watchdog_action': str,
|
||||
}
|
||||
|
||||
# Xen API console 'other_config' keys.
|
||||
Index: xen-4.4.0-testing/tools/libxl/libxl_dm.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/libxl/libxl_dm.c
|
||||
+++ xen-4.4.0-testing/tools/libxl/libxl_dm.c
|
||||
@@ -246,6 +246,12 @@ static char ** libxl__build_device_model
|
||||
}
|
||||
}
|
||||
}
|
||||
+ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
|
||||
+ flexarray_append(dm_args, "-watchdog");
|
||||
+ if (b_info->u.hvm.watchdog_action) {
|
||||
+ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
|
||||
+ }
|
||||
+ }
|
||||
if (b_info->u.hvm.soundhw) {
|
||||
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
|
||||
}
|
||||
@@ -581,6 +587,12 @@ static char ** libxl__build_device_model
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
+ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
|
||||
+ flexarray_append(dm_args, "-watchdog");
|
||||
+ if (b_info->u.hvm.watchdog_action) {
|
||||
+ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
|
||||
+ }
|
||||
+ }
|
||||
if (b_info->u.hvm.soundhw) {
|
||||
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
|
||||
}
|
||||
Index: xen-4.4.0-testing/tools/libxl/libxl_types.idl
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/libxl/libxl_types.idl
|
||||
+++ xen-4.4.0-testing/tools/libxl/libxl_types.idl
|
||||
@@ -372,6 +372,8 @@ libxl_domain_build_info = Struct("domain
|
||||
("xen_platform_pci", libxl_defbool),
|
||||
("usbdevice_list", libxl_string_list),
|
||||
("vendor_device", libxl_vendor_device),
|
||||
+ ("watchdog", string),
|
||||
+ ("watchdog_action", string),
|
||||
])),
|
||||
("pv", Struct(None, [("kernel", string),
|
||||
("slack_memkb", MemKB),
|
||||
Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c
|
||||
+++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c
|
||||
@@ -1694,6 +1694,8 @@ skip_vfb:
|
||||
xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0);
|
||||
xlu_cfg_get_defbool(config, "xen_platform_pci",
|
||||
&b_info->u.hvm.xen_platform_pci, 0);
|
||||
+ xlu_cfg_replace_string (config, "watchdog", &b_info->u.hvm.watchdog, 0);
|
||||
+ xlu_cfg_replace_string (config, "watchdog_action", &b_info->u.hvm.watchdog_action, 0);
|
||||
|
||||
if(b_info->u.hvm.vnc.listen
|
||||
&& b_info->u.hvm.vnc.display
|
89
xend-vif-route-ifup.patch
Normal file
89
xend-vif-route-ifup.patch
Normal file
@ -0,0 +1,89 @@
|
||||
---
|
||||
tools/examples/xend-config.sxp | 20 ++++++++++++++++++++
|
||||
tools/hotplug/Linux/Makefile | 2 +-
|
||||
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 55 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
|
||||
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
|
||||
@@ -200,6 +200,26 @@
|
||||
#(network-script network-route)
|
||||
#(vif-script vif-route)
|
||||
|
||||
+# SuSE users note:
|
||||
+# If using a routed network configuration it is advised to NOT use
|
||||
+# network-route and vif-route scripts but instead use sysconfig scripts
|
||||
+# in dom0 and vif-route-ifup script to "connect" the domU vif to dom0.
|
||||
+# Since this configuration requires a vif sysconfig script in dom0, a static
|
||||
+# vif name must be used. E.g. in dom0 the vif sysconfig script
|
||||
+# (/etc/sysconfig/network/ifcfg-xen1.0) may contain
|
||||
+#
|
||||
+# NAME='XEN vm 1 virtual interface 0'
|
||||
+# BOOTPROTO='static'
|
||||
+# STARTMODE='hotplug'
|
||||
+# ...
|
||||
+#
|
||||
+# The corresponding domain vif configuration would contain e.g.
|
||||
+# vif=[ 'mac=00:16:3e:aa:bb:cc,script=vif-route-ifup,vifname=xen1.0', ]
|
||||
+#
|
||||
+# If the vif-route-ifup script will be used for all domains, it can be
|
||||
+# set here as the default vif script, alleviating the need for
|
||||
+# 'script=' in domain vif configuration.
|
||||
+#(vif-script vif-route-ifup)
|
||||
|
||||
## Use the following if network traffic is routed with NAT, as an alternative
|
||||
# to the settings for bridged networking given above.
|
||||
Index: xen-4.4.0-testing/tools/hotplug/Linux/Makefile
|
||||
===================================================================
|
||||
--- xen-4.4.0-testing.orig/tools/hotplug/Linux/Makefile
|
||||
+++ xen-4.4.0-testing/tools/hotplug/Linux/Makefile
|
||||
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPTS = network-bridge vif-bridge
|
||||
-XEN_SCRIPTS += network-route vif-route
|
||||
+XEN_SCRIPTS += network-route vif-route vif-route-ifup
|
||||
XEN_SCRIPTS += network-nat vif-nat
|
||||
XEN_SCRIPTS += vif-openvswitch
|
||||
XEN_SCRIPTS += vif2
|
||||
Index: xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup
|
||||
@@ -0,0 +1,34 @@
|
||||
+#!/bin/bash
|
||||
+#============================================================================
|
||||
+# /etc/xen/vif-route-ifup
|
||||
+#
|
||||
+# Script for configuring a vif in routed mode.
|
||||
+# The hotplugging system will call this script if it is specified either in
|
||||
+# the device configuration given to Xend, or the default Xend configuration
|
||||
+# in /etc/xen/xend-config.sxp. If the script is specified in neither of those
|
||||
+# places, then vif-bridge is the default.
|
||||
+#
|
||||
+# Usage:
|
||||
+# vif-route-ifup (add|remove|online|offline)
|
||||
+#
|
||||
+# Environment vars:
|
||||
+# dev vif interface name (required).
|
||||
+#============================================================================
|
||||
+
|
||||
+dir=$(dirname "$0")
|
||||
+. "$dir/vif-common.sh"
|
||||
+
|
||||
+case "$command" in
|
||||
+ online)
|
||||
+ ifup ${dev}
|
||||
+ ;;
|
||||
+ offline)
|
||||
+ do_without_error ifdown ${dev}
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+log debug "Successful vif-route-ifup $command for ${dev}."
|
||||
+if [ "$command" = "online" ]
|
||||
+then
|
||||
+ success
|
||||
+fi
|
@ -107,7 +107,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
|
||||
'smbios_firmware': str,
|
||||
'acpi_firmware': str,
|
||||
'loader': str,
|
||||
@@ -515,6 +518,12 @@ class XendConfig(dict):
|
||||
@@ -517,6 +520,12 @@ class XendConfig(dict):
|
||||
self['platform']['nomigrate'] = 0
|
||||
|
||||
if self.is_hvm():
|
||||
@ -348,7 +348,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
|
||||
gopts.var('device_model', val='FILE',
|
||||
fn=set_value, default=None,
|
||||
use="Path to device model program.")
|
||||
@@ -1044,6 +1056,9 @@ def configure_hvm(config_image, vals):
|
||||
@@ -1059,6 +1071,9 @@ def configure_hvm(config_image, vals):
|
||||
args = [ 'acpi', 'apic',
|
||||
'boot',
|
||||
'cpuid', 'cpuid_check',
|
||||
|
Loading…
x
Reference in New Issue
Block a user