- Upstream patches from Jan

23233-hvm-cr-access.patch
  23234-svm-decode-assist-base.patch
  23235-svm-decode-assist-crs.patch
  23236-svm-decode-assist-invlpg.patch
  23238-svm-decode-assist-insn-fetch.patch
  23303-cpufreq-misc.patch
  23304-amd-oprofile-strings.patch
  23305-amd-fam15-xenoprof.patch
  23306-amd-fam15-vpmu.patch
  23334-amd-fam12+14-vpmu.patch
  23338-vtd-force-intremap.patch

- fate#310957 - Update to Xen 4.1.1-rc1 c/s 23064 

- xentrace: dynamic tracebuffer allocation
  xen-unstable.xentrace.dynamic_tbuf.patch
  xen-unstable.xentrace.empty_t_info_pages.patch
  xen-unstable.xentrace.verbose.patch
  xen-unstable.xentrace.no_gdprintk.patch
  xen-unstable.xentrace.comments.patch
  xen-unstable.xentrace.printk_prefix.patch
  xen-unstable.xentrace.remove_debug_printk.patch
  xen-unstable.xentrace.t_info_pages-formula.patch
  xen-unstable.xentrace.register_cpu_notifier-boot_time.patch
  xen-unstable.xentrace.t_info_page-overflow.patch
  xen-unstable.xentrace.t_info_first_offset.patch
  xen-unstable.xentrace.data_size__read_mostly.patch
  xen-unstable.xentrace.__insert_record-dst-type.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=124
This commit is contained in:
Charles Arnold 2011-05-31 17:35:29 +00:00 committed by Git OBS Bridge
parent ef397cbc2b
commit 8547e28bd5
173 changed files with 4064 additions and 3068 deletions

View File

