SHA256
1
0
forked from pool/xen

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:
OBS User autobuild
2010-04-18 22:21:05 +00:00
committed by Git OBS Bridge
parent f46075e596
commit ce2ee9452b
17 changed files with 160 additions and 573 deletions

View File

@@ -1,7 +1,9 @@
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
Index: xen-4.0.0-testing/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)
return error;
}
@@ -20,9 +22,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
}
static int acpi_get_wake_status(void)
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1518,42 +1518,52 @@ void sync_vcpu_execstate(struct vcpu *v)
Index: xen-4.0.0-testing/xen/arch/x86/domain.c
===================================================================
--- 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 {
@@ -92,7 +96,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
info = v->arch.continue_info;
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 )
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.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
{
BUG_ON(info->nest != 0);
@@ -135,8 +139,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
return 0;
}
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
Index: xen-4.0.0-testing/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 @@
#include <xen/lib.h>
#include <xen/ctype.h>
@@ -177,8 +183,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/* Set up CR3 value for write_ptbase */
if ( paging_mode_enabled(d) )
--- a/xen/arch/x86/microcode.c
+++ b/xen/arch/x86/microcode.c
Index: xen-4.0.0-testing/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
return err;
}
@@ -206,8 +214,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
+ return continue_hypercall_on_cpu(info->cpu, NULL,
+ do_microcode_update, info);
}
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
Index: xen-4.0.0-testing/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)
* Any Xen-heap pages that we will allow to be mapped will have
* their domain field set to dom_xen.
@@ -234,8 +244,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
BUG_ON(dom_cow == NULL);
/* First 1MB of RAM is historically marked as I/O. */
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
Index: xen-4.0.0-testing/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 @@
#include <xen/iocap.h>
#include <xen/guest_access.h>
@@ -295,8 +307,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
break;
}
break;
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
Index: xen-4.0.0-testing/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 @@
#include <xen/init.h>
#include <xen/lib.h>
@@ -329,8 +343,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) )
panic("Error creating domain 0\n");
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
Index: xen-4.0.0-testing/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 @@
#include <xen/mm.h>
#include <xen/domain.h>
@@ -356,8 +372,8 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
*/
int alloc_cpu_id(void)
{
@@ -1306,10 +1306,11 @@ int __cpu_disable(void)
__sync_lazy_execstate();
@@ -1303,10 +1303,11 @@ int __cpu_disable(void)
remove_siblinginfo(cpu);
/* It's now safe to remove this processor from the online map */
+ cpu_clear(cpu, cpupool0->cpu_valid);
@@ -369,20 +385,22 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
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;
/* spin_trylock() avoids deadlock with stop_machine_run(). */
- if (!spin_trylock(&cpu_add_remove_lock))
+ if (!spin_trylock(&cpupool_lock))
return -EBUSY;
- if (!spin_trylock(&cpu_add_remove_lock)) {
+ if (!spin_trylock(&cpupool_lock)) {
err = -EBUSY;
goto out;
}
- if (num_online_cpus() == 1) {
+ if ((!cpu_isset(cpu, cpupool0->cpu_valid)) || (cpus_weight(cpupool0->cpu_valid) == 1)) {
err = -EBUSY;
goto out;
}
@@ -1379,7 +1380,7 @@ int cpu_down(unsigned int cpu)
@@ -1378,7 +1379,7 @@ int cpu_down(unsigned int cpu)
out:
if (!err)
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
@@ -391,7 +409,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
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;
/* spin_trylock() avoids deadlock with stop_machine_run(). */
@@ -400,7 +418,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
return -EBUSY;
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:
if (!err)
send_guest_global_virq(dom0, VIRQ_PCPU_STATE);
@@ -409,7 +427,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
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;
/* spin_trylock() avoids deadlock with stop_machine_run(). */
@@ -426,7 +444,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
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);
x86_acpiid_to_apicid[acpi_id] = 0xff;
mp_unregister_lapic(apic_id, cpu);
@@ -435,7 +453,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
return 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);
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);
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();
}
@@ -452,8 +470,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
cpufreq_add_cpu(cpu);
return 0;
}
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
Index: xen-4.0.0-testing/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 @@
#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;
case XEN_SYSCTL_CPU_HOTPLUG_STATUS:
ret = 0;
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
Index: xen-4.0.0-testing/xen/common/Makefile
===================================================================
--- xen-4.0.0-testing.orig/xen/common/Makefile
+++ xen-4.0.0-testing/xen/common/Makefile
@@ -1,5 +1,6 @@
obj-y += bitmap.o
obj-y += cpu.o
@@ -481,8 +503,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
obj-y += domctl.o
obj-y += domain.o
obj-y += event_channel.o
Index: xen-4.0.0-testing/xen/common/cpupool.c
===================================================================
--- /dev/null
+++ b/xen/common/cpupool.c
+++ xen-4.0.0-testing/xen/common/cpupool.c
@@ -0,0 +1,570 @@
+/******************************************************************************
+ * cpupool.c
@@ -1054,8 +1078,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
Index: xen-4.0.0-testing/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
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);
/* Free page used by xen oprofile buffer. */
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
Index: xen-4.0.0-testing/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 @@
#include <xen/lib.h>
#include <xen/mm.h>
@@ -1192,8 +1220,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
default:
ret = arch_do_domctl(op, u_domctl);
break;
--- a/xen/common/sched_credit.c
+++ b/xen/common/sched_credit.c
Index: xen-4.0.0-testing/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 @@
/*
* 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
* or sockets.
*/
- cpus_and(idlers, cpu_online_map, csched_priv.idlers);
+ cpus_and(idlers, cpu_online_map, CSCHED_PRIV(ops)->idlers);
- idlers = csched_priv.idlers;
+ idlers = CSCHED_PRIV(ops)->idlers;
cpu_set(cpu, idlers);
cpus_and(cpus, cpus, idlers);
cpu_clear(cpu, cpus);
@@ -2060,7 +2090,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.destroy_vcpu = csched_vcpu_destroy,
.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_settings = csched_dump,
.init = csched_init,
@@ -2072,8 +2102,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.tick_suspend = csched_tick_suspend,
.tick_resume = csched_tick_resume,
--- a/xen/common/sched_sedf.c
+++ b/xen/common/sched_sedf.c
Index: xen-4.0.0-testing/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 @@
printk(_a ); \
} while ( 0 )
@@ -2315,7 +2347,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.name = "Simple EDF Scheduler",
.opt_name = "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,
.destroy_domain = sedf_destroy_domain,
@@ -2330,8 +2362,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.do_schedule = sedf_do_schedule,
.pick_cpu = sedf_pick_cpu,
.dump_cpu_state = sedf_dump_cpu_state,
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
Index: xen-4.0.0-testing/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);
/* 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
--- a/xen/common/softirq.c
+++ b/xen/common/softirq.c
Index: xen-4.0.0-testing/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)
}
@@ -2933,8 +2969,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
}
--- a/xen/include/asm-x86/domain.h
+++ b/xen/include/asm-x86/domain.h
Index: xen-4.0.0-testing/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
#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_registers(const struct vcpu *);
--- a/xen/include/asm-x86/smp.h
+++ b/xen/include/asm-x86/smp.h
Index: xen-4.0.0-testing/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[];
#define CPU_ONLINE 0x0002 /* CPU is up */
#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))
extern int cpu_down(unsigned int cpu);
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
Index: xen-4.0.0-testing/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 {
/* Should domain memory integrity be verifed by tboot during Sx? */
#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__)
struct xen_domctl_cpuid cpuid;
#endif
--- a/xen/include/xen/sched-if.h
+++ b/xen/include/xen/sched-if.h
Index: xen-4.0.0-testing/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 @@
#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);
+
#endif /* __XEN_SCHED_IF_H__ */
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -132,8 +132,6 @@ struct vcpu
Index: xen-4.0.0-testing/xen/include/xen/sched.h
===================================================================
--- 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;
/* VCPU is paused following shutdown request (d->is_shutting_down)? */
bool_t paused_for_shutdown;
@@ -3196,8 +3242,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
#endif /* __SCHED_H__ */
/*
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
Index: xen-4.0.0-testing/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
struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data }