This commit is contained in:
parent
997dde689d
commit
b834258fb8
90
18406-constify-microcode.patch
Normal file
90
18406-constify-microcode.patch
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1220022665 -3600
|
||||||
|
# Node ID 481f0dc6beb0b19cb02354dbe9b4ce068a5f6a18
|
||||||
|
# Parent cd078a3d600e6a1bab65e6392a60a832253cff8b
|
||||||
|
x86: constify microcode hypercall argument
|
||||||
|
|
||||||
|
Linux 2.6.27 marks the data pointer in its firmware struct 'const',
|
||||||
|
and hence, to avoid a compiler warning, Xen's microcode update
|
||||||
|
interface should be properly properly constified too.
|
||||||
|
|
||||||
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/microcode.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
@@ -124,7 +124,7 @@ static DEFINE_SPINLOCK(microcode_update_
|
||||||
|
/* no concurrent ->write()s are allowed on /dev/cpu/microcode */
|
||||||
|
static DEFINE_MUTEX(microcode_mutex);
|
||||||
|
|
||||||
|
-static void __user *user_buffer; /* user area microcode data buffer */
|
||||||
|
+static const void __user *user_buffer; /* user area microcode data buffer */
|
||||||
|
static unsigned int user_buffer_size; /* it's size */
|
||||||
|
|
||||||
|
typedef enum mc_error_code {
|
||||||
|
@@ -455,7 +455,7 @@ out:
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
-int microcode_update(XEN_GUEST_HANDLE(void) buf, unsigned long len)
|
||||||
|
+int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/platform_hypercall.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/platform_hypercall.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/platform_hypercall.c
|
||||||
|
@@ -147,8 +147,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
|
||||||
|
|
||||||
|
case XENPF_microcode_update:
|
||||||
|
{
|
||||||
|
- extern int microcode_update(XEN_GUEST_HANDLE(void), unsigned long len);
|
||||||
|
- XEN_GUEST_HANDLE(void) data;
|
||||||
|
+ XEN_GUEST_HANDLE(const_void) data;
|
||||||
|
|
||||||
|
ret = xsm_microcode();
|
||||||
|
if ( ret )
|
||||||
|
Index: xen-3.3.1-testing/xen/include/asm-x86/processor.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/asm-x86/processor.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/asm-x86/processor.h
|
||||||
|
@@ -583,6 +583,8 @@ int rdmsr_hypervisor_regs(
|
||||||
|
int wrmsr_hypervisor_regs(
|
||||||
|
uint32_t idx, uint32_t eax, uint32_t edx);
|
||||||
|
|
||||||
|
+int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
|
||||||
|
+
|
||||||
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
||||||
|
#endif /* __ASM_X86_PROCESSOR_H */
|
||||||
|
Index: xen-3.3.1-testing/xen/include/public/platform.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/public/platform.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/public/platform.h
|
||||||
|
@@ -97,7 +97,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_read_memty
|
||||||
|
#define XENPF_microcode_update 35
|
||||||
|
struct xenpf_microcode_update {
|
||||||
|
/* IN variables. */
|
||||||
|
- XEN_GUEST_HANDLE(void) data; /* Pointer to microcode data */
|
||||||
|
+ XEN_GUEST_HANDLE(const_void) data;/* Pointer to microcode data */
|
||||||
|
uint32_t length; /* Length of microcode data. */
|
||||||
|
};
|
||||||
|
typedef struct xenpf_microcode_update xenpf_microcode_update_t;
|
||||||
|
Index: xen-3.3.1-testing/xen/include/xen/compat.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/xen/compat.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/xen/compat.h
|
||||||
|
@@ -19,7 +19,9 @@
|
||||||
|
type *_[0] __attribute__((__packed__)); \
|
||||||
|
} __compat_handle_ ## name
|
||||||
|
|
||||||
|
-#define DEFINE_COMPAT_HANDLE(name) __DEFINE_COMPAT_HANDLE(name, name)
|
||||||
|
+#define DEFINE_COMPAT_HANDLE(name) \
|
||||||
|
+ __DEFINE_COMPAT_HANDLE(name, name); \
|
||||||
|
+ __DEFINE_COMPAT_HANDLE(const_ ## name, const name)
|
||||||
|
#define COMPAT_HANDLE(name) __compat_handle_ ## name
|
||||||
|
|
||||||
|
/* Is the compat handle a NULL reference? */
|
235
18428-poll-single-port.patch
Normal file
235
18428-poll-single-port.patch
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1220535506 -3600
|
||||||
|
# Node ID ae9b223a675d9ed37cffbc24d0abe83ef2a30ab3
|
||||||
|
# Parent 8d982c7a0d303de1200134fcf3a2573f6f4449fa
|
||||||
|
More efficient implementation of SCHEDOP_poll when polling a single port.
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/common/domain.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/domain.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/domain.c
|
||||||
|
@@ -651,9 +651,11 @@ void vcpu_reset(struct vcpu *v)
|
||||||
|
|
||||||
|
set_bit(_VPF_down, &v->pause_flags);
|
||||||
|
|
||||||
|
+ clear_bit(v->vcpu_id, d->poll_mask);
|
||||||
|
+ v->poll_evtchn = 0;
|
||||||
|
+
|
||||||
|
v->fpu_initialised = 0;
|
||||||
|
v->fpu_dirtied = 0;
|
||||||
|
- v->is_polling = 0;
|
||||||
|
v->is_initialised = 0;
|
||||||
|
v->nmi_pending = 0;
|
||||||
|
v->mce_pending = 0;
|
||||||
|
Index: xen-3.3.1-testing/xen/common/event_channel.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/event_channel.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/event_channel.c
|
||||||
|
@@ -545,6 +545,7 @@ out:
|
||||||
|
static int evtchn_set_pending(struct vcpu *v, int port)
|
||||||
|
{
|
||||||
|
struct domain *d = v->domain;
|
||||||
|
+ int vcpuid;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following bit operations must happen in strict order.
|
||||||
|
@@ -564,15 +565,19 @@ static int evtchn_set_pending(struct vcp
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if some VCPU might be polling for this event. */
|
||||||
|
- if ( unlikely(d->is_polling) )
|
||||||
|
- {
|
||||||
|
- d->is_polling = 0;
|
||||||
|
- smp_mb(); /* check vcpu poll-flags /after/ clearing domain poll-flag */
|
||||||
|
- for_each_vcpu ( d, v )
|
||||||
|
+ if ( likely(bitmap_empty(d->poll_mask, MAX_VIRT_CPUS)) )
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ /* Wake any interested (or potentially interested) pollers. */
|
||||||
|
+ for ( vcpuid = find_first_bit(d->poll_mask, MAX_VIRT_CPUS);
|
||||||
|
+ vcpuid < MAX_VIRT_CPUS;
|
||||||
|
+ vcpuid = find_next_bit(d->poll_mask, MAX_VIRT_CPUS, vcpuid+1) )
|
||||||
|
+ {
|
||||||
|
+ v = d->vcpu[vcpuid];
|
||||||
|
+ if ( ((v->poll_evtchn <= 0) || (v->poll_evtchn == port)) &&
|
||||||
|
+ test_and_clear_bit(vcpuid, d->poll_mask) )
|
||||||
|
{
|
||||||
|
- if ( !v->is_polling )
|
||||||
|
- continue;
|
||||||
|
- v->is_polling = 0;
|
||||||
|
+ v->poll_evtchn = 0;
|
||||||
|
vcpu_unblock(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Index: xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/schedule.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
@@ -198,6 +198,27 @@ void vcpu_wake(struct vcpu *v)
|
||||||
|
TRACE_2D(TRC_SCHED_WAKE, v->domain->domain_id, v->vcpu_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void vcpu_unblock(struct vcpu *v)
|
||||||
|
+{
|
||||||
|
+ if ( !test_and_clear_bit(_VPF_blocked, &v->pause_flags) )
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ /* Polling period ends when a VCPU is unblocked. */
|
||||||
|
+ if ( unlikely(v->poll_evtchn != 0) )
|
||||||
|
+ {
|
||||||
|
+ v->poll_evtchn = 0;
|
||||||
|
+ /*
|
||||||
|
+ * We *must* re-clear _VPF_blocked to avoid racing other wakeups of
|
||||||
|
+ * this VCPU (and it then going back to sleep on poll_mask).
|
||||||
|
+ * Test-and-clear is idiomatic and ensures clear_bit not reordered.
|
||||||
|
+ */
|
||||||
|
+ if ( test_and_clear_bit(v->vcpu_id, v->domain->poll_mask) )
|
||||||
|
+ clear_bit(_VPF_blocked, &v->pause_flags);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ vcpu_wake(v);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void vcpu_migrate(struct vcpu *v)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
@@ -337,7 +358,7 @@ static long do_poll(struct sched_poll *s
|
||||||
|
struct vcpu *v = current;
|
||||||
|
struct domain *d = v->domain;
|
||||||
|
evtchn_port_t port;
|
||||||
|
- long rc = 0;
|
||||||
|
+ long rc;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
/* Fairly arbitrary limit. */
|
||||||
|
@@ -348,11 +369,24 @@ static long do_poll(struct sched_poll *s
|
||||||
|
return -EFAULT;
|
||||||
|
|
||||||
|
set_bit(_VPF_blocked, &v->pause_flags);
|
||||||
|
- v->is_polling = 1;
|
||||||
|
- d->is_polling = 1;
|
||||||
|
+ v->poll_evtchn = -1;
|
||||||
|
+ set_bit(v->vcpu_id, d->poll_mask);
|
||||||
|
|
||||||
|
+#ifndef CONFIG_X86 /* set_bit() implies mb() on x86 */
|
||||||
|
/* Check for events /after/ setting flags: avoids wakeup waiting race. */
|
||||||
|
- smp_wmb();
|
||||||
|
+ smp_mb();
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Someone may have seen we are blocked but not that we are polling, or
|
||||||
|
+ * vice versa. We are certainly being woken, so clean up and bail. Beyond
|
||||||
|
+ * this point others can be guaranteed to clean up for us if they wake us.
|
||||||
|
+ */
|
||||||
|
+ rc = 0;
|
||||||
|
+ if ( (v->poll_evtchn == 0) ||
|
||||||
|
+ !test_bit(_VPF_blocked, &v->pause_flags) ||
|
||||||
|
+ !test_bit(v->vcpu_id, d->poll_mask) )
|
||||||
|
+ goto out;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
for ( i = 0; i < sched_poll->nr_ports; i++ )
|
||||||
|
{
|
||||||
|
@@ -369,6 +403,9 @@ static long do_poll(struct sched_poll *s
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ( sched_poll->nr_ports == 1 )
|
||||||
|
+ v->poll_evtchn = port;
|
||||||
|
+
|
||||||
|
if ( sched_poll->timeout != 0 )
|
||||||
|
set_timer(&v->poll_timer, sched_poll->timeout);
|
||||||
|
|
||||||
|
@@ -378,7 +415,8 @@ static long do_poll(struct sched_poll *s
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
out:
|
||||||
|
- v->is_polling = 0;
|
||||||
|
+ v->poll_evtchn = 0;
|
||||||
|
+ clear_bit(v->vcpu_id, d->poll_mask);
|
||||||
|
clear_bit(_VPF_blocked, &v->pause_flags);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
@@ -760,11 +798,8 @@ static void poll_timer_fn(void *data)
|
||||||
|
{
|
||||||
|
struct vcpu *v = data;
|
||||||
|
|
||||||
|
- if ( !v->is_polling )
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
- v->is_polling = 0;
|
||||||
|
- vcpu_unblock(v);
|
||||||
|
+ if ( test_and_clear_bit(v->vcpu_id, v->domain->poll_mask) )
|
||||||
|
+ vcpu_unblock(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialise the data structures. */
|
||||||
|
Index: xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/xen/sched.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
@@ -106,8 +106,6 @@ struct vcpu
|
||||||
|
bool_t fpu_initialised;
|
||||||
|
/* Has the FPU been used since it was last saved? */
|
||||||
|
bool_t fpu_dirtied;
|
||||||
|
- /* Is this VCPU polling any event channels (SCHEDOP_poll)? */
|
||||||
|
- bool_t is_polling;
|
||||||
|
/* Initialization completed for this VCPU? */
|
||||||
|
bool_t is_initialised;
|
||||||
|
/* Currently running on a CPU? */
|
||||||
|
@@ -134,6 +132,13 @@ struct vcpu
|
||||||
|
/* VCPU affinity is temporarily locked from controller changes? */
|
||||||
|
bool_t affinity_locked;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * > 0: a single port is being polled;
|
||||||
|
+ * = 0: nothing is being polled (vcpu should be clear in d->poll_mask);
|
||||||
|
+ * < 0: multiple ports may be being polled.
|
||||||
|
+ */
|
||||||
|
+ int poll_evtchn;
|
||||||
|
+
|
||||||
|
unsigned long pause_flags;
|
||||||
|
atomic_t pause_count;
|
||||||
|
|
||||||
|
@@ -209,8 +214,6 @@ struct domain
|
||||||
|
struct domain *target;
|
||||||
|
/* Is this guest being debugged by dom0? */
|
||||||
|
bool_t debugger_attached;
|
||||||
|
- /* Are any VCPUs polling event channels (SCHEDOP_poll)? */
|
||||||
|
- bool_t is_polling;
|
||||||
|
/* Is this guest dying (i.e., a zombie)? */
|
||||||
|
enum { DOMDYING_alive, DOMDYING_dying, DOMDYING_dead } is_dying;
|
||||||
|
/* Domain is paused by controller software? */
|
||||||
|
@@ -218,6 +221,9 @@ struct domain
|
||||||
|
/* Domain's VCPUs are pinned 1:1 to physical CPUs? */
|
||||||
|
bool_t is_pinned;
|
||||||
|
|
||||||
|
+ /* Are any VCPUs polling event channels (SCHEDOP_poll)? */
|
||||||
|
+ DECLARE_BITMAP(poll_mask, MAX_VIRT_CPUS);
|
||||||
|
+
|
||||||
|
/* Guest has shut down (inc. reason code)? */
|
||||||
|
spinlock_t shutdown_lock;
|
||||||
|
bool_t is_shutting_down; /* in process of shutting down? */
|
||||||
|
@@ -507,6 +513,7 @@ static inline int vcpu_runnable(struct v
|
||||||
|
atomic_read(&v->domain->pause_count));
|
||||||
|
}
|
||||||
|
|
||||||
|
+void vcpu_unblock(struct vcpu *v);
|
||||||
|
void vcpu_pause(struct vcpu *v);
|
||||||
|
void vcpu_pause_nosync(struct vcpu *v);
|
||||||
|
void domain_pause(struct domain *d);
|
||||||
|
@@ -523,12 +530,6 @@ void vcpu_unlock_affinity(struct vcpu *v
|
||||||
|
|
||||||
|
void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate);
|
||||||
|
|
||||||
|
-static inline void vcpu_unblock(struct vcpu *v)
|
||||||
|
-{
|
||||||
|
- if ( test_and_clear_bit(_VPF_blocked, &v->pause_flags) )
|
||||||
|
- vcpu_wake(v);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#define IS_PRIV(_d) ((_d)->is_privileged)
|
||||||
|
#define IS_PRIV_FOR(_d, _t) (IS_PRIV(_d) || ((_d)->target && (_d)->target == (_t)))
|
||||||
|
|
213
18464-cpu-hotplug.patch
Normal file
213
18464-cpu-hotplug.patch
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221141982 -3600
|
||||||
|
# Node ID 4ffc70556000869d3c301452a99e4e524dd54b07
|
||||||
|
# Parent fba8dca321c2b99842af6624f24afb77c472184b
|
||||||
|
x86: Support CPU hotplug offline.
|
||||||
|
|
||||||
|
Signed-off-by: Shan Haitao <haitao.shan@intel.com>
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/irq.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/irq.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/irq.c
|
||||||
|
@@ -737,9 +737,12 @@ __initcall(setup_dump_irqs);
|
||||||
|
|
||||||
|
void fixup_irqs(cpumask_t map)
|
||||||
|
{
|
||||||
|
- unsigned int irq;
|
||||||
|
+ unsigned int irq, sp;
|
||||||
|
static int warned;
|
||||||
|
+ irq_guest_action_t *action;
|
||||||
|
+ struct pending_eoi *peoi;
|
||||||
|
|
||||||
|
+ /* Direct all future interrupts away from this CPU. */
|
||||||
|
for ( irq = 0; irq < NR_IRQS; irq++ )
|
||||||
|
{
|
||||||
|
cpumask_t mask;
|
||||||
|
@@ -758,8 +761,24 @@ void fixup_irqs(cpumask_t map)
|
||||||
|
printk("Cannot set affinity for irq %i\n", irq);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Service any interrupts that beat us in the re-direction race. */
|
||||||
|
local_irq_enable();
|
||||||
|
mdelay(1);
|
||||||
|
local_irq_disable();
|
||||||
|
+
|
||||||
|
+ /* Clean up cpu_eoi_map of every interrupt to exclude this CPU. */
|
||||||
|
+ for ( irq = 0; irq < NR_IRQS; irq++ )
|
||||||
|
+ {
|
||||||
|
+ if ( !(irq_desc[irq].status & IRQ_GUEST) )
|
||||||
|
+ continue;
|
||||||
|
+ action = (irq_guest_action_t *)irq_desc[irq].action;
|
||||||
|
+ cpu_clear(smp_processor_id(), action->cpu_eoi_map);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Flush the interrupt EOI stack. */
|
||||||
|
+ peoi = this_cpu(pending_eoi);
|
||||||
|
+ for ( sp = 0; sp < pending_eoi_sp(peoi); sp++ )
|
||||||
|
+ peoi[sp].ready = 1;
|
||||||
|
+ flush_ready_eoi(NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/smpboot.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/smpboot.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/smpboot.c
|
||||||
|
@@ -1225,15 +1225,6 @@ int __cpu_disable(void)
|
||||||
|
if (cpu == 0)
|
||||||
|
return -EBUSY;
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Only S3 is using this path, and thus idle vcpus are running on all
|
||||||
|
- * APs when we are called. To support full cpu hotplug, other
|
||||||
|
- * notification mechanisms should be introduced (e.g., migrate vcpus
|
||||||
|
- * off this physical cpu before rendezvous point).
|
||||||
|
- */
|
||||||
|
- if (!is_idle_vcpu(current))
|
||||||
|
- return -EINVAL;
|
||||||
|
-
|
||||||
|
local_irq_disable();
|
||||||
|
clear_local_APIC();
|
||||||
|
/* Allow any queued timer interrupts to get serviced */
|
||||||
|
@@ -1249,6 +1240,9 @@ int __cpu_disable(void)
|
||||||
|
fixup_irqs(map);
|
||||||
|
/* It's now safe to remove this processor from the online map */
|
||||||
|
cpu_clear(cpu, cpu_online_map);
|
||||||
|
+
|
||||||
|
+ cpu_disable_scheduler();
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1275,28 +1269,6 @@ static int take_cpu_down(void *unused)
|
||||||
|
return __cpu_disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
-/*
|
||||||
|
- * XXX: One important thing missed here is to migrate vcpus
|
||||||
|
- * from dead cpu to other online ones and then put whole
|
||||||
|
- * system into a stop state. It assures a safe environment
|
||||||
|
- * for a cpu hotplug/remove at normal running state.
|
||||||
|
- *
|
||||||
|
- * However for xen PM case, at this point:
|
||||||
|
- * -> All other domains should be notified with PM event,
|
||||||
|
- * and then in following states:
|
||||||
|
- * * Suspend state, or
|
||||||
|
- * * Paused state, which is a force step to all
|
||||||
|
- * domains if they do nothing to suspend
|
||||||
|
- * -> All vcpus of dom0 (except vcpu0) have already beem
|
||||||
|
- * hot removed
|
||||||
|
- * with the net effect that all other cpus only have idle vcpu
|
||||||
|
- * running. In this special case, we can avoid vcpu migration
|
||||||
|
- * then and system can be considered in a stop state.
|
||||||
|
- *
|
||||||
|
- * So current cpu hotplug is a special version for PM specific
|
||||||
|
- * usage, and need more effort later for full cpu hotplug.
|
||||||
|
- * (ktian1)
|
||||||
|
- */
|
||||||
|
int cpu_down(unsigned int cpu)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
@@ -1307,6 +1279,12 @@ int cpu_down(unsigned int cpu)
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Can not offline BSP */
|
||||||
|
+ if (cpu == 0) {
|
||||||
|
+ err = -EINVAL;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!cpu_online(cpu)) {
|
||||||
|
err = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
Index: xen-3.3.1-testing/xen/common/sched_credit.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/sched_credit.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/sched_credit.c
|
||||||
|
@@ -1107,6 +1107,10 @@ csched_load_balance(int cpu, struct csch
|
||||||
|
|
||||||
|
BUG_ON( cpu != snext->vcpu->processor );
|
||||||
|
|
||||||
|
+ /* If this CPU is going offline we shouldn't steal work. */
|
||||||
|
+ if ( unlikely(!cpu_online(cpu)) )
|
||||||
|
+ goto out;
|
||||||
|
+
|
||||||
|
if ( snext->pri == CSCHED_PRI_IDLE )
|
||||||
|
CSCHED_STAT_CRANK(load_balance_idle);
|
||||||
|
else if ( snext->pri == CSCHED_PRI_TS_OVER )
|
||||||
|
@@ -1149,6 +1153,7 @@ csched_load_balance(int cpu, struct csch
|
||||||
|
return speer;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ out:
|
||||||
|
/* Failed to find more important work elsewhere... */
|
||||||
|
__runq_remove(snext);
|
||||||
|
return snext;
|
||||||
|
Index: xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/schedule.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
@@ -268,6 +268,48 @@ void vcpu_force_reschedule(struct vcpu *
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * This function is used by cpu_hotplug code from stop_machine context.
|
||||||
|
+ * Hence we can avoid needing to take the
|
||||||
|
+ */
|
||||||
|
+void cpu_disable_scheduler(void)
|
||||||
|
+{
|
||||||
|
+ struct domain *d;
|
||||||
|
+ struct vcpu *v;
|
||||||
|
+ unsigned int cpu = smp_processor_id();
|
||||||
|
+
|
||||||
|
+ for_each_domain ( d )
|
||||||
|
+ {
|
||||||
|
+ for_each_vcpu ( d, v )
|
||||||
|
+ {
|
||||||
|
+ if ( is_idle_vcpu(v) )
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if ( (cpus_weight(v->cpu_affinity) == 1) &&
|
||||||
|
+ cpu_isset(cpu, v->cpu_affinity) )
|
||||||
|
+ {
|
||||||
|
+ printk("Breaking vcpu affinity for domain %d vcpu %d\n",
|
||||||
|
+ v->domain->domain_id, v->vcpu_id);
|
||||||
|
+ cpus_setall(v->cpu_affinity);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Migrate single-shot timers to CPU0. A new cpu will automatically
|
||||||
|
+ * be chosen when the timer is next re-set.
|
||||||
|
+ */
|
||||||
|
+ if ( v->singleshot_timer.cpu == cpu )
|
||||||
|
+ migrate_timer(&v->singleshot_timer, 0);
|
||||||
|
+
|
||||||
|
+ if ( v->processor == cpu )
|
||||||
|
+ {
|
||||||
|
+ set_bit(_VPF_migrating, &v->pause_flags);
|
||||||
|
+ vcpu_sleep_nosync(v);
|
||||||
|
+ vcpu_migrate(v);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int __vcpu_set_affinity(
|
||||||
|
struct vcpu *v, cpumask_t *affinity,
|
||||||
|
bool_t old_lock_status, bool_t new_lock_status)
|
||||||
|
Index: xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/xen/sched.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
@@ -524,6 +524,7 @@ void domain_unpause_by_systemcontroller(
|
||||||
|
void cpu_init(void);
|
||||||
|
|
||||||
|
void vcpu_force_reschedule(struct vcpu *v);
|
||||||
|
+void cpu_disable_scheduler(void);
|
||||||
|
int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
int vcpu_lock_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
void vcpu_unlock_affinity(struct vcpu *v, cpumask_t *affinity);
|
27
18471-cpu-hotplug.patch
Normal file
27
18471-cpu-hotplug.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221212419 -3600
|
||||||
|
# Node ID 34aed15ba9df804ce037c5f691a9b11058fff2b9
|
||||||
|
# Parent f125e481d8b65b81dd794d60a99fb0b823eaee2c
|
||||||
|
x86, cpu hotplug: flush softirq work when going offline
|
||||||
|
|
||||||
|
From: Haitao Shan <haitao.shan@intel.com>
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/domain.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/domain.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/domain.c
|
||||||
|
@@ -86,6 +86,12 @@ static void default_idle(void)
|
||||||
|
|
||||||
|
static void play_dead(void)
|
||||||
|
{
|
||||||
|
+ /*
|
||||||
|
+ * Flush pending softirqs if any. They can be queued up before this CPU
|
||||||
|
+ * was taken out of cpu_online_map in __cpu_disable().
|
||||||
|
+ */
|
||||||
|
+ do_softirq();
|
||||||
|
+
|
||||||
|
/* This must be done before dead CPU ack */
|
||||||
|
cpu_exit_clear();
|
||||||
|
hvm_cpu_down();
|
1660
18475-amd-microcode-update.patch
Normal file
1660
18475-amd-microcode-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
37
18481-amd-microcode-update-fix.patch
Normal file
37
18481-amd-microcode-update-fix.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221489878 -3600
|
||||||
|
# Node ID 75c4a603d9cd7f73366986261e1078fce1ead815
|
||||||
|
# Parent 59aba2cbbb58111de1aba6b173800d62956cf26f
|
||||||
|
x86: Fix 32-bit build after AMD microcode update patch.
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/microcode_amd.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/microcode_amd.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/microcode_amd.c
|
||||||
|
@@ -170,11 +170,10 @@ out:
|
||||||
|
static int apply_microcode_amd(int cpu)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
- unsigned int eax, edx;
|
||||||
|
- unsigned int rev;
|
||||||
|
+ uint32_t eax, edx, rev;
|
||||||
|
int cpu_num = raw_smp_processor_id();
|
||||||
|
struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num;
|
||||||
|
- unsigned long addr;
|
||||||
|
+ uint64_t addr;
|
||||||
|
|
||||||
|
/* We should bind the task to the CPU */
|
||||||
|
BUG_ON(cpu_num != cpu);
|
||||||
|
@@ -185,8 +184,8 @@ static int apply_microcode_amd(int cpu)
|
||||||
|
spin_lock_irqsave(µcode_update_lock, flags);
|
||||||
|
|
||||||
|
addr = (unsigned long)&uci->mc.mc_amd->hdr.data_code;
|
||||||
|
- edx = (unsigned int)((unsigned long)(addr >> 32));
|
||||||
|
- eax = (unsigned int)((unsigned long)(addr & 0xffffffff));
|
||||||
|
+ edx = (uint32_t)(addr >> 32);
|
||||||
|
+ eax = (uint32_t)addr;
|
||||||
|
|
||||||
|
asm volatile("movl %0, %%ecx; wrmsr" :
|
||||||
|
: "i" (MSR_AMD_PATCHLOADER), "a" (eax), "d" (edx) : "ecx");
|
1766
18483-intel-microcode-update.patch
Normal file
1766
18483-intel-microcode-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
85
18484-stubdom-ioemu-makefile.patch
Normal file
85
18484-stubdom-ioemu-makefile.patch
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221565466 -3600
|
||||||
|
# Node ID f03b0cc33576e4fe3ff6adfd0853addf676c105e
|
||||||
|
# Parent 087b8b29b6b20165062697305c6651ca2acb7b5b
|
||||||
|
stubdom/ioemu link farm creation fixes
|
||||||
|
|
||||||
|
Replace the stubdom/ioemu link farm creation in stubdom/Makefile,
|
||||||
|
with code which arranges that:
|
||||||
|
* No symlinks are made for output files - in particular, any
|
||||||
|
symlinks for .d files would be written through by the compiler
|
||||||
|
and cause damage to the original tree and other strange
|
||||||
|
behaviours
|
||||||
|
* All subdirectories are made as local subdirectories rather than
|
||||||
|
links
|
||||||
|
* Any interrupted or half-completed creation of the link farm
|
||||||
|
leaves the directory in a state where the link farming will be
|
||||||
|
restarted
|
||||||
|
* We use make's inherent ability to test for the existence of files
|
||||||
|
rather than using [ -f ... ] at the start of the rule's commands
|
||||||
|
* The list of files to be excluded from the link farm can be
|
||||||
|
easily updated
|
||||||
|
etc.
|
||||||
|
|
||||||
|
This should fix some problems particularly with parallel builds,
|
||||||
|
or by-hand builds where directories are entered in other than the
|
||||||
|
usual order.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/stubdom/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/stubdom/Makefile
|
||||||
|
+++ xen-3.3.1-testing/stubdom/Makefile
|
||||||
|
@@ -164,7 +164,26 @@ lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VER
|
||||||
|
.PHONY: $(CROSS_ROOT)
|
||||||
|
$(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
|
||||||
|
|
||||||
|
-mk-headers-$(XEN_TARGET_ARCH):
|
||||||
|
+ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir
|
||||||
|
+ mkdir -p ioemu
|
||||||
|
+ifeq ($(CONFIG_QEMU),ioemu)
|
||||||
|
+ [ -h ioemu/Makefile ] || ( cd ioemu && \
|
||||||
|
+ ln -sf ../$(XEN_ROOT)/tools/ioemu/* .)
|
||||||
|
+else
|
||||||
|
+ set -e; \
|
||||||
|
+ $(absolutify_xen_root); \
|
||||||
|
+ cd ioemu; \
|
||||||
|
+ src="$$XEN_ROOT/tools/ioemu-dir"; export src; \
|
||||||
|
+ (cd $$src && find * -type d -print) | xargs mkdir -p; \
|
||||||
|
+ (cd $$src && find * ! -type l -type f $(addprefix ! -name , \
|
||||||
|
+ '*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \
|
||||||
|
+ '*.html' '*.pod' \
|
||||||
|
+ )) | \
|
||||||
|
+ while read f; do rm -f "$$f"; ln -s "$$src/$$f" "$$f"; done
|
||||||
|
+endif
|
||||||
|
+ touch ioemu/linkfarm.stamp
|
||||||
|
+
|
||||||
|
+mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp
|
||||||
|
mkdir -p include/xen && \
|
||||||
|
ln -sf $(addprefix ../../,$(wildcard $(XEN_ROOT)/xen/include/public/*.h)) include/xen && \
|
||||||
|
ln -sf $(addprefix ../../$(XEN_ROOT)/xen/include/public/,arch-ia64 arch-x86 hvm io xsm) include/xen && \
|
||||||
|
@@ -183,22 +202,6 @@ mk-headers-$(XEN_TARGET_ARCH):
|
||||||
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.c . && \
|
||||||
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/*.h . && \
|
||||||
|
ln -sf ../$(XEN_ROOT)/tools/libxc/$(XEN_TARGET_ARCH)/Makefile . )
|
||||||
|
- mkdir -p ioemu
|
||||||
|
-ifeq ($(CONFIG_QEMU),ioemu)
|
||||||
|
- [ -h ioemu/Makefile ] || ( cd ioemu && \
|
||||||
|
- ln -sf ../$(XEN_ROOT)/tools/ioemu/* .)
|
||||||
|
-else
|
||||||
|
- [ -h ioemu/Makefile ] || ( cd ioemu && \
|
||||||
|
- ln -sf $(CONFIG_QEMU)/* . && \
|
||||||
|
- rm -fr i386-dm && \
|
||||||
|
- rm -fr i386-stubdom && \
|
||||||
|
- mkdir i386-dm && \
|
||||||
|
- mkdir i386-stubdom && \
|
||||||
|
- ln -sf $(CONFIG_QEMU)/i386-dm/* i386-dm/ && \
|
||||||
|
- ln -sf $(CONFIG_QEMU)/i386-stubdom/* i386-stubdom/ )
|
||||||
|
-endif
|
||||||
|
- [ ! -h ioemu/config-host.h ] || rm -f ioemu/config-host.h
|
||||||
|
- [ ! -h ioemu/config-host.mak ] || rm -f ioemu/config-host.mak
|
||||||
|
$(MAKE) -C $(MINI_OS) links
|
||||||
|
touch mk-headers-$(XEN_TARGET_ARCH)
|
||||||
|
|
149
18487-microcode-update-irq-context.patch
Normal file
149
18487-microcode-update-irq-context.patch
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221568859 -3600
|
||||||
|
# Node ID 879330497672d96ee966c9774d21c437895f6839
|
||||||
|
# Parent 88445b184dc666fc196cffab19eac75cd9c10b87
|
||||||
|
x86, microcode: Do not run microcode update in IRQ context.
|
||||||
|
|
||||||
|
It's unnecessary, and also invalid since the update process tries to
|
||||||
|
allocate memory.
|
||||||
|
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/microcode.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
@@ -45,14 +45,13 @@ static DEFINE_SPINLOCK(microcode_mutex);
|
||||||
|
|
||||||
|
struct ucode_cpu_info ucode_cpu_info[NR_CPUS];
|
||||||
|
|
||||||
|
-struct microcode_buffer {
|
||||||
|
- void *buf;
|
||||||
|
- size_t size;
|
||||||
|
+struct microcode_info {
|
||||||
|
+ unsigned int cpu;
|
||||||
|
+ uint32_t buffer_size;
|
||||||
|
+ int error;
|
||||||
|
+ char buffer[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
-static struct microcode_buffer microcode_buffer;
|
||||||
|
-static bool_t microcode_error;
|
||||||
|
-
|
||||||
|
static void microcode_fini_cpu(int cpu)
|
||||||
|
{
|
||||||
|
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
|
||||||
|
@@ -110,14 +109,12 @@ static int microcode_resume_cpu(int cpu)
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int microcode_update_cpu(int cpu, const void *buf, size_t size)
|
||||||
|
+static int microcode_update_cpu(const void *buf, size_t size)
|
||||||
|
{
|
||||||
|
- int err = 0;
|
||||||
|
+ int err;
|
||||||
|
+ unsigned int cpu = smp_processor_id();
|
||||||
|
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
|
||||||
|
|
||||||
|
- /* We should bind the task to the CPU */
|
||||||
|
- BUG_ON(raw_smp_processor_id() != cpu);
|
||||||
|
-
|
||||||
|
spin_lock(µcode_mutex);
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -140,72 +137,50 @@ static int microcode_update_cpu(int cpu,
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void do_microcode_update_one(void *info)
|
||||||
|
+static long do_microcode_update(void *_info)
|
||||||
|
{
|
||||||
|
+ struct microcode_info *info = _info;
|
||||||
|
int error;
|
||||||
|
|
||||||
|
- error = microcode_update_cpu(
|
||||||
|
- smp_processor_id(), microcode_buffer.buf, microcode_buffer.size);
|
||||||
|
+ BUG_ON(info->cpu != smp_processor_id());
|
||||||
|
|
||||||
|
- if ( error )
|
||||||
|
- microcode_error = error;
|
||||||
|
-}
|
||||||
|
+ error = microcode_update_cpu(info->buffer, info->buffer_size);
|
||||||
|
|
||||||
|
-static int do_microcode_update(void)
|
||||||
|
-{
|
||||||
|
- int error = 0;
|
||||||
|
-
|
||||||
|
- microcode_error = 0;
|
||||||
|
-
|
||||||
|
- if ( on_each_cpu(do_microcode_update_one, NULL, 1, 1) != 0 )
|
||||||
|
- {
|
||||||
|
- printk(KERN_ERR "microcode: Error! Could not run on all processors\n");
|
||||||
|
- error = -EIO;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
+ if ( error )
|
||||||
|
+ info->error = error;
|
||||||
|
|
||||||
|
- if ( microcode_error )
|
||||||
|
- {
|
||||||
|
- error = microcode_error;
|
||||||
|
- goto out;
|
||||||
|
- }
|
||||||
|
+ info->cpu = next_cpu(info->cpu, cpu_online_map);
|
||||||
|
+ if ( info->cpu >= NR_CPUS )
|
||||||
|
+ return info->error;
|
||||||
|
|
||||||
|
- out:
|
||||||
|
- return error;
|
||||||
|
+ return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
+ struct microcode_info *info;
|
||||||
|
|
||||||
|
- /* XXX FIXME: No allocations in interrupt context. */
|
||||||
|
- return -EINVAL;
|
||||||
|
-
|
||||||
|
- if ( len != (typeof(microcode_buffer.size))len )
|
||||||
|
- {
|
||||||
|
- printk(KERN_ERR "microcode: too much data\n");
|
||||||
|
+ if ( len != (uint32_t)len )
|
||||||
|
return -E2BIG;
|
||||||
|
- }
|
||||||
|
|
||||||
|
if (microcode_ops == NULL)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
- microcode_buffer.buf = xmalloc_array(uint8_t, len);
|
||||||
|
- if ( microcode_buffer.buf == NULL )
|
||||||
|
+ info = xmalloc_bytes(sizeof(*info) + len);
|
||||||
|
+ if ( info == NULL )
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
- ret = copy_from_guest(microcode_buffer.buf, buf, len);
|
||||||
|
+ ret = copy_from_guest(info->buffer, buf, len);
|
||||||
|
if ( ret != 0 )
|
||||||
|
+ {
|
||||||
|
+ xfree(info);
|
||||||
|
return ret;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- microcode_buffer.size = len;
|
||||||
|
- wmb();
|
||||||
|
-
|
||||||
|
- ret = do_microcode_update();
|
||||||
|
-
|
||||||
|
- xfree(microcode_buffer.buf);
|
||||||
|
- microcode_buffer.buf = NULL;
|
||||||
|
- microcode_buffer.size = 0;
|
||||||
|
+ info->buffer_size = len;
|
||||||
|
+ info->error = 0;
|
||||||
|
+ info->cpu = first_cpu(cpu_online_map);
|
||||||
|
|
||||||
|
- return ret;
|
||||||
|
+ return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info);
|
||||||
|
}
|
29
18488-microcode-free-fix.patch
Normal file
29
18488-microcode-free-fix.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221569356 -3600
|
||||||
|
# Node ID f163138e33402ca565d9886df8ecb21e98f77be6
|
||||||
|
# Parent 879330497672d96ee966c9774d21c437895f6839
|
||||||
|
x86, microcode: Free microcode_info struct at end of hypercall.
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/microcode.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/microcode.c
|
||||||
|
@@ -150,10 +150,13 @@ static long do_microcode_update(void *_i
|
||||||
|
info->error = error;
|
||||||
|
|
||||||
|
info->cpu = next_cpu(info->cpu, cpu_online_map);
|
||||||
|
- if ( info->cpu >= NR_CPUS )
|
||||||
|
- return info->error;
|
||||||
|
+ if ( info->cpu < NR_CPUS )
|
||||||
|
+ return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info);
|
||||||
|
+
|
||||||
|
+ error = info->error;
|
||||||
|
+ xfree(info);
|
||||||
|
+ return error;
|
||||||
|
|
||||||
|
- return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
|
76
18505-amd-powernow-fix.patch
Normal file
76
18505-amd-powernow-fix.patch
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221576857 -3600
|
||||||
|
# Node ID 15efb62ecf09efd07105b10a3b0b84eecfe8ec8f
|
||||||
|
# Parent d7be37824fe0345b02d0fa8cc9aff01be1a2ba1f
|
||||||
|
x86: also fix powernow's dom_mask
|
||||||
|
|
||||||
|
Just like for the Intel/ACPI cpufreq code, powernow's dom_mask also
|
||||||
|
must not be confined to the number of CPUs in the system.
|
||||||
|
|
||||||
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/acpi/cpufreq/powernow.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/acpi/cpufreq/powernow.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/acpi/cpufreq/powernow.c
|
||||||
|
@@ -241,9 +241,8 @@ int powernow_cpufreq_init(void)
|
||||||
|
{
|
||||||
|
unsigned int i, ret = 0;
|
||||||
|
unsigned int dom, max_dom = 0;
|
||||||
|
- cpumask_t *pt, dom_mask;
|
||||||
|
-
|
||||||
|
- cpus_clear(dom_mask);
|
||||||
|
+ cpumask_t *pt;
|
||||||
|
+ unsigned long *dom_mask;
|
||||||
|
|
||||||
|
for_each_online_cpu(i) {
|
||||||
|
struct cpuinfo_x86 *c = &cpu_data[i];
|
||||||
|
@@ -258,20 +257,26 @@ int powernow_cpufreq_init(void)
|
||||||
|
}
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
- cpu_set(processor_pminfo[i].perf.domain_info.domain, dom_mask);
|
||||||
|
if (max_dom < processor_pminfo[i].perf.domain_info.domain)
|
||||||
|
max_dom = processor_pminfo[i].perf.domain_info.domain;
|
||||||
|
}
|
||||||
|
max_dom++;
|
||||||
|
|
||||||
|
+ dom_mask = xmalloc_array(unsigned long, BITS_TO_LONGS(max_dom));
|
||||||
|
+ if (!dom_mask)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ bitmap_zero(dom_mask, max_dom);
|
||||||
|
+
|
||||||
|
pt = xmalloc_array(cpumask_t, max_dom);
|
||||||
|
if (!pt)
|
||||||
|
return -ENOMEM;
|
||||||
|
memset(pt, 0, max_dom * sizeof(cpumask_t));
|
||||||
|
|
||||||
|
/* get cpumask of each psd domain */
|
||||||
|
- for_each_online_cpu(i)
|
||||||
|
+ for_each_online_cpu(i) {
|
||||||
|
+ __set_bit(processor_pminfo[i].perf.domain_info.domain, dom_mask);
|
||||||
|
cpu_set(i, pt[processor_pminfo[i].perf.domain_info.domain]);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
for_each_online_cpu(i)
|
||||||
|
processor_pminfo[i].perf.shared_cpu_map =
|
||||||
|
@@ -289,8 +294,8 @@ int powernow_cpufreq_init(void)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* setup ondemand cpufreq */
|
||||||
|
- for (dom=0; dom<max_dom; dom++) {
|
||||||
|
- if (!cpu_isset(dom, dom_mask))
|
||||||
|
+ for (dom = 0; dom < max_dom; dom++) {
|
||||||
|
+ if (!test_bit(dom, dom_mask))
|
||||||
|
continue;
|
||||||
|
i = first_cpu(pt[dom]);
|
||||||
|
ret = cpufreq_governor_dbs(&xen_px_policy[i], CPUFREQ_GOV_START);
|
||||||
|
@@ -300,6 +305,7 @@ int powernow_cpufreq_init(void)
|
||||||
|
|
||||||
|
cpufreq_init_out:
|
||||||
|
xfree(pt);
|
||||||
|
+ xfree(dom_mask);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
63
18506-enforce-memory-limits.patch
Normal file
63
18506-enforce-memory-limits.patch
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221577042 -3600
|
||||||
|
# Node ID 9ab9dadf4876fcab63fcc2e3a8ad13e87b1a8293
|
||||||
|
# Parent 15efb62ecf09efd07105b10a3b0b84eecfe8ec8f
|
||||||
|
x86-64: enforce memory limits imposed by virtual memory layout
|
||||||
|
|
||||||
|
... which currently means:
|
||||||
|
- The 1:1 map cannot deal with more than 1Tb.
|
||||||
|
- The m2p table can handle at most 8Tb.
|
||||||
|
- The page_info array can cover up to e.g. 1.6Gb (<=3D 64 CPUs) or
|
||||||
|
1Tb (193-256 CPUs).
|
||||||
|
|
||||||
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/e820.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/e820.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/e820.c
|
||||||
|
@@ -4,6 +4,7 @@
|
||||||
|
#include <xen/compat.h>
|
||||||
|
#include <xen/dmi.h>
|
||||||
|
#include <asm/e820.h>
|
||||||
|
+#include <asm/mm.h>
|
||||||
|
#include <asm/page.h>
|
||||||
|
|
||||||
|
/* opt_mem: Limit of physical RAM. Any RAM beyond this point is ignored. */
|
||||||
|
@@ -327,7 +328,7 @@ static void __init clip_to_limit(uint64_
|
||||||
|
continue;
|
||||||
|
if ( warnmsg )
|
||||||
|
{
|
||||||
|
- snprintf(_warnmsg, sizeof(_warnmsg), warnmsg, (int)(limit>>30));
|
||||||
|
+ snprintf(_warnmsg, sizeof(_warnmsg), warnmsg, (long)(limit>>30));
|
||||||
|
printk("WARNING: %s\n", _warnmsg);
|
||||||
|
}
|
||||||
|
printk("Truncating memory map to %lukB\n",
|
||||||
|
@@ -366,8 +367,25 @@ static void __init machine_specific_memo
|
||||||
|
|
||||||
|
#ifdef __i386__
|
||||||
|
clip_to_limit((1ULL << 30) * MACHPHYS_MBYTES,
|
||||||
|
- "Only the first %u GB of the physical memory map "
|
||||||
|
+ "Only the first %lu GB of the physical memory map "
|
||||||
|
"can be accessed by Xen in 32-bit mode.");
|
||||||
|
+#else
|
||||||
|
+ {
|
||||||
|
+ unsigned long limit, mpt_limit, pft_limit;
|
||||||
|
+
|
||||||
|
+ limit = DIRECTMAP_VIRT_END - DIRECTMAP_VIRT_START;
|
||||||
|
+ mpt_limit = ((RDWR_MPT_VIRT_END - RDWR_MPT_VIRT_START)
|
||||||
|
+ / sizeof(unsigned long)) << PAGE_SHIFT;
|
||||||
|
+ pft_limit = ((FRAMETABLE_VIRT_END - FRAMETABLE_VIRT_START)
|
||||||
|
+ / sizeof(struct page_info)) << PAGE_SHIFT;
|
||||||
|
+ if ( limit > mpt_limit )
|
||||||
|
+ limit = mpt_limit;
|
||||||
|
+ if ( limit > pft_limit )
|
||||||
|
+ limit = pft_limit;
|
||||||
|
+ clip_to_limit(limit,
|
||||||
|
+ "Only the first %lu GB of the physical "
|
||||||
|
+ "memory map can be accessed by Xen.");
|
||||||
|
+ }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
reserve_dmi_region();
|
136
18509-continue-hypercall-on-cpu.patch
Normal file
136
18509-continue-hypercall-on-cpu.patch
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
# Date 1221657190 -3600
|
||||||
|
# Node ID 366c78ff361bafb2271c551c4976e4caedea72b2
|
||||||
|
# Parent beb28a3975bd39c93c7934dd5e7ec80c69a86c4a
|
||||||
|
x86: Allow continue_hypercall_on_cpu() to be called from within an
|
||||||
|
existing continuation handler. This fix is needed for the new method
|
||||||
|
of microcode re-programming.
|
||||||
|
|
||||||
|
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/domain.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/domain.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/domain.c
|
||||||
|
@@ -1356,6 +1356,7 @@ struct migrate_info {
|
||||||
|
void *data;
|
||||||
|
void (*saved_schedule_tail)(struct vcpu *);
|
||||||
|
cpumask_t saved_affinity;
|
||||||
|
+ unsigned int nest;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void continue_hypercall_on_cpu_helper(struct vcpu *v)
|
||||||
|
@@ -1363,48 +1364,64 @@ static void continue_hypercall_on_cpu_he
|
||||||
|
struct cpu_user_regs *regs = guest_cpu_user_regs();
|
||||||
|
struct migrate_info *info = v->arch.continue_info;
|
||||||
|
cpumask_t mask = info->saved_affinity;
|
||||||
|
+ void (*saved_schedule_tail)(struct vcpu *) = info->saved_schedule_tail;
|
||||||
|
|
||||||
|
regs->eax = info->func(info->data);
|
||||||
|
|
||||||
|
- v->arch.schedule_tail = info->saved_schedule_tail;
|
||||||
|
- v->arch.continue_info = NULL;
|
||||||
|
-
|
||||||
|
- xfree(info);
|
||||||
|
+ if ( info->nest-- == 0 )
|
||||||
|
+ {
|
||||||
|
+ xfree(info);
|
||||||
|
+ v->arch.schedule_tail = saved_schedule_tail;
|
||||||
|
+ v->arch.continue_info = NULL;
|
||||||
|
+ vcpu_unlock_affinity(v, &mask);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- vcpu_unlock_affinity(v, &mask);
|
||||||
|
- schedule_tail(v);
|
||||||
|
+ (*saved_schedule_tail)(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
int continue_hypercall_on_cpu(int cpu, long (*func)(void *data), void *data)
|
||||||
|
{
|
||||||
|
struct vcpu *v = current;
|
||||||
|
struct migrate_info *info;
|
||||||
|
+ cpumask_t mask = cpumask_of_cpu(cpu);
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if ( cpu == smp_processor_id() )
|
||||||
|
return func(data);
|
||||||
|
|
||||||
|
- info = xmalloc(struct migrate_info);
|
||||||
|
+ info = v->arch.continue_info;
|
||||||
|
if ( info == NULL )
|
||||||
|
- return -ENOMEM;
|
||||||
|
+ {
|
||||||
|
+ info = xmalloc(struct migrate_info);
|
||||||
|
+ if ( info == NULL )
|
||||||
|
+ return -ENOMEM;
|
||||||
|
|
||||||
|
- info->func = func;
|
||||||
|
- info->data = data;
|
||||||
|
- info->saved_schedule_tail = v->arch.schedule_tail;
|
||||||
|
- info->saved_affinity = cpumask_of_cpu(cpu);
|
||||||
|
+ rc = vcpu_lock_affinity(v, &mask);
|
||||||
|
+ if ( rc )
|
||||||
|
+ {
|
||||||
|
+ xfree(info);
|
||||||
|
+ return rc;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
||||||
|
- v->arch.continue_info = info;
|
||||||
|
+ info->saved_schedule_tail = v->arch.schedule_tail;
|
||||||
|
+ info->saved_affinity = mask;
|
||||||
|
+ info->nest = 0;
|
||||||
|
|
||||||
|
- rc = vcpu_lock_affinity(v, &info->saved_affinity);
|
||||||
|
- if ( rc )
|
||||||
|
+ v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
||||||
|
+ v->arch.continue_info = info;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
{
|
||||||
|
- v->arch.schedule_tail = info->saved_schedule_tail;
|
||||||
|
- v->arch.continue_info = NULL;
|
||||||
|
- xfree(info);
|
||||||
|
- return rc;
|
||||||
|
+ BUG_ON(info->nest != 0);
|
||||||
|
+ rc = vcpu_locked_change_affinity(v, &mask);
|
||||||
|
+ if ( rc )
|
||||||
|
+ return rc;
|
||||||
|
+ info->nest++;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ info->func = func;
|
||||||
|
+ info->data = data;
|
||||||
|
+
|
||||||
|
/* Dummy return value will be overwritten by new schedule_tail. */
|
||||||
|
BUG_ON(!test_bit(SCHEDULE_SOFTIRQ, &softirq_pending(smp_processor_id())));
|
||||||
|
return 0;
|
||||||
|
Index: xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/common/schedule.c
|
||||||
|
+++ xen-3.3.1-testing/xen/common/schedule.c
|
||||||
|
@@ -360,6 +360,11 @@ int vcpu_lock_affinity(struct vcpu *v, c
|
||||||
|
return __vcpu_set_affinity(v, affinity, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
+int vcpu_locked_change_affinity(struct vcpu *v, cpumask_t *affinity)
|
||||||
|
+{
|
||||||
|
+ return __vcpu_set_affinity(v, affinity, 1, 1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void vcpu_unlock_affinity(struct vcpu *v, cpumask_t *affinity)
|
||||||
|
{
|
||||||
|
cpumask_t online_affinity;
|
||||||
|
Index: xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/xen/sched.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/xen/sched.h
|
||||||
|
@@ -527,6 +527,7 @@ void vcpu_force_reschedule(struct vcpu *
|
||||||
|
void cpu_disable_scheduler(void);
|
||||||
|
int vcpu_set_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
int vcpu_lock_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
+int vcpu_locked_change_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
void vcpu_unlock_affinity(struct vcpu *v, cpumask_t *affinity);
|
||||||
|
|
||||||
|
void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate);
|
@ -1,8 +1,8 @@
|
|||||||
Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c 2008-09-10 14:22:17.000000000 -0600
|
+++ xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c 2008-09-24 09:45:02.000000000 -0600
|
||||||
@@ -0,0 +1,533 @@
|
@@ -0,0 +1,539 @@
|
||||||
+/* block-cdrom.c
|
+/* block-cdrom.c
|
||||||
+ *
|
+ *
|
||||||
+ * simple slow synchronous cdrom disk implementation. Based off
|
+ * simple slow synchronous cdrom disk implementation. Based off
|
||||||
@ -285,15 +285,17 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
|||||||
+ struct request_sense sense;
|
+ struct request_sense sense;
|
||||||
+
|
+
|
||||||
+ sp = (union xen_block_packet *)buf;
|
+ sp = (union xen_block_packet *)buf;
|
||||||
+ sp->err = 0;
|
|
||||||
+ sp->ret = 0;
|
|
||||||
+ switch(sp->type) {
|
+ switch(sp->type) {
|
||||||
+ case XEN_TYPE_CDROM_SUPPORT:
|
+ case XEN_TYPE_CDROM_SUPPORT:
|
||||||
+ xcs = &(sp->xcs);
|
+ xcs = &(sp->xcs);
|
||||||
|
+ xcs->err = 0;
|
||||||
|
+ xcs->ret = 0;
|
||||||
+ xcs->supported = 1;
|
+ xcs->supported = 1;
|
||||||
+ break;
|
+ break;
|
||||||
+ case XEN_TYPE_CDROM_PACKET:
|
+ case XEN_TYPE_CDROM_PACKET:
|
||||||
+ xcp = &(sp->xcp);
|
+ xcp = &(sp->xcp);
|
||||||
|
+ xcp->err = 0;
|
||||||
|
+ xcp->ret = 0;
|
||||||
+ vgc = (struct vcd_generic_command *)(buf + PACKET_PAYLOAD_OFFSET);
|
+ vgc = (struct vcd_generic_command *)(buf + PACKET_PAYLOAD_OFFSET);
|
||||||
+
|
+
|
||||||
+ memset( &cgc, 0, sizeof(struct cdrom_generic_command));
|
+ memset( &cgc, 0, sizeof(struct cdrom_generic_command));
|
||||||
@ -382,6 +384,8 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
|||||||
+ minor = minor (statbuf.st_rdev);
|
+ minor = minor (statbuf.st_rdev);
|
||||||
+ }
|
+ }
|
||||||
+ xco = &(sp->xco);
|
+ xco = &(sp->xco);
|
||||||
|
+ xco->err = 0;
|
||||||
|
+ xco->ret = 0;
|
||||||
+ if (xco->payload_offset) {
|
+ if (xco->payload_offset) {
|
||||||
+ char * nodename;
|
+ char * nodename;
|
||||||
+ char media_present[2];
|
+ char media_present[2];
|
||||||
@ -412,6 +416,8 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
|||||||
+ break;
|
+ break;
|
||||||
+ case XEN_TYPE_CDROM_MEDIA_CHANGED:
|
+ case XEN_TYPE_CDROM_MEDIA_CHANGED:
|
||||||
+ xcmc = &(sp->xcmc);
|
+ xcmc = &(sp->xcmc);
|
||||||
|
+ xcmc->err = 0;
|
||||||
|
+ xcmc->ret = 0;
|
||||||
+ xcmc->media_changed = prv->media_changed;
|
+ xcmc->media_changed = prv->media_changed;
|
||||||
+ prv->media_changed = 0;
|
+ prv->media_changed = 0;
|
||||||
+ break;
|
+ break;
|
||||||
@ -539,8 +545,8 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/block-cdrom.c
|
|||||||
Index: xen-3.3.1-testing/xen/include/public/io/cdromif.h
|
Index: xen-3.3.1-testing/xen/include/public/io/cdromif.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-3.3.1-testing/xen/include/public/io/cdromif.h 2008-09-10 13:19:09.000000000 -0600
|
+++ xen-3.3.1-testing/xen/include/public/io/cdromif.h 2008-09-24 09:42:05.000000000 -0600
|
||||||
@@ -0,0 +1,122 @@
|
@@ -0,0 +1,120 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * cdromif.h
|
+ * cdromif.h
|
||||||
+ *
|
+ *
|
||||||
@ -648,8 +654,6 @@ Index: xen-3.3.1-testing/xen/include/public/io/cdromif.h
|
|||||||
+union xen_block_packet
|
+union xen_block_packet
|
||||||
+{
|
+{
|
||||||
+ uint32_t type;
|
+ uint32_t type;
|
||||||
+ int8_t ret;
|
|
||||||
+ int8_t err;
|
|
||||||
+ struct xen_cdrom_support xcs;
|
+ struct xen_cdrom_support xcs;
|
||||||
+ struct xen_cdrom_open xco;
|
+ struct xen_cdrom_open xco;
|
||||||
+ struct xen_cdrom_media_changed xcmc;
|
+ struct xen_cdrom_media_changed xcmc;
|
||||||
@ -665,8 +669,8 @@ Index: xen-3.3.1-testing/xen/include/public/io/cdromif.h
|
|||||||
+#endif
|
+#endif
|
||||||
Index: xen-3.3.1-testing/tools/blktap/drivers/Makefile
|
Index: xen-3.3.1-testing/tools/blktap/drivers/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.1-testing.orig/tools/blktap/drivers/Makefile 2008-09-10 11:28:21.000000000 -0600
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/Makefile 2008-09-23 06:52:48.000000000 -0600
|
||||||
+++ xen-3.3.1-testing/tools/blktap/drivers/Makefile 2008-09-10 13:31:58.000000000 -0600
|
+++ xen-3.3.1-testing/tools/blktap/drivers/Makefile 2008-09-23 06:52:50.000000000 -0600
|
||||||
@@ -24,8 +24,9 @@
|
@@ -24,8 +24,9 @@
|
||||||
$(warning *** libgcrypt not installed: falling back to libcrypto ***)
|
$(warning *** libgcrypt not installed: falling back to libcrypto ***)
|
||||||
endif
|
endif
|
||||||
@ -689,8 +693,8 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/Makefile
|
|||||||
BLK-OBJS-$(CONFIG_Linux) += blk_linux.o
|
BLK-OBJS-$(CONFIG_Linux) += blk_linux.o
|
||||||
Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.1-testing.orig/tools/blktap/drivers/tapdisk.h 2008-09-10 11:28:24.000000000 -0600
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/tapdisk.h 2008-09-23 06:52:50.000000000 -0600
|
||||||
+++ xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h 2008-09-10 14:09:34.000000000 -0600
|
+++ xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h 2008-09-23 06:52:50.000000000 -0600
|
||||||
@@ -137,6 +137,9 @@
|
@@ -137,6 +137,9 @@
|
||||||
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
|
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
|
||||||
int (*td_validate_parent)(struct disk_driver *dd,
|
int (*td_validate_parent)(struct disk_driver *dd,
|
||||||
@ -718,7 +722,7 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
|||||||
+ "raw image (cdrom)",
|
+ "raw image (cdrom)",
|
||||||
+ "cdrom",
|
+ "cdrom",
|
||||||
+ 0,
|
+ 0,
|
||||||
+ 1,
|
+ 0,
|
||||||
+#ifdef TAPDISK
|
+#ifdef TAPDISK
|
||||||
+ &tapdisk_cdrom,
|
+ &tapdisk_cdrom,
|
||||||
+#endif
|
+#endif
|
||||||
@ -727,10 +731,18 @@ Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
|||||||
/*Main disk info array */
|
/*Main disk info array */
|
||||||
static disk_info_t *dtypes[] = {
|
static disk_info_t *dtypes[] = {
|
||||||
&aio_disk,
|
&aio_disk,
|
||||||
|
@@ -249,6 +264,7 @@
|
||||||
|
&qcow_disk,
|
||||||
|
&qcow2_disk,
|
||||||
|
&ioemu_disk,
|
||||||
|
+ &cdrom_disk,
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct driver_list_entry {
|
||||||
Index: xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
Index: xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.1-testing.orig/tools/blktap/lib/blktaplib.h 2008-09-10 11:28:24.000000000 -0600
|
--- xen-3.3.1-testing.orig/tools/blktap/lib/blktaplib.h 2008-09-23 06:52:50.000000000 -0600
|
||||||
+++ xen-3.3.1-testing/tools/blktap/lib/blktaplib.h 2008-09-10 13:45:24.000000000 -0600
|
+++ xen-3.3.1-testing/tools/blktap/lib/blktaplib.h 2008-09-23 06:52:50.000000000 -0600
|
||||||
@@ -221,6 +221,7 @@
|
@@ -221,6 +221,7 @@
|
||||||
#define DISK_TYPE_QCOW 4
|
#define DISK_TYPE_QCOW 4
|
||||||
#define DISK_TYPE_QCOW2 5
|
#define DISK_TYPE_QCOW2 5
|
||||||
@ -739,3 +751,60 @@ Index: xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
|||||||
|
|
||||||
/* xenstore/xenbus: */
|
/* xenstore/xenbus: */
|
||||||
#define DOMNAME "Domain-0"
|
#define DOMNAME "Domain-0"
|
||||||
|
Index: xen-3.3.1-testing/xen/include/public/io/blkif.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/public/io/blkif.h 2008-09-16 10:31:07.000000000 -0600
|
||||||
|
+++ xen-3.3.1-testing/xen/include/public/io/blkif.h 2008-09-23 06:54:18.000000000 -0600
|
||||||
|
@@ -76,6 +76,10 @@
|
||||||
|
* "feature-flush-cache" node!
|
||||||
|
*/
|
||||||
|
#define BLKIF_OP_FLUSH_DISKCACHE 3
|
||||||
|
+/*
|
||||||
|
+ * Device specific command packet contained within the request
|
||||||
|
+ */
|
||||||
|
+#define BLKIF_OP_PACKET 4
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum scatter/gather segments per request.
|
||||||
|
Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/tapdisk.c 2008-09-16 10:31:02.000000000 -0600
|
||||||
|
+++ xen-3.3.1-testing/tools/blktap/drivers/tapdisk.c 2008-09-23 06:56:45.000000000 -0600
|
||||||
|
@@ -735,6 +735,22 @@
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
+ case BLKIF_OP_PACKET:
|
||||||
|
+ ret = 0;
|
||||||
|
+ if (drv->td_queue_packet)
|
||||||
|
+ ret = drv->td_queue_packet(dd, sector_nr,
|
||||||
|
+ nsects, page,
|
||||||
|
+ send_responses,
|
||||||
|
+ idx, (void *)(long)i);
|
||||||
|
+ if (ret > 0) dd->early += ret;
|
||||||
|
+ else if (ret == -EBUSY) {
|
||||||
|
+ /* put req back on queue */
|
||||||
|
+ --info->fe_ring.req_cons;
|
||||||
|
+ info->busy.req = req;
|
||||||
|
+ info->busy.seg_idx = i;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ break;
|
||||||
|
default:
|
||||||
|
DPRINTF("Unknown block operation\n");
|
||||||
|
break;
|
||||||
|
Index: xen-3.3.1-testing/tools/python/xen/xend/server/BlktapController.py
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/tools/python/xen/xend/server/BlktapController.py 2008-09-16 10:31:03.000000000 -0600
|
||||||
|
+++ xen-3.3.1-testing/tools/python/xen/xend/server/BlktapController.py 2008-09-23 07:02:27.000000000 -0600
|
||||||
|
@@ -14,8 +14,8 @@
|
||||||
|
'ram',
|
||||||
|
'qcow',
|
||||||
|
'qcow2',
|
||||||
|
-
|
||||||
|
- 'ioemu'
|
||||||
|
+ 'ioemu',
|
||||||
|
+ 'cdrom',
|
||||||
|
]
|
||||||
|
|
||||||
|
class BlktapController(BlkifController):
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
Index: xen-3.3.1-testing/tools/blktap/drivers/blktapctrl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/drivers/blktapctrl.c
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/blktapctrl.c
|
||||||
+++ xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
+++ xen-3.3.1-testing/tools/blktap/drivers/blktapctrl.c
|
||||||
@@ -65,6 +65,8 @@
|
@@ -65,6 +65,8 @@
|
||||||
#define MAX_RAND_VAL 0xFFFF
|
#define MAX_RAND_VAL 0xFFFF
|
||||||
#define MAX_ATTEMPTS 10
|
#define MAX_ATTEMPTS 10
|
||||||
@ -23,7 +23,7 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
if (dtypes[i]->single_handler == 1) {
|
if (dtypes[i]->single_handler == 1) {
|
||||||
/* Check whether tapdisk process
|
/* Check whether tapdisk process
|
||||||
@@ -474,6 +479,7 @@ static int launch_tapdisk_provider(char
|
@@ -474,6 +479,7 @@ static int launch_tapdisk_provider(char
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
static int launch_tapdisk_ioemu(void)
|
static int launch_tapdisk_ioemu(void)
|
||||||
{
|
{
|
||||||
@@ -554,6 +561,7 @@ static int connect_qemu(blkif_t *blkif,
|
@@ -554,6 +561,7 @@ static int connect_qemu(blkif_t *blkif,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
static int blktapctrl_new_blkif(blkif_t *blkif)
|
static int blktapctrl_new_blkif(blkif_t *blkif)
|
||||||
{
|
{
|
||||||
@@ -621,6 +630,10 @@ static int blktapctrl_new_blkif(blkif_t
|
@@ -621,6 +630,10 @@ static int blktapctrl_new_blkif(blkif_t
|
||||||
blkif->cookie = next_cookie++;
|
blkif->cookie = next_cookie++;
|
||||||
|
|
||||||
if (!exist) {
|
if (!exist) {
|
||||||
@ -66,7 +66,7 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
if (type == DISK_TYPE_IOEMU) {
|
if (type == DISK_TYPE_IOEMU) {
|
||||||
if (connect_qemu(blkif, blkif->domid))
|
if (connect_qemu(blkif, blkif->domid))
|
||||||
goto fail;
|
goto fail;
|
||||||
@@ -628,6 +641,7 @@ static int blktapctrl_new_blkif(blkif_t
|
@@ -628,6 +641,7 @@ static int blktapctrl_new_blkif(blkif_t
|
||||||
if (connect_tapdisk(blkif, minor))
|
if (connect_tapdisk(blkif, minor))
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
@ -74,10 +74,10 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
DPRINTF("Process exists!\n");
|
DPRINTF("Process exists!\n");
|
||||||
Index: xen-3.3.0-testing/tools/blktap/drivers/tapdisk.h
|
Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/drivers/tapdisk.h
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/tapdisk.h
|
||||||
+++ xen-3.3.0-testing/tools/blktap/drivers/tapdisk.h
|
+++ xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
@@ -145,6 +145,8 @@ typedef struct disk_info {
|
@@ -145,6 +145,8 @@ typedef struct disk_info {
|
||||||
char handle[10]; /* xend handle, e.g. 'ram' */
|
char handle[10]; /* xend handle, e.g. 'ram' */
|
||||||
int single_handler; /* is there a single controller for all */
|
int single_handler; /* is there a single controller for all */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/block
|
Index: xen-3.3.1-testing/tools/examples/block
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/block
|
--- xen-3.3.1-testing.orig/tools/examples/block
|
||||||
+++ xen-3.3.0-testing/tools/examples/block
|
+++ xen-3.3.1-testing/tools/examples/block
|
||||||
@@ -225,11 +225,14 @@ case "$command" in
|
@@ -225,11 +225,14 @@ case "$command" in
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/block
|
Index: xen-3.3.1-testing/tools/examples/block
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/block
|
--- xen-3.3.1-testing.orig/tools/examples/block
|
||||||
+++ xen-3.3.0-testing/tools/examples/block
|
+++ xen-3.3.1-testing/tools/examples/block
|
||||||
@@ -241,107 +241,111 @@ case "$command" in
|
@@ -241,107 +241,111 @@ case "$command" in
|
||||||
mount it read-write in a guest domain."
|
mount it read-write in a guest domain."
|
||||||
fi
|
fi
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/network-bridge
|
Index: xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/network-bridge
|
--- xen-3.3.1-testing.orig/tools/examples/network-bridge
|
||||||
+++ xen-3.3.0-testing/tools/examples/network-bridge
|
+++ xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
@@ -241,6 +241,9 @@ op_start () {
|
@@ -241,6 +241,9 @@ op_start () {
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/network-bridge
|
Index: xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/network-bridge
|
--- xen-3.3.1-testing.orig/tools/examples/network-bridge
|
||||||
+++ xen-3.3.0-testing/tools/examples/network-bridge
|
+++ xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
@@ -253,18 +253,18 @@ op_stop () {
|
@@ -253,18 +253,18 @@ op_stop () {
|
||||||
transfer_addrs ${bridge} ${pdev}
|
transfer_addrs ${bridge} ${pdev}
|
||||||
if ! ifdown ${bridge}; then
|
if ! ifdown ${bridge}; then
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/network-bridge
|
Index: xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/network-bridge
|
--- xen-3.3.1-testing.orig/tools/examples/network-bridge
|
||||||
+++ xen-3.3.0-testing/tools/examples/network-bridge
|
+++ xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
@@ -249,6 +249,11 @@ op_start () {
|
@@ -249,6 +249,11 @@ op_start () {
|
||||||
|
|
||||||
create_bridge ${tdev}
|
create_bridge ${tdev}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/network-bridge
|
Index: xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/network-bridge
|
--- xen-3.3.1-testing.orig/tools/examples/network-bridge
|
||||||
+++ xen-3.3.0-testing/tools/examples/network-bridge
|
+++ xen-3.3.1-testing/tools/examples/network-bridge
|
||||||
@@ -191,6 +191,28 @@ antispoofing () {
|
@@ -191,6 +191,28 @@ antispoofing () {
|
||||||
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
|
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ Index: xen-3.3.1-testing/tools/ioemu-remote/configure
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.1-testing.orig/tools/ioemu-remote/configure
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/configure
|
||||||
+++ xen-3.3.1-testing/tools/ioemu-remote/configure
|
+++ xen-3.3.1-testing/tools/ioemu-remote/configure
|
||||||
@@ -1144,7 +1144,7 @@ fi
|
@@ -1150,7 +1150,7 @@ fi
|
||||||
|
|
||||||
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
|
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py 2008-08-29 06:25:55.000000000 -0600
|
+++ xen-3.3.1-testing/tools/python/xen/xend/server/HalDaemon.py
|
||||||
@@ -0,0 +1,243 @@
|
@@ -0,0 +1,243 @@
|
||||||
+#!/usr/bin/env python
|
+#!/usr/bin/env python
|
||||||
+# -*- mode: python; -*-
|
+# -*- mode: python; -*-
|
||||||
@ -246,10 +246,10 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
|||||||
+ print 'Falling off end'
|
+ print 'Falling off end'
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/server/Hald.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py 2008-08-29 06:11:48.000000000 -0600
|
+++ xen-3.3.1-testing/tools/python/xen/xend/server/Hald.py
|
||||||
@@ -0,0 +1,125 @@
|
@@ -0,0 +1,125 @@
|
||||||
+#============================================================================
|
+#============================================================================
|
||||||
+# This library is free software; you can redistribute it and/or
|
+# This library is free software; you can redistribute it and/or
|
||||||
@ -376,11 +376,11 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py
|
|||||||
+ watcher.run()
|
+ watcher.run()
|
||||||
+ time.sleep(10)
|
+ time.sleep(10)
|
||||||
+ watcher.shutdown()
|
+ watcher.shutdown()
|
||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/server/SrvServer.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/server/SrvServer.py 2008-08-22 08:34:00.000000000 -0600
|
--- xen-3.3.1-testing.orig/tools/python/xen/xend/server/SrvServer.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py 2008-08-29 06:11:48.000000000 -0600
|
+++ xen-3.3.1-testing/tools/python/xen/xend/server/SrvServer.py
|
||||||
@@ -56,6 +56,7 @@
|
@@ -56,6 +56,7 @@ from xen.web.SrvDir import SrvDir
|
||||||
|
|
||||||
from SrvRoot import SrvRoot
|
from SrvRoot import SrvRoot
|
||||||
from XMLRPCServer import XMLRPCServer
|
from XMLRPCServer import XMLRPCServer
|
||||||
@ -388,7 +388,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py
|
|||||||
|
|
||||||
xoptions = XendOptions.instance()
|
xoptions = XendOptions.instance()
|
||||||
|
|
||||||
@@ -245,6 +246,8 @@
|
@@ -245,6 +246,8 @@ def _loadConfig(servers, root, reload):
|
||||||
if xoptions.get_xend_unix_xmlrpc_server():
|
if xoptions.get_xend_unix_xmlrpc_server():
|
||||||
servers.add(XMLRPCServer(XendAPI.AUTH_PAM, False))
|
servers.add(XMLRPCServer(XendAPI.AUTH_PAM, False))
|
||||||
|
|
||||||
@ -397,11 +397,11 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py
|
|||||||
|
|
||||||
def create():
|
def create():
|
||||||
root = SrvDir()
|
root = SrvDir()
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c 2008-08-22 08:35:31.000000000 -0600
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xenstore.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c 2008-08-29 06:11:48.000000000 -0600
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
@@ -297,6 +297,16 @@
|
@@ -297,6 +297,16 @@ void xenstore_parse_domain_config(int hv
|
||||||
bdrv_set_type_hint(bs, BDRV_TYPE_CDROM);
|
bdrv_set_type_hint(bs, BDRV_TYPE_CDROM);
|
||||||
if (pasprintf(&buf, "%s/params", bpath) != -1)
|
if (pasprintf(&buf, "%s/params", bpath) != -1)
|
||||||
xs_watch(xsh, buf, dev);
|
xs_watch(xsh, buf, dev);
|
||||||
@ -418,7 +418,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* open device now if media present */
|
/* open device now if media present */
|
||||||
@@ -631,6 +641,50 @@
|
@@ -631,6 +641,50 @@ void xenstore_record_dm_state(char *stat
|
||||||
xenstore_record_dm("state", state);
|
xenstore_record_dm("state", state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,7 +469,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
|||||||
void xenstore_process_event(void *opaque)
|
void xenstore_process_event(void *opaque)
|
||||||
{
|
{
|
||||||
char **vec, *offset, *bpath = NULL, *buf = NULL, *drv = NULL, *image = NULL;
|
char **vec, *offset, *bpath = NULL, *buf = NULL, *drv = NULL, *image = NULL;
|
||||||
@@ -650,6 +704,11 @@
|
@@ -650,6 +704,11 @@ void xenstore_process_event(void *opaque
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/xen/arch/ia64/linux-xen/smp.c
|
Index: xen-3.3.1-testing/xen/arch/ia64/linux-xen/smp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/ia64/linux-xen/smp.c
|
--- xen-3.3.1-testing.orig/xen/arch/ia64/linux-xen/smp.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/ia64/linux-xen/smp.c
|
+++ xen-3.3.1-testing/xen/arch/ia64/linux-xen/smp.c
|
||||||
@@ -175,7 +175,7 @@ handle_IPI (int irq, void *dev_id, struc
|
@@ -175,7 +175,7 @@ handle_IPI (int irq, void *dev_id, struc
|
||||||
* At this point the structure may be gone unless
|
* At this point the structure may be gone unless
|
||||||
* wait is true.
|
* wait is true.
|
||||||
@ -11,10 +11,10 @@ Index: xen-3.3.0-testing/xen/arch/ia64/linux-xen/smp.c
|
|||||||
|
|
||||||
/* Notify the sending CPU that the task is done. */
|
/* Notify the sending CPU that the task is done. */
|
||||||
mb();
|
mb();
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/smp.c
|
Index: xen-3.3.1-testing/xen/arch/x86/smp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/smp.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/smp.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/smp.c
|
+++ xen-3.3.1-testing/xen/arch/x86/smp.c
|
||||||
@@ -357,7 +357,7 @@ fastcall void smp_call_function_interrup
|
@@ -357,7 +357,7 @@ fastcall void smp_call_function_interrup
|
||||||
|
|
||||||
if ( call_data->wait )
|
if ( call_data->wait )
|
||||||
@ -33,10 +33,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/smp.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
irq_exit();
|
irq_exit();
|
||||||
Index: xen-3.3.0-testing/xen/common/keyhandler.c
|
Index: xen-3.3.1-testing/xen/common/keyhandler.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/common/keyhandler.c
|
--- xen-3.3.1-testing.orig/xen/common/keyhandler.c
|
||||||
+++ xen-3.3.0-testing/xen/common/keyhandler.c
|
+++ xen-3.3.1-testing/xen/common/keyhandler.c
|
||||||
@@ -91,14 +91,25 @@ static void show_handlers(unsigned char
|
@@ -91,14 +91,25 @@ static void show_handlers(unsigned char
|
||||||
key_table[i].desc);
|
key_table[i].desc);
|
||||||
}
|
}
|
||||||
@ -83,10 +83,10 @@ Index: xen-3.3.0-testing/xen/common/keyhandler.c
|
|||||||
on_selected_cpus(cpumask_of_cpu(cpu), __dump_execstate, NULL, 1, 1);
|
on_selected_cpus(cpumask_of_cpu(cpu), __dump_execstate, NULL, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
Index: xen-3.3.1-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
--- xen-3.3.1-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
||||||
+++ xen-3.3.0-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
+++ xen-3.3.1-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h
|
||||||
@@ -278,7 +278,7 @@ struct switch_stack {
|
@@ -278,7 +278,7 @@ struct switch_stack {
|
||||||
# define ia64_task_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
|
# define ia64_task_regs(t) (((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
|
||||||
# define ia64_psr(regs) ((struct ia64_psr *) &(regs)->cr_ipsr)
|
# define ia64_psr(regs) ((struct ia64_psr *) &(regs)->cr_ipsr)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
%patch
|
%patch
|
||||||
Index: xen-unstable.hg/xen/include/asm-x86/hvm/hvm_extensions.h
|
Index: xen-3.3.1-testing/xen/include/asm-x86/hvm/hvm_extensions.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/include/asm-x86/hvm/hvm_extensions.h 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/include/asm-x86/hvm/hvm_extensions.h 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,165 @@
|
@@ -0,0 +1,165 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
@ -169,17 +169,17 @@ Index: xen-unstable.hg/xen/include/asm-x86/hvm/hvm_extensions.h
|
|||||||
+int hyperx_initialize(struct domain *d);
|
+int hyperx_initialize(struct domain *d);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/Makefile
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/Makefile 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/Makefile 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1,2 @@
|
||||||
+obj-y += hv_intercept.o
|
+obj-y += hv_intercept.o
|
||||||
+obj-y += hv_hypercall.o
|
+obj-y += hv_hypercall.o
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_errno.h
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_errno.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_errno.h 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_errno.h 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,62 @@
|
@@ -0,0 +1,62 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
@ -243,10 +243,10 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_errno.h
|
|||||||
+#define HV_STATUS_NO_MEMORY_256PAGES 0x0103
|
+#define HV_STATUS_NO_MEMORY_256PAGES 0x0103
|
||||||
+#define HV_STATUS_NO_MEMORY_1024PAGES 0x0104
|
+#define HV_STATUS_NO_MEMORY_1024PAGES 0x0104
|
||||||
+#endif
|
+#endif
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.c
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.c 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.c 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,125 @@
|
@@ -0,0 +1,125 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
@ -373,10 +373,10 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.c
|
|||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.h
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.h 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_hypercall.h 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,45 @@
|
@@ -0,0 +1,45 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
@ -423,11 +423,11 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_hypercall.h
|
|||||||
+#define HV_FLUSH_VA_LIST 0x0003
|
+#define HV_FLUSH_VA_LIST 0x0003
|
||||||
+
|
+
|
||||||
+#endif /* HV_HYPERCALL_H */
|
+#endif /* HV_HYPERCALL_H */
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c 2008-05-23 14:37:49.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c 2008-09-17 18:22:05.000000000 -0600
|
||||||
@@ -0,0 +1,983 @@
|
@@ -0,0 +1,977 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
+ | Copyright (c) [2007, 2008] Novell, Inc.
|
+ | Copyright (c) [2007, 2008] Novell, Inc.
|
||||||
@ -764,7 +764,7 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ *(u8 *)(p + 1) = 0x00;
|
+ *(u8 *)(p + 1) = 0x00;
|
||||||
+ *(u8 *)(p + 2) = 0x00;
|
+ *(u8 *)(p + 2) = 0x00;
|
||||||
+ *(u8 *)(p + 3) = 0x00;
|
+ *(u8 *)(p + 3) = 0x00;
|
||||||
+ *(u8 *)(p + 4) = 0x08; /* eax |= HYPERV_HCALL */
|
+ *(u8 *)(p + 4) = 0x80; /* eax |= HYPERV_HCALL */
|
||||||
+
|
+
|
||||||
+ *(u8 *)(p + 5) = 0x0f; /* vmcall */
|
+ *(u8 *)(p + 5) = 0x0f; /* vmcall */
|
||||||
+ *(u8 *)(p + 6) = 0x01;
|
+ *(u8 *)(p + 6) = 0x01;
|
||||||
@ -1082,7 +1082,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ if (input == 0x00000001)
|
+ if (input == 0x00000001)
|
||||||
+ {
|
+ {
|
||||||
+ *ecx |= 0x80000000;
|
+ *ecx |= 0x80000000;
|
||||||
+printk("KYS: hypervisor enabled\n");
|
|
||||||
+ return (1);
|
+ return (1);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -1100,7 +1099,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ *ebx = 0x65766f4e; /* "Nove" */
|
+ *ebx = 0x65766f4e; /* "Nove" */
|
||||||
+ *ecx = 0x68536c6c; /* "llSh" */
|
+ *ecx = 0x68536c6c; /* "llSh" */
|
||||||
+ *edx = 0x76486d69; /* "imHv" */
|
+ *edx = 0x76486d69; /* "imHv" */
|
||||||
+printk("KYS: hypervisor dentified\n");
|
|
||||||
+ break;
|
+ break;
|
||||||
+
|
+
|
||||||
+ case 1:
|
+ case 1:
|
||||||
@ -1149,7 +1147,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ *ebx = (HV_SHIM_PRIVILEGES>>32);
|
+ *ebx = (HV_SHIM_PRIVILEGES>>32);
|
||||||
+ *ecx = 0; /* Reserved */
|
+ *ecx = 0; /* Reserved */
|
||||||
+ *edx = 0; /*No MWAIT (bit 0), No debugging (bit 1)*/
|
+ *edx = 0; /*No MWAIT (bit 0), No debugging (bit 1)*/
|
||||||
+printk("KYS: hypervisor Feature identified\n");
|
|
||||||
+ break;
|
+ break;
|
||||||
+ case 4:
|
+ case 4:
|
||||||
+ /*
|
+ /*
|
||||||
@ -1159,7 +1156,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ *ebx = 0; /* Reserved */
|
+ *ebx = 0; /* Reserved */
|
||||||
+ *ecx = 0; /* Reserved */
|
+ *ecx = 0; /* Reserved */
|
||||||
+ *edx = 0; /* Reserved */
|
+ *edx = 0; /* Reserved */
|
||||||
+printk("KYS: hypervisor recommendation %x\n", *eax);
|
|
||||||
+ break;
|
+ break;
|
||||||
+ case 5:
|
+ case 5:
|
||||||
+ /*
|
+ /*
|
||||||
@ -1203,7 +1199,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ return (0);
|
+ return (0);
|
||||||
+ switch (idx)
|
+ switch (idx)
|
||||||
+ {
|
+ {
|
||||||
+printk("KYS: msr read idx: %d\n", idx);
|
|
||||||
+ case HV_MSR_GUEST_OS_ID:
|
+ case HV_MSR_GUEST_OS_ID:
|
||||||
+ spin_lock(&curp->lock);
|
+ spin_lock(&curp->lock);
|
||||||
+ regs->eax = (u32)(curp->guest_id_msr & 0xFFFFFFFF);
|
+ regs->eax = (u32)(curp->guest_id_msr & 0xFFFFFFFF);
|
||||||
@ -1318,7 +1313,6 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+
|
+
|
||||||
+ switch (idx)
|
+ switch (idx)
|
||||||
+ {
|
+ {
|
||||||
+printk("KYS: msr write idx: %d\n", idx);
|
|
||||||
+ case HV_MSR_GUEST_OS_ID:
|
+ case HV_MSR_GUEST_OS_ID:
|
||||||
+ hv_write_guestid_msr(curp, cur_vcpu, msr_content);
|
+ hv_write_guestid_msr(curp, cur_vcpu, msr_content);
|
||||||
+ break;
|
+ break;
|
||||||
@ -1411,10 +1405,10 @@ Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
|||||||
+ hvm_inject_exception(TRAP_gp_fault, 0, 0);
|
+ hvm_inject_exception(TRAP_gp_fault, 0, 0);
|
||||||
+ return (1);
|
+ return (1);
|
||||||
+}
|
+}
|
||||||
Index: xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_shim.h
|
Index: xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_shim.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ xen-unstable.hg/xen/arch/x86/hvm/hyperv/hv_shim.h 2008-05-22 18:11:26.000000000 -0400
|
+++ xen-3.3.1-testing/xen/arch/x86/hvm/hyperv/hv_shim.h 2008-09-17 17:30:15.000000000 -0600
|
||||||
@@ -0,0 +1,281 @@
|
@@ -0,0 +1,281 @@
|
||||||
+/****************************************************************************
|
+/****************************************************************************
|
||||||
+ |
|
+ |
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
@@ -357,6 +357,15 @@ static void qemu_send_responses(void* op
|
@@ -357,6 +357,15 @@ static void qemu_send_responses(void* op
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,10 +6,10 @@ Date: Wed Jul 23 10:51:07 2008 +0200
|
|||||||
|
|
||||||
Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
@@ -32,6 +32,11 @@
|
@@ -32,6 +32,11 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -62,10 +62,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.h
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.h
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.h
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
@@ -30,11 +30,6 @@ typedef uint32_t td_flag_t;
|
@@ -30,11 +30,6 @@ typedef uint32_t td_flag_t;
|
||||||
|
|
||||||
#define TD_RDONLY 1
|
#define TD_RDONLY 1
|
||||||
@ -78,10 +78,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.h
|
|||||||
/* This structure represents the state of an active virtual disk. */
|
/* This structure represents the state of an active virtual disk. */
|
||||||
struct td_state {
|
struct td_state {
|
||||||
BlockDriverState* bs;
|
BlockDriverState* bs;
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/sysemu.h
|
Index: xen-3.3.1-testing/tools/ioemu-remote/sysemu.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/sysemu.h
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/sysemu.h
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/sysemu.h
|
+++ xen-3.3.1-testing/tools/ioemu-remote/sysemu.h
|
||||||
@@ -116,6 +116,7 @@ extern unsigned int nb_prom_envs;
|
@@ -116,6 +116,7 @@ extern unsigned int nb_prom_envs;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -90,10 +90,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/sysemu.h
|
|||||||
IF_IDE, IF_SCSI, IF_FLOPPY, IF_PFLASH, IF_MTD, IF_SD
|
IF_IDE, IF_SCSI, IF_FLOPPY, IF_PFLASH, IF_MTD, IF_SD
|
||||||
} BlockInterfaceType;
|
} BlockInterfaceType;
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/vl.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/vl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/vl.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/vl.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/vl.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/vl.c
|
||||||
@@ -5414,6 +5414,9 @@ static int drive_init(struct drive_opt *
|
@@ -5414,6 +5414,9 @@ static int drive_init(struct drive_opt *
|
||||||
case IF_PFLASH:
|
case IF_PFLASH:
|
||||||
case IF_MTD:
|
case IF_MTD:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/blktap/drivers/tapdisk.h
|
Index: xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/drivers/tapdisk.h
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/tapdisk.h
|
||||||
+++ xen-3.3.0-testing/tools/blktap/drivers/tapdisk.h
|
+++ xen-3.3.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
@@ -159,16 +159,6 @@ extern struct tap_disk tapdisk_ram;
|
@@ -159,16 +159,6 @@ extern struct tap_disk tapdisk_ram;
|
||||||
extern struct tap_disk tapdisk_qcow;
|
extern struct tap_disk tapdisk_qcow;
|
||||||
extern struct tap_disk tapdisk_qcow2;
|
extern struct tap_disk tapdisk_qcow2;
|
||||||
@ -19,10 +19,10 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/tapdisk.h
|
|||||||
|
|
||||||
/*Define Individual Disk Parameters here */
|
/*Define Individual Disk Parameters here */
|
||||||
static disk_info_t aio_disk = {
|
static disk_info_t aio_disk = {
|
||||||
Index: xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
Index: xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/lib/blktaplib.h
|
--- xen-3.3.1-testing.orig/tools/blktap/lib/blktaplib.h
|
||||||
+++ xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
+++ xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
@@ -211,6 +211,17 @@ typedef struct msg_pid {
|
@@ -211,6 +211,17 @@ typedef struct msg_pid {
|
||||||
#define CTLMSG_PID 9
|
#define CTLMSG_PID 9
|
||||||
#define CTLMSG_PID_RSP 10
|
#define CTLMSG_PID_RSP 10
|
||||||
@ -41,10 +41,10 @@ Index: xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
|||||||
/* xenstore/xenbus: */
|
/* xenstore/xenbus: */
|
||||||
#define DOMNAME "Domain-0"
|
#define DOMNAME "Domain-0"
|
||||||
int setup_probe_watch(struct xs_handle *h);
|
int setup_probe_watch(struct xs_handle *h);
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
@@ -222,9 +222,10 @@ static int map_new_dev(struct td_state *
|
@@ -222,9 +222,10 @@ static int map_new_dev(struct td_state *
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
fprintf(stderr, "Could not open image file %s\n", path);
|
fprintf(stderr, "Could not open image file %s\n", path);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
@@ -529,7 +545,7 @@ static void handle_blktap_ctrlmsg(void*
|
@@ -529,7 +545,7 @@ static void handle_blktap_ctrlmsg(void*
|
||||||
s = state_init();
|
s = state_init();
|
||||||
|
|
||||||
/*Open file*/
|
/*Open file*/
|
||||||
@ -90,10 +90,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
msglen = sizeof(msg_hdr_t);
|
msglen = sizeof(msg_hdr_t);
|
||||||
msg->type = CTLMSG_IMG_FAIL;
|
msg->type = CTLMSG_IMG_FAIL;
|
||||||
msg->len = msglen;
|
msg->len = msglen;
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.h
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.h
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.h
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.h
|
||||||
@@ -50,4 +50,19 @@ typedef struct fd_list_entry {
|
@@ -50,4 +50,19 @@ typedef struct fd_list_entry {
|
||||||
struct fd_list_entry **pprev, *next;
|
struct fd_list_entry **pprev, *next;
|
||||||
} fd_list_entry_t;
|
} fd_list_entry_t;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/block-qcow2.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/block-qcow2.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/block-qcow2.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/block-qcow2.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/block-qcow2.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/block-qcow2.c
|
||||||
@@ -808,6 +808,8 @@ static void qcow_aio_read_cb(void *opaqu
|
@@ -808,6 +808,8 @@ static void qcow_aio_read_cb(void *opaqu
|
||||||
BlockDriverState *bs = acb->common.bs;
|
BlockDriverState *bs = acb->common.bs;
|
||||||
BDRVQcowState *s = bs->opaque;
|
BDRVQcowState *s = bs->opaque;
|
||||||
@ -12,7 +12,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/block-qcow2.c
|
|||||||
acb->hd_aiocb = NULL;
|
acb->hd_aiocb = NULL;
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@@ -846,11 +848,22 @@ static void qcow_aio_read_cb(void *opaqu
|
@@ -846,11 +848,22 @@ static void qcow_aio_read_cb(void *opaqu
|
||||||
acb->cluster_offset = get_cluster_offset(bs, acb->sector_num << 9,
|
acb->cluster_offset = get_cluster_offset(bs, acb->sector_num << 9,
|
||||||
0, 0, 0, 0);
|
0, 0, 0, 0);
|
||||||
index_in_cluster = acb->sector_num & (s->cluster_sectors - 1);
|
index_in_cluster = acb->sector_num & (s->cluster_sectors - 1);
|
||||||
- acb->n = s->cluster_sectors - index_in_cluster;
|
- acb->n = s->cluster_sectors - index_in_cluster;
|
||||||
@ -36,7 +36,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/block-qcow2.c
|
|||||||
+
|
+
|
||||||
if (bs->backing_hd) {
|
if (bs->backing_hd) {
|
||||||
/* read from the base image */
|
/* read from the base image */
|
||||||
n1 = backing_read1(bs->backing_hd, acb->sector_num,
|
n1 = backing_read1(bs->backing_hd, acb->sector_num,
|
||||||
@@ -869,6 +882,9 @@ static void qcow_aio_read_cb(void *opaqu
|
@@ -869,6 +882,9 @@ static void qcow_aio_read_cb(void *opaqu
|
||||||
goto redo;
|
goto redo;
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/block-qcow2.c
|
|||||||
+ acb->n = n;
|
+ acb->n = n;
|
||||||
+
|
+
|
||||||
acb->hd_aiocb = bdrv_aio_read(s->hd,
|
acb->hd_aiocb = bdrv_aio_read(s->hd,
|
||||||
(acb->cluster_offset >> 9) + index_in_cluster,
|
(acb->cluster_offset >> 9) + index_in_cluster,
|
||||||
acb->buf, acb->n, qcow_aio_read_cb, acb);
|
acb->buf, acb->n, qcow_aio_read_cb, acb);
|
||||||
@@ -928,6 +960,9 @@ static void qcow_aio_write_cb(void *opaq
|
@@ -928,6 +960,9 @@ static void qcow_aio_write_cb(void *opaq
|
||||||
int index_in_cluster;
|
int index_in_cluster;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/libxen/src/xen_common.c
|
Index: xen-3.3.1-testing/tools/libxen/src/xen_common.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/libxen/src/xen_common.c
|
--- xen-3.3.1-testing.orig/tools/libxen/src/xen_common.c
|
||||||
+++ xen-3.3.0-testing/tools/libxen/src/xen_common.c
|
+++ xen-3.3.1-testing/tools/libxen/src/xen_common.c
|
||||||
@@ -902,8 +902,15 @@ static void parse_into(xen_session *s, x
|
@@ -902,8 +902,15 @@ static void parse_into(xen_session *s, x
|
||||||
0 != strcmp((char *)value_node->children->name, "struct") ||
|
0 != strcmp((char *)value_node->children->name, "struct") ||
|
||||||
value_node->children->children == NULL)
|
value_node->children->children == NULL)
|
||||||
|
13
msi-enable.patch
Normal file
13
msi-enable.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: xen-3.3.1-testing/xen/arch/x86/io_apic.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/arch/x86/io_apic.c
|
||||||
|
+++ xen-3.3.1-testing/xen/arch/x86/io_apic.c
|
||||||
|
@@ -45,7 +45,7 @@
|
||||||
|
int (*ioapic_renumber_irq)(int ioapic, int irq);
|
||||||
|
atomic_t irq_mis_count;
|
||||||
|
|
||||||
|
-int msi_enable = 0;
|
||||||
|
+int msi_enable = 1;
|
||||||
|
boolean_param("msi", msi_enable);
|
||||||
|
|
||||||
|
int domain_irq_to_vector(struct domain *d, int irq)
|
@ -1,163 +0,0 @@
|
|||||||
Index: xen-3.3.1-testing/xen/common/domain.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.1-testing.orig/xen/common/domain.c
|
|
||||||
+++ xen-3.3.1-testing/xen/common/domain.c
|
|
||||||
@@ -209,6 +209,7 @@ struct domain *domain_create(
|
|
||||||
atomic_set(&d->refcnt, 1);
|
|
||||||
spin_lock_init(&d->domain_lock);
|
|
||||||
spin_lock_init(&d->page_alloc_lock);
|
|
||||||
+ spin_lock_init(&d->poll_lock);
|
|
||||||
spin_lock_init(&d->shutdown_lock);
|
|
||||||
spin_lock_init(&d->hypercall_deadlock_mutex);
|
|
||||||
INIT_LIST_HEAD(&d->page_list);
|
|
||||||
@@ -653,7 +654,7 @@ void vcpu_reset(struct vcpu *v)
|
|
||||||
|
|
||||||
v->fpu_initialised = 0;
|
|
||||||
v->fpu_dirtied = 0;
|
|
||||||
- v->is_polling = 0;
|
|
||||||
+ v->poll_evtchn = 0;
|
|
||||||
v->is_initialised = 0;
|
|
||||||
v->nmi_pending = 0;
|
|
||||||
v->mce_pending = 0;
|
|
||||||
Index: xen-3.3.1-testing/xen/common/event_channel.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.1-testing.orig/xen/common/event_channel.c
|
|
||||||
+++ xen-3.3.1-testing/xen/common/event_channel.c
|
|
||||||
@@ -545,6 +545,7 @@ out:
|
|
||||||
static int evtchn_set_pending(struct vcpu *v, int port)
|
|
||||||
{
|
|
||||||
struct domain *d = v->domain;
|
|
||||||
+ unsigned long flags;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following bit operations must happen in strict order.
|
|
||||||
@@ -564,19 +565,36 @@ static int evtchn_set_pending(struct vcp
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if some VCPU might be polling for this event. */
|
|
||||||
- if ( unlikely(d->is_polling) )
|
|
||||||
+ if ( likely(!d->is_polling) )
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ spin_lock_irqsave(&d->poll_lock, flags);
|
|
||||||
+
|
|
||||||
+ if ( likely(d->is_polling) )
|
|
||||||
{
|
|
||||||
- d->is_polling = 0;
|
|
||||||
+ bool_t is_polling = 0;
|
|
||||||
+
|
|
||||||
+ d->is_polling = -1;
|
|
||||||
smp_mb(); /* check vcpu poll-flags /after/ clearing domain poll-flag */
|
|
||||||
for_each_vcpu ( d, v )
|
|
||||||
{
|
|
||||||
- if ( !v->is_polling )
|
|
||||||
+ int poll_evtchn = v->poll_evtchn;
|
|
||||||
+
|
|
||||||
+ if ( !poll_evtchn )
|
|
||||||
+ continue;
|
|
||||||
+ if ( poll_evtchn > 0 && poll_evtchn != port )
|
|
||||||
+ {
|
|
||||||
+ is_polling = 1;
|
|
||||||
continue;
|
|
||||||
- v->is_polling = 0;
|
|
||||||
+ }
|
|
||||||
+ v->poll_evtchn = 0;
|
|
||||||
vcpu_unblock(v);
|
|
||||||
}
|
|
||||||
+ cmpxchg(&d->is_polling, -1, is_polling);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ spin_unlock_irqrestore(&d->poll_lock, flags);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: xen-3.3.1-testing/xen/common/schedule.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.1-testing.orig/xen/common/schedule.c
|
|
||||||
+++ xen-3.3.1-testing/xen/common/schedule.c
|
|
||||||
@@ -348,7 +348,7 @@ static long do_poll(struct sched_poll *s
|
|
||||||
return -EFAULT;
|
|
||||||
|
|
||||||
set_bit(_VPF_blocked, &v->pause_flags);
|
|
||||||
- v->is_polling = 1;
|
|
||||||
+ v->poll_evtchn = -1;
|
|
||||||
d->is_polling = 1;
|
|
||||||
|
|
||||||
/* Check for events /after/ setting flags: avoids wakeup waiting race. */
|
|
||||||
@@ -369,6 +369,9 @@ static long do_poll(struct sched_poll *s
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if ( i == 1 )
|
|
||||||
+ v->poll_evtchn = port;
|
|
||||||
+
|
|
||||||
if ( sched_poll->timeout != 0 )
|
|
||||||
set_timer(&v->poll_timer, sched_poll->timeout);
|
|
||||||
|
|
||||||
@@ -378,7 +381,7 @@ static long do_poll(struct sched_poll *s
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
out:
|
|
||||||
- v->is_polling = 0;
|
|
||||||
+ v->poll_evtchn = 0;
|
|
||||||
clear_bit(_VPF_blocked, &v->pause_flags);
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
@@ -760,10 +763,10 @@ static void poll_timer_fn(void *data)
|
|
||||||
{
|
|
||||||
struct vcpu *v = data;
|
|
||||||
|
|
||||||
- if ( !v->is_polling )
|
|
||||||
+ if ( !v->poll_evtchn )
|
|
||||||
return;
|
|
||||||
|
|
||||||
- v->is_polling = 0;
|
|
||||||
+ v->poll_evtchn = 0;
|
|
||||||
vcpu_unblock(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: xen-3.3.1-testing/xen/include/xen/sched.h
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.1-testing.orig/xen/include/xen/sched.h
|
|
||||||
+++ xen-3.3.1-testing/xen/include/xen/sched.h
|
|
||||||
@@ -106,8 +106,6 @@ struct vcpu
|
|
||||||
bool_t fpu_initialised;
|
|
||||||
/* Has the FPU been used since it was last saved? */
|
|
||||||
bool_t fpu_dirtied;
|
|
||||||
- /* Is this VCPU polling any event channels (SCHEDOP_poll)? */
|
|
||||||
- bool_t is_polling;
|
|
||||||
/* Initialization completed for this VCPU? */
|
|
||||||
bool_t is_initialised;
|
|
||||||
/* Currently running on a CPU? */
|
|
||||||
@@ -137,6 +135,11 @@ struct vcpu
|
|
||||||
unsigned long pause_flags;
|
|
||||||
atomic_t pause_count;
|
|
||||||
|
|
||||||
+ /* Is this VCPU polling any event channels (SCHEDOP_poll)?
|
|
||||||
+ * Positive values indicate a single, negative values multiple channels
|
|
||||||
+ * being polled. */
|
|
||||||
+ int poll_evtchn;
|
|
||||||
+
|
|
||||||
/* IRQ-safe virq_lock protects against delivering VIRQ to stale evtchn. */
|
|
||||||
u16 virq_to_evtchn[NR_VIRQS];
|
|
||||||
spinlock_t virq_lock;
|
|
||||||
@@ -210,7 +213,7 @@ struct domain
|
|
||||||
/* Is this guest being debugged by dom0? */
|
|
||||||
bool_t debugger_attached;
|
|
||||||
/* Are any VCPUs polling event channels (SCHEDOP_poll)? */
|
|
||||||
- bool_t is_polling;
|
|
||||||
+ signed char is_polling;
|
|
||||||
/* Is this guest dying (i.e., a zombie)? */
|
|
||||||
enum { DOMDYING_alive, DOMDYING_dying, DOMDYING_dead } is_dying;
|
|
||||||
/* Domain is paused by controller software? */
|
|
||||||
@@ -218,6 +221,9 @@ struct domain
|
|
||||||
/* Domain's VCPUs are pinned 1:1 to physical CPUs? */
|
|
||||||
bool_t is_pinned;
|
|
||||||
|
|
||||||
+ /* Protects is_polling modification in evtchn_set_pending(). */
|
|
||||||
+ spinlock_t poll_lock;
|
|
||||||
+
|
|
||||||
/* Guest has shut down (inc. reason code)? */
|
|
||||||
spinlock_t shutdown_lock;
|
|
||||||
bool_t is_shutting_down; /* in process of shutting down? */
|
|
@ -1,13 +1,29 @@
|
|||||||
Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/mkbuildtree
|
Index: xen-3.3.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/unmodified_drivers/linux-2.6/mkbuildtree
|
--- xen-3.3.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
||||||
+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/mkbuildtree
|
+++ xen-3.3.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
||||||
@@ -40,7 +40,7 @@ ln -sf ${XL}/drivers/xen/core/reboot.c p
|
@@ -14,7 +14,7 @@ EXPORT_SYMBOL(system_state);
|
||||||
mkdir -p include/asm include/xen
|
|
||||||
|
|
||||||
lndir -silent ${XL}/include/xen include/xen
|
void ctrl_alt_del(void)
|
||||||
-ln -nsf ${XEN}/include/public include/xen/interface
|
{
|
||||||
+ln -nsf ${XEN}/interface include/xen/interface
|
- kill_proc(1, SIGINT, 1); /* interrupt init */
|
||||||
|
+ kill_proc_info(SIGINT, SEND_SIG_PRIV, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8)
|
||||||
|
Index: xen-3.3.1-testing/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
||||||
|
+++ xen-3.3.1-testing/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
||||||
|
@@ -44,7 +44,11 @@ static void ap_suspend(void *_info)
|
||||||
|
atomic_dec(&info->nr_spinning);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
|
||||||
|
#define initiate_ap_suspend(i) smp_call_function(ap_suspend, i, 0, 0)
|
||||||
|
+#else
|
||||||
|
+#define initiate_ap_suspend(i) smp_call_function(ap_suspend, i, 0)
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#else /* !defined(CONFIG_SMP) */
|
||||||
|
|
||||||
# Need to be quite careful here: we don't want the files we link in to
|
|
||||||
# risk overriding the native Linux ones (in particular, system.h must
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_platform.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_platform.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_platform.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_platform.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_platform.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_platform.c
|
||||||
@@ -101,6 +101,19 @@ static void platform_ioport_write(void *
|
@@ -101,6 +101,19 @@ static void platform_ioport_write(void *
|
||||||
net_tap_shutdown_all();
|
net_tap_shutdown_all();
|
||||||
fprintf(logfile, "Done.\n");
|
fprintf(logfile, "Done.\n");
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/qemu-img.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/qemu-img.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/qemu-img.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/qemu-img.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/qemu-img.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/qemu-img.c
|
||||||
@@ -57,6 +57,7 @@ static void help(void)
|
@@ -57,6 +57,7 @@ static void help(void)
|
||||||
" commit [-f fmt] filename\n"
|
" commit [-f fmt] filename\n"
|
||||||
" convert [-c] [-e] [-6] [-f fmt] [-O output_fmt] filename [filename2 [...]] output_filename\n"
|
" convert [-c] [-e] [-6] [-f fmt] [-O output_fmt] filename [filename2 [...]] output_filename\n"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/block.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/block.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/block.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/block.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/block.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/block.c
|
||||||
@@ -630,6 +630,9 @@ int bdrv_write(BlockDriverState *bs, int
|
@@ -630,6 +630,9 @@ int bdrv_write(BlockDriverState *bs, int
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -12,10 +12,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/block.c
|
|||||||
return drv->bdrv_write(bs, sector_num, buf, nb_sectors);
|
return drv->bdrv_write(bs, sector_num, buf, nb_sectors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/ne2000.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/ne2000.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/ne2000.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/ne2000.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/ne2000.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/ne2000.c
|
||||||
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
|
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
|
||||||
NE2000State *s = opaque;
|
NE2000State *s = opaque;
|
||||||
|
|
||||||
@ -25,10 +25,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/ne2000.c
|
|||||||
return !ne2000_buffer_full(s);
|
return !ne2000_buffer_full(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/pc.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/pc.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/pc.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/pc.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/pc.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/pc.c
|
||||||
@@ -387,7 +387,8 @@ static void bochs_bios_write(void *opaqu
|
@@ -387,7 +387,8 @@ static void bochs_bios_write(void *opaqu
|
||||||
case 0x400:
|
case 0x400:
|
||||||
case 0x401:
|
case 0x401:
|
||||||
@ -50,10 +50,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/pc.c
|
|||||||
case 0x500:
|
case 0x500:
|
||||||
case 0x503:
|
case 0x503:
|
||||||
#ifdef DEBUG_BIOS
|
#ifdef DEBUG_BIOS
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/target-i386/translate.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/target-i386/translate.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/target-i386/translate.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/target-i386/translate.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/target-i386/translate.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/target-i386/translate.c
|
||||||
@@ -5661,6 +5661,7 @@ static target_ulong disas_insn(DisasCont
|
@@ -5661,6 +5661,7 @@ static target_ulong disas_insn(DisasCont
|
||||||
gen_jmp_im(pc_start - s->cs_base);
|
gen_jmp_im(pc_start - s->cs_base);
|
||||||
gen_op_into(s->pc - pc_start);
|
gen_op_into(s->pc - pc_start);
|
||||||
@ -70,10 +70,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/target-i386/translate.c
|
|||||||
case 0xfa: /* cli */
|
case 0xfa: /* cli */
|
||||||
if (!s->vm86) {
|
if (!s->vm86) {
|
||||||
if (s->cpl <= s->iopl) {
|
if (s->cpl <= s->iopl) {
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/vl.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/vl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/vl.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/vl.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/vl.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/vl.c
|
||||||
@@ -4380,8 +4380,8 @@ typedef struct NetSocketState {
|
@@ -4380,8 +4380,8 @@ typedef struct NetSocketState {
|
||||||
VLANClientState *vc;
|
VLANClientState *vc;
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/Makefile
|
Index: xen-3.3.1-testing/tools/examples/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/Makefile
|
--- xen-3.3.1-testing.orig/tools/examples/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/examples/Makefile
|
+++ xen-3.3.1-testing/tools/examples/Makefile
|
||||||
@@ -70,7 +70,7 @@ install-initd:
|
@@ -70,7 +70,7 @@ install-initd:
|
||||||
[ -d $(DESTDIR)/var/adm/fillup-templates ] || $(INSTALL_DIR) $(DESTDIR)/var/adm/fillup-templates/
|
[ -d $(DESTDIR)/var/adm/fillup-templates ] || $(INSTALL_DIR) $(DESTDIR)/var/adm/fillup-templates/
|
||||||
$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
|
$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/misc/serial-split/Makefile
|
Index: xen-3.3.1-testing/tools/misc/serial-split/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/misc/serial-split/Makefile
|
+++ xen-3.3.1-testing/tools/misc/serial-split/Makefile
|
||||||
@@ -0,0 +1,20 @@
|
@@ -0,0 +1,20 @@
|
||||||
+CC ?= gcc
|
+CC ?= gcc
|
||||||
+CFLAGS ?= -Wall -Os
|
+CFLAGS ?= -Wall -Os
|
||||||
@ -23,10 +23,10 @@ Index: xen-3.3.0-testing/tools/misc/serial-split/Makefile
|
|||||||
+
|
+
|
||||||
+%.o: %.c Makefile
|
+%.o: %.c Makefile
|
||||||
+ $(CC) $(CFLAGS) -c -o $@ $<
|
+ $(CC) $(CFLAGS) -c -o $@ $<
|
||||||
Index: xen-3.3.0-testing/tools/misc/serial-split/serial-split.c
|
Index: xen-3.3.1-testing/tools/misc/serial-split/serial-split.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/misc/serial-split/serial-split.c
|
+++ xen-3.3.1-testing/tools/misc/serial-split/serial-split.c
|
||||||
@@ -0,0 +1,422 @@
|
@@ -0,0 +1,422 @@
|
||||||
+/*
|
+/*
|
||||||
+ * serial-split.c
|
+ * serial-split.c
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xenstore.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
@@ -652,6 +652,19 @@ static void xenstore_process_dm_command_
|
@@ -652,6 +652,19 @@ static void xenstore_process_dm_command_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
Index: xen-3.3.1-testing/tools/blktap/drivers/blktapctrl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/drivers/blktapctrl.c
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/blktapctrl.c
|
||||||
+++ xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
+++ xen-3.3.1-testing/tools/blktap/drivers/blktapctrl.c
|
||||||
@@ -305,6 +305,7 @@ static int write_msg(int fd, int msgtype
|
@@ -305,6 +305,7 @@ static int write_msg(int fd, int msgtype
|
||||||
msg_dev = (msg_newdev_t *)(buf + sizeof(msg_hdr_t));
|
msg_dev = (msg_newdev_t *)(buf + sizeof(msg_hdr_t));
|
||||||
msg_dev->devnum = blkif->minor;
|
msg_dev->devnum = blkif->minor;
|
||||||
@ -10,10 +10,10 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
Index: xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/lib/blktaplib.h
|
--- xen-3.3.1-testing.orig/tools/blktap/lib/blktaplib.h
|
||||||
+++ xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
+++ xen-3.3.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
@@ -189,6 +189,7 @@ typedef struct msg_hdr {
|
@@ -189,6 +189,7 @@ typedef struct msg_hdr {
|
||||||
typedef struct msg_newdev {
|
typedef struct msg_newdev {
|
||||||
uint8_t devnum;
|
uint8_t devnum;
|
||||||
@ -22,10 +22,10 @@ Index: xen-3.3.0-testing/tools/blktap/lib/blktaplib.h
|
|||||||
} msg_newdev_t;
|
} msg_newdev_t;
|
||||||
|
|
||||||
typedef struct msg_pid {
|
typedef struct msg_pid {
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/hw/xen_blktap.c
|
||||||
@@ -69,6 +69,8 @@ int write_fd;
|
@@ -69,6 +69,8 @@ int write_fd;
|
||||||
static pid_t process;
|
static pid_t process;
|
||||||
fd_list_entry_t *fd_start = NULL;
|
fd_list_entry_t *fd_start = NULL;
|
||||||
@ -35,7 +35,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
static void handle_blktap_iomsg(void* private);
|
static void handle_blktap_iomsg(void* private);
|
||||||
|
|
||||||
struct aiocb_info {
|
struct aiocb_info {
|
||||||
@@ -502,6 +504,10 @@ static void handle_blktap_ctrlmsg(void*
|
@@ -502,6 +504,10 @@ static void handle_blktap_ctrlmsg(void*
|
||||||
|
|
||||||
char buf[MSG_SIZE];
|
char buf[MSG_SIZE];
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
length = read(read_fd, buf, MSG_SIZE);
|
length = read(read_fd, buf, MSG_SIZE);
|
||||||
|
|
||||||
if (length > 0 && length >= sizeof(msg_hdr_t))
|
if (length > 0 && length >= sizeof(msg_hdr_t))
|
||||||
@@ -557,7 +563,18 @@ static void handle_blktap_ctrlmsg(void*
|
@@ -557,7 +563,18 @@ static void handle_blktap_ctrlmsg(void*
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
ret = ((map_new_dev(s, msg_dev->devnum)
|
ret = ((map_new_dev(s, msg_dev->devnum)
|
||||||
== msg_dev->devnum ? 0: -1));
|
== msg_dev->devnum ? 0: -1));
|
||||||
@ -66,10 +66,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/hw/xen_blktap.c
|
|||||||
|
|
||||||
memset(buf, 0x00, MSG_SIZE);
|
memset(buf, 0x00, MSG_SIZE);
|
||||||
msglen = sizeof(msg_hdr_t);
|
msglen = sizeof(msg_hdr_t);
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xenstore.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
@@ -37,6 +37,8 @@ static QEMUTimer *insert_timer = NULL;
|
@@ -37,6 +37,8 @@ static QEMUTimer *insert_timer = NULL;
|
||||||
#define UWAIT_MAX (30*1000000) /* thirty seconds */
|
#define UWAIT_MAX (30*1000000) /* thirty seconds */
|
||||||
#define UWAIT (100000) /* 1/10th second */
|
#define UWAIT (100000) /* 1/10th second */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xen-vl-extra.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xen-vl-extra.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xen-vl-extra.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xen-vl-extra.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xen-vl-extra.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xen-vl-extra.c
|
||||||
@@ -8,12 +8,18 @@
|
@@ -8,12 +8,18 @@
|
||||||
* there is only one place where this file is included. */
|
* there is only one place where this file is included. */
|
||||||
|
|
||||||
@ -103,10 +103,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/xen-vl-extra.c
|
|||||||
struct qemu_alarm_timer;
|
struct qemu_alarm_timer;
|
||||||
static int unix_start_timer(struct qemu_alarm_timer *t) { return 0; }
|
static int unix_start_timer(struct qemu_alarm_timer *t) { return 0; }
|
||||||
static void unix_stop_timer(struct qemu_alarm_timer *t) { }
|
static void unix_stop_timer(struct qemu_alarm_timer *t) { }
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/i386-dm/helper2.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/i386-dm/helper2.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/i386-dm/helper2.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/i386-dm/helper2.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/i386-dm/helper2.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/i386-dm/helper2.c
|
||||||
@@ -101,6 +101,9 @@ int send_vcpu = 0;
|
@@ -101,6 +101,9 @@ int send_vcpu = 0;
|
||||||
#define NR_CPUS 32
|
#define NR_CPUS 32
|
||||||
evtchn_port_t ioreq_local_port[NR_CPUS];
|
evtchn_port_t ioreq_local_port[NR_CPUS];
|
||||||
@ -145,10 +145,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/i386-dm/helper2.c
|
|||||||
|
|
||||||
xenstore_record_dm_state("paused");
|
xenstore_record_dm_state("paused");
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/qemu-xen.h
|
Index: xen-3.3.1-testing/tools/ioemu-remote/qemu-xen.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/qemu-xen.h
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/qemu-xen.h
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/qemu-xen.h
|
+++ xen-3.3.1-testing/tools/ioemu-remote/qemu-xen.h
|
||||||
@@ -14,6 +14,15 @@ void qemu_invalidate_map_cache(void)
|
@@ -14,6 +14,15 @@ void qemu_invalidate_map_cache(void)
|
||||||
#define mapcache_lock() ((void)0)
|
#define mapcache_lock() ((void)0)
|
||||||
#define mapcache_unlock() ((void)0)
|
#define mapcache_unlock() ((void)0)
|
||||||
@ -165,10 +165,10 @@ Index: xen-3.3.0-testing/tools/ioemu-remote/qemu-xen.h
|
|||||||
/* helper2.c */
|
/* helper2.c */
|
||||||
extern long time_offset;
|
extern long time_offset;
|
||||||
void timeoffset_get(void);
|
void timeoffset_get(void);
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xenstore.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
@@ -24,6 +24,7 @@
|
@@ -24,6 +24,7 @@
|
||||||
|
|
||||||
#include "exec-all.h"
|
#include "exec-all.h"
|
||||||
|
@ -2,10 +2,10 @@ Make our PV drivers "Novell supported modules"
|
|||||||
|
|
||||||
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
|
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/Module.supported
|
Index: xen-3.3.1-testing/unmodified_drivers/linux-2.6/Module.supported
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/Module.supported
|
+++ xen-3.3.1-testing/unmodified_drivers/linux-2.6/Module.supported
|
||||||
@@ -0,0 +1,4 @@
|
@@ -0,0 +1,4 @@
|
||||||
+xen-vbd
|
+xen-vbd
|
||||||
+xen-platform-pci
|
+xen-platform-pci
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
diff -r 0eab1869ef66 tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in
|
Index: xen-3.3.1-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in
|
||||||
--- a/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in Thu Sep 04 11:42:38 2008 +0100
|
===================================================================
|
||||||
+++ b/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in Thu Sep 11 15:45:31 2008 -0600
|
--- xen-3.3.1-testing.orig/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in
|
||||||
@@ -90,7 +90,7 @@ GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS
|
+++ xen-3.3.1-testing/tools/debugger/gdb/gdb-6.2.1-xen-sparse/gdb/gdbserver/Makefile.in
|
||||||
|
@@ -90,7 +90,7 @@ INCLUDE_CFLAGS = -I. -I${srcdir} -I$(src
|
||||||
GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS}
|
GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS}
|
||||||
#PROFILE_CFLAGS = -pg
|
#PROFILE_CFLAGS = -pg
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
|
|||||||
tools/kboot/select-kernel | 59 +
|
tools/kboot/select-kernel | 59 +
|
||||||
9 files changed, 2111 insertions(+)
|
9 files changed, 2111 insertions(+)
|
||||||
|
|
||||||
Index: xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_32
|
Index: xen-3.3.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_32
|
+++ xen-3.3.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
|
||||||
@@ -0,0 +1,874 @@
|
@@ -0,0 +1,874 @@
|
||||||
+#
|
+#
|
||||||
+# Automatically generated make config: don't edit
|
+# Automatically generated make config: don't edit
|
||||||
@ -892,10 +892,10 @@ Index: xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_32
|
|||||||
+CONFIG_X86_NO_TSS=y
|
+CONFIG_X86_NO_TSS=y
|
||||||
+CONFIG_X86_NO_IDT=y
|
+CONFIG_X86_NO_IDT=y
|
||||||
+CONFIG_KTIME_SCALAR=y
|
+CONFIG_KTIME_SCALAR=y
|
||||||
Index: xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_64
|
Index: xen-3.3.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_64
|
+++ xen-3.3.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
|
||||||
@@ -0,0 +1,653 @@
|
@@ -0,0 +1,653 @@
|
||||||
+#
|
+#
|
||||||
+# Automatically generated make config: don't edit
|
+# Automatically generated make config: don't edit
|
||||||
@ -1550,17 +1550,17 @@ Index: xen-unstable/buildconfigs/linux-defconfig_xenUboot_x86_64
|
|||||||
+# CONFIG_CRC32 is not set
|
+# CONFIG_CRC32 is not set
|
||||||
+# CONFIG_LIBCRC32C is not set
|
+# CONFIG_LIBCRC32C is not set
|
||||||
+CONFIG_ZLIB_INFLATE=y
|
+CONFIG_ZLIB_INFLATE=y
|
||||||
Index: xen-unstable/buildconfigs/mk.linux-2.6-xenUboot
|
Index: xen-3.3.1-testing/buildconfigs/mk.linux-2.6-xenUboot
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/buildconfigs/mk.linux-2.6-xenUboot
|
+++ xen-3.3.1-testing/buildconfigs/mk.linux-2.6-xenUboot
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1,2 @@
|
||||||
+EXTRAVERSION = xenUboot
|
+EXTRAVERSION = xenUboot
|
||||||
+include buildconfigs/mk.linux-2.6-xen
|
+include buildconfigs/mk.linux-2.6-xen
|
||||||
Index: xen-unstable/tools/kboot/Makefile
|
Index: xen-3.3.1-testing/tools/kboot/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/tools/kboot/Makefile
|
+++ xen-3.3.1-testing/tools/kboot/Makefile
|
||||||
@@ -0,0 +1,23 @@
|
@@ -0,0 +1,23 @@
|
||||||
+#
|
+#
|
||||||
+# tools/kboot/Makefile
|
+# tools/kboot/Makefile
|
||||||
@ -1585,10 +1585,10 @@ Index: xen-unstable/tools/kboot/Makefile
|
|||||||
+kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec
|
+kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec
|
||||||
+ sh ./mkinitramfs | tee $@
|
+ sh ./mkinitramfs | tee $@
|
||||||
+
|
+
|
||||||
Index: xen-unstable/tools/kboot/README
|
Index: xen-3.3.1-testing/tools/kboot/README
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/tools/kboot/README
|
+++ xen-3.3.1-testing/tools/kboot/README
|
||||||
@@ -0,0 +1,43 @@
|
@@ -0,0 +1,43 @@
|
||||||
+
|
+
|
||||||
+This is a simple kexec-based boot loader
|
+This is a simple kexec-based boot loader
|
||||||
@ -1633,10 +1633,10 @@ Index: xen-unstable/tools/kboot/README
|
|||||||
+
|
+
|
||||||
+--
|
+--
|
||||||
+Gerd Hoffmann <kraxel@suse.de>
|
+Gerd Hoffmann <kraxel@suse.de>
|
||||||
Index: xen-unstable/tools/kboot/init
|
Index: xen-3.3.1-testing/tools/kboot/init
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/tools/kboot/init
|
+++ xen-3.3.1-testing/tools/kboot/init
|
||||||
@@ -0,0 +1,309 @@
|
@@ -0,0 +1,309 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -1947,10 +1947,10 @@ Index: xen-unstable/tools/kboot/init
|
|||||||
+msg "bye ..."
|
+msg "bye ..."
|
||||||
+banner "boot $guestos"
|
+banner "boot $guestos"
|
||||||
+xc_kexec -e
|
+xc_kexec -e
|
||||||
Index: xen-unstable/tools/kboot/mkinitramfs
|
Index: xen-3.3.1-testing/tools/kboot/mkinitramfs
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/tools/kboot/mkinitramfs
|
+++ xen-3.3.1-testing/tools/kboot/mkinitramfs
|
||||||
@@ -0,0 +1,111 @@
|
@@ -0,0 +1,111 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -2063,10 +2063,10 @@ Index: xen-unstable/tools/kboot/mkinitramfs
|
|||||||
+ echo "file $LIB/$(basename $lib) $lib 0755 0 0"
|
+ echo "file $LIB/$(basename $lib) $lib 0755 0 0"
|
||||||
+done
|
+done
|
||||||
+echo
|
+echo
|
||||||
Index: xen-unstable/tools/kboot/select-kernel
|
Index: xen-3.3.1-testing/tools/kboot/select-kernel
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/tools/kboot/select-kernel
|
+++ xen-3.3.1-testing/tools/kboot/select-kernel
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -2127,10 +2127,10 @@ Index: xen-unstable/tools/kboot/select-kernel
|
|||||||
+msg "using $kernelname"
|
+msg "using $kernelname"
|
||||||
+echo "$kernelname"
|
+echo "$kernelname"
|
||||||
+
|
+
|
||||||
Index: xen-unstable/make-kboot
|
Index: xen-3.3.1-testing/make-kboot
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-unstable/make-kboot
|
+++ xen-3.3.1-testing/make-kboot
|
||||||
@@ -0,0 +1,37 @@
|
@@ -0,0 +1,37 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
|
@ -23,10 +23,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
|
|||||||
tools/xcutils/xc_kexec.c | 503 +++++++++++++++
|
tools/xcutils/xc_kexec.c | 503 +++++++++++++++
|
||||||
19 files changed, 4988 insertions(+), 2 deletions(-)
|
19 files changed, 4988 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/Makefile
|
Index: xen-3.3.1-testing/tools/xcutils/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xcutils/Makefile
|
--- xen-3.3.1-testing.orig/tools/xcutils/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/Makefile
|
+++ xen-3.3.1-testing/tools/xcutils/Makefile
|
||||||
@@ -18,7 +18,7 @@ CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_
|
@@ -18,7 +18,7 @@ CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_
|
||||||
CFLAGS += -Wp,-MD,.$(@F).d
|
CFLAGS += -Wp,-MD,.$(@F).d
|
||||||
PROG_DEP = .*.d
|
PROG_DEP = .*.d
|
||||||
@ -55,10 +55,10 @@ Index: xen-3.3.0-testing/tools/xcutils/Makefile
|
|||||||
+ make -C helper clean
|
+ make -C helper clean
|
||||||
|
|
||||||
-include $(PROG_DEP)
|
-include $(PROG_DEP)
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/Makefile
|
Index: xen-3.3.1-testing/tools/xcutils/helper/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/Makefile
|
+++ xen-3.3.1-testing/tools/xcutils/helper/Makefile
|
||||||
@@ -0,0 +1,39 @@
|
@@ -0,0 +1,39 @@
|
||||||
+
|
+
|
||||||
+XEN_ROOT = ../../..
|
+XEN_ROOT = ../../..
|
||||||
@ -99,10 +99,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/Makefile
|
|||||||
+# dependencies
|
+# dependencies
|
||||||
+
|
+
|
||||||
+$(XEN_TARGET_ARCH)/entry.o: $(XEN_TARGET_ARCH)/entry.S $(XEN_TARGET_ARCH)/offsets.h
|
+$(XEN_TARGET_ARCH)/entry.o: $(XEN_TARGET_ARCH)/entry.S $(XEN_TARGET_ARCH)/offsets.h
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/console.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/console.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/console.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/console.c
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
+#include <inttypes.h>
|
+#include <inttypes.h>
|
||||||
+
|
+
|
||||||
@ -173,10 +173,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/console.c
|
|||||||
+
|
+
|
||||||
+ return printed_len;
|
+ return printed_len;
|
||||||
+}
|
+}
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/ctype.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/ctype.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/ctype.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/ctype.c
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+/*
|
+/*
|
||||||
+ * linux/lib/ctype.c
|
+ * linux/lib/ctype.c
|
||||||
@ -213,10 +213,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/ctype.c
|
|||||||
+_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */
|
+_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */
|
||||||
+
|
+
|
||||||
+EXPORT_SYMBOL(_ctype);
|
+EXPORT_SYMBOL(_ctype);
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/ctype.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/ctype.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/ctype.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/ctype.h
|
||||||
@@ -0,0 +1,54 @@
|
@@ -0,0 +1,54 @@
|
||||||
+#ifndef _LINUX_CTYPE_H
|
+#ifndef _LINUX_CTYPE_H
|
||||||
+#define _LINUX_CTYPE_H
|
+#define _LINUX_CTYPE_H
|
||||||
@ -272,10 +272,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/ctype.h
|
|||||||
+#define toupper(c) __toupper(c)
|
+#define toupper(c) __toupper(c)
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/helper.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/helper.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/helper.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/helper.h
|
||||||
@@ -0,0 +1,107 @@
|
@@ -0,0 +1,107 @@
|
||||||
+#include <stdarg.h>
|
+#include <stdarg.h>
|
||||||
+#include <stddef.h>
|
+#include <stddef.h>
|
||||||
@ -384,10 +384,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/helper.h
|
|||||||
+int sprintf(char * buf, const char *fmt, ...);
|
+int sprintf(char * buf, const char *fmt, ...);
|
||||||
+int vsscanf(const char * buf, const char * fmt, va_list args);
|
+int vsscanf(const char * buf, const char * fmt, va_list args);
|
||||||
+int sscanf(const char * buf, const char * fmt, ...);
|
+int sscanf(const char * buf, const char * fmt, ...);
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/main.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/main.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/main.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/main.c
|
||||||
@@ -0,0 +1,651 @@
|
@@ -0,0 +1,651 @@
|
||||||
+#include <xenctrl.h>
|
+#include <xenctrl.h>
|
||||||
+#include "hypercall.h"
|
+#include "hypercall.h"
|
||||||
@ -1040,10 +1040,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/main.c
|
|||||||
+ printk("\r\n");
|
+ printk("\r\n");
|
||||||
+ start_kernel();
|
+ start_kernel();
|
||||||
+}
|
+}
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/make-offsets.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/make-offsets.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/make-offsets.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/make-offsets.c
|
||||||
@@ -0,0 +1,28 @@
|
@@ -0,0 +1,28 @@
|
||||||
+#include <stdio.h>
|
+#include <stdio.h>
|
||||||
+#include <xenctrl.h>
|
+#include <xenctrl.h>
|
||||||
@ -1073,10 +1073,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/make-offsets.c
|
|||||||
+ vcpu_off("cr3", ctrlreg[3]);
|
+ vcpu_off("cr3", ctrlreg[3]);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/printk.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/printk.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/printk.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/printk.c
|
||||||
@@ -0,0 +1,1051 @@
|
@@ -0,0 +1,1051 @@
|
||||||
+/*
|
+/*
|
||||||
+ * linux/kernel/printk.c
|
+ * linux/kernel/printk.c
|
||||||
@ -2129,10 +2129,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/printk.c
|
|||||||
+ printk_ratelimit_burst);
|
+ printk_ratelimit_burst);
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(printk_ratelimit);
|
+EXPORT_SYMBOL(printk_ratelimit);
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/string.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/string.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/string.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/string.c
|
||||||
@@ -0,0 +1,601 @@
|
@@ -0,0 +1,601 @@
|
||||||
+/*
|
+/*
|
||||||
+ * linux/lib/string.c
|
+ * linux/lib/string.c
|
||||||
@ -2735,10 +2735,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/string.c
|
|||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(memchr);
|
+EXPORT_SYMBOL(memchr);
|
||||||
+#endif
|
+#endif
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/vsprintf.c
|
Index: xen-3.3.1-testing/tools/xcutils/helper/vsprintf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/vsprintf.c
|
+++ xen-3.3.1-testing/tools/xcutils/helper/vsprintf.c
|
||||||
@@ -0,0 +1,842 @@
|
@@ -0,0 +1,842 @@
|
||||||
+/*
|
+/*
|
||||||
+ * linux/lib/vsprintf.c
|
+ * linux/lib/vsprintf.c
|
||||||
@ -3582,10 +3582,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/vsprintf.c
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+EXPORT_SYMBOL(sscanf);
|
+EXPORT_SYMBOL(sscanf);
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/div64.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_32/div64.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_32/div64.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_32/div64.h
|
||||||
@@ -0,0 +1,48 @@
|
@@ -0,0 +1,48 @@
|
||||||
+#ifndef __I386_DIV64
|
+#ifndef __I386_DIV64
|
||||||
+#define __I386_DIV64
|
+#define __I386_DIV64
|
||||||
@ -3635,10 +3635,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/div64.h
|
|||||||
+
|
+
|
||||||
+}
|
+}
|
||||||
+#endif
|
+#endif
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/entry.S
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_32/entry.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_32/entry.S
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_32/entry.S
|
||||||
@@ -0,0 +1,49 @@
|
@@ -0,0 +1,49 @@
|
||||||
+#include "offsets.h"
|
+#include "offsets.h"
|
||||||
+
|
+
|
||||||
@ -3689,10 +3689,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/entry.S
|
|||||||
+ nop
|
+ nop
|
||||||
+ .align 4096
|
+ .align 4096
|
||||||
+hypercall_end:
|
+hypercall_end:
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/hypercall.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_32/hypercall.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_32/hypercall.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_32/hypercall.h
|
||||||
@@ -0,0 +1,359 @@
|
@@ -0,0 +1,359 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * hypercall.h
|
+ * hypercall.h
|
||||||
@ -4053,10 +4053,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_32/hypercall.h
|
|||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* __HYPERCALL_H__ */
|
+#endif /* __HYPERCALL_H__ */
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/div64.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_64/div64.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_64/div64.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_64/div64.h
|
||||||
@@ -0,0 +1,57 @@
|
@@ -0,0 +1,57 @@
|
||||||
+#ifndef _ASM_GENERIC_DIV64_H
|
+#ifndef _ASM_GENERIC_DIV64_H
|
||||||
+#define _ASM_GENERIC_DIV64_H
|
+#define _ASM_GENERIC_DIV64_H
|
||||||
@ -4115,10 +4115,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/div64.h
|
|||||||
+#endif /* BITS_PER_LONG */
|
+#endif /* BITS_PER_LONG */
|
||||||
+
|
+
|
||||||
+#endif /* _ASM_GENERIC_DIV64_H */
|
+#endif /* _ASM_GENERIC_DIV64_H */
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/entry.S
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_64/entry.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_64/entry.S
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_64/entry.S
|
||||||
@@ -0,0 +1,50 @@
|
@@ -0,0 +1,50 @@
|
||||||
+#include "offsets.h"
|
+#include "offsets.h"
|
||||||
+
|
+
|
||||||
@ -4170,10 +4170,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/entry.S
|
|||||||
+ nop
|
+ nop
|
||||||
+ .align 4096
|
+ .align 4096
|
||||||
+hypercall_end:
|
+hypercall_end:
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/hypercall.h
|
Index: xen-3.3.1-testing/tools/xcutils/helper/x86_64/hypercall.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/helper/x86_64/hypercall.h
|
+++ xen-3.3.1-testing/tools/xcutils/helper/x86_64/hypercall.h
|
||||||
@@ -0,0 +1,354 @@
|
@@ -0,0 +1,354 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * hypercall.h
|
+ * hypercall.h
|
||||||
@ -4529,10 +4529,10 @@ Index: xen-3.3.0-testing/tools/xcutils/helper/x86_64/hypercall.h
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* __HYPERCALL_H__ */
|
+#endif /* __HYPERCALL_H__ */
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/kexec-syscall.h
|
Index: xen-3.3.1-testing/tools/xcutils/kexec-syscall.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/kexec-syscall.h
|
+++ xen-3.3.1-testing/tools/xcutils/kexec-syscall.h
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,80 @@
|
||||||
+#ifndef KEXEC_SYSCALL_H
|
+#ifndef KEXEC_SYSCALL_H
|
||||||
+#define KEXEC_SYSCALL_H
|
+#define KEXEC_SYSCALL_H
|
||||||
@ -4614,10 +4614,10 @@ Index: xen-3.3.0-testing/tools/xcutils/kexec-syscall.h
|
|||||||
+#define KEXEC_MAX_SEGMENTS 16
|
+#define KEXEC_MAX_SEGMENTS 16
|
||||||
+
|
+
|
||||||
+#endif /* KEXEC_SYSCALL_H */
|
+#endif /* KEXEC_SYSCALL_H */
|
||||||
Index: xen-3.3.0-testing/tools/xcutils/xc_kexec.c
|
Index: xen-3.3.1-testing/tools/xcutils/xc_kexec.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-3.3.0-testing/tools/xcutils/xc_kexec.c
|
+++ xen-3.3.1-testing/tools/xcutils/xc_kexec.c
|
||||||
@@ -0,0 +1,503 @@
|
@@ -0,0 +1,503 @@
|
||||||
+#include <stdio.h>
|
+#include <stdio.h>
|
||||||
+#include <stdlib.h>
|
+#include <stdlib.h>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_32/entry.S
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_32/entry.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_32/entry.S
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_32/entry.S
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_32/entry.S
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_32/entry.S
|
||||||
@@ -401,21 +401,33 @@ ring1: /* obtain ss/esp from oldss/olde
|
@@ -401,21 +401,33 @@ ring1: /* obtain ss/esp from oldss/olde
|
||||||
movl %eax,UREGS_eip+4(%esp)
|
movl %eax,UREGS_eip+4(%esp)
|
||||||
ret
|
ret
|
||||||
@ -46,10 +46,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_32/entry.S
|
|||||||
domain_crash_synchronous:
|
domain_crash_synchronous:
|
||||||
pushl $domain_crash_synchronous_string
|
pushl $domain_crash_synchronous_string
|
||||||
call printk
|
call printk
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_64/entry.S
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_64/entry.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_64/entry.S
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_64/entry.S
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_64/entry.S
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_64/entry.S
|
||||||
@@ -419,17 +419,30 @@ create_bounce_frame:
|
@@ -419,17 +419,30 @@ create_bounce_frame:
|
||||||
movq %rax,UREGS_rip+8(%rsp)
|
movq %rax,UREGS_rip+8(%rsp)
|
||||||
ret
|
ret
|
||||||
|
@ -1,141 +0,0 @@
|
|||||||
Index: xen-3.3.0-testing/xen/arch/x86/microcode.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/microcode.c
|
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/microcode.c
|
|
||||||
@@ -98,7 +98,7 @@ MODULE_LICENSE("GPL");
|
|
||||||
static int verbose;
|
|
||||||
boolean_param("microcode.verbose", verbose);
|
|
||||||
|
|
||||||
-#define MICROCODE_VERSION "1.14a"
|
|
||||||
+#define MICROCODE_VERSION "1.14b"
|
|
||||||
|
|
||||||
#define DEFAULT_UCODE_DATASIZE (2000) /* 2000 bytes */
|
|
||||||
#define MC_HEADER_SIZE (sizeof (microcode_header_t)) /* 48 bytes */
|
|
||||||
@@ -118,9 +118,6 @@ boolean_param("microcode.verbose", verbo
|
|
||||||
|
|
||||||
#define exttable_size(et) ((et)->count * EXT_SIGNATURE_SIZE + EXT_HEADER_SIZE)
|
|
||||||
|
|
||||||
-/* serialize access to the physical write to MSR 0x79 */
|
|
||||||
-static DEFINE_SPINLOCK(microcode_update_lock);
|
|
||||||
-
|
|
||||||
/* no concurrent ->write()s are allowed on /dev/cpu/microcode */
|
|
||||||
static DEFINE_MUTEX(microcode_mutex);
|
|
||||||
|
|
||||||
@@ -376,25 +373,10 @@ out:
|
|
||||||
|
|
||||||
static void do_update_one (void * unused)
|
|
||||||
{
|
|
||||||
- unsigned long flags;
|
|
||||||
unsigned int val[2];
|
|
||||||
int cpu_num = smp_processor_id();
|
|
||||||
struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num;
|
|
||||||
|
|
||||||
- if (uci->mc == NULL) {
|
|
||||||
- if (verbose) {
|
|
||||||
- if (uci->err == MC_SUCCESS)
|
|
||||||
- printk(KERN_INFO "microcode: CPU%d already at revision 0x%x\n",
|
|
||||||
- cpu_num, uci->rev);
|
|
||||||
- else
|
|
||||||
- printk(KERN_INFO "microcode: No new microcode data for CPU%d\n", cpu_num);
|
|
||||||
- }
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* serialize access to the physical write to MSR 0x79 */
|
|
||||||
- spin_lock_irqsave(µcode_update_lock, flags);
|
|
||||||
-
|
|
||||||
/* write microcode via MSR 0x79 */
|
|
||||||
wrmsr(MSR_IA32_UCODE_WRITE,
|
|
||||||
(unsigned long) uci->mc->bits,
|
|
||||||
@@ -409,7 +391,6 @@ static void do_update_one (void * unused
|
|
||||||
|
|
||||||
/* notify the caller of success on this cpu */
|
|
||||||
uci->err = MC_SUCCESS;
|
|
||||||
- spin_unlock_irqrestore(µcode_update_lock, flags);
|
|
||||||
printk(KERN_INFO "microcode: CPU%d updated from revision "
|
|
||||||
"0x%x to 0x%x, date = %08x \n",
|
|
||||||
cpu_num, uci->rev, val[1], uci->mc->hdr.date);
|
|
||||||
@@ -418,40 +399,65 @@ static void do_update_one (void * unused
|
|
||||||
|
|
||||||
static int do_microcode_update (void)
|
|
||||||
{
|
|
||||||
- int i, error;
|
|
||||||
+ int i, j, error;
|
|
||||||
+ cpumask_t cpu_mask = cpu_online_map;
|
|
||||||
|
|
||||||
- if (on_each_cpu(collect_cpu_info, NULL, 1, 1) != 0) {
|
|
||||||
- printk(KERN_ERR "microcode: Error! Could not run on all processors\n");
|
|
||||||
- error = -EIO;
|
|
||||||
- goto out;
|
|
||||||
+ for_each_cpu_mask(i, cpu_mask) {
|
|
||||||
+ if (on_selected_cpus(cpumask_of_cpu(i), collect_cpu_info, NULL, 1, 1) != 0) {
|
|
||||||
+ printk(KERN_ERR "microcode: Error! Could not run on all processors\n");
|
|
||||||
+ return -EIO;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((error = find_matching_ucodes())) {
|
|
||||||
printk(KERN_ERR "microcode: Error in the microcode data\n");
|
|
||||||
- goto out_free;
|
|
||||||
+ cpus_clear(cpu_mask);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (on_each_cpu(do_update_one, NULL, 1, 1) != 0) {
|
|
||||||
- printk(KERN_ERR "microcode: Error! Could not run on all processors\n");
|
|
||||||
- error = -EIO;
|
|
||||||
+ for (; (i = any_online_cpu(cpu_mask)) < NR_CPUS; cpu_clear(i, cpu_mask)) {
|
|
||||||
+ if (ucode_cpu_info[i].mc == NULL) {
|
|
||||||
+ if (verbose) {
|
|
||||||
+ switch (ucode_cpu_info[i].err) {
|
|
||||||
+ case MC_SUCCESS:
|
|
||||||
+ printk(KERN_INFO "microcode: CPU%d already at revision 0x%x\n",
|
|
||||||
+ i, ucode_cpu_info[i].rev);
|
|
||||||
+ break;
|
|
||||||
+ case MC_IGNORED:
|
|
||||||
+ printk(KERN_WARNING "microcode: CPU%d not 'upgrading' to earlier revision"
|
|
||||||
+ " 0x%x (current=0x%x)\n", i, ucode_cpu_info[i].cksum, ucode_cpu_info[i].rev);
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ printk(KERN_INFO "microcode: No new microcode data for CPU%d\n", i);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ } else if (on_selected_cpus(cpumask_of_cpu(i), do_update_one, NULL, 1, 1) != 0) {
|
|
||||||
+ printk(KERN_ERR "microcode: Error! Could not run on processor %d\n", i);
|
|
||||||
+ error = -EIO;
|
|
||||||
+ } else if (ucode_cpu_info[i].err == MC_SUCCESS) {
|
|
||||||
+ cpus_andnot(cpu_mask, cpu_mask, cpu_sibling_map[i]);
|
|
||||||
+ for_each_cpu_mask(j, cpu_sibling_map[i]) {
|
|
||||||
+ if (j != i) {
|
|
||||||
+ ucode_cpu_info[j].err = MC_SUCCESS;
|
|
||||||
+ ASSERT(ucode_cpu_info[j].mc == ucode_cpu_info[i].mc);
|
|
||||||
+ ucode_cpu_info[j].mc = NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
-out_free:
|
|
||||||
- for_each_online_cpu(i) {
|
|
||||||
+ for (i = 0; i < NR_CPUS; i++) {
|
|
||||||
if (ucode_cpu_info[i].mc) {
|
|
||||||
- int j;
|
|
||||||
void *tmp = ucode_cpu_info[i].mc;
|
|
||||||
- vfree(tmp);
|
|
||||||
- for_each_online_cpu(j) {
|
|
||||||
+
|
|
||||||
+ for (j = 0; j < NR_CPUS; j++) {
|
|
||||||
if (ucode_cpu_info[j].mc == tmp)
|
|
||||||
ucode_cpu_info[j].mc = NULL;
|
|
||||||
}
|
|
||||||
+ vfree(tmp);
|
|
||||||
}
|
|
||||||
- if (ucode_cpu_info[i].err == MC_IGNORED && verbose)
|
|
||||||
- printk(KERN_WARNING "microcode: CPU%d not 'upgrading' to earlier revision"
|
|
||||||
- " 0x%x (current=0x%x)\n", i, ucode_cpu_info[i].cksum, ucode_cpu_info[i].rev);
|
|
||||||
}
|
|
||||||
-out:
|
|
||||||
+
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
32
x86-page-gnttab.patch
Normal file
32
x86-page-gnttab.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Index: xen-3.3.1-testing/xen/include/asm-x86/page.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/asm-x86/page.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/asm-x86/page.h
|
||||||
|
@@ -301,9 +301,10 @@ void setup_idle_pagetable(void);
|
||||||
|
* WARNING: This will need to be disabled to run OSes that use the spare PTE
|
||||||
|
* bits themselves (e.g., *BSD).
|
||||||
|
*/
|
||||||
|
-#ifndef NDEBUG
|
||||||
|
-#define _PAGE_GNTTAB _PAGE_AVAIL2
|
||||||
|
-#else
|
||||||
|
+#ifdef NDEBUG
|
||||||
|
+#undef _PAGE_GNTTAB
|
||||||
|
+#endif
|
||||||
|
+#ifndef _PAGE_GNTTAB
|
||||||
|
#define _PAGE_GNTTAB 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Index: xen-3.3.1-testing/xen/include/asm-x86/x86_64/page.h
|
||||||
|
===================================================================
|
||||||
|
--- xen-3.3.1-testing.orig/xen/include/asm-x86/x86_64/page.h
|
||||||
|
+++ xen-3.3.1-testing/xen/include/asm-x86/x86_64/page.h
|
||||||
|
@@ -104,6 +104,9 @@ typedef l4_pgentry_t root_pgentry_t;
|
||||||
|
#define _PAGE_NX_BIT (1U<<23)
|
||||||
|
#define _PAGE_NX (cpu_has_nx ? _PAGE_NX_BIT : 0U)
|
||||||
|
|
||||||
|
+/* Bit 22 of a 24-bit flag mask. This corresponds to bit 62 of a pte.*/
|
||||||
|
+#define _PAGE_GNTTAB (1U<<22)
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Disallow unused flag bits plus PAT/PSE, PCD, PWT and GLOBAL.
|
||||||
|
* Permit the NX bit if the hardware supports it.
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/xen/arch/x86/traps.c
|
Index: xen-3.3.1-testing/xen/arch/x86/traps.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/traps.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/traps.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/traps.c
|
+++ xen-3.3.1-testing/xen/arch/x86/traps.c
|
||||||
@@ -1261,6 +1261,7 @@ asmlinkage void do_early_page_fault(stru
|
@@ -1261,6 +1261,7 @@ asmlinkage void do_early_page_fault(stru
|
||||||
unsigned long *stk = (unsigned long *)regs;
|
unsigned long *stk = (unsigned long *)regs;
|
||||||
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
|
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
|
||||||
@ -10,10 +10,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/traps.c
|
|||||||
printk("Stack dump: ");
|
printk("Stack dump: ");
|
||||||
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
|
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
|
||||||
printk("%p ", _p(*stk++));
|
printk("%p ", _p(*stk++));
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_32/mm.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_32/mm.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_32/mm.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_32/mm.c
|
||||||
@@ -38,6 +38,7 @@ extern l1_pgentry_t l1_identmap[L1_PAGET
|
@@ -38,6 +38,7 @@ extern l1_pgentry_t l1_identmap[L1_PAGET
|
||||||
unsigned int PAGE_HYPERVISOR = __PAGE_HYPERVISOR;
|
unsigned int PAGE_HYPERVISOR = __PAGE_HYPERVISOR;
|
||||||
unsigned int PAGE_HYPERVISOR_NOCACHE = __PAGE_HYPERVISOR_NOCACHE;
|
unsigned int PAGE_HYPERVISOR_NOCACHE = __PAGE_HYPERVISOR_NOCACHE;
|
||||||
@ -31,10 +31,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
|||||||
/* Fill with an obvious debug pattern. */
|
/* Fill with an obvious debug pattern. */
|
||||||
for ( i = 0; i < (mpt_size / BYTES_PER_LONG); i++)
|
for ( i = 0; i < (mpt_size / BYTES_PER_LONG); i++)
|
||||||
set_gpfn_from_mfn(i, 0x55555555);
|
set_gpfn_from_mfn(i, 0x55555555);
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_32/traps.c
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_32/traps.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_32/traps.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_32/traps.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_32/traps.c
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_32/traps.c
|
||||||
@@ -160,7 +160,8 @@ void show_page_walk(unsigned long addr)
|
@@ -160,7 +160,8 @@ void show_page_walk(unsigned long addr)
|
||||||
l3t += (cr3 & 0xFE0UL) >> 3;
|
l3t += (cr3 & 0xFE0UL) >> 3;
|
||||||
l3e = l3t[l3_table_offset(addr)];
|
l3e = l3t[l3_table_offset(addr)];
|
||||||
@ -65,10 +65,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_32/traps.c
|
|||||||
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
|
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
|
||||||
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
||||||
unmap_domain_page(l1t);
|
unmap_domain_page(l1t);
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_64/mm.c
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_64/mm.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_64/mm.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_64/mm.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_64/mm.c
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_64/mm.c
|
||||||
@@ -32,6 +32,7 @@
|
@@ -32,6 +32,7 @@
|
||||||
#include <asm/msr.h>
|
#include <asm/msr.h>
|
||||||
#include <public/memory.h>
|
#include <public/memory.h>
|
||||||
@ -86,10 +86,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_64/mm.c
|
|||||||
/* Create user-accessible L2 directory to map the MPT for compat guests. */
|
/* Create user-accessible L2 directory to map the MPT for compat guests. */
|
||||||
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
|
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
|
||||||
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
|
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_64/traps.c
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_64/traps.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_64/traps.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_64/traps.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_64/traps.c
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_64/traps.c
|
||||||
@@ -174,7 +174,8 @@ void show_page_walk(unsigned long addr)
|
@@ -174,7 +174,8 @@ void show_page_walk(unsigned long addr)
|
||||||
l4t = mfn_to_virt(mfn);
|
l4t = mfn_to_virt(mfn);
|
||||||
l4e = l4t[l4_table_offset(addr)];
|
l4e = l4t[l4_table_offset(addr)];
|
||||||
@ -130,10 +130,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_64/traps.c
|
|||||||
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
|
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
|
||||||
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
||||||
}
|
}
|
||||||
Index: xen-3.3.0-testing/xen/include/asm-x86/mm.h
|
Index: xen-3.3.1-testing/xen/include/asm-x86/mm.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/include/asm-x86/mm.h
|
--- xen-3.3.1-testing.orig/xen/include/asm-x86/mm.h
|
||||||
+++ xen-3.3.0-testing/xen/include/asm-x86/mm.h
|
+++ xen-3.3.1-testing/xen/include/asm-x86/mm.h
|
||||||
@@ -307,6 +307,7 @@ TYPE_SAFE(unsigned long,mfn);
|
@@ -307,6 +307,7 @@ TYPE_SAFE(unsigned long,mfn);
|
||||||
#define machine_to_phys_mapping ((unsigned long *)RDWR_MPT_VIRT_START)
|
#define machine_to_phys_mapping ((unsigned long *)RDWR_MPT_VIRT_START)
|
||||||
#define INVALID_M2P_ENTRY (~0UL)
|
#define INVALID_M2P_ENTRY (~0UL)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:54669aeece8872bda13bb98fc0afa03d82fd439f4e234935d8174657a2ee0f08
|
oid sha256:a81260006fcf33de732acb4ad2bc84974548f75b6be58f8f8d519a90d8f6b8c3
|
||||||
size 22688672
|
size 22688080
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/XendAuthSessions.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/XendAuthSessions.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/XendAuthSessions.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xend/XendAuthSessions.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/XendAuthSessions.py
|
+++ xen-3.3.1-testing/tools/python/xen/xend/XendAuthSessions.py
|
||||||
@@ -84,7 +84,7 @@ class XendAuthSessions:
|
@@ -84,7 +84,7 @@ class XendAuthSessions:
|
||||||
# if PAM doesn't exist, let's ignore it
|
# if PAM doesn't exist, let's ignore it
|
||||||
return False
|
return False
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/xen/Makefile
|
Index: xen-3.3.1-testing/xen/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/Makefile
|
--- xen-3.3.1-testing.orig/xen/Makefile
|
||||||
+++ xen-3.3.0-testing/xen/Makefile
|
+++ xen-3.3.1-testing/xen/Makefile
|
||||||
@@ -1,3 +1,4 @@
|
@@ -1,3 +1,4 @@
|
||||||
+export XEN_CHANGESET = unavailable
|
+export XEN_CHANGESET = unavailable
|
||||||
# This is the correct place to edit the build version.
|
# This is the correct place to edit the build version.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/Config.mk
|
Index: xen-3.3.1-testing/Config.mk
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/Config.mk
|
--- xen-3.3.1-testing.orig/Config.mk
|
||||||
+++ xen-3.3.0-testing/Config.mk
|
+++ xen-3.3.1-testing/Config.mk
|
||||||
@@ -85,20 +85,20 @@ QEMU_REMOTE=http://xenbits.xensource.com
|
@@ -85,20 +85,20 @@ QEMU_REMOTE=http://xenbits.xensource.com
|
||||||
|
|
||||||
# Specify which qemu-dm to use. This may be `ioemu' to use the old
|
# Specify which qemu-dm to use. This may be `ioemu' to use the old
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/docs/Makefile
|
Index: xen-3.3.1-testing/docs/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/Makefile
|
--- xen-3.3.1-testing.orig/docs/Makefile
|
||||||
+++ xen-3.3.0-testing/docs/Makefile
|
+++ xen-3.3.1-testing/docs/Makefile
|
||||||
@@ -90,7 +90,8 @@ install: all
|
@@ -90,7 +90,8 @@ install: all
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
|
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
|
||||||
cp -dR man1 $(DESTDIR)$(MANDIR)
|
cp -dR man1 $(DESTDIR)$(MANDIR)
|
||||||
@ -22,10 +22,10 @@ Index: xen-3.3.0-testing/docs/Makefile
|
|||||||
+ ln -sf $*.html html.done/$*/index.html
|
+ ln -sf $*.html html.done/$*/index.html
|
||||||
+ rm -rf html/
|
+ rm -rf html/
|
||||||
+
|
+
|
||||||
Index: xen-3.3.0-testing/tools/examples/Makefile
|
Index: xen-3.3.1-testing/tools/examples/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/Makefile
|
--- xen-3.3.1-testing.orig/tools/examples/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/examples/Makefile
|
+++ xen-3.3.1-testing/tools/examples/Makefile
|
||||||
@@ -47,18 +47,6 @@ XEN_HOTPLUG_SCRIPTS = xen-backend.agent
|
@@ -47,18 +47,6 @@ XEN_HOTPLUG_SCRIPTS = xen-backend.agent
|
||||||
UDEV_RULES_DIR = /etc/udev
|
UDEV_RULES_DIR = /etc/udev
|
||||||
UDEV_RULES = xen-backend.rules
|
UDEV_RULES = xen-backend.rules
|
||||||
@ -77,10 +77,10 @@ Index: xen-3.3.0-testing/tools/examples/Makefile
|
|||||||
done
|
done
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
Index: xen-3.3.0-testing/tools/security/Makefile
|
Index: xen-3.3.1-testing/tools/security/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/security/Makefile
|
--- xen-3.3.1-testing.orig/tools/security/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/security/Makefile
|
+++ xen-3.3.1-testing/tools/security/Makefile
|
||||||
@@ -64,9 +64,9 @@ install: all $(ACM_CONFIG_FILE)
|
@@ -64,9 +64,9 @@ install: all $(ACM_CONFIG_FILE)
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
$(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
||||||
$(INSTALL_PROG) $(ACM_INST_CGI) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
$(INSTALL_PROG) $(ACM_INST_CGI) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
||||||
@ -93,10 +93,10 @@ Index: xen-3.3.0-testing/tools/security/Makefile
|
|||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
Index: xen-3.3.0-testing/tools/pygrub/Makefile
|
Index: xen-3.3.1-testing/tools/pygrub/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/pygrub/Makefile
|
--- xen-3.3.1-testing.orig/tools/pygrub/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/pygrub/Makefile
|
+++ xen-3.3.1-testing/tools/pygrub/Makefile
|
||||||
@@ -16,7 +16,7 @@ install: all
|
@@ -16,7 +16,7 @@ install: all
|
||||||
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
|
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
|
||||||
else
|
else
|
||||||
@ -106,10 +106,10 @@ Index: xen-3.3.0-testing/tools/pygrub/Makefile
|
|||||||
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
|
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
|
||||||
endif
|
endif
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/python/Makefile
|
Index: xen-3.3.1-testing/tools/python/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/Makefile
|
--- xen-3.3.1-testing.orig/tools/python/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/python/Makefile
|
+++ xen-3.3.1-testing/tools/python/Makefile
|
||||||
@@ -80,7 +80,7 @@ install: install-messages install-dtd
|
@@ -80,7 +80,7 @@ install: install-messages install-dtd
|
||||||
CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" --prefix="" --force --install-lib="$(DESTDIR)$(LIBPATH)/python"
|
CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" --prefix="" --force --install-lib="$(DESTDIR)$(LIBPATH)/python"
|
||||||
else
|
else
|
||||||
@ -119,10 +119,10 @@ Index: xen-3.3.0-testing/tools/python/Makefile
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
install-dtd: all
|
install-dtd: all
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/Makefile
|
Index: xen-3.3.1-testing/tools/xenstore/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/Makefile
|
--- xen-3.3.1-testing.orig/tools/xenstore/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/Makefile
|
+++ xen-3.3.1-testing/tools/xenstore/Makefile
|
||||||
@@ -14,6 +14,7 @@ DEP = .*.d
|
@@ -14,6 +14,7 @@ DEP = .*.d
|
||||||
|
|
||||||
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
|
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
|
||||||
@ -177,10 +177,10 @@ Index: xen-3.3.0-testing/tools/xenstore/Makefile
|
|||||||
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
|
||||||
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
|
||||||
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
|
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
|
||||||
Index: xen-3.3.0-testing/tools/misc/Makefile
|
Index: xen-3.3.1-testing/tools/misc/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/misc/Makefile
|
--- xen-3.3.1-testing.orig/tools/misc/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/misc/Makefile
|
+++ xen-3.3.1-testing/tools/misc/Makefile
|
||||||
@@ -19,7 +19,7 @@ SUBDIRS-$(CONFIG_MINITERM) += miniterm
|
@@ -19,7 +19,7 @@ SUBDIRS-$(CONFIG_MINITERM) += miniterm
|
||||||
SUBDIRS := $(SUBDIRS-y)
|
SUBDIRS := $(SUBDIRS-y)
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ the "sendkey" command, among other useful things), remove all console
|
|||||||
commands that can read/write dom0's state.
|
commands that can read/write dom0's state.
|
||||||
|
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/monitor.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/monitor.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/monitor.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/monitor.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/monitor.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/monitor.c
|
||||||
@@ -1320,6 +1320,7 @@ static term_cmd_t term_cmds[] = {
|
@@ -1320,6 +1320,7 @@ static term_cmd_t term_cmds[] = {
|
||||||
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
|
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
|
||||||
{ "info", "s?", do_info,
|
{ "info", "s?", do_info,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
Index: xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xmdomain.cfg.pod.5
|
--- xen-3.3.1-testing.orig/docs/man/xmdomain.cfg.pod.5
|
||||||
+++ xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
+++ xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
@@ -335,16 +335,10 @@ at hda1, which is the root filesystem.
|
@@ -335,16 +335,10 @@ at hda1, which is the root filesystem.
|
||||||
|
|
||||||
=item I<NFS Root>
|
=item I<NFS Root>
|
||||||
@ -19,10 +19,10 @@ Index: xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
|||||||
=back
|
=back
|
||||||
|
|
||||||
=head1 SEE ALSO
|
=head1 SEE ALSO
|
||||||
Index: xen-3.3.0-testing/docs/man/xm.pod.1
|
Index: xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xm.pod.1
|
--- xen-3.3.1-testing.orig/docs/man/xm.pod.1
|
||||||
+++ xen-3.3.0-testing/docs/man/xm.pod.1
|
+++ xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
@@ -188,7 +188,8 @@ scheduling by the Xen hypervisor.
|
@@ -188,7 +188,8 @@ scheduling by the Xen hypervisor.
|
||||||
|
|
||||||
=item B<s - shutdown>
|
=item B<s - shutdown>
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
PAE must be on for 64-on-64 to work at all.
|
PAE must be on for 64-on-64 to work at all.
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/image.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/image.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/image.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xend/image.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/image.py
|
+++ xen-3.3.1-testing/tools/python/xen/xend/image.py
|
||||||
@@ -871,7 +871,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
|
@@ -871,7 +871,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
|
||||||
|
|
||||||
def configure(self, vmConfig):
|
def configure(self, vmConfig):
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
Change default IO-APIC ack mode for single IO-APIC systems to old-style. Jan
|
Change default IO-APIC ack mode for single IO-APIC systems to old-style. Jan
|
||||||
|
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/xen/arch/x86/io_apic.c
|
Index: xen-3.3.1-testing/xen/arch/x86/io_apic.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/io_apic.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/io_apic.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/io_apic.c
|
+++ xen-3.3.1-testing/xen/arch/x86/io_apic.c
|
||||||
@@ -1365,7 +1365,7 @@ static unsigned int startup_level_ioapic
|
@@ -1365,7 +1365,7 @@ static unsigned int startup_level_ioapic
|
||||||
return 0; /* don't check for pending */
|
return 0; /* don't check for pending */
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
Index: xen-3.3.1-testing/xen/arch/x86/x86_32/mm.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/arch/x86/x86_32/mm.c
|
--- xen-3.3.1-testing.orig/xen/arch/x86/x86_32/mm.c
|
||||||
+++ xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
+++ xen-3.3.1-testing/xen/arch/x86/x86_32/mm.c
|
||||||
@@ -63,6 +63,8 @@ l2_pgentry_t *virt_to_xen_l2e(unsigned l
|
@@ -63,6 +63,8 @@ l2_pgentry_t *virt_to_xen_l2e(unsigned l
|
||||||
return &idle_pg_table_l2[l2_linear_offset(v)];
|
return &idle_pg_table_l2[l2_linear_offset(v)];
|
||||||
}
|
}
|
||||||
@ -32,10 +32,10 @@ Index: xen-3.3.0-testing/xen/arch/x86/x86_32/mm.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
void __init zap_low_mappings(l2_pgentry_t *dom0_l2)
|
void __init zap_low_mappings(l2_pgentry_t *dom0_l2)
|
||||||
Index: xen-3.3.0-testing/xen/common/page_alloc.c
|
Index: xen-3.3.1-testing/xen/common/page_alloc.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/common/page_alloc.c
|
--- xen-3.3.1-testing.orig/xen/common/page_alloc.c
|
||||||
+++ xen-3.3.0-testing/xen/common/page_alloc.c
|
+++ xen-3.3.1-testing/xen/common/page_alloc.c
|
||||||
@@ -53,6 +53,20 @@ static int opt_bootscrub __initdata = 1;
|
@@ -53,6 +53,20 @@ static int opt_bootscrub __initdata = 1;
|
||||||
boolean_param("bootscrub", opt_bootscrub);
|
boolean_param("bootscrub", opt_bootscrub);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xm/create.py
|
Index: xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xm/create.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xm/create.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xm/create.py
|
+++ xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
@@ -1066,9 +1066,8 @@ def preprocess_access_control(vals):
|
@@ -1066,9 +1066,8 @@ def preprocess_access_control(vals):
|
||||||
|
|
||||||
def preprocess_ip(vals):
|
def preprocess_ip(vals):
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xm/create.py
|
Index: xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xm/create.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xm/create.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xm/create.py
|
+++ xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
@@ -70,7 +70,7 @@ gopts.opt('quiet', short='q',
|
@@ -70,7 +70,7 @@ gopts.opt('quiet', short='q',
|
||||||
use="Quiet.")
|
use="Quiet.")
|
||||||
|
|
||||||
@ -11,10 +11,10 @@ Index: xen-3.3.0-testing/tools/python/xen/xm/create.py
|
|||||||
use="Search path for configuration scripts. "
|
use="Search path for configuration scripts. "
|
||||||
"The value of PATH is a colon-separated directory list.")
|
"The value of PATH is a colon-separated directory list.")
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/docs/man/xm.pod.1
|
Index: xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xm.pod.1
|
--- xen-3.3.1-testing.orig/docs/man/xm.pod.1
|
||||||
+++ xen-3.3.0-testing/docs/man/xm.pod.1
|
+++ xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
@@ -76,7 +76,7 @@ format, and possible options used in eit
|
@@ -76,7 +76,7 @@ format, and possible options used in eit
|
||||||
I<name>=I<value> combinations.
|
I<name>=I<value> combinations.
|
||||||
|
|
||||||
@ -33,10 +33,10 @@ Index: xen-3.3.0-testing/docs/man/xm.pod.1
|
|||||||
soon as it is run.
|
soon as it is run.
|
||||||
|
|
||||||
=item I<without config file>
|
=item I<without config file>
|
||||||
Index: xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
Index: xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xmdomain.cfg.pod.5
|
--- xen-3.3.1-testing.orig/docs/man/xmdomain.cfg.pod.5
|
||||||
+++ xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
+++ xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
@@ -4,9 +4,9 @@ xmdomain.cfg - xm domain config file for
|
@@ -4,9 +4,9 @@ xmdomain.cfg - xm domain config file for
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
Index: xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c
|
--- xen-3.3.1-testing.orig/tools/ioemu-remote/xenstore.c
|
||||||
+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c
|
+++ xen-3.3.1-testing/tools/ioemu-remote/xenstore.c
|
||||||
@@ -153,7 +153,7 @@ void xenstore_parse_domain_config(int hv
|
@@ -153,7 +153,7 @@ void xenstore_parse_domain_config(int hv
|
||||||
char *buf = NULL, *path;
|
char *buf = NULL, *path;
|
||||||
char *fpath = NULL, *bpath = NULL, *btype = NULL,
|
char *fpath = NULL, *bpath = NULL, *btype = NULL,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/blktap/drivers/Makefile
|
Index: xen-3.3.1-testing/tools/blktap/drivers/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/blktap/drivers/Makefile
|
--- xen-3.3.1-testing.orig/tools/blktap/drivers/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/blktap/drivers/Makefile
|
+++ xen-3.3.1-testing/tools/blktap/drivers/Makefile
|
||||||
@@ -5,7 +5,6 @@ IBIN = blktapctrl tapdisk
|
@@ -5,7 +5,6 @@ IBIN = blktapctrl tapdisk
|
||||||
QCOW_UTIL = img2qcow qcow2raw qcow-create
|
QCOW_UTIL = img2qcow qcow2raw qcow-create
|
||||||
LIBAIO_DIR = ../../libaio/src
|
LIBAIO_DIR = ../../libaio/src
|
||||||
@ -10,10 +10,10 @@ Index: xen-3.3.0-testing/tools/blktap/drivers/Makefile
|
|||||||
CFLAGS += -Wno-unused
|
CFLAGS += -Wno-unused
|
||||||
CFLAGS += -I../lib
|
CFLAGS += -I../lib
|
||||||
CFLAGS += $(CFLAGS_libxenctrl)
|
CFLAGS += $(CFLAGS_libxenctrl)
|
||||||
Index: xen-3.3.0-testing/Config.mk
|
Index: xen-3.3.1-testing/Config.mk
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/Config.mk
|
--- xen-3.3.1-testing.orig/Config.mk
|
||||||
+++ xen-3.3.0-testing/Config.mk
|
+++ xen-3.3.1-testing/Config.mk
|
||||||
@@ -14,7 +14,7 @@ SHELL ?= /bin/sh
|
@@ -14,7 +14,7 @@ SHELL ?= /bin/sh
|
||||||
|
|
||||||
# Tools to run on system hosting the build
|
# Tools to run on system hosting the build
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xm/create.py
|
Index: xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xm/create.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xm/create.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xm/create.py
|
+++ xen-3.3.1-testing/tools/python/xen/xm/create.py
|
||||||
@@ -1122,8 +1122,7 @@ def spawn_vnc(display):
|
@@ -1122,8 +1122,7 @@ def spawn_vnc(display):
|
||||||
returns the port that the vncviewer is listening on and sets the global
|
returns the port that the vncviewer is listening on and sets the global
|
||||||
vncpid. On failure, returns 0. Note that vncviewer is daemonized.
|
vncpid. On failure, returns 0. Note that vncviewer is daemonized.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/misc/miniterm/miniterm.c
|
Index: xen-3.3.1-testing/tools/misc/miniterm/miniterm.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/misc/miniterm/miniterm.c
|
--- xen-3.3.1-testing.orig/tools/misc/miniterm/miniterm.c
|
||||||
+++ xen-3.3.0-testing/tools/misc/miniterm/miniterm.c
|
+++ xen-3.3.1-testing/tools/misc/miniterm/miniterm.c
|
||||||
@@ -157,7 +157,7 @@ int main(int argc, char **argv)
|
@@ -157,7 +157,7 @@ int main(int argc, char **argv)
|
||||||
case 0:
|
case 0:
|
||||||
close(1); /* stdout not needed */
|
close(1); /* stdout not needed */
|
||||||
@ -35,10 +35,10 @@ Index: xen-3.3.0-testing/tools/misc/miniterm/miniterm.c
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/xen/tools/symbols.c
|
Index: xen-3.3.1-testing/xen/tools/symbols.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/xen/tools/symbols.c
|
--- xen-3.3.1-testing.orig/xen/tools/symbols.c
|
||||||
+++ xen-3.3.0-testing/xen/tools/symbols.c
|
+++ xen-3.3.1-testing/xen/tools/symbols.c
|
||||||
@@ -81,7 +81,8 @@ static int read_symbol(FILE *in, struct
|
@@ -81,7 +81,8 @@ static int read_symbol(FILE *in, struct
|
||||||
if (rc != 3) {
|
if (rc != 3) {
|
||||||
if (rc != EOF) {
|
if (rc != EOF) {
|
||||||
@ -49,10 +49,10 @@ Index: xen-3.3.0-testing/xen/tools/symbols.c
|
|||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
Index: xen-3.3.0-testing/tools/libxc/xc_dom_elfloader.c
|
Index: xen-3.3.1-testing/tools/libxc/xc_dom_elfloader.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/libxc/xc_dom_elfloader.c
|
--- xen-3.3.1-testing.orig/tools/libxc/xc_dom_elfloader.c
|
||||||
+++ xen-3.3.0-testing/tools/libxc/xc_dom_elfloader.c
|
+++ xen-3.3.1-testing/tools/libxc/xc_dom_elfloader.c
|
||||||
@@ -193,8 +193,9 @@ static int xc_dom_load_elf_symtab(struct
|
@@ -193,8 +193,9 @@ static int xc_dom_load_elf_symtab(struct
|
||||||
|
|
||||||
if ( load )
|
if ( load )
|
||||||
@ -64,10 +64,10 @@ Index: xen-3.3.0-testing/tools/libxc/xc_dom_elfloader.c
|
|||||||
elf_section_start(elf, shdr2),
|
elf_section_start(elf, shdr2),
|
||||||
size);
|
size);
|
||||||
}
|
}
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/Makefile
|
Index: xen-3.3.1-testing/tools/xenstore/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/Makefile
|
--- xen-3.3.1-testing.orig/tools/xenstore/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/Makefile
|
+++ xen-3.3.1-testing/tools/xenstore/Makefile
|
||||||
@@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
@@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||||
MAJOR = 3.0
|
MAJOR = 3.0
|
||||||
MINOR = 0
|
MINOR = 0
|
||||||
@ -77,10 +77,10 @@ Index: xen-3.3.0-testing/tools/xenstore/Makefile
|
|||||||
CFLAGS += -I.
|
CFLAGS += -I.
|
||||||
CFLAGS += $(CFLAGS_libxenctrl)
|
CFLAGS += $(CFLAGS_libxenctrl)
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/xenstored_core.c
|
Index: xen-3.3.1-testing/tools/xenstore/xenstored_core.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/xenstored_core.c
|
--- xen-3.3.1-testing.orig/tools/xenstore/xenstored_core.c
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/xenstored_core.c
|
+++ xen-3.3.1-testing/tools/xenstore/xenstored_core.c
|
||||||
@@ -77,8 +77,8 @@ static void check_store(void);
|
@@ -77,8 +77,8 @@ static void check_store(void);
|
||||||
|
|
||||||
int quota_nb_entry_per_domain = 1000;
|
int quota_nb_entry_per_domain = 1000;
|
||||||
@ -105,10 +105,10 @@ Index: xen-3.3.0-testing/tools/xenstore/xenstored_core.c
|
|||||||
break;
|
break;
|
||||||
case 'T':
|
case 'T':
|
||||||
tracefile = optarg;
|
tracefile = optarg;
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/xenstored_domain.c
|
Index: xen-3.3.1-testing/tools/xenstore/xenstored_domain.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/xenstored_domain.c
|
--- xen-3.3.1-testing.orig/tools/xenstore/xenstored_domain.c
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/xenstored_domain.c
|
+++ xen-3.3.1-testing/tools/xenstore/xenstored_domain.c
|
||||||
@@ -212,7 +212,7 @@ void handle_event(void)
|
@@ -212,7 +212,7 @@ void handle_event(void)
|
||||||
{
|
{
|
||||||
evtchn_port_t port;
|
evtchn_port_t port;
|
||||||
@ -127,10 +127,10 @@ Index: xen-3.3.0-testing/tools/xenstore/xenstored_domain.c
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
dom0 = new_domain(NULL, 0, port);
|
dom0 = new_domain(NULL, 0, port);
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/xenstored_transaction.c
|
Index: xen-3.3.1-testing/tools/xenstore/xenstored_transaction.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/xenstored_transaction.c
|
--- xen-3.3.1-testing.orig/tools/xenstore/xenstored_transaction.c
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/xenstored_transaction.c
|
+++ xen-3.3.1-testing/tools/xenstore/xenstored_transaction.c
|
||||||
@@ -82,7 +82,7 @@ struct transaction
|
@@ -82,7 +82,7 @@ struct transaction
|
||||||
struct list_head changed_domains;
|
struct list_head changed_domains;
|
||||||
};
|
};
|
||||||
@ -140,10 +140,10 @@ Index: xen-3.3.0-testing/tools/xenstore/xenstored_transaction.c
|
|||||||
static unsigned int generation;
|
static unsigned int generation;
|
||||||
|
|
||||||
/* Return tdb context to use for this connection. */
|
/* Return tdb context to use for this connection. */
|
||||||
Index: xen-3.3.0-testing/tools/xenstore/xenstore_client.c
|
Index: xen-3.3.1-testing/tools/xenstore/xenstore_client.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xenstore/xenstore_client.c
|
--- xen-3.3.1-testing.orig/tools/xenstore/xenstore_client.c
|
||||||
+++ xen-3.3.0-testing/tools/xenstore/xenstore_client.c
|
+++ xen-3.3.1-testing/tools/xenstore/xenstore_client.c
|
||||||
@@ -251,7 +251,7 @@ do_chmod(char *path, struct xs_permissio
|
@@ -251,7 +251,7 @@ do_chmod(char *path, struct xs_permissio
|
||||||
char **xsval = xs_directory(xsh, xth, path, &xsval_n);
|
char **xsval = xs_directory(xsh, xth, path, &xsval_n);
|
||||||
|
|
||||||
@ -153,10 +153,10 @@ Index: xen-3.3.0-testing/tools/xenstore/xenstore_client.c
|
|||||||
for (i = 0; i < xsval_n; i++) {
|
for (i = 0; i < xsval_n; i++) {
|
||||||
snprintf(buf, MAX_PATH_LEN, "%s/%s", path, xsval[i]);
|
snprintf(buf, MAX_PATH_LEN, "%s/%s", path, xsval[i]);
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/libxen/src/xen_common.c
|
Index: xen-3.3.1-testing/tools/libxen/src/xen_common.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/libxen/src/xen_common.c
|
--- xen-3.3.1-testing.orig/tools/libxen/src/xen_common.c
|
||||||
+++ xen-3.3.0-testing/tools/libxen/src/xen_common.c
|
+++ xen-3.3.1-testing/tools/libxen/src/xen_common.c
|
||||||
@@ -1055,6 +1055,8 @@ static size_t size_of_member(const abstr
|
@@ -1055,6 +1055,8 @@ static size_t size_of_member(const abstr
|
||||||
default:
|
default:
|
||||||
assert(false);
|
assert(false);
|
||||||
@ -175,32 +175,3 @@ Index: xen-3.3.0-testing/tools/libxen/src/xen_common.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
|
||||||
+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c
|
|
||||||
@@ -14,7 +14,10 @@ EXPORT_SYMBOL(system_state);
|
|
||||||
|
|
||||||
void ctrl_alt_del(void)
|
|
||||||
{
|
|
||||||
- kill_proc(1, SIGINT, 1); /* interrupt init */
|
|
||||||
+ siginfo_t si;
|
|
||||||
+ pid_t p = 1;
|
|
||||||
+
|
|
||||||
+ kill_proc_info(1, &si, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8)
|
|
||||||
Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-3.3.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
|
||||||
+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c
|
|
||||||
@@ -44,7 +44,7 @@ static void ap_suspend(void *_info)
|
|
||||||
atomic_dec(&info->nr_spinning);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#define initiate_ap_suspend(i) smp_call_function(ap_suspend, i, 0, 0)
|
|
||||||
+#define initiate_ap_suspend(i) smp_call_function(ap_suspend, i, 0)
|
|
||||||
|
|
||||||
#else /* !defined(CONFIG_SMP) */
|
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
From: Charles Coffing <ccoffing@novell.com>
|
From: Charles Coffing <ccoffing@novell.com>
|
||||||
Upstream: no
|
Upstream: no
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/python/xen/xm/main.py
|
Index: xen-3.3.1-testing/tools/python/xen/xm/main.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xm/main.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xm/main.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xm/main.py
|
+++ xen-3.3.1-testing/tools/python/xen/xm/main.py
|
||||||
@@ -1933,6 +1933,10 @@ def xm_debug_keys(args):
|
@@ -1933,6 +1933,10 @@ def xm_debug_keys(args):
|
||||||
def xm_top(args):
|
def xm_top(args):
|
||||||
arg_check(args, "top", 0)
|
arg_check(args, "top", 0)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/Makefile
|
Index: xen-3.3.1-testing/tools/examples/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/Makefile
|
--- xen-3.3.1-testing.orig/tools/examples/Makefile
|
||||||
+++ xen-3.3.0-testing/tools/examples/Makefile
|
+++ xen-3.3.1-testing/tools/examples/Makefile
|
||||||
@@ -20,7 +20,6 @@ XEN_CONFIGS += xmexample.hvm-stubdom
|
@@ -20,7 +20,6 @@ XEN_CONFIGS += xmexample.hvm-stubdom
|
||||||
XEN_CONFIGS += xmexample.hvm-dm
|
XEN_CONFIGS += xmexample.hvm-dm
|
||||||
XEN_CONFIGS += xmexample.pv-grub
|
XEN_CONFIGS += xmexample.pv-grub
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Change various example paths in the config files to match SUSE.
|
Change various example paths in the config files to match SUSE.
|
||||||
|
|
||||||
Index: xen-3.3.0-testing/tools/examples/xmexample1
|
Index: xen-3.3.1-testing/tools/examples/xmexample1
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/xmexample1
|
--- xen-3.3.1-testing.orig/tools/examples/xmexample1
|
||||||
+++ xen-3.3.0-testing/tools/examples/xmexample1
|
+++ xen-3.3.1-testing/tools/examples/xmexample1
|
||||||
@@ -7,11 +7,13 @@
|
@@ -7,11 +7,13 @@
|
||||||
#============================================================================
|
#============================================================================
|
||||||
|
|
||||||
@ -43,10 +43,10 @@ Index: xen-3.3.0-testing/tools/examples/xmexample1
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Configure the behaviour when a domain exits. There are three 'reasons'
|
# Configure the behaviour when a domain exits. There are three 'reasons'
|
||||||
Index: xen-3.3.0-testing/tools/examples/xmexample2
|
Index: xen-3.3.1-testing/tools/examples/xmexample2
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/xmexample2
|
--- xen-3.3.1-testing.orig/tools/examples/xmexample2
|
||||||
+++ xen-3.3.0-testing/tools/examples/xmexample2
|
+++ xen-3.3.1-testing/tools/examples/xmexample2
|
||||||
@@ -35,11 +35,13 @@ xm_vars.var('vmid',
|
@@ -35,11 +35,13 @@ xm_vars.var('vmid',
|
||||||
xm_vars.check()
|
xm_vars.check()
|
||||||
|
|
||||||
@ -86,10 +86,10 @@ Index: xen-3.3.0-testing/tools/examples/xmexample2
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Configure the behaviour when a domain exits. There are three 'reasons'
|
# Configure the behaviour when a domain exits. There are three 'reasons'
|
||||||
Index: xen-3.3.0-testing/tools/examples/xmexample3
|
Index: xen-3.3.1-testing/tools/examples/xmexample3
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/xmexample3
|
--- xen-3.3.1-testing.orig/tools/examples/xmexample3
|
||||||
+++ xen-3.3.0-testing/tools/examples/xmexample3
|
+++ xen-3.3.1-testing/tools/examples/xmexample3
|
||||||
@@ -35,11 +35,13 @@ xm_vars.var('vmid',
|
@@ -35,11 +35,13 @@ xm_vars.var('vmid',
|
||||||
xm_vars.check()
|
xm_vars.check()
|
||||||
|
|
||||||
@ -109,10 +109,10 @@ Index: xen-3.3.0-testing/tools/examples/xmexample3
|
|||||||
|
|
||||||
# The domain build function. Default is 'linux'.
|
# The domain build function. Default is 'linux'.
|
||||||
#builder='linux'
|
#builder='linux'
|
||||||
Index: xen-3.3.0-testing/tools/examples/xmexample.hvm
|
Index: xen-3.3.1-testing/tools/examples/xmexample.hvm
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/xmexample.hvm
|
--- xen-3.3.1-testing.orig/tools/examples/xmexample.hvm
|
||||||
+++ xen-3.3.0-testing/tools/examples/xmexample.hvm
|
+++ xen-3.3.1-testing/tools/examples/xmexample.hvm
|
||||||
@@ -73,7 +73,7 @@ vif = [ 'type=ioemu, bridge=xenbr0' ]
|
@@ -73,7 +73,7 @@ vif = [ 'type=ioemu, bridge=xenbr0' ]
|
||||||
# and MODE is r for read-only, w for read-write.
|
# and MODE is r for read-only, w for read-write.
|
||||||
|
|
||||||
@ -122,10 +122,10 @@ Index: xen-3.3.0-testing/tools/examples/xmexample.hvm
|
|||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Configure the behaviour when a domain exits. There are three 'reasons'
|
# Configure the behaviour when a domain exits. There are three 'reasons'
|
||||||
Index: xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
Index: xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xmdomain.cfg.pod.5
|
--- xen-3.3.1-testing.orig/docs/man/xmdomain.cfg.pod.5
|
||||||
+++ xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
+++ xen-3.3.1-testing/docs/man/xmdomain.cfg.pod.5
|
||||||
@@ -38,13 +38,13 @@ file.
|
@@ -38,13 +38,13 @@ file.
|
||||||
|
|
||||||
The kernel image for the domain. The format of the parameter is the
|
The kernel image for the domain. The format of the parameter is the
|
||||||
@ -161,10 +161,10 @@ Index: xen-3.3.0-testing/docs/man/xmdomain.cfg.pod.5
|
|||||||
at hda1, which is the root filesystem.
|
at hda1, which is the root filesystem.
|
||||||
|
|
||||||
=item I<NFS Root>
|
=item I<NFS Root>
|
||||||
Index: xen-3.3.0-testing/docs/man/xm.pod.1
|
Index: xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/docs/man/xm.pod.1
|
--- xen-3.3.1-testing.orig/docs/man/xm.pod.1
|
||||||
+++ xen-3.3.0-testing/docs/man/xm.pod.1
|
+++ xen-3.3.1-testing/docs/man/xm.pod.1
|
||||||
@@ -106,8 +106,8 @@ soon as it is run.
|
@@ -106,8 +106,8 @@ soon as it is run.
|
||||||
|
|
||||||
=item I<without config file>
|
=item I<without config file>
|
||||||
|
23
xen.changes
23
xen.changes
@ -1,3 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 24 15:44:43 MDT 2008 - carnold@novell.com
|
||||||
|
|
||||||
|
- bnc#382401 - xm man page missing information for commands.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 17 14:57:29 MDT 2008 - carnold@novell.com
|
||||||
|
|
||||||
|
- Pulled some upstream patches for Intel and AMD microcode fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 16 10:51:44 MDT 2008 - carnold@novell.com
|
||||||
|
|
||||||
|
- Update to changeset 18412. Contains several bug fixes including
|
||||||
|
a crash fix in qemu-dm and also various memory leaks fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 15 10:48:35 MDT 2008 - carnold@novell.com
|
||||||
|
|
||||||
|
- Fix parameters in call to kill_proc_info (pv drivers).
|
||||||
|
- Add conditional for use of smp_call_function so the pv drivers
|
||||||
|
can be built on older kernel versions.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Sep 11 12:42:05 MDT 2008 - brogers@novell.com
|
Thu Sep 11 12:42:05 MDT 2008 - brogers@novell.com
|
||||||
|
|
||||||
|
63
xen.spec
63
xen.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package xen (Version 3.3.1_18390_01)
|
# spec file for package xen (Version 3.3.1_18412_02)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -21,7 +21,7 @@
|
|||||||
Name: xen
|
Name: xen
|
||||||
%define xvers 3.3
|
%define xvers 3.3
|
||||||
%define xvermaj 3
|
%define xvermaj 3
|
||||||
%define changeset 18390
|
%define changeset 18412
|
||||||
%define xen_build_dir xen-3.3.1-testing
|
%define xen_build_dir xen-3.3.1-testing
|
||||||
%if %sles_version
|
%if %sles_version
|
||||||
%define with_kmp 1
|
%define with_kmp 1
|
||||||
@ -40,7 +40,7 @@ BuildRequires: glibc-32bit glibc-devel-32bit
|
|||||||
%if %{?with_kmp}0
|
%if %{?with_kmp}0
|
||||||
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
|
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
|
||||||
%endif
|
%endif
|
||||||
Version: 3.3.1_18390_01
|
Version: 3.3.1_18412_02
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPL v2 only
|
License: GPL v2 only
|
||||||
Group: System/Kernel
|
Group: System/Kernel
|
||||||
@ -69,8 +69,21 @@ Source24: xenapiusers
|
|||||||
# sysconfig hook script for Xen
|
# sysconfig hook script for Xen
|
||||||
Source25: xen-updown.sh
|
Source25: xen-updown.sh
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch0: 18412-x86-page-type-preemptible.patch
|
Patch0: 18406-constify-microcode.patch
|
||||||
Patch1: 18420-x86-page-type-preemptible-fix.patch
|
Patch1: 18412-x86-page-type-preemptible.patch
|
||||||
|
Patch2: 18420-x86-page-type-preemptible-fix.patch
|
||||||
|
Patch3: 18428-poll-single-port.patch
|
||||||
|
Patch4: 18464-cpu-hotplug.patch
|
||||||
|
Patch5: 18471-cpu-hotplug.patch
|
||||||
|
Patch6: 18475-amd-microcode-update.patch
|
||||||
|
Patch7: 18481-amd-microcode-update-fix.patch
|
||||||
|
Patch8: 18483-intel-microcode-update.patch
|
||||||
|
Patch9: 18484-stubdom-ioemu-makefile.patch
|
||||||
|
Patch10: 18487-microcode-update-irq-context.patch
|
||||||
|
Patch11: 18488-microcode-free-fix.patch
|
||||||
|
Patch12: 18505-amd-powernow-fix.patch
|
||||||
|
Patch13: 18506-enforce-memory-limits.patch
|
||||||
|
Patch14: 18509-continue-hypercall-on-cpu.patch
|
||||||
# Our patches
|
# Our patches
|
||||||
Patch100: xen-config.diff
|
Patch100: xen-config.diff
|
||||||
Patch101: xend-config.diff
|
Patch101: xend-config.diff
|
||||||
@ -116,6 +129,7 @@ Patch157: xen-api-auth.patch
|
|||||||
Patch158: xen-qemu-iscsi-fix.patch
|
Patch158: xen-qemu-iscsi-fix.patch
|
||||||
Patch159: xend-vif-fix.patch
|
Patch159: xend-vif-fix.patch
|
||||||
Patch160: tools-gdbserver-build.diff
|
Patch160: tools-gdbserver-build.diff
|
||||||
|
Patch161: xm-man-update.diff
|
||||||
# Patches for snapshot support
|
# Patches for snapshot support
|
||||||
Patch170: qemu-img-snapshot.patch
|
Patch170: qemu-img-snapshot.patch
|
||||||
Patch171: ioemu-blktap-fix-open.patch
|
Patch171: ioemu-blktap-fix-open.patch
|
||||||
@ -131,13 +145,13 @@ Patch184: ioemu-blktap-barriers.patch
|
|||||||
# Jim's domain lock patch
|
# Jim's domain lock patch
|
||||||
Patch190: xend-domain-lock.patch
|
Patch190: xend-domain-lock.patch
|
||||||
# Patches from Jan
|
# Patches from Jan
|
||||||
Patch240: poll-single-port.patch
|
Patch240: dump-exec-state.patch
|
||||||
Patch241: dump-exec-state.patch
|
Patch241: x86-show-page-walk-early.patch
|
||||||
Patch242: x86-show-page-walk-early.patch
|
Patch242: svm-lmsl.patch
|
||||||
Patch243: svm-lmsl.patch
|
Patch243: x86-extra-trap-info.patch
|
||||||
Patch244: x86-extra-trap-info.patch
|
Patch244: x86-page-gnttab.patch
|
||||||
Patch245: x86-microcode.patch
|
|
||||||
Patch250: 32on64-extra-mem.patch
|
Patch250: 32on64-extra-mem.patch
|
||||||
|
Patch251: msi-enable.patch
|
||||||
# PV Driver Patches
|
# PV Driver Patches
|
||||||
Patch350: pv-driver-build.patch
|
Patch350: pv-driver-build.patch
|
||||||
Patch351: xen-ioemu-hvm-pv-support.diff
|
Patch351: xen-ioemu-hvm-pv-support.diff
|
||||||
@ -480,6 +494,19 @@ Authors:
|
|||||||
%setup -q -n %xen_build_dir
|
%setup -q -n %xen_build_dir
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
%patch9 -p1
|
||||||
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
%patch12 -p1
|
||||||
|
%patch13 -p1
|
||||||
|
%patch14 -p1
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
@ -524,6 +551,7 @@ Authors:
|
|||||||
%patch158 -p1
|
%patch158 -p1
|
||||||
%patch159 -p1
|
%patch159 -p1
|
||||||
%patch160 -p1
|
%patch160 -p1
|
||||||
|
%patch161 -p1
|
||||||
%patch170 -p1
|
%patch170 -p1
|
||||||
%patch171 -p1
|
%patch171 -p1
|
||||||
%patch172 -p1
|
%patch172 -p1
|
||||||
@ -541,8 +569,8 @@ Authors:
|
|||||||
%patch242 -p1
|
%patch242 -p1
|
||||||
%patch243 -p1
|
%patch243 -p1
|
||||||
%patch244 -p1
|
%patch244 -p1
|
||||||
%patch245 -p1
|
|
||||||
%patch250 -p1
|
%patch250 -p1
|
||||||
|
%patch251 -p1
|
||||||
%patch350 -p1
|
%patch350 -p1
|
||||||
%patch351 -p1
|
%patch351 -p1
|
||||||
%patch352 -p1
|
%patch352 -p1
|
||||||
@ -897,6 +925,17 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug
|
|||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 24 2008 carnold@novell.com
|
||||||
|
- bnc#382401 - xm man page missing information for commands.
|
||||||
|
* Wed Sep 17 2008 carnold@novell.com
|
||||||
|
- Pulled some upstream patches for Intel and AMD microcode fixes.
|
||||||
|
* Tue Sep 16 2008 carnold@novell.com
|
||||||
|
- Update to changeset 18412. Contains several bug fixes including
|
||||||
|
a crash fix in qemu-dm and also various memory leaks fixes.
|
||||||
|
* Mon Sep 15 2008 carnold@novell.com
|
||||||
|
- Fix parameters in call to kill_proc_info (pv drivers).
|
||||||
|
- Add conditional for use of smp_call_function so the pv drivers
|
||||||
|
can be built on older kernel versions.
|
||||||
* Thu Sep 11 2008 brogers@novell.com
|
* Thu Sep 11 2008 brogers@novell.com
|
||||||
- Added gdbserver-xen to the set of tools we build.
|
- Added gdbserver-xen to the set of tools we build.
|
||||||
fate#302942
|
fate#302942
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/examples/init.d/sysconfig.xendomains
|
Index: xen-3.3.1-testing/tools/examples/init.d/sysconfig.xendomains
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/init.d/sysconfig.xendomains
|
--- xen-3.3.1-testing.orig/tools/examples/init.d/sysconfig.xendomains
|
||||||
+++ xen-3.3.0-testing/tools/examples/init.d/sysconfig.xendomains
|
+++ xen-3.3.1-testing/tools/examples/init.d/sysconfig.xendomains
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
-## Path: System/xen
|
-## Path: System/xen
|
||||||
+## Path: System/Virtualization
|
+## Path: System/Virtualization
|
||||||
@ -27,10 +27,10 @@ Index: xen-3.3.0-testing/tools/examples/init.d/sysconfig.xendomains
|
|||||||
|
|
||||||
## Type: integer
|
## Type: integer
|
||||||
## Default: 300
|
## Default: 300
|
||||||
Index: xen-3.3.0-testing/tools/examples/xend-config.sxp
|
Index: xen-3.3.1-testing/tools/examples/xend-config.sxp
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/examples/xend-config.sxp
|
--- xen-3.3.1-testing.orig/tools/examples/xend-config.sxp
|
||||||
+++ xen-3.3.0-testing/tools/examples/xend-config.sxp
|
+++ xen-3.3.1-testing/tools/examples/xend-config.sxp
|
||||||
@@ -54,11 +54,12 @@
|
@@ -54,11 +54,12 @@
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ Index: xen-3.3.1-testing/tools/examples/xend-config.sxp
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.1-testing.orig/tools/examples/xend-config.sxp
|
--- xen-3.3.1-testing.orig/tools/examples/xend-config.sxp
|
||||||
+++ xen-3.3.1-testing/tools/examples/xend-config.sxp
|
+++ xen-3.3.1-testing/tools/examples/xend-config.sxp
|
||||||
@@ -250,4 +250,44 @@
|
@@ -255,4 +255,44 @@
|
||||||
|
|
||||||
# Path where persistent domain configuration is stored.
|
# Path where persistent domain configuration is stored.
|
||||||
# Default is /var/lib/xend/domains/
|
# Default is /var/lib/xend/domains/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/python/xen/xend/server/netif.py
|
Index: xen-3.3.1-testing/tools/python/xen/xend/server/netif.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/python/xen/xend/server/netif.py
|
--- xen-3.3.1-testing.orig/tools/python/xen/xend/server/netif.py
|
||||||
+++ xen-3.3.0-testing/tools/python/xen/xend/server/netif.py
|
+++ xen-3.3.1-testing/tools/python/xen/xend/server/netif.py
|
||||||
@@ -101,6 +101,13 @@ class NetifController(DevController):
|
@@ -101,6 +101,13 @@ class NetifController(DevController):
|
||||||
def __init__(self, vm):
|
def __init__(self, vm):
|
||||||
DevController.__init__(self, vm)
|
DevController.__init__(self, vm)
|
||||||
|
460
xm-man-update.diff
Normal file
460
xm-man-update.diff
Normal file
@ -0,0 +1,460 @@
|
|||||||
|
diff -r ae29cd95ba7d docs/man/xm.pod.1
|
||||||
|
--- a/docs/man/xm.pod.1 Mon Sep 22 15:33:42 2008 +0100
|
||||||
|
+++ b/docs/man/xm.pod.1 Tue Sep 23 09:40:54 2008 -0600
|
||||||
|
@@ -67,13 +67,12 @@ so running curses based interfaces over
|
||||||
|
so running curses based interfaces over the console B<is not
|
||||||
|
advised>. Vi tends to get very odd when using it over this interface.
|
||||||
|
|
||||||
|
-=item B<create> [B<-c>] I<configfile> [I<name>=I<value>]..
|
||||||
|
+=item B<create> I<configfile> [I<OPTIONS>] [I<vars>]..
|
||||||
|
|
||||||
|
-The create sub command requires a config file and can optionally take a
|
||||||
|
-series of name value pairs that add to or override variables defined
|
||||||
|
+The create subcommand requires a config file and can optionally take a
|
||||||
|
+series of I<vars> that add to or override variables defined
|
||||||
|
in the config file. See L<xmdomain.cfg> for full details of that file
|
||||||
|
-format, and possible options used in either the configfile or
|
||||||
|
-I<name>=I<value> combinations.
|
||||||
|
+format, and possible options used in either the configfile or for I<vars>.
|
||||||
|
|
||||||
|
I<configfile> can either be an absolute path to a file, or a relative
|
||||||
|
path to a file located in /etc/xen.
|
||||||
|
@@ -86,9 +85,65 @@ B<OPTIONS>
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
-=item B<-c>
|
||||||
|
+=item B<--help_config>
|
||||||
|
|
||||||
|
-Attache console to the domain as soon as it has started. This is
|
||||||
|
+Print the available configuration variables I<vars>. These variables may be
|
||||||
|
+used on the command line or in the configuration file I<configfile>.
|
||||||
|
+
|
||||||
|
+=item B<-q>, B<--quiet>
|
||||||
|
+
|
||||||
|
+No console output.
|
||||||
|
+
|
||||||
|
+=item B<--path>
|
||||||
|
+
|
||||||
|
+Search path for configuration scripts. The value of PATH is a
|
||||||
|
+colon-separated directory list.
|
||||||
|
+
|
||||||
|
+=item B<-f=FILE>, B<--defconfig=FILE>
|
||||||
|
+
|
||||||
|
+Use the given Python configuration script. The configuration
|
||||||
|
+script is loaded after arguments have been processed. Each
|
||||||
|
+command-line option sets a configuration variable named after
|
||||||
|
+its long option name, and these variables are placed in the
|
||||||
|
+environment of the script before it is loaded. Variables
|
||||||
|
+for options that may be repeated have list values. Other
|
||||||
|
+variables can be set using name=value on the command line.
|
||||||
|
+After the script is loaded, option values that were not set
|
||||||
|
+on the command line are replaced by the values set in the script.
|
||||||
|
+
|
||||||
|
+=item B<-F=FILE>, B<--config=FILE>
|
||||||
|
+
|
||||||
|
+Use the given SXP formated configuration script.
|
||||||
|
+SXP is the underlying configuration format used by Xen.
|
||||||
|
+SXP configuration scripts can be hand-written or generated
|
||||||
|
+from Python configuration scripts, using the -n
|
||||||
|
+(dryrun) option to print the configuration. An SXP formatted
|
||||||
|
+configuration file may also be generated for a given I<domain-id> by
|
||||||
|
+redirecting the output from the the B<xm list --long I<domain-id>>
|
||||||
|
+to a file.
|
||||||
|
+
|
||||||
|
+=item B<-n>, B<--dryrun>
|
||||||
|
+
|
||||||
|
+Dry run - prints the resulting configuration in SXP
|
||||||
|
+but does not create the domain.
|
||||||
|
+
|
||||||
|
+=item B<-x>, B<--xmldryrun>
|
||||||
|
+
|
||||||
|
+XML dry run - prints the resulting configuration in
|
||||||
|
+XML but does not create the domain.
|
||||||
|
+
|
||||||
|
+=item B<-s>, B<--skipdtd>
|
||||||
|
+
|
||||||
|
+Skip DTD checking - skips checks on XML before
|
||||||
|
+creating. Experimental. Can decrease create time.
|
||||||
|
+
|
||||||
|
+=item B<-p>, B<--paused>
|
||||||
|
+
|
||||||
|
+Leave the domain paused after it is created.
|
||||||
|
+
|
||||||
|
+=item B<-c>, B<--console_autoconnect>
|
||||||
|
+
|
||||||
|
+Attach console to the domain as soon as it has started. This is
|
||||||
|
useful for determining issues with crashing domains.
|
||||||
|
|
||||||
|
=back
|
||||||
|
@@ -118,6 +173,11 @@ virtual networking. (This example comes
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
+=item B<delete>
|
||||||
|
+
|
||||||
|
+Remove a domain from Xend domain management. The B<xm list> command
|
||||||
|
+shows the domain names.
|
||||||
|
+
|
||||||
|
=item B<destroy> I<domain-id>
|
||||||
|
|
||||||
|
Immediately terminate the domain I<domain-id>. This doesn't give the
|
||||||
|
@@ -133,6 +193,28 @@ Converts a domain name to a domain id us
|
||||||
|
|
||||||
|
Converts a domain id to a domain name using xend's internal mapping.
|
||||||
|
|
||||||
|
+=item B<dump-core> [I<OPTIONS>] I<domain-id> [I<filename>]
|
||||||
|
+
|
||||||
|
+Dumps the virtual machine's memory for the specified domain to the
|
||||||
|
+I<filename> specified. The dump file will be written to a distribution
|
||||||
|
+specific directory for dump files. Such as: /var/lib/xen/dump or
|
||||||
|
+/var/xen/dump Defaults to dumping the core without pausing the domain
|
||||||
|
+if no I<OPTIONS> are specified.
|
||||||
|
+
|
||||||
|
+B<OPTIONS>
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
+=item B<-L>, B<--live>
|
||||||
|
+
|
||||||
|
+Dump core without pausing the domain.
|
||||||
|
+
|
||||||
|
+=item B<-C>, B<--crash>
|
||||||
|
+
|
||||||
|
+Crash domain after dumping core.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
=item B<help> [B<--long>]
|
||||||
|
|
||||||
|
Displays the short help message (i.e. common commands).
|
||||||
|
@@ -140,10 +222,35 @@ The B<--long> option prints out the comp
|
||||||
|
The B<--long> option prints out the complete set of B<xm> subcommands,
|
||||||
|
grouped by function.
|
||||||
|
|
||||||
|
-=item B<list> [B<--long> | B<--label>] [I<domain-id> ...]
|
||||||
|
+=item B<list> [I<OPTIONS>] [I<domain-id> ...]
|
||||||
|
|
||||||
|
Prints information about one or more domains. If no domains are
|
||||||
|
specified it prints out information about all domains.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+B<OPTIONS>
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
+=item B<-l>, B<--long>
|
||||||
|
+
|
||||||
|
+The output for B<xm list> is not the table view shown below, but
|
||||||
|
+instead presents the data in SXP format.
|
||||||
|
+
|
||||||
|
+=item B<--label>
|
||||||
|
+
|
||||||
|
+Security labels are added to the output of xm list and the lines
|
||||||
|
+are sorted by the labels (ignoring case).
|
||||||
|
+See the ACCESS CONTROL SUBCOMMAND section of this man page for more
|
||||||
|
+information about labels.
|
||||||
|
+
|
||||||
|
+=item B<--state=<state>>
|
||||||
|
+
|
||||||
|
+Output information for VMs in the specified state.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
+B<EXAMPLE>
|
||||||
|
|
||||||
|
An example format for the list is as follows:
|
||||||
|
|
||||||
|
@@ -164,10 +271,10 @@ Xen.
|
||||||
|
|
||||||
|
B<STATES>
|
||||||
|
|
||||||
|
-=over 4
|
||||||
|
-
|
||||||
|
The State field lists 6 states for a Xen domain, and which ones the
|
||||||
|
current domain is in.
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
|
||||||
|
=item B<r - running>
|
||||||
|
|
||||||
|
@@ -204,32 +311,6 @@ FIXME: Is this right?
|
||||||
|
FIXME: Is this right?
|
||||||
|
|
||||||
|
=back
|
||||||
|
-
|
||||||
|
-B<LONG OUTPUT>
|
||||||
|
-
|
||||||
|
-=over 4
|
||||||
|
-
|
||||||
|
-If B<--long> is specified, the output for B<xm list> is not the table
|
||||||
|
-view shown above, but instead is an S-Expression representing all
|
||||||
|
-information known about all domains asked for. This is mostly only
|
||||||
|
-useful for external programs to parse the data.
|
||||||
|
-
|
||||||
|
-B<Note:> There is no stable guarantees on the format of this data.
|
||||||
|
-Use at your own risk.
|
||||||
|
-
|
||||||
|
-=back
|
||||||
|
-
|
||||||
|
-B<LABEL OUTPUT>
|
||||||
|
-
|
||||||
|
-=over 4
|
||||||
|
-
|
||||||
|
-If B<--label> is specified, the security labels are added to the
|
||||||
|
-output of B<xm list> and the lines are sorted by the labels (ignoring
|
||||||
|
-case). The B<--long> option prints the labels by default and cannot be
|
||||||
|
-combined with B<--label>. See the ACCESS CONTROL SUBCOMMAND section of
|
||||||
|
-this man page for more information about labels.
|
||||||
|
-
|
||||||
|
-==back
|
||||||
|
|
||||||
|
B<NOTES>
|
||||||
|
|
||||||
|
@@ -296,6 +377,90 @@ attempting to do other useful work.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
+=item B<new> I<configfile> [I<OPTIONS>] [I<vars>]...
|
||||||
|
+
|
||||||
|
+Adds a domain to Xend domain management.
|
||||||
|
+
|
||||||
|
+The new subcommand requires a config file and can optionally
|
||||||
|
+take a series of I<vars> that add to or override variables
|
||||||
|
+defined in the config file. See xmdomain.cfg for full details of that
|
||||||
|
+file format, and possible options used in either the configfile or for
|
||||||
|
+I<vars>.
|
||||||
|
+
|
||||||
|
+I<configfile> can either be an absolute path to a file, or a relative
|
||||||
|
+path to a file located in /etc/xen.
|
||||||
|
+
|
||||||
|
+The new subcommand will return without starting the domain. The
|
||||||
|
+domain needs to be started using the B<xm start> command.
|
||||||
|
+
|
||||||
|
+B<OPTIONS>
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
+=item B<--help_config>
|
||||||
|
+
|
||||||
|
+Print the available configuration variables I<vars>. These variables may be
|
||||||
|
+used on the command line or in the configuration file I<configfile>.
|
||||||
|
+
|
||||||
|
+=item B<-q>, B<--quiet>
|
||||||
|
+
|
||||||
|
+No console output.
|
||||||
|
+
|
||||||
|
+=item B<--path>
|
||||||
|
+
|
||||||
|
+Search path for configuration scripts. The value of PATH is a
|
||||||
|
+colon-separated directory list.
|
||||||
|
+
|
||||||
|
+=item B<-f=FILE>, B<--defconfig=FILE>
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+Use the given Python configuration script. The configuration
|
||||||
|
+script is loaded after arguments have been processed. Each
|
||||||
|
+command-line option sets a configuration variable named after
|
||||||
|
+its long option name, and these variables are placed in the
|
||||||
|
+environment of the script before it is loaded. Variables
|
||||||
|
+for options that may be repeated have list values. Other
|
||||||
|
+variables can be set using name=value on the command line.
|
||||||
|
+After the script is loaded, option values that were not set
|
||||||
|
+on the command line are replaced by the values set in the script.
|
||||||
|
+
|
||||||
|
+=item B<-F=FILE>, B<--config=FILE>
|
||||||
|
+
|
||||||
|
+Use the given SXP formated configuration script.
|
||||||
|
+SXP is the underlying configuration format used by Xen.
|
||||||
|
+SXP configuration scripts can be hand-written or generated
|
||||||
|
+from Python configuration scripts, using the -n
|
||||||
|
+(dryrun) option to print the configuration. An SXP formatted
|
||||||
|
+configuration file may also be generated for a given I<domain-id> by
|
||||||
|
+redirecting the output from the the B<xm list --long I<domain-id>>
|
||||||
|
+to a file.
|
||||||
|
+
|
||||||
|
+=item B<-n>, B<--dryrun>
|
||||||
|
+
|
||||||
|
+Dry run - prints the resulting configuration in SXP
|
||||||
|
+but does not create the domain.
|
||||||
|
+
|
||||||
|
+=item B<-x>, B<--xmldryrun>
|
||||||
|
+
|
||||||
|
+XML dry run - prints the resulting configuration in
|
||||||
|
+XML but does not create the domain.
|
||||||
|
+
|
||||||
|
+=item B<-s>, B<--skipdtd>
|
||||||
|
+
|
||||||
|
+Skip DTD checking - skips checks on XML before
|
||||||
|
+creating. Experimental. Can decrease create time.
|
||||||
|
+
|
||||||
|
+=item B<-p>, B<--paused>
|
||||||
|
+
|
||||||
|
+Leave the domain paused after it is created.
|
||||||
|
+
|
||||||
|
+=item B<-c>, B<--console_autoconnect>
|
||||||
|
+
|
||||||
|
+Attach console to the domain as soon as it has started. This is
|
||||||
|
+useful for determining issues with crashing domains.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
=item B<pause> I<domain-id>
|
||||||
|
|
||||||
|
Pause a domain. When in a paused state the domain will still consume
|
||||||
|
@@ -331,6 +496,22 @@ as all services in the domain will have
|
||||||
|
=item B<restore> I<state-file>
|
||||||
|
|
||||||
|
Build a domain from an B<xm save> state file. See B<save> for more info.
|
||||||
|
+
|
||||||
|
+=item B<resume> I<domain-name> [I<OPTIONS>]
|
||||||
|
+
|
||||||
|
+Moves a domain out of the suspended state and back into memory.
|
||||||
|
+
|
||||||
|
+B<OPTIONS>
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
+=item B<-p>, <--paused>
|
||||||
|
+
|
||||||
|
+Moves a domain back into memory but leaves the domain in a paused state.
|
||||||
|
+The B<xm unpause> subcommand may then be used to bring it out of the
|
||||||
|
+paused state.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
|
||||||
|
=item B<save> I<domain-id> I<state-file>
|
||||||
|
|
||||||
|
@@ -369,6 +550,31 @@ Wait for the domain to complete shutdown
|
||||||
|
Wait for the domain to complete shutdown before returning.
|
||||||
|
|
||||||
|
=back
|
||||||
|
+
|
||||||
|
+=item B<start> I<domain-name> [I<OPTIONS>]
|
||||||
|
+
|
||||||
|
+Start a Xend managed domain that was added using the B<xm new> command.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+B<OPTIONS>
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
+=item B<-p>, B<--paused>
|
||||||
|
+
|
||||||
|
+Do not unpause domain after starting it.
|
||||||
|
+
|
||||||
|
+=item B<-c>, B<--console_autoconnect>
|
||||||
|
+
|
||||||
|
+Connect to the console after the domain is created.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
+=item B<suspend> I<domain-name>
|
||||||
|
+
|
||||||
|
+Suspend a domain to a state file so that it can be later
|
||||||
|
+resumed using the B<xm resume> subcommand. Similar to the B<xm save>
|
||||||
|
+subcommand although the state file may not be specified.
|
||||||
|
|
||||||
|
=item B<sysrq> I<domain-id> I<letter>
|
||||||
|
|
||||||
|
@@ -477,10 +683,10 @@ page more readable):
|
||||||
|
|
||||||
|
B<FIELDS>
|
||||||
|
|
||||||
|
-=over 4
|
||||||
|
-
|
||||||
|
Not all fields will be explained here, but some of the less obvious
|
||||||
|
ones deserve explanation:
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
|
||||||
|
=item B<hw_caps>
|
||||||
|
|
||||||
|
@@ -514,6 +720,10 @@ Executes the B<xentop> command, which pr
|
||||||
|
Executes the B<xentop> command, which provides real time monitoring of
|
||||||
|
domains. Xentop is a curses interface, and reasonably self
|
||||||
|
explanatory.
|
||||||
|
+
|
||||||
|
+=item B<uptime>
|
||||||
|
+
|
||||||
|
+Prints the current uptime of the domains running.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
@@ -698,13 +908,19 @@ List virtual block devices for a domain.
|
||||||
|
List virtual block devices for a domain. The returned output is
|
||||||
|
formatted as a list or as an S-Expression if the B<--long> option was given.
|
||||||
|
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
=head2 NETWORK DEVICES
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
|
||||||
|
=item B<network-attach> I<domain-id> [B<script=>I<scriptname>] [B<ip=>I<ipaddr>]
|
||||||
|
[B<mac=>I<macaddr>] [B<bridge=>I<bridge-name>] [B<backend=>I<bedomain-id>]
|
||||||
|
|
||||||
|
Creates a new network device in the domain specified by I<domain-id>. It
|
||||||
|
takes the following optional options:
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
|
||||||
|
B<OPTIONS>
|
||||||
|
|
||||||
|
@@ -739,6 +955,8 @@ The backend domain id. By default this
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
=item B<network-detach> I<domain-id> I<devid>
|
||||||
|
|
||||||
|
Removes the network device from the domain specified by I<domain-id>.
|
||||||
|
@@ -753,7 +971,11 @@ List virtual network interfaces for a do
|
||||||
|
List virtual network interfaces for a domain. The returned output is
|
||||||
|
formatted as a list or as an S-Expression if the B<--long> option was given.
|
||||||
|
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
=head2 VIRTUAL TPM DEVICES
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
|
||||||
|
=item B<vtpm-list> [B<-l>|B<--long>] I<domain-id>
|
||||||
|
|
||||||
|
@@ -828,6 +1050,8 @@ described under "Configuring Security" b
|
||||||
|
described under "Configuring Security" below. There, you will find
|
||||||
|
also examples of each subcommand described here.
|
||||||
|
|
||||||
|
+=over 4
|
||||||
|
+
|
||||||
|
=item B<setpolicy> ACM I<policy>
|
||||||
|
|
||||||
|
Makes the given ACM policy available to xend as a I<xend-managed policy>.
|
||||||
|
@@ -835,6 +1059,8 @@ version of the policy is created. The po
|
||||||
|
version of the policy is created. The policy is loaded and the system's
|
||||||
|
bootloader is prepared to boot the system with this policy the next time
|
||||||
|
it is started.
|
||||||
|
+
|
||||||
|
+=back
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
@@ -848,6 +1074,8 @@ global policy root directory.
|
||||||
|
global policy root directory.
|
||||||
|
|
||||||
|
=back
|
||||||
|
+
|
||||||
|
+=over 4
|
||||||
|
|
||||||
|
=item B<resetpolicy>
|
||||||
|
|
||||||
|
@@ -1155,6 +1383,8 @@ their binary identifiers (ssidrefs) used
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
+=back
|
||||||
|
+
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
B<xmdomain.cfg>(5), B<xentop>(1)
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-3.3.0-testing/tools/xm-test/tests/save/01_save_basic_pos.py
|
Index: xen-3.3.1-testing/tools/xm-test/tests/save/01_save_basic_pos.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xen-3.3.0-testing.orig/tools/xm-test/tests/save/01_save_basic_pos.py
|
--- xen-3.3.1-testing.orig/tools/xm-test/tests/save/01_save_basic_pos.py
|
||||||
+++ xen-3.3.0-testing/tools/xm-test/tests/save/01_save_basic_pos.py
|
+++ xen-3.3.1-testing/tools/xm-test/tests/save/01_save_basic_pos.py
|
||||||
@@ -35,3 +35,9 @@ if s != 0:
|
@@ -35,3 +35,9 @@ if s != 0:
|
||||||
# Make sure it's gone
|
# Make sure it's gone
|
||||||
if isDomainRunning(domain.getName()):
|
if isDomainRunning(domain.getName()):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user