@ -19,8 +19,10 @@ could be introduced.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
Index: xen-4.1.1-testing/xen/arch/x86/mm/shadow/multi.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/mm/shadow/multi.c
+++ xen-4.1.1-testing/xen/arch/x86/mm/shadow/multi.c
@@ -872,7 +872,7 @@ shadow_get_page_from_l1e(shadow_l1e_t sl
// If a privileged domain is attempting to install a map of a page it does
// not own, we let it succeed anyway.
@ -72,8 +74,10 @@ Signed-off-by: Jan Beulich <jbeulich@novell.com>
shadow_vram_get_l1e(new_sl1e, sl1e, sl1mfn, d);
break;
}
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/mm.c
@@ -799,12 +799,12 @@ get_page_from_l1e(
bool_t write;

View File

@ -12,8 +12,10 @@ x86: make mod_l1_entry() return a proper error code
Signed-off-by: Jan Beulich <jbeulich@novell.com>
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/mm.c
@@ -1765,15 +1765,16 @@ static int mod_l1_entry(l1_pgentry_t *pl
struct domain *pt_dom = pt_vcpu->domain;
unsigned long mfn;

View File

@ -11,8 +11,10 @@ track both an okay status and an error code).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/mm.c
@@ -1845,16 +1845,16 @@ static int mod_l2_entry(l2_pgentry_t *pl
struct domain *d = vcpu->domain;
struct page_info *l2pg = mfn_to_page(pfn);

View File

@ -16,10 +16,10 @@ found set by the surrounding loop).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Gang Wei <gang.wei@intel.com>
Index: xen-4.1.0-testing/xen/arch/x86/hpet.c
Index: xen-4.1.1-testing/xen/arch/x86/hpet.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/hpet.c
+++ xen-4.1.0-testing/xen/arch/x86/hpet.c
--- xen-4.1.1-testing.orig/xen/arch/x86/hpet.c
+++ xen-4.1.1-testing/xen/arch/x86/hpet.c
@@ -34,18 +34,6 @@ struct hpet_event_channel
int shift;
s_time_t next_event;

View File

@ -27,8 +27,10 @@ specify the operand suffix as 'l' for good measure.
Signed-off-by: Keir Fraser <keir@xen.org>
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
Index: xen-4.1.1-testing/xen/common/spinlock.c
===================================================================
--- xen-4.1.1-testing.orig/xen/common/spinlock.c
+++ xen-4.1.1-testing/xen/common/spinlock.c
@@ -234,7 +234,11 @@ void _spin_unlock_recursive(spinlock_t *
void _read_lock(rwlock_t *lock)
{
@ -128,8 +130,10 @@ Signed-off-by: Keir Fraser <keir@xen.org>
preempt_disable();
return flags;
}
--- a/xen/include/asm-ia64/linux-xen/asm/spinlock.h
+++ b/xen/include/asm-ia64/linux-xen/asm/spinlock.h
Index: xen-4.1.1-testing/xen/include/asm-ia64/linux-xen/asm/spinlock.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-ia64/linux-xen/asm/spinlock.h
+++ xen-4.1.1-testing/xen/include/asm-ia64/linux-xen/asm/spinlock.h
@@ -35,17 +35,6 @@ typedef struct {
} raw_rwlock_t;
#define _RAW_RW_LOCK_UNLOCKED /*(raw_rwlock_t)*/ { 0, 0 }
@ -186,8 +190,10 @@ Signed-off-by: Keir Fraser <keir@xen.org>
#define _raw_write_trylock(rw) \
({ \
--- a/xen/include/asm-x86/spinlock.h
+++ b/xen/include/asm-x86/spinlock.h
Index: xen-4.1.1-testing/xen/include/asm-x86/spinlock.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/spinlock.h
+++ xen-4.1.1-testing/xen/include/asm-x86/spinlock.h
@@ -35,51 +35,29 @@ typedef struct {
volatile int lock;
} raw_rwlock_t;
@ -270,8 +276,10 @@ Signed-off-by: Keir Fraser <keir@xen.org>
+#define _raw_rw_is_write_locked(x) ((x)->lock > 0)
#endif /* __ASM_SPINLOCK_H */
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
Index: xen-4.1.1-testing/xen/include/xen/spinlock.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/xen/spinlock.h
+++ xen-4.1.1-testing/xen/include/xen/spinlock.h
@@ -157,6 +157,7 @@ unsigned long _read_lock_irqsave(rwlock_
void _read_unlock(rwlock_t *lock);
void _read_unlock_irq(rwlock_t *lock);

View File

@ -8,10 +8,10 @@ guest-bound irq before accessing desc->action.
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.0-testing/xen/arch/x86/irq.c
Index: xen-4.1.1-testing/xen/arch/x86/irq.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/irq.c
+++ xen-4.1.0-testing/xen/arch/x86/irq.c
--- xen-4.1.1-testing.orig/xen/arch/x86/irq.c
+++ xen-4.1.1-testing/xen/arch/x86/irq.c
@@ -1028,6 +1028,12 @@ static void __pirq_guest_eoi(struct doma
return;
}

View File

@ -27,10 +27,10 @@ Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Index: xen-4.1.0-testing/xen/arch/x86/apic.c
Index: xen-4.1.1-testing/xen/arch/x86/apic.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/apic.c
+++ xen-4.1.0-testing/xen/arch/x86/apic.c
--- xen-4.1.1-testing.orig/xen/arch/x86/apic.c
+++ xen-4.1.1-testing/xen/arch/x86/apic.c
@@ -531,7 +531,7 @@ static void resume_x2apic(void)
mask_8259A();
mask_IO_APIC_setup(ioapic_entries);
@ -58,10 +58,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/apic.c
{
if ( x2apic_enabled )
panic("Interrupt remapping could not be enabled while "
Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/dmar.c
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/dmar.c
===================================================================
--- xen-4.1.0-testing.orig/xen/drivers/passthrough/vtd/dmar.c
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/dmar.c
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/dmar.c
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/dmar.c
@@ -46,6 +46,7 @@ LIST_HEAD(acpi_rmrr_units);
LIST_HEAD(acpi_atsr_units);
LIST_HEAD(acpi_rhsa_units);
@ -101,10 +101,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/dmar.c
+ flags = DMAR_INTR_REMAP | DMAR_X2APIC_OPT_OUT;
+ return ((dmar_flags & flags) == DMAR_INTR_REMAP);
+}
Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/extern.h
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/extern.h
===================================================================
--- xen-4.1.0-testing.orig/xen/drivers/passthrough/vtd/extern.h
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/extern.h
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/extern.h
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/extern.h
@@ -87,5 +87,7 @@ void vtd_ops_preamble_quirk(struct iommu
void vtd_ops_postamble_quirk(struct iommu* iommu);
void me_wifi_quirk(struct domain *domain, u8 bus, u8 devfn, int map);
@ -113,10 +113,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/extern.h
+int platform_supports_x2apic(void);
#endif // _VTD_EXTERN_H_
Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/intremap.c
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/intremap.c
===================================================================
--- xen-4.1.0-testing.orig/xen/drivers/passthrough/vtd/intremap.c
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/intremap.c
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/intremap.c
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/intremap.c
@@ -741,6 +741,13 @@ int enable_intremap(struct iommu *iommu,
ASSERT(ecap_intr_remap(iommu->ecap) && iommu_intremap);
@ -163,10 +163,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/intremap.c
{
struct acpi_drhd_unit *drhd;
Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.c
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.c
===================================================================
--- xen-4.1.0-testing.orig/xen/drivers/passthrough/vtd/iommu.c
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.c
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.c
@@ -1997,7 +1997,7 @@ static int init_vtd_hw(void)
if ( enable_intremap(iommu, 0) != 0 )
{
@ -176,10 +176,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.c
break;
}
}
Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.h
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.h
===================================================================
--- xen-4.1.0-testing.orig/xen/drivers/passthrough/vtd/iommu.h
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.h
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/iommu.h
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.h
@@ -22,6 +22,10 @@
#include <xen/types.h>
@ -191,10 +191,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.h
/*
* Intel IOMMU register specification per version 1.0 public spec.
*/
Index: xen-4.1.0-testing/xen/include/xen/iommu.h
Index: xen-4.1.1-testing/xen/include/xen/iommu.h
===================================================================
--- xen-4.1.0-testing.orig/xen/include/xen/iommu.h
+++ xen-4.1.0-testing/xen/include/xen/iommu.h
--- xen-4.1.1-testing.orig/xen/include/xen/iommu.h
+++ xen-4.1.1-testing/xen/include/xen/iommu.h
@@ -63,8 +63,8 @@ struct iommu {
int iommu_setup(void);

View File

@ -9,8 +9,10 @@ This helps us to debug interrupt issues.
Signed-off-by: Wei Wang <wei.wang2@amd.com>
--- a/xen/drivers/passthrough/amd/iommu_map.c
+++ b/xen/drivers/passthrough/amd/iommu_map.c
Index: xen-4.1.1-testing/xen/drivers/passthrough/amd/iommu_map.c
===================================================================
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/amd/iommu_map.c
+++ xen-4.1.1-testing/xen/drivers/passthrough/amd/iommu_map.c
@@ -327,8 +327,9 @@ void amd_iommu_set_intremap_table(u32 *d
set_field_in_reg_u32(0xB, entry,
IOMMU_DEV_TABLE_INT_TABLE_LENGTH_MASK,

435
23233-hvm-cr-access.patch Normal file
View File

@ -0,0 +1,435 @@
References: FATE#309900
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# Date 1303116432 -3600
# Node ID 1276926e3795b11ef6ac2f59df900d8e0ba9f54b
# Parent 07d832ad23021445bc56fafaeb2843c94d868005
vmx/hvm: move mov-cr handling functions to generic HVM code
Currently the handling of CR accesses intercepts is done much
differently in SVM and VMX. For future usage move the VMX part
into the generic HVM path and use the exported functions.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/hvm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/hvm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/hvm.c
@@ -1297,6 +1297,86 @@ static void hvm_set_uc_mode(struct vcpu
return hvm_funcs.set_uc_mode(v);
}
+int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
+{
+ struct vcpu *curr = current;
+ unsigned long val, *reg;
+
+ if ( (reg = get_x86_gpr(guest_cpu_user_regs(), gpr)) == NULL )
+ {
+ gdprintk(XENLOG_ERR, "invalid gpr: %u\n", gpr);
+ goto exit_and_crash;
+ }
+
+ val = *reg;
+ HVMTRACE_LONG_2D(CR_WRITE, cr, TRC_PAR_LONG(val));
+ HVM_DBG_LOG(DBG_LEVEL_1, "CR%u, value = %lx", cr, val);
+
+ switch ( cr )
+ {
+ case 0:
+ return hvm_set_cr0(val);
+
+ case 3:
+ return hvm_set_cr3(val);
+
+ case 4:
+ return hvm_set_cr4(val);
+
+ case 8:
+ vlapic_set_reg(vcpu_vlapic(curr), APIC_TASKPRI, ((val & 0x0f) << 4));
+ break;
+
+ default:
+ gdprintk(XENLOG_ERR, "invalid cr: %d\n", cr);
+ goto exit_and_crash;
+ }
+
+ return X86EMUL_OKAY;
+
+ exit_and_crash:
+ domain_crash(curr->domain);
+ return X86EMUL_UNHANDLEABLE;
+}
+
+int hvm_mov_from_cr(unsigned int cr, unsigned int gpr)
+{
+ struct vcpu *curr = current;
+ unsigned long val = 0, *reg;
+
+ if ( (reg = get_x86_gpr(guest_cpu_user_regs(), gpr)) == NULL )
+ {
+ gdprintk(XENLOG_ERR, "invalid gpr: %u\n", gpr);
+ goto exit_and_crash;
+ }
+
+ switch ( cr )
+ {
+ case 0:
+ case 2:
+ case 3:
+ case 4:
+ val = curr->arch.hvm_vcpu.guest_cr[cr];
+ break;
+ case 8:
+ val = (vlapic_get_reg(vcpu_vlapic(curr), APIC_TASKPRI) & 0xf0) >> 4;
+ break;
+ default:
+ gdprintk(XENLOG_ERR, "invalid cr: %u\n", cr);
+ goto exit_and_crash;
+ }
+
+ *reg = val;
+ HVMTRACE_LONG_2D(CR_READ, cr, TRC_PAR_LONG(val));
+ HVM_DBG_LOG(DBG_LEVEL_VMMU, "CR%u, value = %lx", cr, val);
+
+ return X86EMUL_OKAY;
+
+ exit_and_crash:
+ domain_crash(curr->domain);
+ return X86EMUL_UNHANDLEABLE;
+}
+
int hvm_set_cr0(unsigned long value)
{
struct vcpu *v = current;
Index: xen-4.1.1-testing/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -1546,182 +1546,42 @@ static void vmx_invlpg_intercept(unsigne
vpid_sync_vcpu_gva(curr, vaddr);
}
-#define CASE_SET_REG(REG, reg) \
- case VMX_CONTROL_REG_ACCESS_GPR_ ## REG: regs->reg = value; break
-#define CASE_GET_REG(REG, reg) \
- case VMX_CONTROL_REG_ACCESS_GPR_ ## REG: value = regs->reg; break
-
-#define CASE_EXTEND_SET_REG \
- CASE_EXTEND_REG(S)
-#define CASE_EXTEND_GET_REG \
- CASE_EXTEND_REG(G)
-
-#ifdef __i386__
-#define CASE_EXTEND_REG(T)
-#else
-#define CASE_EXTEND_REG(T) \
- CASE_ ## T ## ET_REG(R8, r8); \
- CASE_ ## T ## ET_REG(R9, r9); \
- CASE_ ## T ## ET_REG(R10, r10); \
- CASE_ ## T ## ET_REG(R11, r11); \
- CASE_ ## T ## ET_REG(R12, r12); \
- CASE_ ## T ## ET_REG(R13, r13); \
- CASE_ ## T ## ET_REG(R14, r14); \
- CASE_ ## T ## ET_REG(R15, r15)
-#endif
-
-static int mov_to_cr(int gp, int cr, struct cpu_user_regs *regs)
-{
- unsigned long value;
- struct vcpu *v = current;
- struct vlapic *vlapic = vcpu_vlapic(v);
- int rc = 0;
- unsigned long old;
-
- switch ( gp )
- {
- CASE_GET_REG(EAX, eax);
- CASE_GET_REG(ECX, ecx);
- CASE_GET_REG(EDX, edx);
- CASE_GET_REG(EBX, ebx);
- CASE_GET_REG(EBP, ebp);
- CASE_GET_REG(ESI, esi);
- CASE_GET_REG(EDI, edi);
- CASE_GET_REG(ESP, esp);
- CASE_EXTEND_GET_REG;
- default:
- gdprintk(XENLOG_ERR, "invalid gp: %d\n", gp);
- goto exit_and_crash;
- }
-
- HVMTRACE_LONG_2D(CR_WRITE, cr, TRC_PAR_LONG(value));
-
- HVM_DBG_LOG(DBG_LEVEL_1, "CR%d, value = %lx", cr, value);
-
- switch ( cr )
- {
- case 0:
- old = v->arch.hvm_vcpu.guest_cr[0];
- rc = !hvm_set_cr0(value);
- if (rc)
- hvm_memory_event_cr0(value, old);
- return rc;
-
- case 3:
- old = v->arch.hvm_vcpu.guest_cr[3];
- rc = !hvm_set_cr3(value);
- if (rc)
- hvm_memory_event_cr3(value, old);
- return rc;
-
- case 4:
- old = v->arch.hvm_vcpu.guest_cr[4];
- rc = !hvm_set_cr4(value);
- if (rc)
- hvm_memory_event_cr4(value, old);
- return rc;
-
- case 8:
- vlapic_set_reg(vlapic, APIC_TASKPRI, ((value & 0x0F) << 4));
- break;
-
- default:
- gdprintk(XENLOG_ERR, "invalid cr: %d\n", cr);
- goto exit_and_crash;
- }
-
- return 1;
-
- exit_and_crash:
- domain_crash(v->domain);
- return 0;
-}
-
-/*
- * Read from control registers. CR0 and CR4 are read from the shadow.
- */
-static void mov_from_cr(int cr, int gp, struct cpu_user_regs *regs)
+static int vmx_cr_access(unsigned long exit_qualification)
{
- unsigned long value = 0;
- struct vcpu *v = current;
- struct vlapic *vlapic = vcpu_vlapic(v);
-
- switch ( cr )
- {
- case 3:
- value = (unsigned long)v->arch.hvm_vcpu.guest_cr[3];
- break;
- case 8:
- value = (unsigned long)vlapic_get_reg(vlapic, APIC_TASKPRI);
- value = (value & 0xF0) >> 4;
- break;
- default:
- gdprintk(XENLOG_ERR, "invalid cr: %d\n", cr);
- domain_crash(v->domain);
- break;
- }
-
- switch ( gp ) {
- CASE_SET_REG(EAX, eax);
- CASE_SET_REG(ECX, ecx);
- CASE_SET_REG(EDX, edx);
- CASE_SET_REG(EBX, ebx);
- CASE_SET_REG(EBP, ebp);
- CASE_SET_REG(ESI, esi);
- CASE_SET_REG(EDI, edi);
- CASE_SET_REG(ESP, esp);
- CASE_EXTEND_SET_REG;
- default:
- printk("invalid gp: %d\n", gp);
- domain_crash(v->domain);
- break;
- }
-
- HVMTRACE_LONG_2D(CR_READ, cr, TRC_PAR_LONG(value));
-
- HVM_DBG_LOG(DBG_LEVEL_VMMU, "CR%d, value = %lx", cr, value);
-}
-
-static int vmx_cr_access(unsigned long exit_qualification,
- struct cpu_user_regs *regs)
-{
- unsigned int gp, cr;
- unsigned long value;
- struct vcpu *v = current;
+ struct vcpu *curr = current;
- switch ( exit_qualification & VMX_CONTROL_REG_ACCESS_TYPE )
+ switch ( VMX_CONTROL_REG_ACCESS_TYPE(exit_qualification) )
{
- case VMX_CONTROL_REG_ACCESS_TYPE_MOV_TO_CR:
- gp = exit_qualification & VMX_CONTROL_REG_ACCESS_GPR;
- cr = exit_qualification & VMX_CONTROL_REG_ACCESS_NUM;
- return mov_to_cr(gp, cr, regs);
- case VMX_CONTROL_REG_ACCESS_TYPE_MOV_FROM_CR:
- gp = exit_qualification & VMX_CONTROL_REG_ACCESS_GPR;
- cr = exit_qualification & VMX_CONTROL_REG_ACCESS_NUM;
- mov_from_cr(cr, gp, regs);
- break;
- case VMX_CONTROL_REG_ACCESS_TYPE_CLTS:
- {
- unsigned long old = v->arch.hvm_vcpu.guest_cr[0];
- v->arch.hvm_vcpu.guest_cr[0] &= ~X86_CR0_TS;
- vmx_update_guest_cr(v, 0);
-
- hvm_memory_event_cr0(v->arch.hvm_vcpu.guest_cr[0], old);
-
+ case VMX_CONTROL_REG_ACCESS_TYPE_MOV_TO_CR: {
+ unsigned long gp = VMX_CONTROL_REG_ACCESS_GPR(exit_qualification);
+ unsigned long cr = VMX_CONTROL_REG_ACCESS_NUM(exit_qualification);
+ return hvm_mov_to_cr(cr, gp);
+ }
+ case VMX_CONTROL_REG_ACCESS_TYPE_MOV_FROM_CR: {
+ unsigned long gp = VMX_CONTROL_REG_ACCESS_GPR(exit_qualification);
+ unsigned long cr = VMX_CONTROL_REG_ACCESS_NUM(exit_qualification);
+ return hvm_mov_from_cr(cr, gp);
+ }
+ case VMX_CONTROL_REG_ACCESS_TYPE_CLTS: {
+ unsigned long old = curr->arch.hvm_vcpu.guest_cr[0];
+ curr->arch.hvm_vcpu.guest_cr[0] &= ~X86_CR0_TS;
+ vmx_update_guest_cr(curr, 0);
+ hvm_memory_event_cr0(curr->arch.hvm_vcpu.guest_cr[0], old);
HVMTRACE_0D(CLTS);
break;
}
- case VMX_CONTROL_REG_ACCESS_TYPE_LMSW:
- value = v->arch.hvm_vcpu.guest_cr[0];
+ case VMX_CONTROL_REG_ACCESS_TYPE_LMSW: {
+ unsigned long value = curr->arch.hvm_vcpu.guest_cr[0];
/* LMSW can: (1) set bits 0-3; (2) clear bits 1-3. */
value = (value & ~0xe) | ((exit_qualification >> 16) & 0xf);
HVMTRACE_LONG_1D(LMSW, value);
- return !hvm_set_cr0(value);
+ return hvm_set_cr0(value);
+ }
default:
BUG();
}
- return 1;
+ return X86EMUL_OKAY;
}
static const struct lbr_info {
@@ -2526,7 +2386,7 @@ asmlinkage void vmx_vmexit_handler(struc
case EXIT_REASON_CR_ACCESS:
{
exit_qualification = __vmread(EXIT_QUALIFICATION);
- if ( vmx_cr_access(exit_qualification, regs) )
+ if ( vmx_cr_access(exit_qualification) == X86EMUL_OKAY )
update_guest_eip(); /* Safe: MOV Cn, LMSW, CLTS */
break;
}
Index: xen-4.1.1-testing/xen/arch/x86/traps.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/traps.c
+++ xen-4.1.1-testing/xen/arch/x86/traps.c
@@ -368,6 +368,36 @@ void vcpu_show_execution_state(struct vc
vcpu_unpause(v);
}
+unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg)
+{
+ void *p;
+
+ switch ( modrm_reg )
+ {
+ case 0: p = &regs->eax; break;
+ case 1: p = &regs->ecx; break;
+ case 2: p = &regs->edx; break;
+ case 3: p = &regs->ebx; break;
+ case 4: p = &regs->esp; break;
+ case 5: p = &regs->ebp; break;
+ case 6: p = &regs->esi; break;
+ case 7: p = &regs->edi; break;
+#if defined(__x86_64__)
+ case 8: p = &regs->r8; break;
+ case 9: p = &regs->r9; break;
+ case 10: p = &regs->r10; break;
+ case 11: p = &regs->r11; break;
+ case 12: p = &regs->r12; break;
+ case 13: p = &regs->r13; break;
+ case 14: p = &regs->r14; break;
+ case 15: p = &regs->r15; break;
+#endif
+ default: p = NULL; break;
+ }
+
+ return p;
+}
+
static char *trapstr(int trapnr)
{
static char *strings[] = {
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/support.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/support.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/support.h
@@ -137,5 +137,7 @@ int hvm_set_cr3(unsigned long value);
int hvm_set_cr4(unsigned long value);
int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content);
int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content);
+int hvm_mov_to_cr(unsigned int cr, unsigned int gpr);
+int hvm_mov_from_cr(unsigned int cr, unsigned int gpr);
#endif /* __ASM_X86_HVM_SUPPORT_H__ */
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -144,31 +144,15 @@ void vmx_update_cpu_exec_control(struct
* Exit Qualifications for MOV for Control Register Access
*/
/* 3:0 - control register number (CRn) */
-#define VMX_CONTROL_REG_ACCESS_NUM 0xf
+#define VMX_CONTROL_REG_ACCESS_NUM(eq) ((eq) & 0xf)
/* 5:4 - access type (CR write, CR read, CLTS, LMSW) */
-#define VMX_CONTROL_REG_ACCESS_TYPE 0x30
+#define VMX_CONTROL_REG_ACCESS_TYPE(eq) (((eq) >> 4) & 0x3)
+# define VMX_CONTROL_REG_ACCESS_TYPE_MOV_TO_CR 0
+# define VMX_CONTROL_REG_ACCESS_TYPE_MOV_FROM_CR 1
+# define VMX_CONTROL_REG_ACCESS_TYPE_CLTS 2
+# define VMX_CONTROL_REG_ACCESS_TYPE_LMSW 3
/* 10:8 - general purpose register operand */
-#define VMX_CONTROL_REG_ACCESS_GPR 0xf00
-#define VMX_CONTROL_REG_ACCESS_TYPE_MOV_TO_CR (0 << 4)
-#define VMX_CONTROL_REG_ACCESS_TYPE_MOV_FROM_CR (1 << 4)
-#define VMX_CONTROL_REG_ACCESS_TYPE_CLTS (2 << 4)
-#define VMX_CONTROL_REG_ACCESS_TYPE_LMSW (3 << 4)
-#define VMX_CONTROL_REG_ACCESS_GPR_EAX (0 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_ECX (1 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_EDX (2 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_EBX (3 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_ESP (4 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_EBP (5 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_ESI (6 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_EDI (7 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R8 (8 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R9 (9 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R10 (10 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R11 (11 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R12 (12 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R13 (13 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R14 (14 << 8)
-#define VMX_CONTROL_REG_ACCESS_GPR_R15 (15 << 8)
+#define VMX_CONTROL_REG_ACCESS_GPR(eq) (((eq) >> 8) & 0xf)
/*
* Access Rights
Index: xen-4.1.1-testing/xen/include/asm-x86/processor.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/processor.h
+++ xen-4.1.1-testing/xen/include/asm-x86/processor.h
@@ -589,6 +589,8 @@ int wrmsr_hypervisor_regs(uint32_t idx,
int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
int microcode_resume_cpu(int cpu);
+unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
+
#endif /* !__ASSEMBLY__ */
#endif /* __ASM_X86_PROCESSOR_H */

View File

@ -0,0 +1,75 @@
References: FATE#309900
# HG changeset patch
# User Andre Przywara <andre.przywara@amd.com>
# Date 1303116553 -3600
# Node ID bf7afd48339a18cd86d89337f3c055045fb78d3b
# Parent 1276926e3795b11ef6ac2f59df900d8e0ba9f54b
svm: add bit definitions for SVM DecodeAssist
Chapter 15.33 of recent APM Vol.2 manuals describe some additions
to SVM called DecodeAssist. Add the newly added fields to the VMCB
structure and name the associated CPUID bit.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# Date 1303117802 -3600
# Node ID 381ab77db71a4739b8a4f4fdad4ef3504999f998
# Parent e324c4d1dd6eeb9417fec513640ca795bd0f5dd4
svm: decode-assists feature must depend on nextrip feature.
...since the decode-assist fast paths assume nextrip vmcb field is
valid.
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
@@ -928,11 +928,16 @@ struct hvm_function_table * __init start
printk("SVM: Supported advanced features:\n");
+ /* DecodeAssists fast paths assume nextrip is valid for fast rIP update. */
+ if ( !cpu_has_svm_nrips )
+ clear_bit(SVM_FEATURE_DECODEASSISTS, &svm_feature_flags);
+
#define P(p,s) if ( p ) { printk(" - %s\n", s); printed = 1; }
P(cpu_has_svm_npt, "Nested Page Tables (NPT)");
P(cpu_has_svm_lbrv, "Last Branch Record (LBR) Virtualisation");
P(cpu_has_svm_nrips, "Next-RIP Saved on #VMEXIT");
P(cpu_has_svm_cleanbits, "VMCB Clean Bits");
+ P(cpu_has_svm_decode, "DecodeAssists");
P(cpu_has_pause_filter, "Pause-Intercept Filter");
#undef P
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/svm.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
@@ -80,6 +80,7 @@ extern u32 svm_feature_flags;
#define cpu_has_svm_svml cpu_has_svm_feature(SVM_FEATURE_SVML)
#define cpu_has_svm_nrips cpu_has_svm_feature(SVM_FEATURE_NRIPS)
#define cpu_has_svm_cleanbits cpu_has_svm_feature(SVM_FEATURE_VMCBCLEAN)
+#define cpu_has_svm_decode cpu_has_svm_feature(SVM_FEATURE_DECODEASSISTS)
#define cpu_has_pause_filter cpu_has_svm_feature(SVM_FEATURE_PAUSEFILTER)
#endif /* __ASM_X86_HVM_SVM_H__ */
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/vmcb.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
@@ -432,7 +432,9 @@ struct vmcb_struct {
vmcbcleanbits_t cleanbits; /* offset 0xC0 */
u32 res09; /* offset 0xC4 */
u64 nextrip; /* offset 0xC8 */
- u64 res10a[102]; /* offset 0xD0 pad to save area */
+ u8 guest_ins_len; /* offset 0xD0 */
+ u8 guest_ins[15]; /* offset 0xD1 */
+ u64 res10a[100]; /* offset 0xE0 pad to save area */
svm_segment_register_t es; /* offset 1024 - cleanbit 8 */
svm_segment_register_t cs; /* cleanbit 8 */

View File

@ -0,0 +1,66 @@
References: FATE#309900
# HG changeset patch
# User Andre Przywara <andre.przywara@amd.com>
# Date 1303117266 -3600
# Node ID 2c8ad607ece18b4740b9fc4ffe267a0e0893c141
# Parent bf7afd48339a18cd86d89337f3c055045fb78d3b
svm: implement CR access part of DecodeAssist
Newer SVM implementations (Bulldozer) now give the used general
purpose register on a MOV-CR intercept explictly. This avoids
fetching and decoding the instruction from guest's memory and speeds
up some Windows guest, which exercise CR8 quite often.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
@@ -1040,6 +1040,22 @@ static void svm_vmexit_do_cpuid(struct c
__update_guest_eip(regs, inst_len);
}
+static void svm_vmexit_do_cr_access(
+ struct vmcb_struct *vmcb, struct cpu_user_regs *regs)
+{
+ int gp, cr, dir, rc;
+
+ cr = vmcb->exitcode - VMEXIT_CR0_READ;
+ dir = (cr > 15);
+ cr &= 0xf;
+ gp = vmcb->exitinfo1 & 0xf;
+
+ rc = dir ? hvm_mov_to_cr(cr, gp) : hvm_mov_from_cr(cr, gp);
+
+ if ( rc == X86EMUL_OKAY )
+ __update_guest_eip(regs, vmcb->nextrip - vmcb->rip);
+}
+
static void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
{
HVMTRACE_0D(DR_WRITE);
@@ -1621,11 +1637,19 @@ asmlinkage void svm_vmexit_handler(struc
int dir = (vmcb->exitinfo1 & 1) ? IOREQ_READ : IOREQ_WRITE;
if ( handle_pio(port, bytes, dir) )
__update_guest_eip(regs, vmcb->exitinfo2 - vmcb->rip);
- break;
}
- /* fallthrough to emulation if a string instruction */
+ else if ( !handle_mmio() )
+ hvm_inject_exception(TRAP_gp_fault, 0, 0);
+ break;
+
case VMEXIT_CR0_READ ... VMEXIT_CR15_READ:
case VMEXIT_CR0_WRITE ... VMEXIT_CR15_WRITE:
+ if ( cpu_has_svm_decode && (vmcb->exitinfo1 & (1ULL << 63)) )
+ svm_vmexit_do_cr_access(vmcb, regs);
+ else if ( !handle_mmio() )
+ hvm_inject_exception(TRAP_gp_fault, 0, 0);
+ break;
+
case VMEXIT_INVLPG:
case VMEXIT_INVLPGA:
if ( !handle_mmio() )

View File

@ -0,0 +1,133 @@
References: FATE#309900
# HG changeset patch
# User Christoph Egger <Christoph.Egger@amd.com>
# Date 1302700499 -3600
# Node ID 3b2182100ba2fa5c4a3a450e473717e2300aa8f1
# Parent 2284c79b606ac14ef5c5bc2c1cce62188b5bd9ee
x86/svm/asid: Introduce svm_invlpga()
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
# HG changeset patch
# User Andre Przywara <andre.przywara@amd.com>
# Date 1303117597 -3600
# Node ID e324c4d1dd6eeb9417fec513640ca795bd0f5dd4
# Parent 2c8ad607ece18b4740b9fc4ffe267a0e0893c141
svm: implement INVLPG part of DecodeAssist
Newer SVM implementations (Bulldozer) give the desired address on
a INVLPG intercept explicitly in the EXITINFO1 field of the VMCB.
Use this address to avoid a costly instruction fetch and decode
cycle.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
# HG changeset patch
# User Christoph Egger <Christoph.Egger@amd.com>
# Date 1305187246 -3600
# Node ID 19d6541c4abec3486c83de76102ec46d7fe22a16
# Parent b6e8e916ed2827fb1329de0de2e23ee5b6b78662
nestedsvm: update rip on invlpga intercept
Fixes endless loop.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/emulate.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/emulate.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/emulate.c
@@ -102,6 +102,7 @@ MAKE_INSTR(INT3, 1, 0xcc);
MAKE_INSTR(RDTSC, 2, 0x0f, 0x31);
MAKE_INSTR(PAUSE, 1, 0x90);
MAKE_INSTR(XSETBV, 3, 0x0f, 0x01, 0xd1);
+MAKE_INSTR(INVLPGA,3, 0x0f, 0x01, 0xdf);
static const u8 *opc_bytes[INSTR_MAX_COUNT] =
{
@@ -116,6 +117,7 @@ static const u8 *opc_bytes[INSTR_MAX_COU
[INSTR_RDTSC] = OPCODE_RDTSC,
[INSTR_PAUSE] = OPCODE_PAUSE,
[INSTR_XSETBV] = OPCODE_XSETBV,
+ [INSTR_INVLPGA] = OPCODE_INVLPGA,
};
static int fetch(struct vcpu *v, u8 *buf, unsigned long addr, int len)
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
@@ -1651,11 +1651,22 @@ asmlinkage void svm_vmexit_handler(struc
break;
case VMEXIT_INVLPG:
- case VMEXIT_INVLPGA:
- if ( !handle_mmio() )
+ if ( cpu_has_svm_decode )
+ {
+ svm_invlpg_intercept(vmcb->exitinfo1);
+ __update_guest_eip(regs, vmcb->nextrip - vmcb->rip);
+ }
+ else if ( !handle_mmio() )
hvm_inject_exception(TRAP_gp_fault, 0, 0);
break;
+ case VMEXIT_INVLPGA:
+ if ( (inst_len = __get_instruction_length(v, INSTR_INVLPGA)) == 0 )
+ break;
+ svm_invlpga(regs->eax, v->arch.hvm_vcpu.asid);
+ __update_guest_eip(regs, inst_len);
+ break;
+
case VMEXIT_VMMCALL:
if ( (inst_len = __get_instruction_length(v, INSTR_VMCALL)) == 0 )
break;
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/asid.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/asid.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/asid.h
@@ -34,10 +34,7 @@ static inline void svm_asid_g_invlpg(str
{
#if 0
/* Optimization? */
- asm volatile (".byte 0x0F,0x01,0xDF \n"
- : /* output */
- : /* input */
- "a" (g_vaddr), "c"(v->arch.hvm_svm.vmcb->guest_asid) );
+ svm_invlpga(g_vaddr, v->arch.hvm_svm.vmcb->guest_asid);
#endif
/* Safe fallback. Take a new ASID. */
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/emulate.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/emulate.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/emulate.h
@@ -33,6 +33,7 @@ enum instruction_index {
INSTR_RDTSC,
INSTR_PAUSE,
INSTR_XSETBV,
+ INSTR_INVLPGA,
INSTR_MAX_COUNT /* Must be last - Number of instructions supported */
};
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/svm.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/svm.h
@@ -62,6 +62,15 @@ static inline void svm_vmsave(void *vmcb
: : "a" (__pa(vmcb)) : "memory" );
}
+static inline void svm_invlpga(unsigned long vaddr, uint32_t asid)
+{
+ asm volatile (
+ ".byte 0x0f,0x01,0xdf"
+ : /* output */
+ : /* input */
+ "a" (vaddr), "c" (asid));
+}
+
extern u32 svm_feature_flags;
#define SVM_FEATURE_NPT 0 /* Nested page table support */

View File

@ -0,0 +1,135 @@
References: FATE#309900
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# Date 1303130170 -3600
# Node ID 60f5df2afcbbe1e8d8438c2b7b8223d9d2102e06
# Parent 381ab77db71a4739b8a4f4fdad4ef3504999f998
svm: implement instruction fetch part of DecodeAssist (on #PF/#NPF)
Newer SVM implementations (Bulldozer) copy up to 15 bytes from the
instruction stream into the VMCB when a #PF or #NPF exception is
intercepted. This patch makes use of this information if available.
This saves us from a) traversing the guest's page tables, b) mapping
the guest's memory and c) copy the instructions from there into the
hypervisor's address space.
This speeds up #NPF intercepts quite a lot and avoids cache and TLB
trashing.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/emulate.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/emulate.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/emulate.c
@@ -996,6 +996,8 @@ int hvm_emulate_one(
hvmemul_ctxt->insn_buf_eip = regs->eip;
hvmemul_ctxt->insn_buf_bytes =
+ hvm_get_insn_bytes(curr, hvmemul_ctxt->insn_buf)
+ ? :
(hvm_virtual_to_linear_addr(
x86_seg_cs, &hvmemul_ctxt->seg_reg[x86_seg_cs],
regs->eip, sizeof(hvmemul_ctxt->insn_buf),
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
@@ -603,6 +603,21 @@ static void svm_set_rdtsc_exiting(struct
vmcb_set_general1_intercepts(vmcb, general1_intercepts);
}
+static unsigned int svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
+{
+ struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
+ unsigned int len = v->arch.hvm_svm.cached_insn_len;
+
+ if ( len != 0 )
+ {
+ /* Latch and clear the cached instruction. */
+ memcpy(buf, vmcb->guest_ins, 15);
+ v->arch.hvm_svm.cached_insn_len = 0;
+ }
+
+ return len;
+}
+
static void svm_init_hypercall_page(struct domain *d, void *hypercall_page)
{
char *p;
@@ -1449,7 +1464,8 @@ static struct hvm_function_table __read_
.msr_read_intercept = svm_msr_read_intercept,
.msr_write_intercept = svm_msr_write_intercept,
.invlpg_intercept = svm_invlpg_intercept,
- .set_rdtsc_exiting = svm_set_rdtsc_exiting
+ .set_rdtsc_exiting = svm_set_rdtsc_exiting,
+ .get_insn_bytes = svm_get_insn_bytes
};
asmlinkage void svm_vmexit_handler(struct cpu_user_regs *regs)
@@ -1555,7 +1571,12 @@ asmlinkage void svm_vmexit_handler(struc
(unsigned long)regs->ecx, (unsigned long)regs->edx,
(unsigned long)regs->esi, (unsigned long)regs->edi);
- if ( paging_fault(va, regs) )
+ if ( cpu_has_svm_decode )
+ v->arch.hvm_svm.cached_insn_len = vmcb->guest_ins_len & 0xf;
+ rc = paging_fault(va, regs);
+ v->arch.hvm_svm.cached_insn_len = 0;
+
+ if ( rc )
{
if ( trace_will_trace_event(TRC_SHADOW) )
break;
@@ -1721,7 +1742,10 @@ asmlinkage void svm_vmexit_handler(struc
case VMEXIT_NPF:
perfc_incra(svmexits, VMEXIT_NPF_PERFC);
regs->error_code = vmcb->exitinfo1;
+ if ( cpu_has_svm_decode )
+ v->arch.hvm_svm.cached_insn_len = vmcb->guest_ins_len & 0xf;
svm_do_nested_pgfault(vmcb->exitinfo2);
+ v->arch.hvm_svm.cached_insn_len = 0;
break;
case VMEXIT_IRET: {
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/hvm.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/hvm.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/hvm.h
@@ -132,6 +132,9 @@ struct hvm_function_table {
int (*cpu_up)(void);
void (*cpu_down)(void);
+ /* Copy up to 15 bytes from cached instruction bytes at current rIP. */
+ unsigned int (*get_insn_bytes)(struct vcpu *v, uint8_t *buf);
+
/* Instruction intercepts: non-void return values are X86EMUL codes. */
void (*cpuid_intercept)(
unsigned int *eax, unsigned int *ebx,
@@ -324,6 +327,11 @@ static inline void hvm_cpu_down(void)
hvm_funcs.cpu_down();
}
+static inline unsigned int hvm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
+{
+ return (hvm_funcs.get_insn_bytes ? hvm_funcs.get_insn_bytes(v, buf) : 0);
+}
+
enum hvm_task_switch_reason { TSW_jmp, TSW_iret, TSW_call_or_int };
void hvm_task_switch(
uint16_t tss_sel, enum hvm_task_switch_reason taskswitch_reason,
Index: xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/hvm/svm/vmcb.h
+++ xen-4.1.1-testing/xen/include/asm-x86/hvm/svm/vmcb.h
@@ -498,6 +498,9 @@ struct arch_svm_struct {
int launch_core;
bool_t vmcb_in_sync; /* VMCB sync'ed with VMSAVE? */
+ /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
+ uint8_t cached_insn_len; /* Zero if no cached instruction. */
+
/* Upper four bytes are undefined in the VMCB, therefore we can't
* use the fields in the VMCB. Write a 64bit value and then read a 64bit
* value is fine unless there's a VMRUN/VMEXIT in between which clears

209
23303-cpufreq-misc.patch Normal file
View File

@ -0,0 +1,209 @@
# HG changeset patch
# User Jan Beulich <jbeulich@novell.com>
# Date 1304930762 -3600
# Node ID 82180954eda9cfe279e7ecf8c9ed4ffa29796bfb
# Parent c822888f36568f26e95f9844c7f0c5e06df7aa20
misc cpufreq cleanup
- proper handling of governor command line options when using the
default governor
- warning message for unrecognized command line options
- replacing a NR_CPUS sized array with per-CPU data
- a couple of __read_mostly annotations
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Index: xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq.c
===================================================================
--- xen-4.1.1-testing.orig/xen/drivers/cpufreq/cpufreq.c
+++ xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq.c
@@ -47,7 +47,8 @@
#include <acpi/acpi.h>
#include <acpi/cpufreq/cpufreq.h>
-static unsigned int usr_max_freq, usr_min_freq;
+static unsigned int __read_mostly usr_min_freq;
+static unsigned int __read_mostly usr_max_freq;
static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy);
struct cpufreq_dom {
@@ -57,7 +58,7 @@ struct cpufreq_dom {
};
static LIST_HEAD(cpufreq_dom_list_head);
-struct cpufreq_governor *cpufreq_opt_governor;
+struct cpufreq_governor *__read_mostly cpufreq_opt_governor;
LIST_HEAD(cpufreq_governor_list);
bool_t __read_mostly cpufreq_verbose;
@@ -543,6 +544,7 @@ void __init cpufreq_cmdline_parse(char *
{
static struct cpufreq_governor *__initdata cpufreq_governors[] =
{
+ CPUFREQ_DEFAULT_GOVERNOR,
&cpufreq_gov_userspace,
&cpufreq_gov_dbs,
&cpufreq_gov_performance,
@@ -576,8 +578,10 @@ void __init cpufreq_cmdline_parse(char *
}
if (str && !cpufreq_handle_common_option(str, val) &&
- cpufreq_governors[gov_index]->handle_option)
- cpufreq_governors[gov_index]->handle_option(str, val);
+ (!cpufreq_governors[gov_index]->handle_option ||
+ !cpufreq_governors[gov_index]->handle_option(str, val)))
+ printk(XENLOG_WARNING "cpufreq/%s: option '%s' not recognized\n",
+ cpufreq_governors[gov_index]->name, str);
str = end;
} while (str);
Index: xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq_misc_governors.c
===================================================================
--- xen-4.1.1-testing.orig/xen/drivers/cpufreq/cpufreq_misc_governors.c
+++ xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq_misc_governors.c
@@ -14,14 +14,17 @@
*
*/
+#include <xen/cpu.h>
#include <xen/init.h>
+#include <xen/percpu.h>
#include <xen/sched.h>
#include <acpi/cpufreq/cpufreq.h>
/*
* cpufreq userspace governor
*/
-static unsigned int cpu_set_freq[NR_CPUS];
+static unsigned int __read_mostly userspace_cmdline_freq;
+static DEFINE_PER_CPU(unsigned int, cpu_set_freq);
static int cpufreq_governor_userspace(struct cpufreq_policy *policy,
unsigned int event)
@@ -35,21 +38,21 @@ static int cpufreq_governor_userspace(st
switch (event) {
case CPUFREQ_GOV_START:
- if (!cpu_set_freq[cpu])
- cpu_set_freq[cpu] = policy->cur;
+ if (!per_cpu(cpu_set_freq, cpu))
+ per_cpu(cpu_set_freq, cpu) = policy->cur;
break;
case CPUFREQ_GOV_STOP:
- cpu_set_freq[cpu] = 0;
+ per_cpu(cpu_set_freq, cpu) = 0;
break;
case CPUFREQ_GOV_LIMITS:
- if (policy->max < cpu_set_freq[cpu])
+ if (policy->max < per_cpu(cpu_set_freq, cpu))
ret = __cpufreq_driver_target(policy, policy->max,
CPUFREQ_RELATION_H);
- else if (policy->min > cpu_set_freq[cpu])
+ else if (policy->min > per_cpu(cpu_set_freq, cpu))
ret = __cpufreq_driver_target(policy, policy->min,
CPUFREQ_RELATION_L);
else
- ret = __cpufreq_driver_target(policy, cpu_set_freq[cpu],
+ ret = __cpufreq_driver_target(policy, per_cpu(cpu_set_freq, cpu),
CPUFREQ_RELATION_L);
break;
@@ -68,7 +71,7 @@ int write_userspace_scaling_setspeed(uns
if (!cpu_online(cpu) || !(policy = per_cpu(cpufreq_cpu_policy, cpu)))
return -EINVAL;
- cpu_set_freq[cpu] = freq;
+ per_cpu(cpu_set_freq, cpu) = freq;
if (freq < policy->min)
freq = policy->min;
@@ -78,19 +81,35 @@ int write_userspace_scaling_setspeed(uns
return __cpufreq_driver_target(policy, freq, CPUFREQ_RELATION_L);
}
-static void __init
+static bool_t __init
cpufreq_userspace_handle_option(const char *name, const char *val)
{
if (!strcmp(name, "speed") && val) {
- unsigned int usr_cmdline_freq;
- unsigned int cpu;
+ userspace_cmdline_freq = simple_strtoul(val, NULL, 0);
+ return 1;
+ }
+ return 0;
+}
- usr_cmdline_freq = simple_strtoul(val, NULL, 0);
- for (cpu = 0; cpu < NR_CPUS; cpu++)
- cpu_set_freq[cpu] = usr_cmdline_freq;
+static int cpufreq_userspace_cpu_callback(
+ struct notifier_block *nfb, unsigned long action, void *hcpu)
+{
+ unsigned int cpu = (unsigned long)hcpu;
+
+ switch (action)
+ {
+ case CPU_UP_PREPARE:
+ per_cpu(cpu_set_freq, cpu) = userspace_cmdline_freq;
+ break;
}
+
+ return NOTIFY_DONE;
}
+static struct notifier_block cpufreq_userspace_cpu_nfb = {
+ .notifier_call = cpufreq_userspace_cpu_callback
+};
+
struct cpufreq_governor cpufreq_gov_userspace = {
.name = "userspace",
.governor = cpufreq_governor_userspace,
@@ -99,6 +118,11 @@ struct cpufreq_governor cpufreq_gov_user
static int __init cpufreq_gov_userspace_init(void)
{
+ unsigned int cpu;
+
+ for_each_online_cpu(cpu)
+ per_cpu(cpu_set_freq, cpu) = userspace_cmdline_freq;
+ register_cpu_notifier(&cpufreq_userspace_cpu_nfb);
return cpufreq_register_governor(&cpufreq_gov_userspace);
}
__initcall(cpufreq_gov_userspace_init);
Index: xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq_ondemand.c
===================================================================
--- xen-4.1.1-testing.orig/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ xen-4.1.1-testing/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -296,7 +296,7 @@ int cpufreq_governor_dbs(struct cpufreq_
return 0;
}
-static void __init cpufreq_dbs_handle_option(const char *name, const char *val)
+static bool_t __init cpufreq_dbs_handle_option(const char *name, const char *val)
{
if ( !strcmp(name, "rate") && val )
{
@@ -334,6 +334,9 @@ static void __init cpufreq_dbs_handle_op
}
dbs_tuners_ins.powersave_bias = tmp;
}
+ else
+ return 0;
+ return 1;
}
struct cpufreq_governor cpufreq_gov_dbs = {
Index: xen-4.1.1-testing/xen/include/acpi/cpufreq/cpufreq.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/acpi/cpufreq/cpufreq.h
+++ xen-4.1.1-testing/xen/include/acpi/cpufreq/cpufreq.h
@@ -93,7 +93,7 @@ struct cpufreq_governor {
char name[CPUFREQ_NAME_LEN];
int (*governor)(struct cpufreq_policy *policy,
unsigned int event);
- void (*handle_option)(const char *name, const char *value);
+ bool_t (*handle_option)(const char *name, const char *value);
struct list_head governor_list;
};

View File

@ -0,0 +1,42 @@
References: FATE#309893, FATE#309902, FATE#309903, FATE#309906
# HG changeset patch
# User Jacob Shin <jacob.shin@amd.com>
# Date 1304930954 -3600
# Node ID 8981b582be3e2f6647ef5ff3d93e167436ed357a
# Parent 82180954eda9cfe279e7ecf8c9ed4ffa29796bfb
xenoprof: Update cpu_type to sync with upstream oprofile
Update xenoprof's cpu_type to match upstream oprofile. Currently AMD
Family 11h ~ Family 15h are broken due to string mismatches.
Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Index: xen-4.1.1-testing/xen/arch/x86/oprofile/nmi_int.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/oprofile/nmi_int.c
+++ xen-4.1.1-testing/xen/arch/x86/oprofile/nmi_int.c
@@ -435,19 +435,19 @@ static int __init nmi_init(void)
break;
case 0x11:
model = &op_athlon_spec;
- cpu_type = "x86-64/family11";
+ cpu_type = "x86-64/family11h";
break;
case 0x12:
model = &op_athlon_spec;
- cpu_type = "x86-64/family12";
+ cpu_type = "x86-64/family12h";
break;
case 0x14:
model = &op_athlon_spec;
- cpu_type = "x86-64/family14";
+ cpu_type = "x86-64/family14h";
break;
case 0x15:
model = &op_athlon_spec;
- cpu_type = "x86-64/family15";
+ cpu_type = "x86-64/family15h";
break;
}
break;

View File

@ -0,0 +1,223 @@
References: FATE#309893, FATE#309906
# HG changeset patch
# User Jacob Shin <jacob.shin@amd.com>
# Date 1304931187 -3600
# Node ID 014ee4e09644bd3ae55919d267f742c1d60c337a
# Parent 8981b582be3e2f6647ef5ff3d93e167436ed357a
xenoprof: Add support for AMD Family 15h processors
AMD Family 15h CPU mirrors legacy K7 performance monitor counters to
a new location, and adds 2 new counters. This patch updates xenoprof
to take advantage of the new counters.
Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Rename fam15h -> amd_fam15h in a few places, as suggested by Jan
Beulich.
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/arch/x86/oprofile/nmi_int.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/oprofile/nmi_int.c
+++ xen-4.1.1-testing/xen/arch/x86/oprofile/nmi_int.c
@@ -30,7 +30,7 @@
struct op_counter_config counter_config[OP_MAX_COUNTER];
struct op_ibs_config ibs_config;
-static struct op_x86_model_spec const *__read_mostly model;
+struct op_x86_model_spec const *__read_mostly model;
static struct op_msrs cpu_msrs[NR_CPUS];
static unsigned long saved_lvtpc[NR_CPUS];
@@ -446,7 +446,7 @@ static int __init nmi_init(void)
cpu_type = "x86-64/family14h";
break;
case 0x15:
- model = &op_athlon_spec;
+ model = &op_amd_fam15h_spec;
cpu_type = "x86-64/family15h";
break;
}
Index: xen-4.1.1-testing/xen/arch/x86/oprofile/op_model_athlon.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/oprofile/op_model_athlon.c
+++ xen-4.1.1-testing/xen/arch/x86/oprofile/op_model_athlon.c
@@ -24,8 +24,13 @@
#include "op_x86_model.h"
#include "op_counter.h"
-#define NUM_COUNTERS 4
-#define NUM_CONTROLS 4
+#define K7_NUM_COUNTERS 4
+#define K7_NUM_CONTROLS 4
+
+#define FAM15H_NUM_COUNTERS 6
+#define FAM15H_NUM_CONTROLS 6
+
+#define MAX_COUNTERS FAM15H_NUM_COUNTERS
#define CTR_READ(msr_content,msrs,c) do {rdmsrl(msrs->counters[(c)].addr, (msr_content));} while (0)
#define CTR_WRITE(l,msrs,c) do {wrmsr(msrs->counters[(c)].addr, -(unsigned int)(l), -1);} while (0)
@@ -44,9 +49,10 @@
#define CTRL_SET_HOST_ONLY(val, h) (val |= ((h & 0x1ULL) << 41))
#define CTRL_SET_GUEST_ONLY(val, h) (val |= ((h & 0x1ULL) << 40))
-static unsigned long reset_value[NUM_COUNTERS];
+static unsigned long reset_value[MAX_COUNTERS];
extern char svm_stgi_label[];
+extern struct op_x86_model_spec const *__read_mostly model;
#ifdef CONFIG_X86_64
u32 ibs_caps = 0;
@@ -175,26 +181,44 @@ static void athlon_fill_in_addresses(str
msrs->controls[3].addr = MSR_K7_EVNTSEL3;
}
-
+static void fam15h_fill_in_addresses(struct op_msrs * const msrs)
+{
+ msrs->counters[0].addr = MSR_AMD_FAM15H_PERFCTR0;
+ msrs->counters[1].addr = MSR_AMD_FAM15H_PERFCTR1;
+ msrs->counters[2].addr = MSR_AMD_FAM15H_PERFCTR2;
+ msrs->counters[3].addr = MSR_AMD_FAM15H_PERFCTR3;
+ msrs->counters[4].addr = MSR_AMD_FAM15H_PERFCTR4;
+ msrs->counters[5].addr = MSR_AMD_FAM15H_PERFCTR5;
+
+ msrs->controls[0].addr = MSR_AMD_FAM15H_EVNTSEL0;
+ msrs->controls[1].addr = MSR_AMD_FAM15H_EVNTSEL1;
+ msrs->controls[2].addr = MSR_AMD_FAM15H_EVNTSEL2;
+ msrs->controls[3].addr = MSR_AMD_FAM15H_EVNTSEL3;
+ msrs->controls[4].addr = MSR_AMD_FAM15H_EVNTSEL4;
+ msrs->controls[5].addr = MSR_AMD_FAM15H_EVNTSEL5;
+}
+
static void athlon_setup_ctrs(struct op_msrs const * const msrs)
{
uint64_t msr_content;
int i;
+ unsigned int const nr_ctrs = model->num_counters;
+ unsigned int const nr_ctrls = model->num_controls;
/* clear all counters */
- for (i = 0 ; i < NUM_CONTROLS; ++i) {
+ for (i = 0 ; i < nr_ctrls; ++i) {
CTRL_READ(msr_content, msrs, i);
CTRL_CLEAR(msr_content);
CTRL_WRITE(msr_content, msrs, i);
}
/* avoid a false detection of ctr overflows in NMI handler */
- for (i = 0; i < NUM_COUNTERS; ++i) {
+ for (i = 0; i < nr_ctrs; ++i) {
CTR_WRITE(1, msrs, i);
}
/* enable active counters */
- for (i = 0; i < NUM_COUNTERS; ++i) {
+ for (i = 0; i < nr_ctrs; ++i) {
if (counter_config[i].enabled) {
reset_value[i] = counter_config[i].count;
@@ -300,6 +324,7 @@ static int athlon_check_ctrs(unsigned in
int mode = 0;
struct vcpu *v = current;
struct cpu_user_regs *guest_regs = guest_cpu_user_regs();
+ unsigned int const nr_ctrs = model->num_counters;
if (!guest_mode(regs) &&
(regs->eip == (unsigned long)svm_stgi_label)) {
@@ -312,7 +337,7 @@ static int athlon_check_ctrs(unsigned in
mode = xenoprofile_get_mode(v, regs);
}
- for (i = 0 ; i < NUM_COUNTERS; ++i) {
+ for (i = 0 ; i < nr_ctrs; ++i) {
CTR_READ(msr_content, msrs, i);
if (CTR_OVERFLOWED(msr_content)) {
xenoprof_log_event(current, regs, eip, mode, i);
@@ -373,7 +398,8 @@ static void athlon_start(struct op_msrs
{
uint64_t msr_content;
int i;
- for (i = 0 ; i < NUM_COUNTERS ; ++i) {
+ unsigned int const nr_ctrs = model->num_counters;
+ for (i = 0 ; i < nr_ctrs ; ++i) {
if (reset_value[i]) {
CTRL_READ(msr_content, msrs, i);
CTRL_SET_ACTIVE(msr_content);
@@ -401,10 +427,11 @@ static void athlon_stop(struct op_msrs c
{
uint64_t msr_content;
int i;
+ unsigned int const nr_ctrs = model->num_counters;
/* Subtle: stop on all counters to avoid race with
* setting our pm callback */
- for (i = 0 ; i < NUM_COUNTERS ; ++i) {
+ for (i = 0 ; i < nr_ctrs ; ++i) {
CTRL_READ(msr_content, msrs, i);
CTRL_SET_INACTIVE(msr_content);
CTRL_WRITE(msr_content, msrs, i);
@@ -512,11 +539,21 @@ void __init ibs_init(void)
#endif /* CONFIG_X86_64 */
struct op_x86_model_spec const op_athlon_spec = {
- .num_counters = NUM_COUNTERS,
- .num_controls = NUM_CONTROLS,
+ .num_counters = K7_NUM_COUNTERS,
+ .num_controls = K7_NUM_CONTROLS,
.fill_in_addresses = &athlon_fill_in_addresses,
.setup_ctrs = &athlon_setup_ctrs,
.check_ctrs = &athlon_check_ctrs,
.start = &athlon_start,
+ .stop = &athlon_stop
+};
+
+struct op_x86_model_spec const op_amd_fam15h_spec = {
+ .num_counters = FAM15H_NUM_COUNTERS,
+ .num_controls = FAM15H_NUM_CONTROLS,
+ .fill_in_addresses = &fam15h_fill_in_addresses,
+ .setup_ctrs = &athlon_setup_ctrs,
+ .check_ctrs = &athlon_check_ctrs,
+ .start = &athlon_start,
.stop = &athlon_stop
};
Index: xen-4.1.1-testing/xen/arch/x86/oprofile/op_x86_model.h
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/oprofile/op_x86_model.h
+++ xen-4.1.1-testing/xen/arch/x86/oprofile/op_x86_model.h
@@ -48,6 +48,7 @@ extern struct op_x86_model_spec op_arch_
extern struct op_x86_model_spec const op_p4_spec;
extern struct op_x86_model_spec const op_p4_ht2_spec;
extern struct op_x86_model_spec const op_athlon_spec;
+extern struct op_x86_model_spec const op_amd_fam15h_spec;
void arch_perfmon_setup_counters(void);
#endif /* OP_X86_MODEL_H */
Index: xen-4.1.1-testing/xen/include/asm-x86/msr-index.h
===================================================================
--- xen-4.1.1-testing.orig/xen/include/asm-x86/msr-index.h
+++ xen-4.1.1-testing/xen/include/asm-x86/msr-index.h
@@ -224,6 +224,19 @@
#define MSR_K8_VM_CR 0xc0010114
#define MSR_K8_VM_HSAVE_PA 0xc0010117
+#define MSR_AMD_FAM15H_EVNTSEL0 0xc0010200
+#define MSR_AMD_FAM15H_PERFCTR0 0xc0010201
+#define MSR_AMD_FAM15H_EVNTSEL1 0xc0010202
+#define MSR_AMD_FAM15H_PERFCTR1 0xc0010203
+#define MSR_AMD_FAM15H_EVNTSEL2 0xc0010204
+#define MSR_AMD_FAM15H_PERFCTR2 0xc0010205
+#define MSR_AMD_FAM15H_EVNTSEL3 0xc0010206
+#define MSR_AMD_FAM15H_PERFCTR3 0xc0010207
+#define MSR_AMD_FAM15H_EVNTSEL4 0xc0010208
+#define MSR_AMD_FAM15H_PERFCTR4 0xc0010209
+#define MSR_AMD_FAM15H_EVNTSEL5 0xc001020a
+#define MSR_AMD_FAM15H_PERFCTR5 0xc001020b
+
#define MSR_K8_FEATURE_MASK 0xc0011004
#define MSR_K8_EXT_FEATURE_MASK 0xc0011005

261
23306-amd-fam15-vpmu.patch Normal file
View File

@ -0,0 +1,261 @@
References: FATE#309893, FATE#309906
# HG changeset patch
# User Jacob Shin <jacob.shin@amd.com>
# Date 1304931286 -3600
# Node ID e787d4f2e5acdba48728a9390710de800315a540
# Parent 014ee4e09644bd3ae55919d267f742c1d60c337a
hvm: vpmu: Add support for AMD Family 15h processors
AMD Family 15h CPU mirrors legacy K7 performance monitor counters to
a new location, and adds 2 new counters. This patch updates HVM VPMU
to take advantage of the new counters.
Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/svm.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/svm.c
@@ -1143,6 +1143,18 @@ static int svm_msr_read_intercept(unsign
case MSR_K7_EVNTSEL1:
case MSR_K7_EVNTSEL2:
case MSR_K7_EVNTSEL3:
+ case MSR_AMD_FAM15H_PERFCTR0:
+ case MSR_AMD_FAM15H_PERFCTR1:
+ case MSR_AMD_FAM15H_PERFCTR2:
+ case MSR_AMD_FAM15H_PERFCTR3:
+ case MSR_AMD_FAM15H_PERFCTR4:
+ case MSR_AMD_FAM15H_PERFCTR5:
+ case MSR_AMD_FAM15H_EVNTSEL0:
+ case MSR_AMD_FAM15H_EVNTSEL1:
+ case MSR_AMD_FAM15H_EVNTSEL2:
+ case MSR_AMD_FAM15H_EVNTSEL3:
+ case MSR_AMD_FAM15H_EVNTSEL4:
+ case MSR_AMD_FAM15H_EVNTSEL5:
vpmu_do_rdmsr(msr, msr_content);
break;
@@ -1238,6 +1250,18 @@ static int svm_msr_write_intercept(unsig
case MSR_K7_EVNTSEL1:
case MSR_K7_EVNTSEL2:
case MSR_K7_EVNTSEL3:
+ case MSR_AMD_FAM15H_PERFCTR0:
+ case MSR_AMD_FAM15H_PERFCTR1:
+ case MSR_AMD_FAM15H_PERFCTR2:
+ case MSR_AMD_FAM15H_PERFCTR3:
+ case MSR_AMD_FAM15H_PERFCTR4:
+ case MSR_AMD_FAM15H_PERFCTR5:
+ case MSR_AMD_FAM15H_EVNTSEL0:
+ case MSR_AMD_FAM15H_EVNTSEL1:
+ case MSR_AMD_FAM15H_EVNTSEL2:
+ case MSR_AMD_FAM15H_EVNTSEL3:
+ case MSR_AMD_FAM15H_EVNTSEL4:
+ case MSR_AMD_FAM15H_EVNTSEL5:
vpmu_do_wrmsr(msr, msr_content);
break;
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/vpmu.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/vpmu.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/vpmu.c
@@ -36,7 +36,9 @@
#include <public/hvm/save.h>
#include <asm/hvm/vpmu.h>
-#define NUM_COUNTERS 4
+#define F10H_NUM_COUNTERS 4
+#define F15H_NUM_COUNTERS 6
+#define MAX_NUM_COUNTERS F15H_NUM_COUNTERS
#define MSR_F10H_EVNTSEL_GO_SHIFT 40
#define MSR_F10H_EVNTSEL_EN_SHIFT 22
@@ -47,6 +49,11 @@
#define set_guest_mode(msr) (msr |= (1ULL << MSR_F10H_EVNTSEL_GO_SHIFT))
#define is_overflowed(msr) (!((msr) & (1ULL << (MSR_F10H_COUNTER_LENGTH-1))))
+static int __read_mostly num_counters = 0;
+static u32 __read_mostly *counters = NULL;
+static u32 __read_mostly *ctrls = NULL;
+static bool_t __read_mostly k7_counters_mirrored = 0;
+
/* PMU Counter MSRs. */
u32 AMD_F10H_COUNTERS[] = {
MSR_K7_PERFCTR0,
@@ -63,10 +70,28 @@ u32 AMD_F10H_CTRLS[] = {
MSR_K7_EVNTSEL3
};
+u32 AMD_F15H_COUNTERS[] = {
+ MSR_AMD_FAM15H_PERFCTR0,
+ MSR_AMD_FAM15H_PERFCTR1,
+ MSR_AMD_FAM15H_PERFCTR2,
+ MSR_AMD_FAM15H_PERFCTR3,
+ MSR_AMD_FAM15H_PERFCTR4,
+ MSR_AMD_FAM15H_PERFCTR5
+};
+
+u32 AMD_F15H_CTRLS[] = {
+ MSR_AMD_FAM15H_EVNTSEL0,
+ MSR_AMD_FAM15H_EVNTSEL1,
+ MSR_AMD_FAM15H_EVNTSEL2,
+ MSR_AMD_FAM15H_EVNTSEL3,
+ MSR_AMD_FAM15H_EVNTSEL4,
+ MSR_AMD_FAM15H_EVNTSEL5
+};
+
/* storage for context switching */
struct amd_vpmu_context {
- u64 counters[NUM_COUNTERS];
- u64 ctrls[NUM_COUNTERS];
+ u64 counters[MAX_NUM_COUNTERS];
+ u64 ctrls[MAX_NUM_COUNTERS];
u32 hw_lapic_lvtpc;
};
@@ -78,10 +103,45 @@ static inline int get_pmu_reg_type(u32 a
if ( (addr >= MSR_K7_PERFCTR0) && (addr <= MSR_K7_PERFCTR3) )
return MSR_TYPE_COUNTER;
+ if ( (addr >= MSR_AMD_FAM15H_EVNTSEL0) &&
+ (addr <= MSR_AMD_FAM15H_PERFCTR5 ) )
+ {
+ if (addr & 1)
+ return MSR_TYPE_COUNTER;
+ else
+ return MSR_TYPE_CTRL;
+ }
+
/* unsupported registers */
return -1;
}
+static inline u32 get_fam15h_addr(u32 addr)
+{
+ switch ( addr )
+ {
+ case MSR_K7_PERFCTR0:
+ return MSR_AMD_FAM15H_PERFCTR0;
+ case MSR_K7_PERFCTR1:
+ return MSR_AMD_FAM15H_PERFCTR1;
+ case MSR_K7_PERFCTR2:
+ return MSR_AMD_FAM15H_PERFCTR2;
+ case MSR_K7_PERFCTR3:
+ return MSR_AMD_FAM15H_PERFCTR3;
+ case MSR_K7_EVNTSEL0:
+ return MSR_AMD_FAM15H_EVNTSEL0;
+ case MSR_K7_EVNTSEL1:
+ return MSR_AMD_FAM15H_EVNTSEL1;
+ case MSR_K7_EVNTSEL2:
+ return MSR_AMD_FAM15H_EVNTSEL2;
+ case MSR_K7_EVNTSEL3:
+ return MSR_AMD_FAM15H_EVNTSEL3;
+ default:
+ break;
+ }
+
+ return addr;
+}
static int amd_vpmu_do_interrupt(struct cpu_user_regs *regs)
{
@@ -110,12 +170,12 @@ static inline void context_restore(struc
struct vpmu_struct *vpmu = vcpu_vpmu(v);
struct amd_vpmu_context *ctxt = vpmu->context;
- for ( i = 0; i < NUM_COUNTERS; i++ )
- wrmsrl(AMD_F10H_CTRLS[i], ctxt->ctrls[i]);
+ for ( i = 0; i < num_counters; i++ )
+ wrmsrl(ctrls[i], ctxt->ctrls[i]);
- for ( i = 0; i < NUM_COUNTERS; i++ )
+ for ( i = 0; i < num_counters; i++ )
{
- wrmsrl(AMD_F10H_COUNTERS[i], ctxt->counters[i]);
+ wrmsrl(counters[i], ctxt->counters[i]);
/* Force an interrupt to allow guest reset the counter,
if the value is positive */
@@ -147,11 +207,11 @@ static inline void context_save(struct v
struct vpmu_struct *vpmu = vcpu_vpmu(v);
struct amd_vpmu_context *ctxt = vpmu->context;
- for ( i = 0; i < NUM_COUNTERS; i++ )
- rdmsrl(AMD_F10H_COUNTERS[i], ctxt->counters[i]);
+ for ( i = 0; i < num_counters; i++ )
+ rdmsrl(counters[i], ctxt->counters[i]);
- for ( i = 0; i < NUM_COUNTERS; i++ )
- rdmsrl(AMD_F10H_CTRLS[i], ctxt->ctrls[i]);
+ for ( i = 0; i < num_counters; i++ )
+ rdmsrl(ctrls[i], ctxt->ctrls[i]);
}
static void amd_vpmu_save(struct vcpu *v)
@@ -175,12 +235,18 @@ static void context_update(unsigned int
struct vpmu_struct *vpmu = vcpu_vpmu(v);
struct amd_vpmu_context *ctxt = vpmu->context;
- for ( i = 0; i < NUM_COUNTERS; i++ )
- if ( msr == AMD_F10H_COUNTERS[i] )
+ if ( k7_counters_mirrored &&
+ ((msr >= MSR_K7_EVNTSEL0) && (msr <= MSR_K7_PERFCTR3)) )
+ {
+ msr = get_fam15h_addr(msr);
+ }
+
+ for ( i = 0; i < num_counters; i++ )
+ if ( msr == counters[i] )
ctxt->counters[i] = msr_content;
- for ( i = 0; i < NUM_COUNTERS; i++ )
- if ( msr == AMD_F10H_CTRLS[i] )
+ for ( i = 0; i < num_counters; i++ )
+ if ( msr == ctrls[i] )
ctxt->ctrls[i] = msr_content;
ctxt->hw_lapic_lvtpc = apic_read(APIC_LVTPC);
@@ -235,10 +301,31 @@ static void amd_vpmu_initialise(struct v
{
struct amd_vpmu_context *ctxt = NULL;
struct vpmu_struct *vpmu = vcpu_vpmu(v);
+ __u8 family = current_cpu_data.x86;
if ( vpmu->flags & VPMU_CONTEXT_ALLOCATED )
return;
+ if ( counters == NULL )
+ {
+ switch ( family )
+ {
+ case 0x15:
+ num_counters = F15H_NUM_COUNTERS;
+ counters = AMD_F15H_COUNTERS;
+ ctrls = AMD_F15H_CTRLS;
+ k7_counters_mirrored = 1;
+ break;
+ case 0x10:
+ default:
+ num_counters = F10H_NUM_COUNTERS;
+ counters = AMD_F10H_COUNTERS;
+ ctrls = AMD_F10H_CTRLS;
+ k7_counters_mirrored = 0;
+ break;
+ }
+ }
+
ctxt = xmalloc_bytes(sizeof(struct amd_vpmu_context));
if ( !ctxt )
Index: xen-4.1.1-testing/xen/arch/x86/hvm/vpmu.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/vpmu.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/vpmu.c
@@ -101,6 +101,7 @@ void vpmu_initialise(struct vcpu *v)
switch ( family )
{
case 0x10:
+ case 0x15:
vpmu->arch_vpmu_ops = &amd_vpmu_ops;
break;
default:

View File

@ -0,0 +1,40 @@
References: FATE#309902, FATE#309903
# HG changeset patch
# User Jacob Shin <jacob.shin@amd.com>
# Date 1305188046 -3600
# Node ID 23e33ea79cac0303c729d4e82905054cded16348
# Parent fabdd682420c0c7b5e81f07f2f54211ebc11babe
hvm: vpmu: Enable HVM VPMU for AMD Family 12h and 14h processors
HVM VPMU support can be enabled for AMD Family 12h and 14h processors
by taking the same code path as 10h.
Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Index: xen-4.1.1-testing/xen/arch/x86/hvm/svm/vpmu.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/svm/vpmu.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/svm/vpmu.c
@@ -317,6 +317,8 @@ static void amd_vpmu_initialise(struct v
k7_counters_mirrored = 1;
break;
case 0x10:
+ case 0x12:
+ case 0x14:
default:
num_counters = F10H_NUM_COUNTERS;
counters = AMD_F10H_COUNTERS;
Index: xen-4.1.1-testing/xen/arch/x86/hvm/vpmu.c
===================================================================
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/vpmu.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/vpmu.c
@@ -101,6 +101,8 @@ void vpmu_initialise(struct vcpu *v)
switch ( family )
{
case 0x10:
+ case 0x12:
+ case 0x14:
case 0x15:
vpmu->arch_vpmu_ops = &amd_vpmu_ops;
break;

View File

@ -0,0 +1,38 @@
# HG changeset patch
# User Keir Fraser <keir@xen.org>
# Date 1305214920 -3600
# Node ID 9751bc49639ec4e34837545cdc982d0768e46d94
# Parent cc91832a02c7cb6b09729ca8e9fc497e5cb2ba4d
vt-d: [CVE-2011-1898] Ensure that "iommu=required" enables interrupt remapping.
Ensure that when Xen boots with "iommu=required" it will also insist
that interrupt remapping is supported and enabled. It arranges that
booting with that option on vulnerable hardware will fail, rather than
appearing to succeed but actually being vulnerable to guests.
From: Allen Kay <allen.m.kay@intel.com>
Signed-off-by: Keir Fraser <keir@xen.org>
Index: xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.c
===================================================================
--- xen-4.1.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.c
@@ -1985,6 +1985,8 @@ static int init_vtd_hw(void)
"ioapic_to_iommu: ioapic 0x%x (id: 0x%x) is NULL! "
"Will not try to enable Interrupt Remapping.\n",
apic, IO_APIC_ID(apic));
+ if ( force_iommu )
+ panic("intremap remapping failed to enable with iommu=required/force in grub\n");
break;
}
}
@@ -1998,6 +2000,9 @@ static int init_vtd_hw(void)
{
dprintk(XENLOG_WARNING VTDPREFIX,
"Interrupt Remapping not enabled\n");
+
+ if ( force_iommu && platform_supports_intremap() )
+ panic("intremap remapping failed to enable with iommu=required/force in grub\n");
break;
}
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2913,7 +2913,7 @@ class XendDomainInfo:
self.guest_bitsize = self.image.getBitSize()

View File

@ -29,10 +29,10 @@ keycodes up and down events and make sure the intentionally added altgr keycode
Signed-off by Chunyan Liu (cyliu@novell.com)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
@@ -1308,6 +1308,9 @@ static void do_key_event(VncState *vs, i
shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36];
altgr_keys = vs->modifiers_state[0xb8];

View File

@ -1,10 +1,10 @@
Subject: modify default read/write flag in bdrv_init.
Signed-off by Chunyan Liu <cyliu@novell.com>
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vl.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/vl.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/vl.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/vl.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/vl.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/vl.c
@@ -2617,6 +2617,8 @@ int drive_init(struct drive_opt *arg, in
strncpy(drives_table[nb_drives].serial, serial, sizeof(serial));
nb_drives++;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/block.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/block.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/block.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/block.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/block.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/block.c
@@ -350,7 +350,7 @@ int bdrv_file_open(BlockDriverState **pb
int bdrv_open(BlockDriverState *bs, const char *filename, int flags)
@ -28,10 +28,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/block.c
ret = drv->bdrv_open(bs, filename, open_flags);
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/usb-msd.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/usb-msd.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
@@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file
s = qemu_mallocz(sizeof(MSDState));
@ -41,10 +41,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/usb-msd.c
goto fail;
s->bs = bdrv;
*pbs = bdrv;
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-img.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-img.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-img.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-img.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-img.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-img.c
@@ -32,7 +32,7 @@
#endif

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -237,6 +237,7 @@ static int open_disk(struct td_state *s,
BlockDriver* drv;
char* devname;
@ -19,10 +19,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
fprintf(stderr, "Could not open image file %s\n", path);
return -ENOMEM;
}
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -136,7 +136,8 @@ static void insert_media(void *opaque)
else
format = &bdrv_raw;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/blktap/drivers/block-cdrom.c
Index: xen-4.1.1-testing/tools/blktap/drivers/block-cdrom.c
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/blktap/drivers/block-cdrom.c
+++ xen-4.1.1-testing/tools/blktap/drivers/block-cdrom.c
@@ -0,0 +1,535 @@
+/* block-cdrom.c
+ *
@ -538,10 +538,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/block-cdrom.c
+ .td_get_parent_id = tdcdrom_get_parent_id,
+ .td_validate_parent = tdcdrom_validate_parent
+};
Index: xen-4.1.0-testing/xen/include/public/io/cdromif.h
Index: xen-4.1.1-testing/xen/include/public/io/cdromif.h
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/xen/include/public/io/cdromif.h
+++ xen-4.1.1-testing/xen/include/public/io/cdromif.h
@@ -0,0 +1,122 @@
+/******************************************************************************
+ * cdromif.h
@ -665,10 +665,10 @@ Index: xen-4.1.0-testing/xen/include/public/io/cdromif.h
+ sizeof(struct vcd_generic_command) - sizeof(struct request_sense))
+
+#endif
Index: xen-4.1.0-testing/tools/blktap/drivers/Makefile
Index: xen-4.1.1-testing/tools/blktap/drivers/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/drivers/Makefile
+++ xen-4.1.0-testing/tools/blktap/drivers/Makefile
--- xen-4.1.1-testing.orig/tools/blktap/drivers/Makefile
+++ xen-4.1.1-testing/tools/blktap/drivers/Makefile
@@ -28,8 +28,9 @@ CFLAGS += -DMEMSHR
MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
endif
@ -689,10 +689,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/Makefile
BLK-OBJS-y += aes.o
BLK-OBJS-y += tapaio.o
BLK-OBJS-$(CONFIG_Linux) += blk_linux.o
Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
Index: xen-4.1.1-testing/tools/blktap/drivers/tapdisk.h
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/drivers/tapdisk.h
+++ xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
--- xen-4.1.1-testing.orig/tools/blktap/drivers/tapdisk.h
+++ xen-4.1.1-testing/tools/blktap/drivers/tapdisk.h
@@ -137,6 +137,9 @@ struct tap_disk {
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
int (*td_validate_parent)(struct disk_driver *dd,
@ -737,10 +737,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
};
typedef struct driver_list_entry {
Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
Index: xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/lib/blktaplib.h
+++ xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
--- xen-4.1.1-testing.orig/tools/blktap/lib/blktaplib.h
+++ xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
@@ -225,6 +225,7 @@ typedef struct msg_pid {
#define DISK_TYPE_RAM 3
#define DISK_TYPE_QCOW 4
@ -749,10 +749,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
/* xenstore/xenbus: */
#define DOMNAME "Domain-0"
Index: xen-4.1.0-testing/xen/include/public/io/blkif.h
Index: xen-4.1.1-testing/xen/include/public/io/blkif.h
===================================================================
--- xen-4.1.0-testing.orig/xen/include/public/io/blkif.h
+++ xen-4.1.0-testing/xen/include/public/io/blkif.h
--- xen-4.1.1-testing.orig/xen/include/public/io/blkif.h
+++ xen-4.1.1-testing/xen/include/public/io/blkif.h
@@ -80,7 +80,7 @@
* Used in SLES sources for device specific command packet
* contained within the request. Reserved for that purpose.
@ -762,10 +762,10 @@ Index: xen-4.1.0-testing/xen/include/public/io/blkif.h
/*
* Recognised only if "feature-trim" is present in backend xenbus info.
* The "feature-trim" node contains a boolean indicating whether trim
Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.c
Index: xen-4.1.1-testing/tools/blktap/drivers/tapdisk.c
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/drivers/tapdisk.c
+++ xen-4.1.0-testing/tools/blktap/drivers/tapdisk.c
--- xen-4.1.1-testing.orig/tools/blktap/drivers/tapdisk.c
+++ xen-4.1.1-testing/tools/blktap/drivers/tapdisk.c
@@ -735,6 +735,22 @@ static void get_io_request(struct td_sta
goto out;
}
@ -789,10 +789,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.c
default:
DPRINTF("Unknown block operation\n");
break;
Index: xen-4.1.0-testing/tools/python/xen/xend/server/BlktapController.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/BlktapController.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/BlktapController.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/BlktapController.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/BlktapController.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/BlktapController.py
@@ -15,6 +15,7 @@ blktap1_disk_types = [
'ram',
'qcow',

View File

@ -1,10 +1,10 @@
bug #239173
bug #242953
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -3295,7 +3295,7 @@ class XendDomainInfo:
(fn, BOOTLOADER_LOOPBACK_DEVICE))
@ -14,10 +14,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
'device': BOOTLOADER_LOOPBACK_DEVICE,
}
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -447,9 +447,9 @@ void xenstore_parse_domain_config(int hv
{
char **e_danger = NULL;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
Index: xen-4.1.1-testing/tools/blktap/drivers/tapdisk.h
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/drivers/tapdisk.h
+++ xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
--- xen-4.1.1-testing.orig/tools/blktap/drivers/tapdisk.h
+++ xen-4.1.1-testing/tools/blktap/drivers/tapdisk.h
@@ -168,7 +168,7 @@ static disk_info_t aio_disk = {
"raw image (aio)",
"aio",

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
@@ -249,6 +249,9 @@ op_start () {
claim_lock "network-bridge"

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
@@ -278,19 +278,19 @@ op_stop () {
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
@@ -257,6 +257,11 @@ op_start () {
create_bridge ${tdev}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
@@ -193,6 +193,28 @@ antispoofing () {
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
}

View File

@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
tapdisk-ioemu.c | 17 -----------------
4 files changed, 17 insertions(+), 26 deletions(-)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/Makefile
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/Makefile
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
@@ -46,14 +46,6 @@ $(filter %-user,$(SUBDIR_RULES)): libqem
recurse-all: $(SUBDIR_RULES)
@ -56,10 +56,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
######################################################################
# libqemu_common.a: Target independent part of system emulation. The
# long term path is to suppress *all* target specific code in case of
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/configure
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/configure
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/configure
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/configure
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/configure
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/configure
@@ -1511,7 +1511,7 @@ bsd)
;;
esac
@ -69,10 +69,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/configure
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
tools="qemu-img\$(EXESUF) $tools"
if [ "$linux" = "yes" ] ; then
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-tool.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-tool.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-tool.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-tool.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-tool.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-tool.c
@@ -68,7 +68,7 @@ void qemu_bh_delete(QEMUBH *bh)
qemu_free(bh);
}
@ -82,10 +82,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-tool.c
IOCanRWHandler *fd_read_poll,
IOHandler *fd_read,
IOHandler *fd_write,
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
@@ -12,34 +12,12 @@
extern void qemu_aio_init(void);

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
@@ -1342,6 +1342,11 @@ static void do_key_event(VncState *vs, i
}
break;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/server/HalDaemon.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/HalDaemon.py
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/python/xen/xend/server/HalDaemon.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/HalDaemon.py
@@ -0,0 +1,243 @@
+#!/usr/bin/env python
+# -*- mode: python; -*-
@ -246,10 +246,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/HalDaemon.py
+ print 'Falling off end'
+
+
Index: xen-4.1.0-testing/tools/python/xen/xend/server/Hald.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/Hald.py
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/python/xen/xend/server/Hald.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/Hald.py
@@ -0,0 +1,125 @@
+#============================================================================
+# This library is free software; you can redistribute it and/or
@ -376,10 +376,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/Hald.py
+ watcher.run()
+ time.sleep(10)
+ watcher.shutdown()
Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvServer.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/SrvServer.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/SrvServer.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/SrvServer.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/SrvServer.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/SrvServer.py
@@ -57,6 +57,7 @@ from xen.web.SrvDir import SrvDir
from SrvRoot import SrvRoot
@ -397,10 +397,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvServer.py
def create():
root = SrvDir()
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -18,6 +18,7 @@
#include "exec-all.h"
#include "sysemu.h"

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -3130,6 +3130,11 @@ class XendDomainInfo:
self._cleanup_phantom_devs(paths)
self._cleanupVm()

View File

@ -5,10 +5,10 @@ get the signal, it will wait until timeout, thus incorrect device status is
returned. To fix this problem, we do not depend on ev.wait() result, but read
xenstore directly to get correct device status.
Index: xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
@@ -149,7 +149,10 @@ class DevController:
(status, err) = self.waitForBackend(devid)

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendCheckpoint.py
@@ -172,7 +172,7 @@ def save(fd, dominfo, network, live, dst
dominfo.destroy()
dominfo.testDeviceComplete()

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -1297,8 +1297,15 @@ class XendDomainInfo:
frontpath = self.getDeviceController(deviceClass).frontendPath(dev)
backpath = xstransact.Read(frontpath, "backend")

View File

@ -1,8 +1,8 @@
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
--- xen-4.1.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -398,6 +398,11 @@ static int __devinit platform_pci_init(s
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -425,6 +425,11 @@ static int __devinit platform_pci_init(s
platform_mmio = mmio_addr;
platform_mmiolen = mmio_len;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/arch/x86/domain.c
Index: xen-4.1.1-testing/xen/arch/x86/domain.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/domain.c
+++ xen-4.1.0-testing/xen/arch/x86/domain.c
--- xen-4.1.1-testing.orig/xen/arch/x86/domain.c
+++ xen-4.1.1-testing/xen/arch/x86/domain.c
@@ -150,15 +150,30 @@ void dump_pageframe_info(struct domain *
printk("Memory pages belonging to domain %u:\n", d->domain_id);

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
@@ -1874,7 +1874,14 @@ class XendConfig(dict):
ports = sxp.child(dev_sxp, 'port')
for port in ports[1:]:

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/firmware/hvmloader/acpi/dsdt.asl
Index: xen-4.1.1-testing/tools/firmware/hvmloader/acpi/dsdt.asl
===================================================================
--- xen-4.1.0-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
+++ xen-4.1.0-testing/tools/firmware/hvmloader/acpi/dsdt.asl
--- xen-4.1.1-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
+++ xen-4.1.1-testing/tools/firmware/hvmloader/acpi/dsdt.asl
@@ -30,21 +30,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
/*
* S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:

View File

@ -17,10 +17,10 @@ Signed-off-by: Olaf Hering <olaf@aepfle.de>
tools/hotplug/Linux/block | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: xen-4.1.0-testing/tools/hotplug/Linux/block
Index: xen-4.1.1-testing/tools/hotplug/Linux/block
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/block
+++ xen-4.1.0-testing/tools/hotplug/Linux/block
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/block
+++ xen-4.1.1-testing/tools/hotplug/Linux/block
@@ -280,8 +280,8 @@ mount it read-write in a guest domain."
fi

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
@@ -159,6 +159,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
'nographic': int,
'nomigrate': int,
@ -19,10 +19,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
if 'viridian' not in self['platform']:
self['platform']['viridian'] = 0
if 'rtc_timeoffset' not in self['platform']:
Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
Index: xen-4.1.1-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
@@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler):
self.apic = int(vmConfig['platform'].get('apic', 0))
@ -31,10 +31,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
self.guest_os_type = vmConfig['platform'].get('guest_os_type')
self.memory_sharing = int(vmConfig['memory_sharing'])
try:
Index: xen-4.1.0-testing/tools/python/xen/xm/create.py
Index: xen-4.1.1-testing/tools/python/xen/xm/create.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xm/create.py
+++ xen-4.1.0-testing/tools/python/xen/xm/create.py
--- xen-4.1.1-testing.orig/tools/python/xen/xm/create.py
+++ xen-4.1.1-testing/tools/python/xen/xm/create.py
@@ -242,6 +242,10 @@ gopts.var('viridian', val='VIRIDIAN',
use="""Expose Viridian interface to x86 HVM guest?
(Default is 0).""")

View File

@ -17,10 +17,10 @@ qcow2 image (the header is gone after three loop iterations):
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/block-qcow2.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/block-qcow2.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/block-qcow2.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/block-qcow2.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/block-qcow2.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/block-qcow2.c
@@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr
goto err;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -259,8 +259,11 @@ static int open_disk(struct td_state *s,
drv = blktap_drivers[i].drv;
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -360,6 +360,15 @@ static void qemu_send_responses(void* op
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
@@ -269,6 +269,7 @@ void qemu_invalidate_entry(uint8_t *buff
#endif /* defined(MAPCACHE) */

View File

@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
hw/xen_blktap.h | 14 ++++++++++++++
2 files changed, 33 insertions(+), 3 deletions(-)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -230,9 +230,10 @@ static int map_new_dev(struct td_state *
return -1;
}
@ -64,10 +64,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
msglen = sizeof(msg_hdr_t);
msg->type = CTLMSG_IMG_FAIL;
msg->len = msglen;
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
@@ -53,4 +53,18 @@ typedef struct fd_list_entry {
int init_blktap(void);

View File

@ -12,10 +12,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
hw/xen_blktap.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -268,6 +268,12 @@ static int open_disk(struct td_state *s,
s->size = bs->total_sectors;
s->sector_size = 512;
@ -29,10 +29,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
s->info = ((s->flags & TD_RDONLY) ? VDISK_READONLY : 0);
return 0;
Index: xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
@@ -155,7 +155,7 @@ class DevController:
(devid, self.deviceClass))

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/Makefile
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/Makefile
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
@@ -243,7 +243,7 @@ endif
install: all $(if $(BUILD_DOCS),install-doc)
mkdir -p "$(DESTDIR)$(bindir)"
@ -11,10 +11,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
endif
ifneq ($(BLOBS),)
mkdir -p "$(DESTDIR)$(datadir)"
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile.target
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile.target
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/Makefile.target
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile.target
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/Makefile.target
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile.target
@@ -755,7 +755,7 @@ clean:
install: all install-hook

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
@@ -1,6 +1,8 @@
#ifndef QEMU_XEN_H
#define QEMU_XEN_H
@ -20,10 +20,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
int xenstore_parse_disable_pf_config(void);
int xenstore_fd(void);
void xenstore_process_event(void *opaque);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vl.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/vl.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/vl.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/vl.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/vl.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/vl.c
@@ -5830,9 +5830,9 @@ int main(int argc, char **argv, char **e
if ((msg = xenbus_read(XBT_NIL, "domid", &domid_s)))
fprintf(stderr,"Can not read our own domid: %s\n", msg);
@ -36,10 +36,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vl.c
#endif /* CONFIG_STUBDOM */
}
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -447,7 +447,7 @@ void xenstore_init(void)
}
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
case 4:
fprintf(logfile, "Disconnect IDE hard disk...\n");
@ -11,10 +11,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
fprintf(logfile, "Disconnect netifs...\n");
pci_unplug_netifs();
fprintf(logfile, "Shutdown taps...\n");
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
@@ -57,6 +57,7 @@ void unset_vram_mapping(void *opaque);
#endif
@ -23,10 +23,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
void destroy_hvm_domain(void);
void unregister_iomem(target_phys_addr_t start);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/pci.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/pci.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/pci.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/pci.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/pci.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/pci.c
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
}
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/vnc.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/vnc.c
@@ -1734,6 +1734,25 @@ static int protocol_client_msg(VncState
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/libxen/src/xen_common.c
Index: xen-4.1.1-testing/tools/libxen/src/xen_common.c
===================================================================
--- xen-4.1.0-testing.orig/tools/libxen/src/xen_common.c
+++ xen-4.1.0-testing/tools/libxen/src/xen_common.c
--- xen-4.1.1-testing.orig/tools/libxen/src/xen_common.c
+++ xen-4.1.1-testing/tools/libxen/src/xen_common.c
@@ -904,8 +904,15 @@ static void parse_into(xen_session *s, x
0 != strcmp((char *)value_node->children->name, "struct") ||
value_node->children->children == NULL)

View File

@ -2,10 +2,10 @@ Make our PV drivers work with older hosts that do not recognize the new PV driv
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
--- xen-4.1.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -322,7 +322,10 @@ static int check_platform_magic(struct d
if (magic != XEN_IOPORT_MAGIC_VAL) {

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/extras/mini-os/lib/math.c
Index: xen-4.1.1-testing/extras/mini-os/lib/math.c
===================================================================
--- xen-4.1.0-testing.orig/extras/mini-os/lib/math.c
+++ xen-4.1.0-testing/extras/mini-os/lib/math.c
--- xen-4.1.1-testing.orig/extras/mini-os/lib/math.c
+++ xen-4.1.1-testing/extras/mini-os/lib/math.c
@@ -187,6 +187,7 @@ __qdivrem(uint64_t uq, uint64_t vq, uint
* and thus
* m = 4 - n <= 2

View File

@ -5,10 +5,10 @@ bootloader loopback device. This patch creates a list of bootloader
loopback devices so more than one instance of bootloader can be run
concurrently.
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -74,7 +74,7 @@ from xen.xend.XendPSCSI import XendPSCSI
from xen.xend.XendDSCSI import XendDSCSI, XendDSCSI_HBA

View File

@ -1,9 +1,9 @@
Open SuSEfirewall2 FORWARD rule when use xen nat
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-nat
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-nat
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-nat
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-nat
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-nat
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-nat
@@ -83,6 +83,7 @@ function dhcp_stop()
op_start() {
echo 1 >/proc/sys/net/ipv4/ip_forward

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/network-nat
Index: xen-4.1.1-testing/tools/hotplug/Linux/network-nat
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/network-nat
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-nat
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/network-nat
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-nat
@@ -1,4 +1,4 @@
-#!/bin/bash -x
+#!/bin/bash

View File

@ -1,12 +1,16 @@
--- a/unmodified_drivers/linux-2.6/blkfront/Kbuild
+++ b/unmodified_drivers/linux-2.6/blkfront/Kbuild
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild
===================================================================
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/blkfront/Kbuild
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild
@@ -3,3 +3,4 @@ include $(M)/overrides.mk
obj-m += xen-vbd.o
xen-vbd-objs := blkfront.o vbd.o
+xen-vbd-objs += $(patsubst %.c,%.o,$(notdir $(wildcard $(src)/vcd.c)))
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -123,6 +123,7 @@ unsigned long alloc_xen_mmio(unsigned lo
#ifndef __ia64__

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
===================================================================
--- xen-4.1.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
@@ -40,7 +40,9 @@
#include <xen/platform-compat.h>
#endif
@ -12,10 +12,10 @@ Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
#define is_valid_evtchn(x) ((x) != 0)
#define evtchn_from_irq(x) (irq_evtchn[irq].evtchn)
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
===================================================================
--- xen-4.1.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -77,7 +77,6 @@ static uint64_t callback_via;
static int __devinit init_xen_info(void)
{
@ -44,10 +44,10 @@ Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.
return 0;
}
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
===================================================================
--- xen-4.1.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
--- xen-4.1.1-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
@@ -27,6 +27,11 @@
unsigned long alloc_xen_mmio(unsigned long len);
void platform_pci_resume(void);

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
@@ -365,6 +365,19 @@ static void platform_ioport_write(void *
net_tap_shutdown_all();
fprintf(logfile, "Done.\n");

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ide.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/ide.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/ide.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ide.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/ide.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/ide.c
@@ -935,8 +935,9 @@ static inline void ide_dma_submit_check(
static inline void ide_set_irq(IDEState *s)

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ne2000.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/ne2000.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/ne2000.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ne2000.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/ne2000.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/ne2000.c
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
NE2000State *s = opaque;
@ -11,10 +11,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ne2000.c
return !ne2000_buffer_full(s);
}
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/pc.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/pc.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/pc.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/pc.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/pc.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/pc.c
@@ -413,7 +413,8 @@ static void bochs_bios_write(void *opaqu
case 0x400:
case 0x401:

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/misc/serial-split/Makefile
Index: xen-4.1.1-testing/tools/misc/serial-split/Makefile
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/misc/serial-split/Makefile
+++ xen-4.1.1-testing/tools/misc/serial-split/Makefile
@@ -0,0 +1,20 @@
+CC ?= gcc
+CFLAGS ?= -Wall -Os
@ -23,10 +23,10 @@ Index: xen-4.1.0-testing/tools/misc/serial-split/Makefile
+
+%.o: %.c Makefile
+ $(CC) $(CFLAGS) -c -o $@ $<
Index: xen-4.1.0-testing/tools/misc/serial-split/serial-split.c
Index: xen-4.1.1-testing/tools/misc/serial-split/serial-split.c
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/misc/serial-split/serial-split.c
+++ xen-4.1.1-testing/tools/misc/serial-split/serial-split.c
@@ -0,0 +1,422 @@
+/*
+ * serial-split.c

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -978,6 +978,18 @@ static void xenstore_process_dm_command_
}
@ -21,10 +21,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
} else if (!strncmp(command, "continue", len)) {
fprintf(logfile, "dm-command: continue after state save\n");
xen_pause_requested = 0;
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/savevm.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/savevm.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
@@ -1106,6 +1106,35 @@ the_end:
return ret;
}
@ -61,10 +61,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
#ifndef CONFIG_DM
void do_savevm(const char *name)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
@@ -42,6 +42,7 @@ enum {
/* xen-vl-extra.c */

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -103,6 +103,8 @@ int xenstore_watch_new_callback(const ch
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/savevm.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/savevm.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
@@ -28,6 +28,7 @@
#include "sysemu.h"
#include "qemu-timer.h"
@ -97,10 +97,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
#ifndef CONFIG_DM
void do_savevm(const char *name)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/i386-dm/helper2.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/i386-dm/helper2.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c
@@ -112,6 +112,9 @@ int send_vcpu = 0;
//the evtchn port for polling the notification,
evtchn_port_t *ioreq_local_port;
@ -167,10 +167,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/i386-dm/helper2.c
/* Wait to be allowed to continue */
while (xen_pause_requested) {
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/qemu-xen.h
@@ -34,6 +34,15 @@ void qemu_invalidate_map_cache(void)
#define mapcache_lock() ((void)0)
#define mapcache_unlock() ((void)0)
@ -195,10 +195,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
void xenstore_check_new_media_present(int timeout);
void xenstore_read_vncpasswd(int domid, char *pwbuf, size_t pwbuflen);
void xenstore_write_vslots(char *vslots);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
@@ -17,6 +17,7 @@
#include "exec-all.h"

View File

@ -8,10 +8,10 @@ ready, so the watch will tell qemu to add the disk entry to
drives_table[], otherwise the disk in qemu will just stay opened,not
showing up in drives_table[].
Index: xen-4.1.0-testing/tools/blktap/drivers/blktapctrl.c
Index: xen-4.1.1-testing/tools/blktap/drivers/blktapctrl.c
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/drivers/blktapctrl.c
+++ xen-4.1.0-testing/tools/blktap/drivers/blktapctrl.c
--- xen-4.1.1-testing.orig/tools/blktap/drivers/blktapctrl.c
+++ xen-4.1.1-testing/tools/blktap/drivers/blktapctrl.c
@@ -380,7 +380,22 @@ static int write_msg(int fd, int msgtype
msg->cookie = blkif->cookie;
@ -121,10 +121,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/blktapctrl.c
ctlfd = blktap_interface_open();
if (ctlfd < 0) {
Index: xen-4.1.0-testing/tools/blktap/lib/blkif.c
Index: xen-4.1.1-testing/tools/blktap/lib/blkif.c
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/lib/blkif.c
+++ xen-4.1.0-testing/tools/blktap/lib/blkif.c
--- xen-4.1.1-testing.orig/tools/blktap/lib/blkif.c
+++ xen-4.1.1-testing/tools/blktap/lib/blkif.c
@@ -89,6 +89,11 @@ void register_new_blkif_hook(int (*fn)(b
{
new_blkif_hook = fn;
@ -162,10 +162,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blkif.c
void __init_blkif(void)
{
memset(blkif_hash, 0, sizeof(blkif_hash));
Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
Index: xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/lib/blktaplib.h
+++ xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
--- xen-4.1.1-testing.orig/tools/blktap/lib/blktaplib.h
+++ xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
@@ -38,6 +38,7 @@
#include <xen/xen.h>
#include <xen/io/blkif.h>
@ -197,10 +197,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
/* disk driver types */
#define MAX_DISK_TYPES 20
Index: xen-4.1.0-testing/tools/blktap/lib/xenbus.c
Index: xen-4.1.1-testing/tools/blktap/lib/xenbus.c
===================================================================
--- xen-4.1.0-testing.orig/tools/blktap/lib/xenbus.c
+++ xen-4.1.0-testing/tools/blktap/lib/xenbus.c
--- xen-4.1.1-testing.orig/tools/blktap/lib/xenbus.c
+++ xen-4.1.1-testing/tools/blktap/lib/xenbus.c
@@ -318,6 +318,72 @@ static int check_image(struct xs_handle
return 0;
}
@ -284,10 +284,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/xenbus.c
list_add(&be->list, &belist);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -35,6 +35,8 @@
#ifndef QEMU_TOOL
#include "qemu-common.h"
@ -378,10 +378,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
default:
break;
}
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.h
@@ -40,7 +40,8 @@ struct td_state {
void *fd_entry;
uint64_t sector_size;

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
Index: xen-4.1.1-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
@@ -490,7 +490,7 @@ class ImageHandler:
domains.domains_lock.acquire()
@ -43,10 +43,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
def recreate(self):
if self.device_model is None:
return
Index: xen-4.1.0-testing/tools/python/xen/xend/server/blkif.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/blkif.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/blkif.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/blkif.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/blkif.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/blkif.py
@@ -88,6 +88,10 @@ class BlkifController(DevController):
if bootable != None:
back['bootable'] = str(bootable)
@ -58,10 +58,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/blkif.py
if security.on() == xsconstants.XS_POLICY_USE:
self.do_access_control(config, uname)
Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvDomain.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/SrvDomain.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/SrvDomain.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/SrvDomain.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/SrvDomain.py
@@ -95,6 +95,31 @@ class SrvDomain(SrvDir):
def do_save(self, _, req):
return self.xd.domain_save(self.dom.domid, req.args['file'][0])
@ -103,10 +103,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvDomain.py
return self.perform(req)
#
Index: xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendCheckpoint.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendCheckpoint.py
@@ -65,7 +65,7 @@ def insert_after(list, pred, value):
return
@ -331,10 +331,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
if not paused:
dominfo.unpause()
Index: xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
@@ -244,6 +244,7 @@ XENAPI_CFG_TYPES = {
'memory_sharing': int,
'pool_name' : str,
@ -343,10 +343,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
}
# List of legacy configuration keys that have no equivalent in the
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomain.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomain.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomain.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomain.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomain.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomain.py
@@ -53,6 +53,7 @@ from xen.xend.xenstore.xstransact import
from xen.xend.xenstore.xswatch import xswatch
from xen.util import mkdir, rwlock
@ -561,10 +561,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomain.py
def domain_pincpu(self, domid, vcpu, cpumap):
"""Set which cpus vcpu can use
Index: xen-4.1.0-testing/tools/python/xen/xm/main.py
Index: xen-4.1.1-testing/tools/python/xen/xm/main.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xm/main.py
+++ xen-4.1.0-testing/tools/python/xen/xm/main.py
--- xen-4.1.1-testing.orig/tools/python/xen/xm/main.py
+++ xen-4.1.1-testing/tools/python/xen/xm/main.py
@@ -123,6 +123,14 @@ SUBCOMMAND_HELP = {
'Restore a domain from a saved state.'),
'save' : ('[-c|-f] <Domain> <CheckpointFile>',
@ -686,10 +686,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xm/main.py
"shutdown": xm_shutdown,
"start": xm_start,
"sysrq": xm_sysrq,
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -508,7 +508,6 @@ class XendDomainInfo:
self._setSchedParams()
self._storeVmDetails()

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/arch/x86/hvm/stdvga.c
Index: xen-4.1.1-testing/xen/arch/x86/hvm/stdvga.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/hvm/stdvga.c
+++ xen-4.1.0-testing/xen/arch/x86/hvm/stdvga.c
--- xen-4.1.1-testing.orig/xen/arch/x86/hvm/stdvga.c
+++ xen-4.1.1-testing/xen/arch/x86/hvm/stdvga.c
@@ -135,7 +135,10 @@ static int stdvga_outb(uint64_t addr, ui
/* When in standard vga mode, emulate here all writes to the vram buffer

View File

@ -2,10 +2,10 @@ Make our PV drivers "Novell supported modules"
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
Index: xen-4.1.0-testing/unmodified_drivers/linux-2.6/Module.supported
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/Module.supported
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/unmodified_drivers/linux-2.6/Module.supported
+++ xen-4.1.1-testing/unmodified_drivers/linux-2.6/Module.supported
@@ -0,0 +1,5 @@
+xen-vbd
+xen-platform-pci

View File

@ -11,10 +11,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
tapdisk-ioemu.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
@@ -78,15 +78,22 @@ int main(void)
struct timeval tv;
void *old_fd_start = NULL;

View File

@ -16,10 +16,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
tapdisk-ioemu.c | 13 ++++++++++---
2 files changed, 14 insertions(+), 4 deletions(-)
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_blktap.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
@@ -67,6 +67,7 @@ int read_fd;
int write_fd;
@ -46,10 +46,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
case CTLMSG_PID:
memset(buf, 0x00, MSG_SIZE);
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/tapdisk-ioemu.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/tapdisk-ioemu.c
@@ -14,6 +14,7 @@ extern void qemu_aio_init(void);
extern void qemu_aio_poll(void);

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/init.d/xencommons
Index: xen-4.1.1-testing/tools/hotplug/Linux/init.d/xencommons
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/init.d/xencommons
+++ xen-4.1.0-testing/tools/hotplug/Linux/init.d/xencommons
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/init.d/xencommons
+++ xen-4.1.1-testing/tools/hotplug/Linux/init.d/xencommons
@@ -45,6 +45,18 @@ do_start () {
local time=0
local timeout=30

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/xenstore/Makefile
Index: xen-4.1.1-testing/tools/xenstore/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/xenstore/Makefile
+++ xen-4.1.0-testing/tools/xenstore/Makefile
--- xen-4.1.1-testing.orig/tools/xenstore/Makefile
+++ xen-4.1.1-testing/tools/xenstore/Makefile
@@ -58,6 +58,7 @@ $(CLIENTS_DOMU): xenstore
xenstore: xenstore_client.o $(LIBXENSTORE)

View File

@ -13,10 +13,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
tools/kboot/select-kernel | 59 +
9 files changed, 2111 insertions(+)
Index: xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
Index: xen-4.1.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
+++ xen-4.1.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
@@ -0,0 +1,874 @@
+#
+# Automatically generated make config: don't edit
@ -892,10 +892,10 @@ Index: xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
+CONFIG_X86_NO_TSS=y
+CONFIG_X86_NO_IDT=y
+CONFIG_KTIME_SCALAR=y
Index: xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
Index: xen-4.1.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
+++ xen-4.1.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
@@ -0,0 +1,653 @@
+#
+# Automatically generated make config: don't edit
@ -1550,17 +1550,17 @@ Index: xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_64
+# CONFIG_CRC32 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
Index: xen-4.1.0-testing/buildconfigs/mk.linux-2.6-xenUboot
Index: xen-4.1.1-testing/buildconfigs/mk.linux-2.6-xenUboot
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/buildconfigs/mk.linux-2.6-xenUboot
+++ xen-4.1.1-testing/buildconfigs/mk.linux-2.6-xenUboot
@@ -0,0 +1,2 @@
+EXTRAVERSION = xenUboot
+include buildconfigs/mk.linux-2.6-xen
Index: xen-4.1.0-testing/tools/kboot/Makefile
Index: xen-4.1.1-testing/tools/kboot/Makefile
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/kboot/Makefile
+++ xen-4.1.1-testing/tools/kboot/Makefile
@@ -0,0 +1,23 @@
+#
+# tools/kboot/Makefile
@ -1585,10 +1585,10 @@ Index: xen-4.1.0-testing/tools/kboot/Makefile
+kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec
+ sh ./mkinitramfs | tee $@
+
Index: xen-4.1.0-testing/tools/kboot/README
Index: xen-4.1.1-testing/tools/kboot/README
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/kboot/README
+++ xen-4.1.1-testing/tools/kboot/README
@@ -0,0 +1,43 @@
+
+This is a simple kexec-based boot loader
@ -1633,10 +1633,10 @@ Index: xen-4.1.0-testing/tools/kboot/README
+
+--
+Gerd Hoffmann <kraxel@suse.de>
Index: xen-4.1.0-testing/tools/kboot/init
Index: xen-4.1.1-testing/tools/kboot/init
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/kboot/init
+++ xen-4.1.1-testing/tools/kboot/init
@@ -0,0 +1,309 @@
+#!/bin/sh
+
@ -1947,10 +1947,10 @@ Index: xen-4.1.0-testing/tools/kboot/init
+msg "bye ..."
+banner "boot $guestos"
+xc_kexec -e
Index: xen-4.1.0-testing/tools/kboot/mkinitramfs
Index: xen-4.1.1-testing/tools/kboot/mkinitramfs
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/kboot/mkinitramfs
+++ xen-4.1.1-testing/tools/kboot/mkinitramfs
@@ -0,0 +1,111 @@
+#!/bin/sh
+
@ -2063,10 +2063,10 @@ Index: xen-4.1.0-testing/tools/kboot/mkinitramfs
+ echo "file $LIB/$(basename $lib) $lib 0755 0 0"
+done
+echo
Index: xen-4.1.0-testing/tools/kboot/select-kernel
Index: xen-4.1.1-testing/tools/kboot/select-kernel
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/kboot/select-kernel
+++ xen-4.1.1-testing/tools/kboot/select-kernel
@@ -0,0 +1,59 @@
+#!/bin/sh
+
@ -2127,10 +2127,10 @@ Index: xen-4.1.0-testing/tools/kboot/select-kernel
+msg "using $kernelname"
+echo "$kernelname"
+
Index: xen-4.1.0-testing/make-kboot
Index: xen-4.1.1-testing/make-kboot
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/make-kboot
+++ xen-4.1.1-testing/make-kboot
@@ -0,0 +1,37 @@
+#!/bin/sh
+

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/xen-backend.rules
Index: xen-4.1.1-testing/tools/hotplug/Linux/xen-backend.rules
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/xen-backend.rules
+++ xen-4.1.0-testing/tools/hotplug/Linux/xen-backend.rules
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/xen-backend.rules
+++ xen-4.1.1-testing/tools/hotplug/Linux/xen-backend.rules
@@ -14,3 +14,4 @@ KERNEL=="gntdev", NAME="xen/%k", MODE="0
KERNEL=="pci_iomul", NAME="xen/%k", MODE="0600"
KERNEL=="tapdev[a-z]*", NAME="xen/blktap-2/tapdev%m", MODE="0600"

View File

@ -15,10 +15,10 @@ could be referred to:
http://www.gossamer-threads.com/lists/xen/devel/181021?search_string=usb-list;#181021
Index: xen-4.1.0-testing/tools/python/xen/xm/main.py
Index: xen-4.1.1-testing/tools/python/xen/xm/main.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xm/main.py
+++ xen-4.1.0-testing/tools/python/xen/xm/main.py
--- xen-4.1.1-testing.orig/tools/python/xen/xm/main.py
+++ xen-4.1.1-testing/tools/python/xen/xm/main.py
@@ -2629,10 +2629,22 @@ def xm_usb_list(args):
ni = parse_dev_info(x[1])
ni['idx'] = int(x[0])

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/vif-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/vif-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
@@ -101,9 +101,9 @@ case "$command" in
;;
esac

View File

@ -15,10 +15,10 @@ Signed-off-by: Olaf Hering <olaf@aepfle.de>
tools/hotplug/Linux/vif-bridge | 5 +++++
1 file changed, 5 insertions(+)
Index: xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
Index: xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/vif-bridge
+++ xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/vif-bridge
+++ xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
@@ -97,6 +97,11 @@ case "$command" in
add)

View File

@ -4,10 +4,10 @@
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
Index: xen-4.1.0-testing/tools/examples/xend-config.sxp
Index: xen-4.1.1-testing/tools/examples/xend-config.sxp
===================================================================
--- xen-4.1.0-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.1.0-testing/tools/examples/xend-config.sxp
--- xen-4.1.1-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.1.1-testing/tools/examples/xend-config.sxp
@@ -200,6 +200,26 @@
#(network-script network-route)
#(vif-script vif-route)
@ -35,10 +35,10 @@ Index: xen-4.1.0-testing/tools/examples/xend-config.sxp
## Use the following if network traffic is routed with NAT, as an alternative
# to the settings for bridged networking given above.
Index: xen-4.1.0-testing/tools/hotplug/Linux/Makefile
Index: xen-4.1.1-testing/tools/hotplug/Linux/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/Makefile
+++ xen-4.1.0-testing/tools/hotplug/Linux/Makefile
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/Makefile
+++ xen-4.1.1-testing/tools/hotplug/Linux/Makefile
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
# Xen script dir and scripts to go there.
@ -48,10 +48,10 @@ Index: xen-4.1.0-testing/tools/hotplug/Linux/Makefile
XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += vif2
XEN_SCRIPTS += vif-setup
Index: xen-4.1.0-testing/tools/hotplug/Linux/vif-route-ifup
Index: xen-4.1.1-testing/tools/hotplug/Linux/vif-route-ifup
===================================================================
--- /dev/null
+++ xen-4.1.0-testing/tools/hotplug/Linux/vif-route-ifup
+++ xen-4.1.1-testing/tools/hotplug/Linux/vif-route-ifup
@@ -0,0 +1,34 @@
+#!/bin/bash
+#============================================================================

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/arch/x86/platform_hypercall.c
Index: xen-4.1.1-testing/xen/arch/x86/platform_hypercall.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/platform_hypercall.c
+++ xen-4.1.0-testing/xen/arch/x86/platform_hypercall.c
--- xen-4.1.1-testing.orig/xen/arch/x86/platform_hypercall.c
+++ xen-4.1.1-testing/xen/arch/x86/platform_hypercall.c
@@ -22,7 +22,7 @@
#include <xen/cpu.h>
#include <asm/current.h>
@ -44,10 +44,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/platform_hypercall.c
default:
ret = -ENOSYS;
break;
Index: xen-4.1.0-testing/xen/include/public/platform.h
Index: xen-4.1.1-testing/xen/include/public/platform.h
===================================================================
--- xen-4.1.0-testing.orig/xen/include/public/platform.h
+++ xen-4.1.0-testing/xen/include/public/platform.h
--- xen-4.1.1-testing.orig/xen/include/public/platform.h
+++ xen-4.1.1-testing/xen/include/public/platform.h
@@ -355,6 +355,14 @@ struct xenpf_mem_hotadd
uint32_t flags;
};

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/arch/x86/x86_32/entry.S
Index: xen-4.1.1-testing/xen/arch/x86/x86_32/entry.S
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_32/entry.S
+++ xen-4.1.0-testing/xen/arch/x86/x86_32/entry.S
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_32/entry.S
+++ xen-4.1.1-testing/xen/arch/x86/x86_32/entry.S
@@ -389,29 +389,41 @@ UNLIKELY_END(bounce_vm86_3)
movl %eax,UREGS_eip+4(%esp)
ret
@ -62,10 +62,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_32/entry.S
domain_crash_synchronous:
pushl $domain_crash_synchronous_string
call printk
Index: xen-4.1.0-testing/xen/arch/x86/x86_64/entry.S
Index: xen-4.1.1-testing/xen/arch/x86/x86_64/entry.S
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_64/entry.S
+++ xen-4.1.0-testing/xen/arch/x86/x86_64/entry.S
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_64/entry.S
+++ xen-4.1.1-testing/xen/arch/x86/x86_64/entry.S
@@ -416,22 +416,35 @@ UNLIKELY_END(bounce_failsafe)
jz domain_crash_synchronous
movq %rax,UREGS_rip+8(%rsp)

View File

@ -1,9 +1,9 @@
Change default IO-APIC ack mode for single IO-APIC systems to old-style.
Index: xen-4.1.0-testing/xen/arch/x86/io_apic.c
Index: xen-4.1.1-testing/xen/arch/x86/io_apic.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/io_apic.c
+++ xen-4.1.0-testing/xen/arch/x86/io_apic.c
--- xen-4.1.1-testing.orig/xen/arch/x86/io_apic.c
+++ xen-4.1.1-testing/xen/arch/x86/io_apic.c
@@ -1547,7 +1547,7 @@ static unsigned int startup_level_ioapic
return 0; /* don't check for pending */
}

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/arch/x86/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/mm.c
+++ xen-4.1.0-testing/xen/arch/x86/mm.c
--- xen-4.1.1-testing.orig/xen/arch/x86/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/mm.c
@@ -160,6 +160,8 @@ static int get_superpage(unsigned long m
#endif
static void put_superpage(unsigned long mfn);
@ -11,11 +11,11 @@ Index: xen-4.1.0-testing/xen/arch/x86/mm.c
#define l1_disallow_mask(d) \
((d != dom_io) && \
(rangeset_is_empty((d)->iomem_caps) && \
Index: xen-4.1.0-testing/xen/arch/x86/traps.c
Index: xen-4.1.1-testing/xen/arch/x86/traps.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/traps.c
+++ xen-4.1.0-testing/xen/arch/x86/traps.c
@@ -1343,6 +1343,7 @@ asmlinkage void __init do_early_page_fau
--- xen-4.1.1-testing.orig/xen/arch/x86/traps.c
+++ xen-4.1.1-testing/xen/arch/x86/traps.c
@@ -1377,6 +1377,7 @@ asmlinkage void __init do_early_page_fau
unsigned long *stk = (unsigned long *)regs;
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
@ -23,10 +23,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/traps.c
printk("Stack dump: ");
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
printk("%p ", _p(*stk++));
Index: xen-4.1.0-testing/xen/arch/x86/x86_32/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/x86_32/mm.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_32/mm.c
+++ xen-4.1.0-testing/xen/arch/x86/x86_32/mm.c
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_32/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/x86_32/mm.c
@@ -123,6 +123,8 @@ void __init paging_init(void)
#undef CNT
#undef MFN
@ -36,10 +36,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_32/mm.c
/* Create page tables for ioremap()/map_domain_page_global(). */
for ( i = 0; i < (IOREMAP_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ )
{
Index: xen-4.1.0-testing/xen/arch/x86/x86_32/traps.c
Index: xen-4.1.1-testing/xen/arch/x86/x86_32/traps.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_32/traps.c
+++ xen-4.1.0-testing/xen/arch/x86/x86_32/traps.c
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_32/traps.c
+++ xen-4.1.1-testing/xen/arch/x86/x86_32/traps.c
@@ -164,7 +164,8 @@ void show_page_walk(unsigned long addr)
l3t += (cr3 & 0xFE0UL) >> 3;
l3e = l3t[l3_table_offset(addr)];
@ -70,10 +70,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_32/traps.c
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
unmap_domain_page(l1t);
Index: xen-4.1.0-testing/xen/arch/x86/x86_64/mm.c
Index: xen-4.1.1-testing/xen/arch/x86/x86_64/mm.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_64/mm.c
+++ xen-4.1.0-testing/xen/arch/x86/x86_64/mm.c
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_64/mm.c
+++ xen-4.1.1-testing/xen/arch/x86/x86_64/mm.c
@@ -750,6 +750,8 @@ void __init paging_init(void)
#undef CNT
#undef MFN
@ -83,10 +83,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_64/mm.c
/* Create user-accessible L2 directory to map the MPT for compat guests. */
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
Index: xen-4.1.0-testing/xen/arch/x86/x86_64/traps.c
Index: xen-4.1.1-testing/xen/arch/x86/x86_64/traps.c
===================================================================
--- xen-4.1.0-testing.orig/xen/arch/x86/x86_64/traps.c
+++ xen-4.1.0-testing/xen/arch/x86/x86_64/traps.c
--- xen-4.1.1-testing.orig/xen/arch/x86/x86_64/traps.c
+++ xen-4.1.1-testing/xen/arch/x86/x86_64/traps.c
@@ -176,7 +176,8 @@ void show_page_walk(unsigned long addr)
l4t = mfn_to_virt(mfn);
l4e = l4t[l4_table_offset(addr)];
@ -127,10 +127,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_64/traps.c
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
}
Index: xen-4.1.0-testing/xen/include/asm-x86/mm.h
Index: xen-4.1.1-testing/xen/include/asm-x86/mm.h
===================================================================
--- xen-4.1.0-testing.orig/xen/include/asm-x86/mm.h
+++ xen-4.1.0-testing/xen/include/asm-x86/mm.h
--- xen-4.1.1-testing.orig/xen/include/asm-x86/mm.h
+++ xen-4.1.1-testing/xen/include/asm-x86/mm.h
@@ -467,6 +467,8 @@ TYPE_SAFE(unsigned long,mfn);
#define SHARED_M2P_ENTRY (~0UL - 1UL)
#define SHARED_M2P(_e) ((_e) == SHARED_M2P_ENTRY)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9214f5f02f99bf2ff722602f90fbd4e4c39b59f9630fbc976e61de3a97db1b69
size 10774607

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fe402be2467f4d333366ed3cccb584f55bea31d72f2c8ed9bc90d1ae32d77dfc
size 10774044

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendAuthSessions.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendAuthSessions.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendAuthSessions.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendAuthSessions.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendAuthSessions.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendAuthSessions.py
@@ -84,7 +84,7 @@ class XendAuthSessions:
# if PAM doesn't exist, let's ignore it
return False

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/xen/Makefile
Index: xen-4.1.1-testing/xen/Makefile
===================================================================
--- xen-4.1.0-testing.orig/xen/Makefile
+++ xen-4.1.0-testing/xen/Makefile
--- xen-4.1.1-testing.orig/xen/Makefile
+++ xen-4.1.1-testing/xen/Makefile
@@ -1,3 +1,4 @@
+export XEN_CHANGESET = unavailable
# This is the correct place to edit the build version.

View File

@ -1,17 +1,17 @@
Index: xen-4.1.0-testing/Config.mk
Index: xen-4.1.1-testing/Config.mk
===================================================================
--- xen-4.1.0-testing.orig/Config.mk
+++ xen-4.1.0-testing/Config.mk
@@ -183,7 +183,7 @@ endif
--- xen-4.1.1-testing.orig/Config.mk
+++ xen-4.1.1-testing/Config.mk
@@ -194,7 +194,7 @@ endif
# Specify which qemu-dm to use. This may be `ioemu' to use the old
# Mercurial in-tree version, or a local directory, or a git URL.
# CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
-CONFIG_QEMU ?= $(QEMU_REMOTE)
+CONFIG_QEMU ?= ioemu-qemu-xen
QEMU_TAG := xen-4.1.0
QEMU_TAG := xen-4.1.1-rc1
#QEMU_TAG ?= e073e69457b4d99b6da0b6536296e3498f7f6599
@@ -193,7 +193,7 @@ QEMU_TAG := xen-4.1.0
@@ -204,7 +204,7 @@ QEMU_TAG := xen-4.1.1-rc1
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
@ -20,10 +20,10 @@ Index: xen-4.1.0-testing/Config.mk
PYTHON_TOOLS ?= y
OCAML_TOOLS ?= y
CONFIG_MINITERM ?= n
Index: xen-4.1.0-testing/tools/Makefile
Index: xen-4.1.1-testing/tools/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/Makefile
+++ xen-4.1.0-testing/tools/Makefile
--- xen-4.1.1-testing.orig/tools/Makefile
+++ xen-4.1.1-testing/tools/Makefile
@@ -79,14 +79,16 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TAR
--interp-prefix=$(CROSS_SYS_ROOT)
endif
@ -54,10 +54,10 @@ Index: xen-4.1.0-testing/tools/Makefile
.PHONY: ioemu-dir-force-update
ioemu-dir-force-update:
Index: xen-4.1.0-testing/tools/libxc/Makefile
Index: xen-4.1.1-testing/tools/libxc/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/libxc/Makefile
+++ xen-4.1.0-testing/tools/libxc/Makefile
--- xen-4.1.1-testing.orig/tools/libxc/Makefile
+++ xen-4.1.1-testing/tools/libxc/Makefile
@@ -195,7 +195,7 @@ xc_dom_bzimageloader.opic: CFLAGS += $(c
libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l)
@ -67,10 +67,10 @@ Index: xen-4.1.0-testing/tools/libxc/Makefile
xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl.so
$(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $(OSDEP_PIC_OBJS) -lxenctrl
Index: xen-4.1.0-testing/tools/firmware/etherboot/Makefile
Index: xen-4.1.1-testing/tools/firmware/etherboot/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/firmware/etherboot/Makefile
+++ xen-4.1.0-testing/tools/firmware/etherboot/Makefile
--- xen-4.1.1-testing.orig/tools/firmware/etherboot/Makefile
+++ xen-4.1.1-testing/tools/firmware/etherboot/Makefile
@@ -35,11 +35,13 @@ eb-roms.h: Config
mv -f $@.new $@

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/docs/Makefile
Index: xen-4.1.1-testing/docs/Makefile
===================================================================
--- xen-4.1.0-testing.orig/docs/Makefile
+++ xen-4.1.0-testing/docs/Makefile
--- xen-4.1.1-testing.orig/docs/Makefile
+++ xen-4.1.1-testing/docs/Makefile
@@ -90,7 +90,8 @@ install: all
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
cp -dR man1 $(DESTDIR)$(MANDIR)
@ -22,10 +22,10 @@ Index: xen-4.1.0-testing/docs/Makefile
+ ln -sf $*.html html.done/$*/index.html
+ rm -rf html/
+
Index: xen-4.1.0-testing/tools/security/Makefile
Index: xen-4.1.1-testing/tools/security/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/security/Makefile
+++ xen-4.1.0-testing/tools/security/Makefile
--- xen-4.1.1-testing.orig/tools/security/Makefile
+++ xen-4.1.1-testing/tools/security/Makefile
@@ -60,8 +60,8 @@ install: all $(ACM_CONFIG_FILE)
$(INSTALL_DATA) $(ACM_INST_HTML) $(DESTDIR)$(ACM_SECGEN_HTMLDIR)
$(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
@ -37,10 +37,10 @@ Index: xen-4.1.0-testing/tools/security/Makefile
else
.PHONY: all
all:
Index: xen-4.1.0-testing/tools/pygrub/Makefile
Index: xen-4.1.1-testing/tools/pygrub/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/pygrub/Makefile
+++ xen-4.1.0-testing/tools/pygrub/Makefile
--- xen-4.1.1-testing.orig/tools/pygrub/Makefile
+++ xen-4.1.1-testing/tools/pygrub/Makefile
@@ -11,7 +11,7 @@ build:
.PHONY: install
install: all
@ -50,10 +50,10 @@ Index: xen-4.1.0-testing/tools/pygrub/Makefile
$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
Index: xen-4.1.0-testing/tools/python/Makefile
Index: xen-4.1.1-testing/tools/python/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/python/Makefile
+++ xen-4.1.0-testing/tools/python/Makefile
--- xen-4.1.1-testing.orig/tools/python/Makefile
+++ xen-4.1.1-testing/tools/python/Makefile
@@ -65,7 +65,7 @@ refresh-po: $(POTFILE)
.PHONY: install
install: install-messages install-dtd
@ -63,10 +63,10 @@ Index: xen-4.1.0-testing/tools/python/Makefile
install-dtd: all
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen
Index: xen-4.1.0-testing/tools/xenstore/Makefile
Index: xen-4.1.1-testing/tools/xenstore/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/xenstore/Makefile
+++ xen-4.1.0-testing/tools/xenstore/Makefile
--- xen-4.1.1-testing.orig/tools/xenstore/Makefile
+++ xen-4.1.1-testing/tools/xenstore/Makefile
@@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenctrl)
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
@ -121,10 +121,10 @@ Index: xen-4.1.0-testing/tools/xenstore/Makefile
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
Index: xen-4.1.0-testing/tools/hotplug/Linux/Makefile
Index: xen-4.1.1-testing/tools/hotplug/Linux/Makefile
===================================================================
--- xen-4.1.0-testing.orig/tools/hotplug/Linux/Makefile
+++ xen-4.1.0-testing/tools/hotplug/Linux/Makefile
--- xen-4.1.1-testing.orig/tools/hotplug/Linux/Makefile
+++ xen-4.1.1-testing/tools/hotplug/Linux/Makefile
@@ -41,18 +41,6 @@ endif
UDEV_RULES_DIR = $(CONFIG_DIR)/udev
UDEV_RULES = xen-backend.rules xend.rules

View File

@ -5,10 +5,10 @@ the "sendkey" command, among other useful things), remove all console
commands that can read/write dom0's state.
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/monitor.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/monitor.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/monitor.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/monitor.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/monitor.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/monitor.c
@@ -1497,6 +1497,7 @@ static const term_cmd_t term_cmds[] = {
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
{ "info", "s?", do_info,

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/DevController.py
@@ -592,6 +592,31 @@ class DevController:
return (Missing, None)
@ -34,10 +34,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/DevController.py
def backendPath(self, backdom, devid):
"""Construct backend path given the backend domain and device id.
Index: xen-4.1.0-testing/tools/python/xen/xend/XendBootloader.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendBootloader.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendBootloader.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendBootloader.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendBootloader.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendBootloader.py
@@ -12,7 +12,7 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
@ -75,10 +75,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendBootloader.py
log.error(msg)
raise VmError(msg)
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2332,6 +2332,10 @@ class XendDomainInfo:
deviceClass, config = self.info['devices'].get(dev_uuid)
self._waitForDevice(deviceClass, config['devid'])

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/docs/man/xmdomain.cfg.pod.5
Index: xen-4.1.1-testing/docs/man/xmdomain.cfg.pod.5
===================================================================
--- xen-4.1.0-testing.orig/docs/man/xmdomain.cfg.pod.5
+++ xen-4.1.0-testing/docs/man/xmdomain.cfg.pod.5
--- xen-4.1.1-testing.orig/docs/man/xmdomain.cfg.pod.5
+++ xen-4.1.1-testing/docs/man/xmdomain.cfg.pod.5
@@ -335,16 +335,10 @@ at hda1, which is the root filesystem.
=item I<NFS Root>
@ -19,10 +19,10 @@ Index: xen-4.1.0-testing/docs/man/xmdomain.cfg.pod.5
=back
=head1 SEE ALSO
Index: xen-4.1.0-testing/docs/man/xm.pod.1
Index: xen-4.1.1-testing/docs/man/xm.pod.1
===================================================================
--- xen-4.1.0-testing.orig/docs/man/xm.pod.1
+++ xen-4.1.0-testing/docs/man/xm.pod.1
--- xen-4.1.1-testing.orig/docs/man/xm.pod.1
+++ xen-4.1.1-testing/docs/man/xm.pod.1
@@ -295,7 +295,8 @@ scheduling by the Xen hypervisor.
=item B<s - shutdown>

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/net.h
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/net.h
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/net.h
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/net.h
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/net.h
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/net.h
@@ -107,8 +107,8 @@ void net_host_device_add(const char *dev
void net_host_device_remove(int vlan_id, const char *device);
@ -13,10 +13,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/net.h
#endif
#ifdef __sun__
#define SMBD_COMMAND "/usr/sfw/sbin/smbd"
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/net.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/net.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/net.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/net.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/net.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/net.c
@@ -1759,9 +1759,10 @@ int net_client_init(const char *device,
}
if (get_param_value(script_arg, sizeof(script_arg), "scriptarg", p) == 0 &&
@ -30,10 +30,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/net.c
}
} else
#endif
Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
Index: xen-4.1.1-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
@@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler):
mac = devinfo.get('mac')
if mac is None:
@ -51,10 +51,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
vifname = devinfo.get('vifname')
if vifname:
vifname = "tap-" + vifname
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
@@ -1,36 +1,22 @@
#!/bin/sh

View File

@ -1,9 +1,9 @@
PAE must be on for 64-on-64 to work at all.
Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
Index: xen-4.1.1-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
@@ -1030,7 +1030,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
def configure(self, vmConfig):

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
Index: xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
===================================================================
--- xen-4.1.0-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
--- xen-4.1.1-testing.orig/tools/ioemu-qemu-xen/hw/xen_platform.c
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/hw/xen_platform.c
@@ -30,6 +30,8 @@
#include "qemu-xen.h"
#include "net.h"

View File

@ -1,7 +1,7 @@
Index: xen-4.1.0-testing/tools/python/xen/xend/XendNode.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendNode.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendNode.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendNode.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendNode.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendNode.py
@@ -949,11 +949,35 @@ class XendNode:
info['cpu_mhz'] = info['cpu_khz'] / 1000
@ -51,10 +51,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendNode.py
]
if show_numa != 0:
Index: xen-4.1.0-testing/tools/python/xen/xend/balloon.py
Index: xen-4.1.1-testing/tools/python/xen/xend/balloon.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/balloon.py
+++ xen-4.1.0-testing/tools/python/xen/xend/balloon.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/balloon.py
+++ xen-4.1.1-testing/tools/python/xen/xend/balloon.py
@@ -43,6 +43,8 @@ SLEEP_TIME_GROWTH = 0.1
# label actually shown in the PROC_XEN_BALLOON file.
#labels = { 'current' : 'Current allocation',
@ -88,10 +88,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/balloon.py
def free(need_mem, dominfo):
"""Balloon out memory from the privileged domain so that there is the
specified required amount (in KiB) free.
Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
Index: xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -1459,6 +1459,27 @@ class XendDomainInfo:
pci_conf = self.info['devices'][dev_uuid][1]
return map(pci_dict_to_bdf_str, pci_conf['devs'])
@ -120,10 +120,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
def setMemoryTarget(self, target):
"""Set the memory target of this domain.
@param target: In MiB.
Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvDomain.py
Index: xen-4.1.1-testing/tools/python/xen/xend/server/SrvDomain.py
===================================================================
--- xen-4.1.0-testing.orig/tools/python/xen/xend/server/SrvDomain.py
+++ xen-4.1.0-testing/tools/python/xen/xend/server/SrvDomain.py
--- xen-4.1.1-testing.orig/tools/python/xen/xend/server/SrvDomain.py
+++ xen-4.1.1-testing/tools/python/xen/xend/server/SrvDomain.py
@@ -187,7 +187,7 @@ class SrvDomain(SrvDir):

Some files were not shown because too many files have changed in this diff Show More