Accepting request 38078 from Virtualization
checked in (request 38078) OBS-URL: https://build.opensuse.org/request/show/38078 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=41
This commit is contained in:
parent
f46075e596
commit
ce2ee9452b
@ -1,106 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1270026749 -3600
|
|
||||||
# Node ID 4f796e29987c0db1579787fe0b7d3d5af00963ea
|
|
||||||
# Parent 589d075ba2953123c1b39ecdbc190689ac6f443c
|
|
||||||
x86: start PCI IRQs Xen uses from Dom0-invoked io_apic_set_pci_routing()
|
|
||||||
|
|
||||||
When using a serial port from an add-in PCI card, and that IRQ is (as
|
|
||||||
usual) outside of the legacy range (0...15), Xen would never really
|
|
||||||
enable the IRQ, as at the time setup_irq() runs the handler for the
|
|
||||||
IRQ still is &no_irq_type. Consequently, once the trigger mode and
|
|
||||||
polarity of the interrupt become known to Xen, it should start such
|
|
||||||
IRQ(s) it uses for itself.
|
|
||||||
|
|
||||||
The question is whether the same should also be done in
|
|
||||||
ioapic_guest_write(): Legacy kernels don't use PHYSDEVOP_setup_gsi
|
|
||||||
(and hence don't trigger the code path modified).
|
|
||||||
|
|
||||||
Note however that even when a kernel is using PHYSDEVOP_setup_gsi in
|
|
||||||
the way the pv-ops kernel currently does, there's still no guarantee
|
|
||||||
that the call would ever be issued for IRQs Xen may be using, since
|
|
||||||
this happens only when devices get enabled. For Xen's purposes, this
|
|
||||||
function should be called for *all* device IRQs, regardless of
|
|
||||||
whether those would actually be (attempted to be) used by the kernel,
|
|
||||||
i.e. in a subsys_initcall() from drivers/acpi/pci_irq.c iterating
|
|
||||||
over all PCI devices and doing mostly what acpi_pci_irq_enable() does
|
|
||||||
except for calling this function in place of acpi_register_gsi(). The
|
|
||||||
downside of this approach is that without extra filtering in Xen
|
|
||||||
(based on a hint from Dom0), vectors will then get up even for IRQs
|
|
||||||
that are unused by both hypervisor and kernel.
|
|
||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271090214 -3600
|
|
||||||
# Node ID 7eeb131880b20a33e7675cc1726ae312a489be2d
|
|
||||||
# Parent b65a41dc6c6a2e2341ae778d8386a08d502bbfa4
|
|
||||||
Fix bug in 21089:4f796e29987c
|
|
||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271169507 -3600
|
|
||||||
# Node ID 0bebb5fa4f051df9b4fed4d11a723fae91bc7523
|
|
||||||
# Parent 859a372efa66e6bcba8e1fd968e521cb16da12ea
|
|
||||||
Make c/s 21089 work again with c/s 21092
|
|
||||||
|
|
||||||
Unfortunately the latter c/s' change to mpparse.c yielded the former
|
|
||||||
patch non-functional - Xen's serial port IRQ is not in IQR_DISABLED
|
|
||||||
state, yet must be allowed to get its trigger mode and polarity set
|
|
||||||
up in order for it to be usable.
|
|
||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
|
||||||
|
|
||||||
--- a/xen/arch/x86/io_apic.c
|
|
||||||
+++ b/xen/arch/x86/io_apic.c
|
|
||||||
@@ -2111,6 +2111,7 @@ int __init io_apic_get_redir_entries (in
|
|
||||||
|
|
||||||
int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low)
|
|
||||||
{
|
|
||||||
+ struct irq_desc *desc = irq_to_desc(irq);
|
|
||||||
struct IO_APIC_route_entry entry;
|
|
||||||
unsigned long flags;
|
|
||||||
int vector;
|
|
||||||
@@ -2162,7 +2163,12 @@ int io_apic_set_pci_routing (int ioapic,
|
|
||||||
io_apic_write(ioapic, 0x11+2*pin, *(((int *)&entry)+1));
|
|
||||||
io_apic_write(ioapic, 0x10+2*pin, *(((int *)&entry)+0));
|
|
||||||
set_native_irq_info(irq, TARGET_CPUS);
|
|
||||||
- spin_unlock_irqrestore(&ioapic_lock, flags);
|
|
||||||
+ spin_unlock(&ioapic_lock);
|
|
||||||
+
|
|
||||||
+ spin_lock(&desc->lock);
|
|
||||||
+ if (!(desc->status & (IRQ_DISABLED | IRQ_GUEST)))
|
|
||||||
+ desc->handler->startup(irq);
|
|
||||||
+ spin_unlock_irqrestore(&desc->lock, flags);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--- a/xen/arch/x86/mpparse.c
|
|
||||||
+++ b/xen/arch/x86/mpparse.c
|
|
||||||
@@ -1103,6 +1103,8 @@ int mp_register_gsi (u32 gsi, int trigge
|
|
||||||
int ioapic = -1;
|
|
||||||
int ioapic_pin = 0;
|
|
||||||
int idx, bit = 0;
|
|
||||||
+ struct irq_desc * desc;
|
|
||||||
+ unsigned long flags;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Mapping between Global System Interrups, which
|
|
||||||
@@ -1127,8 +1129,13 @@ int mp_register_gsi (u32 gsi, int trigge
|
|
||||||
if (ioapic_renumber_irq)
|
|
||||||
gsi = ioapic_renumber_irq(ioapic, gsi);
|
|
||||||
|
|
||||||
- if (!(irq_to_desc(gsi)->status & IRQ_DISABLED))
|
|
||||||
+ desc = irq_to_desc(gsi);
|
|
||||||
+ spin_lock_irqsave(&desc->lock, flags);
|
|
||||||
+ if (!(desc->status & IRQ_DISABLED) && desc->handler != &no_irq_type) {
|
|
||||||
+ spin_unlock_irqrestore(&desc->lock, flags);
|
|
||||||
return -EEXIST;
|
|
||||||
+ }
|
|
||||||
+ spin_unlock_irqrestore(&desc->lock, flags);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Avoid pin reprogramming. PRTs typically include entries
|
|
@ -1,154 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1270624140 -3600
|
|
||||||
# Node ID 7794f61c61f3b0c90e367a87b287850b31645742
|
|
||||||
# Parent adce8bc43fcccf8730b1da962be60c457c51fa1b
|
|
||||||
x86, cpu hotplug: Synchronise vcpu state earlier during cpu offline.
|
|
||||||
|
|
||||||
Needs to happen before non-idle VCPU is fully descheduled after CPU is
|
|
||||||
removed from cpu_online_map. Else sync_vcpu_execstate() doesn't work
|
|
||||||
properly.
|
|
||||||
|
|
||||||
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1270737112 -3600
|
|
||||||
# Node ID c9e8369e49be7396eca444cfce27e6782e4aa248
|
|
||||||
# Parent a33909be109cefb0aef251c7c7e48168ed05512a
|
|
||||||
Fix two issues for CPU online/offline.
|
|
||||||
|
|
||||||
Firstly, we should return if we fail to get spin lock in cpu_down.
|
|
||||||
Secondly, in credit scheduler, the idlers need be limited only to
|
|
||||||
online map.
|
|
||||||
|
|
||||||
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271090027 -3600
|
|
||||||
# Node ID 5d4038d41fd894f9fc71e64043d559d7c465bd15
|
|
||||||
# Parent 1d3bec66528900b1b442b6d36f24cd35ca076506
|
|
||||||
cpufreq: fix racing issue for cpu hotplug
|
|
||||||
|
|
||||||
To eliminate racing between dbs timer handler and cpufreq_del_cpu,
|
|
||||||
using kill_timer instead of stop_timer to make sure timer handler
|
|
||||||
execution finished before other stuff in cpufreq_del_cpu.
|
|
||||||
|
|
||||||
BTW, fix a lost point of cpufreq_statistic_lock taking sequence.
|
|
||||||
|
|
||||||
Signed-off-by: Wei Gang <gang.wei@intel.com>
|
|
||||||
|
|
||||||
--- a/xen/arch/x86/domain.c
|
|
||||||
+++ b/xen/arch/x86/domain.c
|
|
||||||
@@ -1442,7 +1442,8 @@ void context_switch(struct vcpu *prev, s
|
|
||||||
|
|
||||||
set_current(next);
|
|
||||||
|
|
||||||
- if ( (per_cpu(curr_vcpu, cpu) == next) || is_idle_vcpu(next) )
|
|
||||||
+ if ( (per_cpu(curr_vcpu, cpu) == next) ||
|
|
||||||
+ (is_idle_vcpu(next) && cpu_online(cpu)) )
|
|
||||||
{
|
|
||||||
local_irq_enable();
|
|
||||||
}
|
|
||||||
--- a/xen/arch/x86/smpboot.c
|
|
||||||
+++ b/xen/arch/x86/smpboot.c
|
|
||||||
@@ -997,17 +997,13 @@ static int __devinit do_boot_cpu(int api
|
|
||||||
return boot_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void idle_task_exit(void)
|
|
||||||
-{
|
|
||||||
- /* Give up lazy state borrowed by this idle vcpu */
|
|
||||||
- __sync_lazy_execstate();
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
void cpu_exit_clear(void)
|
|
||||||
{
|
|
||||||
int cpu = raw_smp_processor_id();
|
|
||||||
|
|
||||||
- idle_task_exit();
|
|
||||||
+ /* Previous non-idle state should be synchronised already. */
|
|
||||||
+ if (__sync_lazy_execstate())
|
|
||||||
+ BUG();
|
|
||||||
|
|
||||||
cpucount --;
|
|
||||||
cpu_uninit();
|
|
||||||
@@ -1302,6 +1298,13 @@ int __cpu_disable(void)
|
|
||||||
|
|
||||||
remove_siblinginfo(cpu);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * If we are running the idle vcpu, sync last non-idle vcpu's state
|
|
||||||
+ * before changing cpu_online_map. If we are running non-idle vcpu,
|
|
||||||
+ * we will synchronously sync the state in context_switch() later.
|
|
||||||
+ */
|
|
||||||
+ __sync_lazy_execstate();
|
|
||||||
+
|
|
||||||
/* It's now safe to remove this processor from the online map */
|
|
||||||
cpu_clear(cpu, cpu_online_map);
|
|
||||||
fixup_irqs();
|
|
||||||
@@ -1340,10 +1343,8 @@ int cpu_down(unsigned int cpu)
|
|
||||||
int err = 0;
|
|
||||||
|
|
||||||
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
|
||||||
- if (!spin_trylock(&cpu_add_remove_lock)) {
|
|
||||||
- err = -EBUSY;
|
|
||||||
- goto out;
|
|
||||||
- }
|
|
||||||
+ if (!spin_trylock(&cpu_add_remove_lock))
|
|
||||||
+ return -EBUSY;
|
|
||||||
|
|
||||||
if (num_online_cpus() == 1) {
|
|
||||||
err = -EBUSY;
|
|
||||||
--- a/xen/common/sched_credit.c
|
|
||||||
+++ b/xen/common/sched_credit.c
|
|
||||||
@@ -410,7 +410,7 @@ _csched_cpu_pick(struct vcpu *vc, bool_t
|
|
||||||
* like run two VCPUs on co-hyperthreads while there are idle cores
|
|
||||||
* or sockets.
|
|
||||||
*/
|
|
||||||
- idlers = csched_priv.idlers;
|
|
||||||
+ cpus_and(idlers, cpu_online_map, csched_priv.idlers);
|
|
||||||
cpu_set(cpu, idlers);
|
|
||||||
cpus_and(cpus, cpus, idlers);
|
|
||||||
cpu_clear(cpu, cpus);
|
|
||||||
--- a/xen/drivers/acpi/pmstat.c
|
|
||||||
+++ b/xen/drivers/acpi/pmstat.c
|
|
||||||
@@ -86,12 +86,13 @@ int do_get_pm_info(struct xen_sysctl_get
|
|
||||||
case PMSTAT_get_pxstat:
|
|
||||||
{
|
|
||||||
uint32_t ct;
|
|
||||||
- struct pm_px *pxpt = cpufreq_statistic_data[op->cpuid];
|
|
||||||
+ struct pm_px *pxpt;
|
|
||||||
spinlock_t *cpufreq_statistic_lock =
|
|
||||||
&per_cpu(cpufreq_statistic_lock, op->cpuid);
|
|
||||||
|
|
||||||
spin_lock(cpufreq_statistic_lock);
|
|
||||||
|
|
||||||
+ pxpt = cpufreq_statistic_data[op->cpuid];
|
|
||||||
if ( !pxpt || !pxpt->u.pt || !pxpt->u.trans_pt )
|
|
||||||
{
|
|
||||||
spin_unlock(cpufreq_statistic_lock);
|
|
||||||
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
|
|
||||||
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
|
|
||||||
@@ -196,9 +196,8 @@ static void dbs_timer_init(struct cpu_db
|
|
||||||
{
|
|
||||||
dbs_info->enable = 1;
|
|
||||||
|
|
||||||
- if ( !dbs_timer[dbs_info->cpu].function )
|
|
||||||
- init_timer(&dbs_timer[dbs_info->cpu], do_dbs_timer,
|
|
||||||
- (void *)dbs_info, dbs_info->cpu);
|
|
||||||
+ init_timer(&dbs_timer[dbs_info->cpu], do_dbs_timer,
|
|
||||||
+ (void *)dbs_info, dbs_info->cpu);
|
|
||||||
|
|
||||||
set_timer(&dbs_timer[dbs_info->cpu], NOW()+dbs_tuners_ins.sampling_rate);
|
|
||||||
|
|
||||||
@@ -213,7 +212,7 @@ static void dbs_timer_exit(struct cpu_db
|
|
||||||
{
|
|
||||||
dbs_info->enable = 0;
|
|
||||||
dbs_info->stoppable = 0;
|
|
||||||
- stop_timer(&dbs_timer[dbs_info->cpu]);
|
|
||||||
+ kill_timer(&dbs_timer[dbs_info->cpu]);
|
|
||||||
}
|
|
||||||
|
|
||||||
int cpufreq_governor_dbs(struct cpufreq_policy *policy, unsigned int event)
|
|
@ -1,31 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271053336 -3600
|
|
||||||
# Node ID b5f9c6274d917db5bbe6cb9cc0d59910cc07a8a6
|
|
||||||
# Parent 5bc70100b514d98bd3938cdeca1e182726c26df2
|
|
||||||
libxc: Flush I/O before xc_domain_save completion
|
|
||||||
|
|
||||||
The final, flushing call to discard_file_cache also discards any
|
|
||||||
errors from fsync. Call fsync explicitly before leaving, to check if
|
|
||||||
all VM memory actually made it to the disk.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
|
|
||||||
|
|
||||||
Index: xen-4.0.0-testing/tools/libxc/xc_domain_save.c
|
|
||||||
===================================================================
|
|
||||||
--- xen-4.0.0-testing.orig/tools/libxc/xc_domain_save.c
|
|
||||||
+++ xen-4.0.0-testing/tools/libxc/xc_domain_save.c
|
|
||||||
@@ -1764,6 +1764,13 @@ int xc_domain_save(int xc_handle, int io
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* Flush last write and check for errors. */
|
|
||||||
+ if ( fsync(io_fd) && errno != EINVAL )
|
|
||||||
+ {
|
|
||||||
+ PERROR("Error when flushing state file");
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Success! */
|
|
||||||
rc = 0;
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271091116 -3600
|
|
||||||
# Node ID 78488a63bbc200095413824cc146134b54635da9
|
|
||||||
# Parent b010b792c0f814de725f669d8a6bee738df68963
|
|
||||||
x86, shadow: Fix read-to-use race condition
|
|
||||||
|
|
||||||
If OOS mode is enabled, after last possible resync, read the guest l1e
|
|
||||||
one last time. If it's different than the original read, start over
|
|
||||||
again.
|
|
||||||
|
|
||||||
This fixes a race which can result in inconsistent in-sync shadow
|
|
||||||
tables, leading to corruption:
|
|
||||||
|
|
||||||
v1: take page fault, read gl1e from an out-of-sync PT.
|
|
||||||
v2: modify gl1e, lowering permissions
|
|
||||||
[v1,v3]: resync l1 which was just read.
|
|
||||||
v1: propagate change to l1 shadow using stale gl1e
|
|
||||||
|
|
||||||
Now we have an in-sync shadow with more permissions than the guest.
|
|
||||||
|
|
||||||
The resync can happen either as a result of a 3rd vcpu doing a cr3
|
|
||||||
update, or under certain conditions by v1 itself.
|
|
||||||
|
|
||||||
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
|
|
||||||
|
|
||||||
--- a/xen/arch/x86/mm/shadow/multi.c
|
|
||||||
+++ b/xen/arch/x86/mm/shadow/multi.c
|
|
||||||
@@ -240,6 +240,23 @@ shadow_check_gwalk(struct vcpu *v, unsig
|
|
||||||
return !mismatch;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+shadow_check_gl1e(struct vcpu *v, walk_t *gw)
|
|
||||||
+{
|
|
||||||
+ guest_l1e_t *l1p, nl1e;
|
|
||||||
+
|
|
||||||
+ if ( !mfn_valid(gw->l1mfn) )
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ /* Can't just pull-through because mfn may have changed */
|
|
||||||
+ l1p = map_domain_page(mfn_x(gw->l1mfn));
|
|
||||||
+ nl1e.l1 = l1p[guest_l1_table_offset(gw->va)].l1;
|
|
||||||
+ unmap_domain_page(l1p);
|
|
||||||
+
|
|
||||||
+ return gw->l1e.l1 != nl1e.l1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
/* Remove write access permissions from a gwalk_t in a batch, and
|
|
||||||
* return OR-ed result for TLB flush hint and need to rewalk the guest
|
|
||||||
* pages.
|
|
||||||
@@ -3235,6 +3252,15 @@ static int sh_page_fault(struct vcpu *v,
|
|
||||||
shadow_unlock(d);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ /* Final check: if someone has synced a page, it's possible that
|
|
||||||
+ * our l1e is stale. Compare the entries, and rewalk if necessary. */
|
|
||||||
+ if ( shadow_check_gl1e(v, &gw) )
|
|
||||||
+ {
|
|
||||||
+ perfc_incr(shadow_inconsistent_gwalk);
|
|
||||||
+ shadow_unlock(d);
|
|
||||||
+ goto rewalk;
|
|
||||||
+ }
|
|
||||||
#endif /* OOS */
|
|
||||||
|
|
||||||
/* Calculate the shadow entry and write it */
|
|
@ -1,27 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
# Date 1271162458 -3600
|
|
||||||
# Node ID 859a372efa66e6bcba8e1fd968e521cb16da12ea
|
|
||||||
# Parent da90dd1a09b93ae41ab451d223ff87dca04356f5
|
|
||||||
sysctl: Fix XEN_SYSCTL_debug_keys error path.
|
|
||||||
|
|
||||||
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
|
|
||||||
|
|
||||||
--- a/xen/common/sysctl.c
|
|
||||||
+++ b/xen/common/sysctl.c
|
|
||||||
@@ -169,12 +169,14 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysc
|
|
||||||
if ( ret )
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ ret = -EFAULT;
|
|
||||||
for ( i = 0; i < op->u.debug_keys.nr_keys; i++ )
|
|
||||||
{
|
|
||||||
if ( copy_from_guest_offset(&c, op->u.debug_keys.keys, i, 1) )
|
|
||||||
- return -EFAULT;
|
|
||||||
+ goto out;
|
|
||||||
handle_keypress(c, guest_cpu_user_regs());
|
|
||||||
}
|
|
||||||
+ ret = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
diff -r c02cc832cb2d tools/hotplug/Linux/blktap
|
|
||||||
--- a/tools/hotplug/Linux/blktap Tue Apr 13 18:19:33 2010 +0100
|
|
||||||
+++ b/tools/hotplug/Linux/blktap Fri Apr 16 14:48:00 2010 -0600
|
|
||||||
@@ -59,10 +59,10 @@
|
|
||||||
if [ -n "$t" ]
|
|
||||||
then
|
|
||||||
p=$(xenstore_read "$XENBUS_PATH/params")
|
|
||||||
- # if we have a ':', chew from head including :
|
|
||||||
+ # if we have a ':', remove everything up to leading '/'
|
|
||||||
if echo $p | grep -q \:
|
|
||||||
then
|
|
||||||
- p=${p#*:}
|
|
||||||
+ p="/${p#*/}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# some versions of readlink cannot be passed a regular file
|
|
@ -8,9 +8,11 @@
|
|||||||
missing adjustments get detected at build time)
|
missing adjustments get detected at build time)
|
||||||
- remove boot time per-CPU pool assignment messages (bnc#572146)
|
- remove boot time per-CPU pool assignment messages (bnc#572146)
|
||||||
|
|
||||||
--- a/xen/arch/x86/domain.c
|
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
+++ b/xen/arch/x86/domain.c
|
===================================================================
|
||||||
@@ -1581,6 +1581,7 @@ int continue_hypercall_on_cpu(int cpu, v
|
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
|
@@ -1580,6 +1580,7 @@ int continue_hypercall_on_cpu(int cpu, v
|
||||||
|
|
||||||
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
||||||
v->arch.continue_info = info;
|
v->arch.continue_info = info;
|
||||||
@ -18,7 +20,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1591,7 +1592,6 @@ int continue_hypercall_on_cpu(int cpu, v
|
@@ -1590,7 +1591,6 @@ int continue_hypercall_on_cpu(int cpu, v
|
||||||
info->func = func;
|
info->func = func;
|
||||||
info->data = data;
|
info->data = data;
|
||||||
|
|
||||||
@ -26,8 +28,10 @@
|
|||||||
tasklet_schedule_cpu(&info->tasklet, cpu);
|
tasklet_schedule_cpu(&info->tasklet, cpu);
|
||||||
raise_softirq(SCHEDULE_SOFTIRQ);
|
raise_softirq(SCHEDULE_SOFTIRQ);
|
||||||
|
|
||||||
--- a/xen/common/sched_credit.c
|
Index: xen-4.0.0-testing/xen/common/sched_credit.c
|
||||||
+++ b/xen/common/sched_credit.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/sched_credit.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/sched_credit.c
|
||||||
@@ -176,7 +176,6 @@ struct csched_private {
|
@@ -176,7 +176,6 @@ struct csched_private {
|
||||||
/*
|
/*
|
||||||
* Global variables
|
* Global variables
|
||||||
@ -51,8 +55,10 @@
|
|||||||
|
|
||||||
.init_domain = csched_dom_init,
|
.init_domain = csched_dom_init,
|
||||||
.destroy_domain = csched_dom_destroy,
|
.destroy_domain = csched_dom_destroy,
|
||||||
--- a/xen/common/softirq.c
|
Index: xen-4.0.0-testing/xen/common/softirq.c
|
||||||
+++ b/xen/common/softirq.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/softirq.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/softirq.c
|
||||||
@@ -104,12 +104,15 @@ static void tasklet_schedule_list(struct
|
@@ -104,12 +104,15 @@ static void tasklet_schedule_list(struct
|
||||||
{
|
{
|
||||||
BUG_ON(!list_empty(&t->list));
|
BUG_ON(!list_empty(&t->list));
|
||||||
@ -87,8 +93,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
--- a/xen/include/public/domctl.h
|
Index: xen-4.0.0-testing/xen/include/public/domctl.h
|
||||||
+++ b/xen/include/public/domctl.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/public/domctl.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/public/domctl.h
|
||||||
@@ -35,7 +35,7 @@
|
@@ -35,7 +35,7 @@
|
||||||
#include "xen.h"
|
#include "xen.h"
|
||||||
#include "grant_table.h"
|
#include "grant_table.h"
|
||||||
@ -98,8 +106,10 @@
|
|||||||
|
|
||||||
struct xenctl_cpumap {
|
struct xenctl_cpumap {
|
||||||
XEN_GUEST_HANDLE_64(uint8) bitmap;
|
XEN_GUEST_HANDLE_64(uint8) bitmap;
|
||||||
--- a/xen/include/xen/softirq.h
|
Index: xen-4.0.0-testing/xen/include/xen/softirq.h
|
||||||
+++ b/xen/include/xen/softirq.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/xen/softirq.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/xen/softirq.h
|
||||||
@@ -50,12 +50,14 @@ struct tasklet
|
@@ -50,12 +50,14 @@ struct tasklet
|
||||||
bool_t is_scheduled;
|
bool_t is_scheduled;
|
||||||
bool_t is_running;
|
bool_t is_running;
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
||||||
|
|
||||||
--- a/xen/arch/x86/acpi/power.c
|
Index: xen-4.0.0-testing/xen/arch/x86/acpi/power.c
|
||||||
+++ b/xen/arch/x86/acpi/power.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/acpi/power.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/acpi/power.c
|
||||||
@@ -234,7 +234,7 @@ static int enter_state(u32 state)
|
@@ -234,7 +234,7 @@ static int enter_state(u32 state)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@ -20,9 +22,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int acpi_get_wake_status(void)
|
static int acpi_get_wake_status(void)
|
||||||
--- a/xen/arch/x86/domain.c
|
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
+++ b/xen/arch/x86/domain.c
|
===================================================================
|
||||||
@@ -1518,42 +1518,52 @@ void sync_vcpu_execstate(struct vcpu *v)
|
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
|
@@ -1517,42 +1517,52 @@ void sync_vcpu_execstate(struct vcpu *v)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct migrate_info {
|
struct migrate_info {
|
||||||
@ -92,7 +96,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
info = v->arch.continue_info;
|
info = v->arch.continue_info;
|
||||||
if ( info == NULL )
|
if ( info == NULL )
|
||||||
@@ -1562,16 +1572,12 @@ int continue_hypercall_on_cpu(int cpu, l
|
@@ -1561,16 +1571,12 @@ int continue_hypercall_on_cpu(int cpu, l
|
||||||
if ( info == NULL )
|
if ( info == NULL )
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -113,7 +117,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
|
||||||
v->arch.continue_info = info;
|
v->arch.continue_info = info;
|
||||||
@@ -1579,17 +1585,17 @@ int continue_hypercall_on_cpu(int cpu, l
|
@@ -1578,17 +1584,17 @@ int continue_hypercall_on_cpu(int cpu, l
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BUG_ON(info->nest != 0);
|
BUG_ON(info->nest != 0);
|
||||||
@ -135,8 +139,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
--- a/xen/arch/x86/domain_build.c
|
Index: xen-4.0.0-testing/xen/arch/x86/domain_build.c
|
||||||
+++ b/xen/arch/x86/domain_build.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/domain_build.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/domain_build.c
|
||||||
@@ -9,6 +9,7 @@
|
@@ -9,6 +9,7 @@
|
||||||
#include <xen/lib.h>
|
#include <xen/lib.h>
|
||||||
#include <xen/ctype.h>
|
#include <xen/ctype.h>
|
||||||
@ -177,8 +183,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
/* Set up CR3 value for write_ptbase */
|
/* Set up CR3 value for write_ptbase */
|
||||||
if ( paging_mode_enabled(d) )
|
if ( paging_mode_enabled(d) )
|
||||||
--- a/xen/arch/x86/microcode.c
|
Index: xen-4.0.0-testing/xen/arch/x86/microcode.c
|
||||||
+++ b/xen/arch/x86/microcode.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/microcode.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/microcode.c
|
||||||
@@ -116,7 +116,7 @@ static int microcode_update_cpu(const vo
|
@@ -116,7 +116,7 @@ static int microcode_update_cpu(const vo
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -206,8 +214,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
+ return continue_hypercall_on_cpu(info->cpu, NULL,
|
+ return continue_hypercall_on_cpu(info->cpu, NULL,
|
||||||
+ do_microcode_update, info);
|
+ do_microcode_update, info);
|
||||||
}
|
}
|
||||||
--- a/xen/arch/x86/mm.c
|
Index: xen-4.0.0-testing/xen/arch/x86/mm.c
|
||||||
+++ b/xen/arch/x86/mm.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/mm.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/mm.c
|
||||||
@@ -242,7 +242,7 @@ void __init arch_init_memory(void)
|
@@ -242,7 +242,7 @@ void __init arch_init_memory(void)
|
||||||
* Any Xen-heap pages that we will allow to be mapped will have
|
* Any Xen-heap pages that we will allow to be mapped will have
|
||||||
* their domain field set to dom_xen.
|
* their domain field set to dom_xen.
|
||||||
@ -234,8 +244,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
BUG_ON(dom_cow == NULL);
|
BUG_ON(dom_cow == NULL);
|
||||||
|
|
||||||
/* First 1MB of RAM is historically marked as I/O. */
|
/* First 1MB of RAM is historically marked as I/O. */
|
||||||
--- a/xen/arch/x86/platform_hypercall.c
|
Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c
|
||||||
+++ b/xen/arch/x86/platform_hypercall.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/platform_hypercall.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c
|
||||||
@@ -19,6 +19,7 @@
|
@@ -19,6 +19,7 @@
|
||||||
#include <xen/iocap.h>
|
#include <xen/iocap.h>
|
||||||
#include <xen/guest_access.h>
|
#include <xen/guest_access.h>
|
||||||
@ -295,8 +307,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
--- a/xen/arch/x86/setup.c
|
Index: xen-4.0.0-testing/xen/arch/x86/setup.c
|
||||||
+++ b/xen/arch/x86/setup.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/setup.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/setup.c
|
||||||
@@ -2,6 +2,7 @@
|
@@ -2,6 +2,7 @@
|
||||||
#include <xen/init.h>
|
#include <xen/init.h>
|
||||||
#include <xen/lib.h>
|
#include <xen/lib.h>
|
||||||
@ -329,8 +343,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) )
|
if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) )
|
||||||
panic("Error creating domain 0\n");
|
panic("Error creating domain 0\n");
|
||||||
|
|
||||||
--- a/xen/arch/x86/smpboot.c
|
Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c
|
||||||
+++ b/xen/arch/x86/smpboot.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/smpboot.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/smpboot.c
|
||||||
@@ -39,6 +39,7 @@
|
@@ -39,6 +39,7 @@
|
||||||
#include <xen/mm.h>
|
#include <xen/mm.h>
|
||||||
#include <xen/domain.h>
|
#include <xen/domain.h>
|
||||||
@ -356,8 +372,8 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
*/
|
*/
|
||||||
int alloc_cpu_id(void)
|
int alloc_cpu_id(void)
|
||||||
{
|
{
|
||||||
@@ -1306,10 +1306,11 @@ int __cpu_disable(void)
|
@@ -1303,10 +1303,11 @@ int __cpu_disable(void)
|
||||||
__sync_lazy_execstate();
|
remove_siblinginfo(cpu);
|
||||||
|
|
||||||
/* It's now safe to remove this processor from the online map */
|
/* It's now safe to remove this processor from the online map */
|
||||||
+ cpu_clear(cpu, cpupool0->cpu_valid);
|
+ cpu_clear(cpu, cpupool0->cpu_valid);
|
||||||
@ -369,20 +385,22 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1343,10 +1344,10 @@ int cpu_down(unsigned int cpu)
|
@@ -1340,12 +1341,12 @@ int cpu_down(unsigned int cpu)
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
||||||
- if (!spin_trylock(&cpu_add_remove_lock))
|
- if (!spin_trylock(&cpu_add_remove_lock)) {
|
||||||
+ if (!spin_trylock(&cpupool_lock))
|
+ if (!spin_trylock(&cpupool_lock)) {
|
||||||
return -EBUSY;
|
err = -EBUSY;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
- if (num_online_cpus() == 1) {
|
- if (num_online_cpus() == 1) {
|
||||||
+ if ((!cpu_isset(cpu, cpupool0->cpu_valid)) || (cpus_weight(cpupool0->cpu_valid) == 1)) {
|
+ if ((!cpu_isset(cpu, cpupool0->cpu_valid)) || (cpus_weight(cpupool0->cpu_valid) == 1)) {
|
||||||
err = -EBUSY;
|
err = -EBUSY;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -1379,7 +1380,7 @@ int cpu_down(unsigned int cpu)
|
@@ -1378,7 +1379,7 @@ int cpu_down(unsigned int cpu)
|
||||||
out:
|
out:
|
||||||
if (!err)
|
if (!err)
|
||||||
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
|
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
|
||||||
@ -391,7 +409,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1388,7 +1389,7 @@ int cpu_up(unsigned int cpu)
|
@@ -1387,7 +1388,7 @@ int cpu_up(unsigned int cpu)
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
||||||
@ -400,7 +418,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
if (cpu_online(cpu)) {
|
if (cpu_online(cpu)) {
|
||||||
@@ -1406,7 +1407,7 @@ int cpu_up(unsigned int cpu)
|
@@ -1405,7 +1406,7 @@ int cpu_up(unsigned int cpu)
|
||||||
out:
|
out:
|
||||||
if (!err)
|
if (!err)
|
||||||
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
|
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
|
||||||
@ -409,7 +427,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1492,14 +1493,14 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
@@ -1491,14 +1492,14 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
||||||
return -EEXIST;
|
return -EEXIST;
|
||||||
|
|
||||||
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
/* spin_trylock() avoids deadlock with stop_machine_run(). */
|
||||||
@ -426,7 +444,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return cpu;
|
return cpu;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1516,7 +1517,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
@@ -1515,7 +1516,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
||||||
"Setup node failed for pxm %x\n", pxm);
|
"Setup node failed for pxm %x\n", pxm);
|
||||||
x86_acpiid_to_apicid[acpi_id] = 0xff;
|
x86_acpiid_to_apicid[acpi_id] = 0xff;
|
||||||
mp_unregister_lapic(apic_id, cpu);
|
mp_unregister_lapic(apic_id, cpu);
|
||||||
@ -435,7 +453,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
apicid_to_node[apic_id] = node;
|
apicid_to_node[apic_id] = node;
|
||||||
@@ -1524,7 +1525,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
@@ -1523,7 +1524,7 @@ int cpu_add(uint32_t apic_id, uint32_t a
|
||||||
|
|
||||||
srat_detect_node(cpu);
|
srat_detect_node(cpu);
|
||||||
numa_add_cpu(cpu);
|
numa_add_cpu(cpu);
|
||||||
@ -444,7 +462,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
dprintk(XENLOG_INFO, "Add CPU %x with index %x\n", apic_id, cpu);
|
dprintk(XENLOG_INFO, "Add CPU %x with index %x\n", apic_id, cpu);
|
||||||
return cpu;
|
return cpu;
|
||||||
}
|
}
|
||||||
@@ -1568,6 +1569,7 @@ int __devinit __cpu_up(unsigned int cpu)
|
@@ -1567,6 +1568,7 @@ int __devinit __cpu_up(unsigned int cpu)
|
||||||
process_pending_softirqs();
|
process_pending_softirqs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,8 +470,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
cpufreq_add_cpu(cpu);
|
cpufreq_add_cpu(cpu);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
--- a/xen/arch/x86/sysctl.c
|
Index: xen-4.0.0-testing/xen/arch/x86/sysctl.c
|
||||||
+++ b/xen/arch/x86/sysctl.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/arch/x86/sysctl.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/sysctl.c
|
||||||
@@ -29,7 +29,7 @@
|
@@ -29,7 +29,7 @@
|
||||||
|
|
||||||
#define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0)
|
#define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0)
|
||||||
@ -472,8 +492,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
break;
|
break;
|
||||||
case XEN_SYSCTL_CPU_HOTPLUG_STATUS:
|
case XEN_SYSCTL_CPU_HOTPLUG_STATUS:
|
||||||
ret = 0;
|
ret = 0;
|
||||||
--- a/xen/common/Makefile
|
Index: xen-4.0.0-testing/xen/common/Makefile
|
||||||
+++ b/xen/common/Makefile
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/Makefile
|
||||||
|
+++ xen-4.0.0-testing/xen/common/Makefile
|
||||||
@@ -1,5 +1,6 @@
|
@@ -1,5 +1,6 @@
|
||||||
obj-y += bitmap.o
|
obj-y += bitmap.o
|
||||||
obj-y += cpu.o
|
obj-y += cpu.o
|
||||||
@ -481,8 +503,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
obj-y += domctl.o
|
obj-y += domctl.o
|
||||||
obj-y += domain.o
|
obj-y += domain.o
|
||||||
obj-y += event_channel.o
|
obj-y += event_channel.o
|
||||||
|
Index: xen-4.0.0-testing/xen/common/cpupool.c
|
||||||
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/xen/common/cpupool.c
|
+++ xen-4.0.0-testing/xen/common/cpupool.c
|
||||||
@@ -0,0 +1,570 @@
|
@@ -0,0 +1,570 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * cpupool.c
|
+ * cpupool.c
|
||||||
@ -1054,8 +1078,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
+ * indent-tabs-mode: nil
|
+ * indent-tabs-mode: nil
|
||||||
+ * End:
|
+ * End:
|
||||||
+ */
|
+ */
|
||||||
--- a/xen/common/domain.c
|
Index: xen-4.0.0-testing/xen/common/domain.c
|
||||||
+++ b/xen/common/domain.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/domain.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/domain.c
|
||||||
@@ -209,7 +209,7 @@ static void __init parse_extra_guest_irq
|
@@ -209,7 +209,7 @@ static void __init parse_extra_guest_irq
|
||||||
custom_param("extra_guest_irqs", parse_extra_guest_irqs);
|
custom_param("extra_guest_irqs", parse_extra_guest_irqs);
|
||||||
|
|
||||||
@ -1084,8 +1110,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
sched_destroy_domain(d);
|
sched_destroy_domain(d);
|
||||||
|
|
||||||
/* Free page used by xen oprofile buffer. */
|
/* Free page used by xen oprofile buffer. */
|
||||||
--- a/xen/common/domctl.c
|
Index: xen-4.0.0-testing/xen/common/domctl.c
|
||||||
+++ b/xen/common/domctl.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/domctl.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/domctl.c
|
||||||
@@ -11,6 +11,7 @@
|
@@ -11,6 +11,7 @@
|
||||||
#include <xen/lib.h>
|
#include <xen/lib.h>
|
||||||
#include <xen/mm.h>
|
#include <xen/mm.h>
|
||||||
@ -1192,8 +1220,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
default:
|
default:
|
||||||
ret = arch_do_domctl(op, u_domctl);
|
ret = arch_do_domctl(op, u_domctl);
|
||||||
break;
|
break;
|
||||||
--- a/xen/common/sched_credit.c
|
Index: xen-4.0.0-testing/xen/common/sched_credit.c
|
||||||
+++ b/xen/common/sched_credit.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/sched_credit.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/sched_credit.c
|
||||||
@@ -70,11 +70,15 @@
|
@@ -70,11 +70,15 @@
|
||||||
/*
|
/*
|
||||||
* Useful macros
|
* Useful macros
|
||||||
@ -1380,8 +1410,8 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
* like run two VCPUs on co-hyperthreads while there are idle cores
|
* like run two VCPUs on co-hyperthreads while there are idle cores
|
||||||
* or sockets.
|
* or sockets.
|
||||||
*/
|
*/
|
||||||
- cpus_and(idlers, cpu_online_map, csched_priv.idlers);
|
- idlers = csched_priv.idlers;
|
||||||
+ cpus_and(idlers, cpu_online_map, CSCHED_PRIV(ops)->idlers);
|
+ idlers = CSCHED_PRIV(ops)->idlers;
|
||||||
cpu_set(cpu, idlers);
|
cpu_set(cpu, idlers);
|
||||||
cpus_and(cpus, cpus, idlers);
|
cpus_and(cpus, cpus, idlers);
|
||||||
cpu_clear(cpu, cpus);
|
cpu_clear(cpu, cpus);
|
||||||
@ -2060,7 +2090,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
.destroy_vcpu = csched_vcpu_destroy,
|
.destroy_vcpu = csched_vcpu_destroy,
|
||||||
|
|
||||||
.sleep = csched_vcpu_sleep,
|
.sleep = csched_vcpu_sleep,
|
||||||
@@ -1411,6 +1547,11 @@ const struct scheduler sched_credit_def
|
@@ -1411,6 +1547,11 @@ const struct scheduler sched_credit_def
|
||||||
.dump_cpu_state = csched_dump_pcpu,
|
.dump_cpu_state = csched_dump_pcpu,
|
||||||
.dump_settings = csched_dump,
|
.dump_settings = csched_dump,
|
||||||
.init = csched_init,
|
.init = csched_init,
|
||||||
@ -2072,8 +2102,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
.tick_suspend = csched_tick_suspend,
|
.tick_suspend = csched_tick_suspend,
|
||||||
.tick_resume = csched_tick_resume,
|
.tick_resume = csched_tick_resume,
|
||||||
--- a/xen/common/sched_sedf.c
|
Index: xen-4.0.0-testing/xen/common/sched_sedf.c
|
||||||
+++ b/xen/common/sched_sedf.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/sched_sedf.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/sched_sedf.c
|
||||||
@@ -21,6 +21,9 @@
|
@@ -21,6 +21,9 @@
|
||||||
printk(_a ); \
|
printk(_a ); \
|
||||||
} while ( 0 )
|
} while ( 0 )
|
||||||
@ -2315,7 +2347,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
.name = "Simple EDF Scheduler",
|
.name = "Simple EDF Scheduler",
|
||||||
.opt_name = "sedf",
|
.opt_name = "sedf",
|
||||||
.sched_id = XEN_SCHEDULER_SEDF,
|
.sched_id = XEN_SCHEDULER_SEDF,
|
||||||
@@ -1464,9 +1492,13 @@ const struct scheduler sched_sedf_def =
|
@@ -1464,9 +1492,13 @@ const struct scheduler sched_sedf_def =
|
||||||
.init_domain = sedf_init_domain,
|
.init_domain = sedf_init_domain,
|
||||||
.destroy_domain = sedf_destroy_domain,
|
.destroy_domain = sedf_destroy_domain,
|
||||||
|
|
||||||
@ -2330,8 +2362,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
.do_schedule = sedf_do_schedule,
|
.do_schedule = sedf_do_schedule,
|
||||||
.pick_cpu = sedf_pick_cpu,
|
.pick_cpu = sedf_pick_cpu,
|
||||||
.dump_cpu_state = sedf_dump_cpu_state,
|
.dump_cpu_state = sedf_dump_cpu_state,
|
||||||
--- a/xen/common/schedule.c
|
Index: xen-4.0.0-testing/xen/common/schedule.c
|
||||||
+++ b/xen/common/schedule.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/schedule.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/schedule.c
|
||||||
@@ -53,10 +53,11 @@ static void poll_timer_fn(void *data);
|
@@ -53,10 +53,11 @@ static void poll_timer_fn(void *data);
|
||||||
|
|
||||||
/* This is global for now so that private implementations can reach it */
|
/* This is global for now so that private implementations can reach it */
|
||||||
@ -2838,8 +2872,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
--- a/xen/common/softirq.c
|
Index: xen-4.0.0-testing/xen/common/softirq.c
|
||||||
+++ b/xen/common/softirq.c
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/common/softirq.c
|
||||||
|
+++ xen-4.0.0-testing/xen/common/softirq.c
|
||||||
@@ -88,9 +88,11 @@ void raise_softirq(unsigned int nr)
|
@@ -88,9 +88,11 @@ void raise_softirq(unsigned int nr)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2933,8 +2969,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
|
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
|
||||||
}
|
}
|
||||||
|
|
||||||
--- a/xen/include/asm-x86/domain.h
|
Index: xen-4.0.0-testing/xen/include/asm-x86/domain.h
|
||||||
+++ b/xen/include/asm-x86/domain.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/asm-x86/domain.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/asm-x86/domain.h
|
||||||
@@ -451,7 +451,8 @@ struct arch_vcpu
|
@@ -451,7 +451,8 @@ struct arch_vcpu
|
||||||
#define hvm_svm hvm_vcpu.u.svm
|
#define hvm_svm hvm_vcpu.u.svm
|
||||||
|
|
||||||
@ -2945,8 +2983,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
void vcpu_show_execution_state(struct vcpu *);
|
void vcpu_show_execution_state(struct vcpu *);
|
||||||
void vcpu_show_registers(const struct vcpu *);
|
void vcpu_show_registers(const struct vcpu *);
|
||||||
--- a/xen/include/asm-x86/smp.h
|
Index: xen-4.0.0-testing/xen/include/asm-x86/smp.h
|
||||||
+++ b/xen/include/asm-x86/smp.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/asm-x86/smp.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/asm-x86/smp.h
|
||||||
@@ -56,7 +56,6 @@ extern u32 cpu_2_logical_apicid[];
|
@@ -56,7 +56,6 @@ extern u32 cpu_2_logical_apicid[];
|
||||||
#define CPU_ONLINE 0x0002 /* CPU is up */
|
#define CPU_ONLINE 0x0002 /* CPU is up */
|
||||||
#define CPU_DEAD 0x0004 /* CPU is dead */
|
#define CPU_DEAD 0x0004 /* CPU is dead */
|
||||||
@ -2955,8 +2995,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
|
|
||||||
#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
|
#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
|
||||||
extern int cpu_down(unsigned int cpu);
|
extern int cpu_down(unsigned int cpu);
|
||||||
--- a/xen/include/public/domctl.h
|
Index: xen-4.0.0-testing/xen/include/public/domctl.h
|
||||||
+++ b/xen/include/public/domctl.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/public/domctl.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/public/domctl.h
|
||||||
@@ -60,10 +60,14 @@ struct xen_domctl_createdomain {
|
@@ -60,10 +60,14 @@ struct xen_domctl_createdomain {
|
||||||
/* Should domain memory integrity be verifed by tboot during Sx? */
|
/* Should domain memory integrity be verifed by tboot during Sx? */
|
||||||
#define _XEN_DOMCTL_CDF_s3_integrity 2
|
#define _XEN_DOMCTL_CDF_s3_integrity 2
|
||||||
@ -3028,8 +3070,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
#if defined(__i386__) || defined(__x86_64__)
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
struct xen_domctl_cpuid cpuid;
|
struct xen_domctl_cpuid cpuid;
|
||||||
#endif
|
#endif
|
||||||
--- a/xen/include/xen/sched-if.h
|
Index: xen-4.0.0-testing/xen/include/xen/sched-if.h
|
||||||
+++ b/xen/include/xen/sched-if.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/xen/sched-if.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/xen/sched-if.h
|
||||||
@@ -10,16 +10,29 @@
|
@@ -10,16 +10,29 @@
|
||||||
|
|
||||||
#include <xen/percpu.h>
|
#include <xen/percpu.h>
|
||||||
@ -3122,9 +3166,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
+struct scheduler *scheduler_get_by_id(unsigned int id);
|
+struct scheduler *scheduler_get_by_id(unsigned int id);
|
||||||
+
|
+
|
||||||
#endif /* __XEN_SCHED_IF_H__ */
|
#endif /* __XEN_SCHED_IF_H__ */
|
||||||
--- a/xen/include/xen/sched.h
|
Index: xen-4.0.0-testing/xen/include/xen/sched.h
|
||||||
+++ b/xen/include/xen/sched.h
|
===================================================================
|
||||||
@@ -132,8 +132,6 @@ struct vcpu
|
--- xen-4.0.0-testing.orig/xen/include/xen/sched.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/xen/sched.h
|
||||||
|
@@ -132,8 +132,6 @@ struct vcpu
|
||||||
bool_t defer_shutdown;
|
bool_t defer_shutdown;
|
||||||
/* VCPU is paused following shutdown request (d->is_shutting_down)? */
|
/* VCPU is paused following shutdown request (d->is_shutting_down)? */
|
||||||
bool_t paused_for_shutdown;
|
bool_t paused_for_shutdown;
|
||||||
@ -3196,8 +3242,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
|
|||||||
#endif /* __SCHED_H__ */
|
#endif /* __SCHED_H__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
--- a/xen/include/xen/softirq.h
|
Index: xen-4.0.0-testing/xen/include/xen/softirq.h
|
||||||
+++ b/xen/include/xen/softirq.h
|
===================================================================
|
||||||
|
--- xen-4.0.0-testing.orig/xen/include/xen/softirq.h
|
||||||
|
+++ xen-4.0.0-testing/xen/include/xen/softirq.h
|
||||||
@@ -58,6 +58,7 @@ struct tasklet
|
@@ -58,6 +58,7 @@ struct tasklet
|
||||||
struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data }
|
struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data }
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
--- a/xen/arch/x86/domain.c
|
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
+++ b/xen/arch/x86/domain.c
|
===================================================================
|
||||||
@@ -144,14 +144,29 @@ void dump_pageframe_info(struct domain *
|
--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c
|
||||||
|
+++ xen-4.0.0-testing/xen/arch/x86/domain.c
|
||||||
|
@@ -144,7 +144,7 @@ void dump_pageframe_info(struct domain *
|
||||||
|
|
||||||
printk("Memory pages belonging to domain %u:\n", d->domain_id);
|
printk("Memory pages belonging to domain %u:\n", d->domain_id);
|
||||||
|
|
||||||
@ -9,17 +11,11 @@
|
|||||||
{
|
{
|
||||||
printk(" DomPage list too long to display\n");
|
printk(" DomPage list too long to display\n");
|
||||||
}
|
}
|
||||||
else
|
@@ -152,6 +152,15 @@ void dump_pageframe_info(struct domain *
|
||||||
{
|
{
|
||||||
+ unsigned long total[PGT_type_mask
|
|
||||||
+ / (PGT_type_mask & -PGT_type_mask) + 1] = {};
|
|
||||||
+
|
|
||||||
page_list_for_each ( page, &d->page_list )
|
page_list_for_each ( page, &d->page_list )
|
||||||
{
|
{
|
||||||
+ unsigned int index = (page->u.inuse.type_info & PGT_type_mask)
|
+ if ( d->tot_pages > 16 )
|
||||||
+ / (PGT_type_mask & -PGT_type_mask);
|
|
||||||
+
|
|
||||||
+ if ( ++total[index] > 16 )
|
|
||||||
+ {
|
+ {
|
||||||
+ switch ( page->u.inuse.type_info & PGT_type_mask )
|
+ switch ( page->u.inuse.type_info & PGT_type_mask )
|
||||||
+ {
|
+ {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
### BEGIN INIT INFO
|
### BEGIN INIT INFO
|
||||||
# Provides: xendomains
|
# Provides: xendomains
|
||||||
# Required-Start: $syslog $remote_fs xend
|
# Required-Start: $syslog $remote_fs xend
|
||||||
# Should-Start: iscsi o2cb ocfs2 openais
|
# Should-Start: iscsi o2cb ocfs2
|
||||||
# Required-Stop: $syslog $remote_fs xend
|
# Required-Stop: $syslog $remote_fs xend
|
||||||
# Should-Stop: iscsi
|
# Should-Stop: iscsi
|
||||||
# Default-Start: 3 5
|
# Default-Start: 3 5
|
||||||
@ -89,11 +89,7 @@ dir_contains_something()
|
|||||||
|
|
||||||
get_name_from_cfg()
|
get_name_from_cfg()
|
||||||
{
|
{
|
||||||
if grep -q "^name" "$1";then
|
NM=`grep '^name[ ]*=' "$1" | sed -e 's/^name[ ]*=[ ]*['\''"]\([^'\''"]*\)['\''"].*$/\1/'`
|
||||||
NM=`grep '^name[ ]*=' "$1" | sed -e 's/^name[ ]*=[ ]*['\''"]\([^'\''"]*\)['\''"].*$/\1/'`
|
|
||||||
elif grep -q "(name " "$1";then
|
|
||||||
NM=`grep '(name ' "$1" | sed -e 's/^ *//' | cut -d " " -f 2 | sed -e 's/)//'`
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
running_auto_names()
|
running_auto_names()
|
||||||
@ -183,16 +179,12 @@ start()
|
|||||||
if is_cfg_running "$dom"; then
|
if is_cfg_running "$dom"; then
|
||||||
rc_status -s
|
rc_status -s
|
||||||
else
|
else
|
||||||
if grep -q "^name" "$dom";then
|
xm create --quiet --defconfig "$dom"
|
||||||
xm create --quiet --defconfig "$dom"
|
|
||||||
elif grep -q "(name .*" "$dom";then
|
|
||||||
xm create --quiet --config "$dom"
|
|
||||||
fi
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
rc_failed
|
rc_failed
|
||||||
else
|
else
|
||||||
usleep $XENDOMAINS_CREATE_USLEEP
|
usleep $XENDOMAINS_CREATE_USLEEP
|
||||||
rc_reset
|
rc_reset
|
||||||
fi
|
fi
|
||||||
rc_status -v
|
rc_status -v
|
||||||
fi
|
fi
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -r c02cc832cb2d tools/python/xen/xend/server/BlktapController.py
|
|
||||||
--- a/tools/python/xen/xend/server/BlktapController.py Tue Apr 13 18:19:33 2010 +0100
|
|
||||||
+++ b/tools/python/xen/xend/server/BlktapController.py Fri Apr 16 12:05:39 2010 -0600
|
|
||||||
@@ -189,7 +189,7 @@
|
|
||||||
blktap2_installed=1;
|
|
||||||
|
|
||||||
if typ in ('tap'):
|
|
||||||
- if subtyp in ('tapdisk'):
|
|
||||||
+ if subtyp in ('tapdisk', 'ioemu'):
|
|
||||||
if params not in blktap2_disk_types or not blktap2_installed:
|
|
||||||
# pass this device off to BlktapController
|
|
||||||
log.warn('WARNING: using deprecated blktap module')
|
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:dae429f07e7c09ed55f941d3ad7cbfe39f9e29d93da70df13594acaa2ee9f34b
|
oid sha256:8696f3d4de6d66bce133e78e990c409053ba057fe13c708e763d32b3b4deb2cc
|
||||||
size 23205463
|
size 23204532
|
||||||
|
@ -7,9 +7,9 @@ Index: xen-4.0.0-testing/Config.mk
|
|||||||
# Mercurial in-tree version, or a local directory, or a git URL.
|
# Mercurial in-tree version, or a local directory, or a git URL.
|
||||||
# CONFIG_QEMU ?= ../qemu-xen.git
|
# CONFIG_QEMU ?= ../qemu-xen.git
|
||||||
-CONFIG_QEMU ?= $(QEMU_REMOTE)
|
-CONFIG_QEMU ?= $(QEMU_REMOTE)
|
||||||
+CONFIG_QEMU ?= ioemu-remote
|
+CONFIG_QEMU ?= ioemu-remote
|
||||||
|
|
||||||
QEMU_TAG := xen-4.0.0
|
QEMU_TAG := xen-4.0.0-rc9
|
||||||
#QEMU_TAG ?= f1d909f0f854194f5a40d850886d1413fb8b63c2
|
#QEMU_TAG ?= f1d909f0f854194f5a40d850886d1413fb8b63c2
|
||||||
@@ -167,9 +167,9 @@ CONFIG_OCAML_XENSTORED ?= n
|
@@ -167,9 +167,9 @@ CONFIG_OCAML_XENSTORED ?= n
|
||||||
# Optional components
|
# Optional components
|
||||||
|
@ -13,13 +13,11 @@ Index: xen-4.0.0-testing/tools/python/xen/util/blkif.py
|
|||||||
if uname.find(":") != -1:
|
if uname.find(":") != -1:
|
||||||
(typ, fn) = uname.split(":", 1)
|
(typ, fn) = uname.split(":", 1)
|
||||||
|
|
||||||
@@ -88,15 +88,18 @@ def _parse_uname(uname):
|
@@ -88,15 +88,16 @@ def _parse_uname(uname):
|
||||||
|
|
||||||
if typ == "tap":
|
if typ == "tap":
|
||||||
(taptype, fn) = fn.split(":", 1)
|
(taptype, fn) = fn.split(":", 1)
|
||||||
- return (fn, taptype)
|
- return (fn, taptype)
|
||||||
+ if taptype in ("tapdisk", "ioemu"):
|
|
||||||
+ (taptype, fn) = fn.split(":", 1)
|
|
||||||
+ return (fn, (typ, taptype))
|
+ return (fn, (typ, taptype))
|
||||||
+ return (fn, (typ,taptype))
|
+ return (fn, (typ,taptype))
|
||||||
|
|
||||||
|
29
xen.changes
29
xen.changes
@ -1,32 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Fri Apr 16 15:00:52 MDT 2010 - jfehlig@novell.com
|
|
||||||
|
|
||||||
- bnc#569194 - Tools-side fixes for tapdisk protocol specification
|
|
||||||
blktap-script.patch
|
|
||||||
ioemu-subtype.patch
|
|
||||||
Modified xen-domUloader.diff
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Wed Apr 14 08:14:31 MDT 2010 - carnold@novell.com
|
|
||||||
|
|
||||||
- Upstream bug fixes from Jan
|
|
||||||
21089-x86-startup-irq-from-setup-gsi.patch
|
|
||||||
21109-x86-cpu-hotplug.patch
|
|
||||||
21150-shadow-race.patch
|
|
||||||
21160-sysctl-debug-keys.patch
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Fri Apr 9 12:38:47 MDT 2010 - jfehlig@novell.com
|
|
||||||
|
|
||||||
- Updated to Xen 4.0.0 FCS, changeset 21091
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Tue Apr 6 18:18:36 MDT 2010 - jfehlig@novell.com
|
|
||||||
|
|
||||||
- Change default lock dir (when domain locking is enabled) to
|
|
||||||
/var/lib/xen/images/vm_locks
|
|
||||||
- Support SXP config files in xendomains script
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Mar 31 08:09:49 MDT 2010 - carnold@novell.com
|
Tue Mar 31 08:09:49 MDT 2010 - carnold@novell.com
|
||||||
|
|
||||||
|
22
xen.spec
22
xen.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package xen (Version 4.0.0_21091_01)
|
# spec file for package xen (Version 4.0.0_21087_01)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -22,9 +22,9 @@ Name: xen
|
|||||||
ExclusiveArch: %ix86 x86_64
|
ExclusiveArch: %ix86 x86_64
|
||||||
%define xvers 4.0
|
%define xvers 4.0
|
||||||
%define xvermaj 4
|
%define xvermaj 4
|
||||||
%define changeset 21091
|
%define changeset 21087
|
||||||
%define xen_build_dir xen-4.0.0-testing
|
%define xen_build_dir xen-4.0.0-testing
|
||||||
%define with_kmp 1
|
%define with_kmp 0
|
||||||
BuildRequires: LibVNCServer-devel SDL-devel acpica automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
|
BuildRequires: LibVNCServer-devel SDL-devel acpica automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
|
||||||
%if %suse_version >= 1030
|
%if %suse_version >= 1030
|
||||||
BuildRequires: texlive texlive-latex
|
BuildRequires: texlive texlive-latex
|
||||||
@ -42,7 +42,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: 4.0.0_21091_01
|
Version: 4.0.0_21087_01
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: System/Kernel
|
Group: System/Kernel
|
||||||
@ -78,13 +78,6 @@ 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: 21089-x86-startup-irq-from-setup-gsi.patch
|
|
||||||
Patch1: 21109-x86-cpu-hotplug.patch
|
|
||||||
Patch2: 21128-domain-save-flush.patch
|
|
||||||
Patch3: 21150-shadow-race.patch
|
|
||||||
Patch4: 21160-sysctl-debug-keys.patch
|
|
||||||
Patch5: blktap-script.patch
|
|
||||||
Patch6: ioemu-subtype.patch
|
|
||||||
# Our patches
|
# Our patches
|
||||||
Patch300: xen-config.diff
|
Patch300: xen-config.diff
|
||||||
Patch301: xend-config.diff
|
Patch301: xend-config.diff
|
||||||
@ -527,13 +520,6 @@ Authors:
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %xen_build_dir
|
%setup -q -n %xen_build_dir
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
%patch300 -p1
|
%patch300 -p1
|
||||||
%patch301 -p1
|
%patch301 -p1
|
||||||
%patch302 -p1
|
%patch302 -p1
|
||||||
|
@ -21,7 +21,7 @@ Index: xen-4.0.0-testing/tools/examples/xend-config.sxp
|
|||||||
+# Note: This path must be accessible to all VM Servers participating
|
+# Note: This path must be accessible to all VM Servers participating
|
||||||
+# in domain locking, e.g. by specifying a shared mount point.
|
+# in domain locking, e.g. by specifying a shared mount point.
|
||||||
+# Lock is placed in /<xend-domain-lock-path>/<domain-uuid>.
|
+# Lock is placed in /<xend-domain-lock-path>/<domain-uuid>.
|
||||||
+# Default is /var/lib/xen/images/vm_locks/
|
+# Default is /var/lib/xend/domains/
|
||||||
+#
|
+#
|
||||||
+#(xend-domain-lock-path /var/lib/xend/domains)
|
+#(xend-domain-lock-path /var/lib/xend/domains)
|
||||||
+
|
+
|
||||||
@ -191,7 +191,7 @@ Index: xen-4.0.0-testing/tools/python/xen/xend/XendOptions.py
|
|||||||
+ xend_domain_lock = 'no'
|
+ xend_domain_lock = 'no'
|
||||||
+
|
+
|
||||||
+ """Default domain lock storage path."""
|
+ """Default domain lock storage path."""
|
||||||
+ xend_domain_lock_path_default = '/var/lib/xen/images/vm_locks'
|
+ xend_domain_lock_path_default = '/var/lib/xend/domains'
|
||||||
+
|
+
|
||||||
+ """Default script to acquire/release domain lock"""
|
+ """Default script to acquire/release domain lock"""
|
||||||
+ xend_domain_lock_utility = auxbin.scripts_dir() + "/domain-lock"
|
+ xend_domain_lock_utility = auxbin.scripts_dir() + "/domain-lock"
|
||||||
|
Loading…
Reference in New Issue
Block a user