- 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:
parent
ef397cbc2b
commit
8547e28bd5
@ -19,8 +19,10 @@ could be introduced.
|
|||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
--- a/xen/arch/x86/mm/shadow/multi.c
|
Index: xen-4.1.1-testing/xen/arch/x86/mm/shadow/multi.c
|
||||||
+++ b/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
|
@@ -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
|
// If a privileged domain is attempting to install a map of a page it does
|
||||||
// not own, we let it succeed anyway.
|
// 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);
|
shadow_vram_get_l1e(new_sl1e, sl1e, sl1mfn, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
--- a/xen/arch/x86/mm.c
|
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
|
||||||
+++ b/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(
|
@@ -799,12 +799,12 @@ get_page_from_l1e(
|
||||||
bool_t write;
|
bool_t write;
|
||||||
|
|
||||||
|
@ -12,8 +12,10 @@ x86: make mod_l1_entry() return a proper error code
|
|||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
--- a/xen/arch/x86/mm.c
|
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
|
||||||
+++ b/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
|
@@ -1765,15 +1765,16 @@ static int mod_l1_entry(l1_pgentry_t *pl
|
||||||
struct domain *pt_dom = pt_vcpu->domain;
|
struct domain *pt_dom = pt_vcpu->domain;
|
||||||
unsigned long mfn;
|
unsigned long mfn;
|
||||||
|
@ -11,8 +11,10 @@ track both an okay status and an error code).
|
|||||||
|
|
||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
--- a/xen/arch/x86/mm.c
|
Index: xen-4.1.1-testing/xen/arch/x86/mm.c
|
||||||
+++ b/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
|
@@ -1845,16 +1845,16 @@ static int mod_l2_entry(l2_pgentry_t *pl
|
||||||
struct domain *d = vcpu->domain;
|
struct domain *d = vcpu->domain;
|
||||||
struct page_info *l2pg = mfn_to_page(pfn);
|
struct page_info *l2pg = mfn_to_page(pfn);
|
||||||
|
@ -16,10 +16,10 @@ found set by the surrounding loop).
|
|||||||
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
||||||
Acked-by: Gang Wei <gang.wei@intel.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.1-testing.orig/xen/arch/x86/hpet.c
|
||||||
+++ xen-4.1.0-testing/xen/arch/x86/hpet.c
|
+++ xen-4.1.1-testing/xen/arch/x86/hpet.c
|
||||||
@@ -34,18 +34,6 @@ struct hpet_event_channel
|
@@ -34,18 +34,6 @@ struct hpet_event_channel
|
||||||
int shift;
|
int shift;
|
||||||
s_time_t next_event;
|
s_time_t next_event;
|
||||||
|
@ -27,8 +27,10 @@ specify the operand suffix as 'l' for good measure.
|
|||||||
|
|
||||||
Signed-off-by: Keir Fraser <keir@xen.org>
|
Signed-off-by: Keir Fraser <keir@xen.org>
|
||||||
|
|
||||||
--- a/xen/common/spinlock.c
|
Index: xen-4.1.1-testing/xen/common/spinlock.c
|
||||||
+++ b/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 *
|
@@ -234,7 +234,11 @@ void _spin_unlock_recursive(spinlock_t *
|
||||||
void _read_lock(rwlock_t *lock)
|
void _read_lock(rwlock_t *lock)
|
||||||
{
|
{
|
||||||
@ -128,8 +130,10 @@ Signed-off-by: Keir Fraser <keir@xen.org>
|
|||||||
preempt_disable();
|
preempt_disable();
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
--- a/xen/include/asm-ia64/linux-xen/asm/spinlock.h
|
Index: xen-4.1.1-testing/xen/include/asm-ia64/linux-xen/asm/spinlock.h
|
||||||
+++ b/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 {
|
@@ -35,17 +35,6 @@ typedef struct {
|
||||||
} raw_rwlock_t;
|
} raw_rwlock_t;
|
||||||
#define _RAW_RW_LOCK_UNLOCKED /*(raw_rwlock_t)*/ { 0, 0 }
|
#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) \
|
#define _raw_write_trylock(rw) \
|
||||||
({ \
|
({ \
|
||||||
--- a/xen/include/asm-x86/spinlock.h
|
Index: xen-4.1.1-testing/xen/include/asm-x86/spinlock.h
|
||||||
+++ b/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 {
|
@@ -35,51 +35,29 @@ typedef struct {
|
||||||
volatile int lock;
|
volatile int lock;
|
||||||
} raw_rwlock_t;
|
} 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)
|
+#define _raw_rw_is_write_locked(x) ((x)->lock > 0)
|
||||||
|
|
||||||
#endif /* __ASM_SPINLOCK_H */
|
#endif /* __ASM_SPINLOCK_H */
|
||||||
--- a/xen/include/xen/spinlock.h
|
Index: xen-4.1.1-testing/xen/include/xen/spinlock.h
|
||||||
+++ b/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_
|
@@ -157,6 +157,7 @@ unsigned long _read_lock_irqsave(rwlock_
|
||||||
void _read_unlock(rwlock_t *lock);
|
void _read_unlock(rwlock_t *lock);
|
||||||
void _read_unlock_irq(rwlock_t *lock);
|
void _read_unlock_irq(rwlock_t *lock);
|
||||||
|
@ -8,10 +8,10 @@ guest-bound irq before accessing desc->action.
|
|||||||
|
|
||||||
Signed-off-by: Keir Fraser <keir@xen.org>
|
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.1-testing.orig/xen/arch/x86/irq.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1028,6 +1028,12 @@ static void __pirq_guest_eoi(struct doma
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -27,10 +27,10 @@ Signed-off-by: Allen Kay <allen.m.kay@intel.com>
|
|||||||
|
|
||||||
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.1-testing.orig/xen/arch/x86/apic.c
|
||||||
+++ xen-4.1.0-testing/xen/arch/x86/apic.c
|
+++ xen-4.1.1-testing/xen/arch/x86/apic.c
|
||||||
@@ -531,7 +531,7 @@ static void resume_x2apic(void)
|
@@ -531,7 +531,7 @@ static void resume_x2apic(void)
|
||||||
mask_8259A();
|
mask_8259A();
|
||||||
mask_IO_APIC_setup(ioapic_entries);
|
mask_IO_APIC_setup(ioapic_entries);
|
||||||
@ -58,10 +58,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/apic.c
|
|||||||
{
|
{
|
||||||
if ( x2apic_enabled )
|
if ( x2apic_enabled )
|
||||||
panic("Interrupt remapping could not be enabled while "
|
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.1-testing.orig/xen/drivers/passthrough/vtd/dmar.c
|
||||||
+++ xen-4.1.0-testing/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);
|
@@ -46,6 +46,7 @@ LIST_HEAD(acpi_rmrr_units);
|
||||||
LIST_HEAD(acpi_atsr_units);
|
LIST_HEAD(acpi_atsr_units);
|
||||||
LIST_HEAD(acpi_rhsa_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;
|
+ flags = DMAR_INTR_REMAP | DMAR_X2APIC_OPT_OUT;
|
||||||
+ return ((dmar_flags & flags) == DMAR_INTR_REMAP);
|
+ 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.1-testing.orig/xen/drivers/passthrough/vtd/extern.h
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -87,5 +87,7 @@ void vtd_ops_preamble_quirk(struct iommu
|
||||||
void vtd_ops_postamble_quirk(struct iommu* iommu);
|
void vtd_ops_postamble_quirk(struct iommu* iommu);
|
||||||
void me_wifi_quirk(struct domain *domain, u8 bus, u8 devfn, int map);
|
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);
|
+int platform_supports_x2apic(void);
|
||||||
|
|
||||||
#endif // _VTD_EXTERN_H_
|
#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.1-testing.orig/xen/drivers/passthrough/vtd/intremap.c
|
||||||
+++ xen-4.1.0-testing/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,
|
@@ -741,6 +741,13 @@ int enable_intremap(struct iommu *iommu,
|
||||||
|
|
||||||
ASSERT(ecap_intr_remap(iommu->ecap) && iommu_intremap);
|
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;
|
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.1-testing.orig/xen/drivers/passthrough/vtd/iommu.c
|
||||||
+++ xen-4.1.0-testing/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)
|
@@ -1997,7 +1997,7 @@ static int init_vtd_hw(void)
|
||||||
if ( enable_intremap(iommu, 0) != 0 )
|
if ( enable_intremap(iommu, 0) != 0 )
|
||||||
{
|
{
|
||||||
@ -176,10 +176,10 @@ Index: xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.c
|
|||||||
break;
|
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.1-testing.orig/xen/drivers/passthrough/vtd/iommu.h
|
||||||
+++ xen-4.1.0-testing/xen/drivers/passthrough/vtd/iommu.h
|
+++ xen-4.1.1-testing/xen/drivers/passthrough/vtd/iommu.h
|
||||||
@@ -22,6 +22,10 @@
|
@@ -22,6 +22,10 @@
|
||||||
|
|
||||||
#include <xen/types.h>
|
#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.
|
* 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.1-testing.orig/xen/include/xen/iommu.h
|
||||||
+++ xen-4.1.0-testing/xen/include/xen/iommu.h
|
+++ xen-4.1.1-testing/xen/include/xen/iommu.h
|
||||||
@@ -63,8 +63,8 @@ struct iommu {
|
@@ -63,8 +63,8 @@ struct iommu {
|
||||||
|
|
||||||
int iommu_setup(void);
|
int iommu_setup(void);
|
||||||
|
@ -9,8 +9,10 @@ This helps us to debug interrupt issues.
|
|||||||
|
|
||||||
Signed-off-by: Wei Wang <wei.wang2@amd.com>
|
Signed-off-by: Wei Wang <wei.wang2@amd.com>
|
||||||
|
|
||||||
--- a/xen/drivers/passthrough/amd/iommu_map.c
|
Index: xen-4.1.1-testing/xen/drivers/passthrough/amd/iommu_map.c
|
||||||
+++ b/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
|
@@ -327,8 +327,9 @@ void amd_iommu_set_intremap_table(u32 *d
|
||||||
set_field_in_reg_u32(0xB, entry,
|
set_field_in_reg_u32(0xB, entry,
|
||||||
IOMMU_DEV_TABLE_INT_TABLE_LENGTH_MASK,
|
IOMMU_DEV_TABLE_INT_TABLE_LENGTH_MASK,
|
||||||
|
435
23233-hvm-cr-access.patch
Normal file
435
23233-hvm-cr-access.patch
Normal 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 = ®s->eax; break;
|
||||||
|
+ case 1: p = ®s->ecx; break;
|
||||||
|
+ case 2: p = ®s->edx; break;
|
||||||
|
+ case 3: p = ®s->ebx; break;
|
||||||
|
+ case 4: p = ®s->esp; break;
|
||||||
|
+ case 5: p = ®s->ebp; break;
|
||||||
|
+ case 6: p = ®s->esi; break;
|
||||||
|
+ case 7: p = ®s->edi; break;
|
||||||
|
+#if defined(__x86_64__)
|
||||||
|
+ case 8: p = ®s->r8; break;
|
||||||
|
+ case 9: p = ®s->r9; break;
|
||||||
|
+ case 10: p = ®s->r10; break;
|
||||||
|
+ case 11: p = ®s->r11; break;
|
||||||
|
+ case 12: p = ®s->r12; break;
|
||||||
|
+ case 13: p = ®s->r13; break;
|
||||||
|
+ case 14: p = ®s->r14; break;
|
||||||
|
+ case 15: p = ®s->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 */
|
75
23234-svm-decode-assist-base.patch
Normal file
75
23234-svm-decode-assist-base.patch
Normal 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 */
|
66
23235-svm-decode-assist-crs.patch
Normal file
66
23235-svm-decode-assist-crs.patch
Normal 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() )
|
133
23236-svm-decode-assist-invlpg.patch
Normal file
133
23236-svm-decode-assist-invlpg.patch
Normal 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 */
|
135
23238-svm-decode-assist-insn-fetch.patch
Normal file
135
23238-svm-decode-assist-insn-fetch.patch
Normal 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
209
23303-cpufreq-misc.patch
Normal 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;
|
||||||
|
};
|
||||||
|
|
42
23304-amd-oprofile-strings.patch
Normal file
42
23304-amd-oprofile-strings.patch
Normal 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;
|
223
23305-amd-fam15-xenoprof.patch
Normal file
223
23305-amd-fam15-xenoprof.patch
Normal 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
261
23306-amd-fam15-vpmu.patch
Normal 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:
|
40
23334-amd-fam12+14-vpmu.patch
Normal file
40
23334-amd-fam12+14-vpmu.patch
Normal 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;
|
38
23338-vtd-force-intremap.patch
Normal file
38
23338-vtd-force-intremap.patch
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
@ -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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -2913,7 +2913,7 @@ class XendDomainInfo:
|
@@ -2913,7 +2913,7 @@ class XendDomainInfo:
|
||||||
|
|
||||||
self.guest_bitsize = self.image.getBitSize()
|
self.guest_bitsize = self.image.getBitSize()
|
||||||
|
@ -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)
|
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.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1308,6 +1308,9 @@ static void do_key_event(VncState *vs, i
|
||||||
shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36];
|
shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36];
|
||||||
altgr_keys = vs->modifiers_state[0xb8];
|
altgr_keys = vs->modifiers_state[0xb8];
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
Subject: modify default read/write flag in bdrv_init.
|
Subject: modify default read/write flag in bdrv_init.
|
||||||
Signed-off by Chunyan Liu <cyliu@novell.com>
|
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.1-testing.orig/tools/ioemu-qemu-xen/vl.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -2617,6 +2617,8 @@ int drive_init(struct drive_opt *arg, in
|
||||||
strncpy(drives_table[nb_drives].serial, serial, sizeof(serial));
|
strncpy(drives_table[nb_drives].serial, serial, sizeof(serial));
|
||||||
nb_drives++;
|
nb_drives++;
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/block.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -350,7 +350,7 @@ int bdrv_file_open(BlockDriverState **pb
|
||||||
|
|
||||||
int bdrv_open(BlockDriverState *bs, const char *filename, int flags)
|
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);
|
ret = drv->bdrv_open(bs, filename, open_flags);
|
||||||
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
|
if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
|
||||||
ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
|
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.1-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/tools/ioemu-qemu-xen/hw/usb-msd.c
|
||||||
@@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file
|
@@ -551,7 +551,7 @@ USBDevice *usb_msd_init(const char *file
|
||||||
s = qemu_mallocz(sizeof(MSDState));
|
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;
|
goto fail;
|
||||||
s->bs = bdrv;
|
s->bs = bdrv;
|
||||||
*pbs = 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.1-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/tools/ioemu-qemu-xen/qemu-img.c
|
||||||
@@ -32,7 +32,7 @@
|
@@ -32,7 +32,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -237,6 +237,7 @@ static int open_disk(struct td_state *s,
|
@@ -237,6 +237,7 @@ static int open_disk(struct td_state *s,
|
||||||
BlockDriver* drv;
|
BlockDriver* drv;
|
||||||
char* devname;
|
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);
|
fprintf(stderr, "Could not open image file %s\n", path);
|
||||||
return -ENOMEM;
|
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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/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)
|
@@ -136,7 +136,8 @@ static void insert_media(void *opaque)
|
||||||
else
|
else
|
||||||
format = &bdrv_raw;
|
format = &bdrv_raw;
|
||||||
|
@ -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
|
--- /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 @@
|
@@ -0,0 +1,535 @@
|
||||||
+/* block-cdrom.c
|
+/* 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_get_parent_id = tdcdrom_get_parent_id,
|
||||||
+ .td_validate_parent = tdcdrom_validate_parent
|
+ .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
|
--- /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 @@
|
@@ -0,0 +1,122 @@
|
||||||
+/******************************************************************************
|
+/******************************************************************************
|
||||||
+ * cdromif.h
|
+ * 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))
|
+ sizeof(struct vcd_generic_command) - sizeof(struct request_sense))
|
||||||
+
|
+
|
||||||
+#endif
|
+#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.1-testing.orig/tools/blktap/drivers/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/blktap/drivers/Makefile
|
+++ xen-4.1.1-testing/tools/blktap/drivers/Makefile
|
||||||
@@ -28,8 +28,9 @@ CFLAGS += -DMEMSHR
|
@@ -28,8 +28,9 @@ CFLAGS += -DMEMSHR
|
||||||
MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
|
MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
|
||||||
endif
|
endif
|
||||||
@ -689,10 +689,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/Makefile
|
|||||||
BLK-OBJS-y += aes.o
|
BLK-OBJS-y += aes.o
|
||||||
BLK-OBJS-y += tapaio.o
|
BLK-OBJS-y += tapaio.o
|
||||||
BLK-OBJS-$(CONFIG_Linux) += blk_linux.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.1-testing.orig/tools/blktap/drivers/tapdisk.h
|
||||||
+++ xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
|
+++ xen-4.1.1-testing/tools/blktap/drivers/tapdisk.h
|
||||||
@@ -137,6 +137,9 @@ struct tap_disk {
|
@@ -137,6 +137,9 @@ struct tap_disk {
|
||||||
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
|
int (*td_get_parent_id) (struct disk_driver *dd, struct disk_id *id);
|
||||||
int (*td_validate_parent)(struct disk_driver *dd,
|
int (*td_validate_parent)(struct disk_driver *dd,
|
||||||
@ -737,10 +737,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.h
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef struct driver_list_entry {
|
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.1-testing.orig/tools/blktap/lib/blktaplib.h
|
||||||
+++ xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
|
+++ xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
@@ -225,6 +225,7 @@ typedef struct msg_pid {
|
@@ -225,6 +225,7 @@ typedef struct msg_pid {
|
||||||
#define DISK_TYPE_RAM 3
|
#define DISK_TYPE_RAM 3
|
||||||
#define DISK_TYPE_QCOW 4
|
#define DISK_TYPE_QCOW 4
|
||||||
@ -749,10 +749,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
|
|||||||
|
|
||||||
/* xenstore/xenbus: */
|
/* xenstore/xenbus: */
|
||||||
#define DOMNAME "Domain-0"
|
#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.1-testing.orig/xen/include/public/io/blkif.h
|
||||||
+++ xen-4.1.0-testing/xen/include/public/io/blkif.h
|
+++ xen-4.1.1-testing/xen/include/public/io/blkif.h
|
||||||
@@ -80,7 +80,7 @@
|
@@ -80,7 +80,7 @@
|
||||||
* Used in SLES sources for device specific command packet
|
* Used in SLES sources for device specific command packet
|
||||||
* contained within the request. Reserved for that purpose.
|
* 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.
|
* Recognised only if "feature-trim" is present in backend xenbus info.
|
||||||
* The "feature-trim" node contains a boolean indicating whether trim
|
* 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.1-testing.orig/tools/blktap/drivers/tapdisk.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -735,6 +735,22 @@ static void get_io_request(struct td_sta
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -789,10 +789,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/tapdisk.c
|
|||||||
default:
|
default:
|
||||||
DPRINTF("Unknown block operation\n");
|
DPRINTF("Unknown block operation\n");
|
||||||
break;
|
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.1-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/tools/python/xen/xend/server/BlktapController.py
|
||||||
@@ -15,6 +15,7 @@ blktap1_disk_types = [
|
@@ -15,6 +15,7 @@ blktap1_disk_types = [
|
||||||
'ram',
|
'ram',
|
||||||
'qcow',
|
'qcow',
|
||||||
|
12
blktap.patch
12
blktap.patch
@ -1,10 +1,10 @@
|
|||||||
bug #239173
|
bug #239173
|
||||||
bug #242953
|
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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -3295,7 +3295,7 @@ class XendDomainInfo:
|
@@ -3295,7 +3295,7 @@ class XendDomainInfo:
|
||||||
(fn, BOOTLOADER_LOOPBACK_DEVICE))
|
(fn, BOOTLOADER_LOOPBACK_DEVICE))
|
||||||
|
|
||||||
@ -14,10 +14,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
|||||||
'device': BOOTLOADER_LOOPBACK_DEVICE,
|
'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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -447,9 +447,9 @@ void xenstore_parse_domain_config(int hv
|
||||||
{
|
{
|
||||||
char **e_danger = NULL;
|
char **e_danger = NULL;
|
||||||
|
@ -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.1-testing.orig/tools/blktap/drivers/tapdisk.h
|
||||||
+++ xen-4.1.0-testing/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 = {
|
@@ -168,7 +168,7 @@ static disk_info_t aio_disk = {
|
||||||
"raw image (aio)",
|
"raw image (aio)",
|
||||||
"aio",
|
"aio",
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/network-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
|
||||||
@@ -249,6 +249,9 @@ op_start () {
|
@@ -249,6 +249,9 @@ op_start () {
|
||||||
|
|
||||||
claim_lock "network-bridge"
|
claim_lock "network-bridge"
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/network-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
|
||||||
@@ -278,19 +278,19 @@ op_stop () {
|
@@ -278,19 +278,19 @@ op_stop () {
|
||||||
transfer_addrs ${bridge} ${pdev}
|
transfer_addrs ${bridge} ${pdev}
|
||||||
if ! ifdown ${bridge}; then
|
if ! ifdown ${bridge}; then
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/network-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
|
||||||
@@ -257,6 +257,11 @@ op_start () {
|
@@ -257,6 +257,11 @@ op_start () {
|
||||||
|
|
||||||
create_bridge ${tdev}
|
create_bridge ${tdev}
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/network-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-bridge
|
||||||
@@ -193,6 +193,28 @@ antispoofing () {
|
@@ -193,6 +193,28 @@ antispoofing () {
|
||||||
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
|
iptables -A FORWARD -m physdev --physdev-in ${pdev} -j ACCEPT
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
|||||||
tapdisk-ioemu.c | 17 -----------------
|
tapdisk-ioemu.c | 17 -----------------
|
||||||
4 files changed, 17 insertions(+), 26 deletions(-)
|
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.1-testing.orig/tools/ioemu-qemu-xen/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
|
||||||
@@ -46,14 +46,6 @@ $(filter %-user,$(SUBDIR_RULES)): libqem
|
@@ -46,14 +46,6 @@ $(filter %-user,$(SUBDIR_RULES)): libqem
|
||||||
|
|
||||||
recurse-all: $(SUBDIR_RULES)
|
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
|
# libqemu_common.a: Target independent part of system emulation. The
|
||||||
# long term path is to suppress *all* target specific code in case of
|
# 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.1-testing.orig/tools/ioemu-qemu-xen/configure
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/configure
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/configure
|
||||||
@@ -1511,7 +1511,7 @@ bsd)
|
@@ -1511,7 +1511,7 @@ bsd)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -69,10 +69,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/configure
|
|||||||
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
|
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
|
||||||
tools="qemu-img\$(EXESUF) $tools"
|
tools="qemu-img\$(EXESUF) $tools"
|
||||||
if [ "$linux" = "yes" ] ; then
|
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.1-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/tools/ioemu-qemu-xen/qemu-tool.c
|
||||||
@@ -68,7 +68,7 @@ void qemu_bh_delete(QEMUBH *bh)
|
@@ -68,7 +68,7 @@ void qemu_bh_delete(QEMUBH *bh)
|
||||||
qemu_free(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,
|
IOCanRWHandler *fd_read_poll,
|
||||||
IOHandler *fd_read,
|
IOHandler *fd_read,
|
||||||
IOHandler *fd_write,
|
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.1-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/tools/ioemu-qemu-xen/tapdisk-ioemu.c
|
||||||
@@ -12,34 +12,12 @@
|
@@ -12,34 +12,12 @@
|
||||||
|
|
||||||
extern void qemu_aio_init(void);
|
extern void qemu_aio_init(void);
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1342,6 +1342,11 @@ static void do_key_event(VncState *vs, i
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -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
|
--- /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 @@
|
@@ -0,0 +1,243 @@
|
||||||
+#!/usr/bin/env python
|
+#!/usr/bin/env python
|
||||||
+# -*- mode: python; -*-
|
+# -*- mode: python; -*-
|
||||||
@ -246,10 +246,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/HalDaemon.py
|
|||||||
+ print 'Falling off end'
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,125 @@
|
||||||
+#============================================================================
|
+#============================================================================
|
||||||
+# This library is free software; you can redistribute it and/or
|
+# This library is free software; you can redistribute it and/or
|
||||||
@ -376,10 +376,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/Hald.py
|
|||||||
+ watcher.run()
|
+ watcher.run()
|
||||||
+ time.sleep(10)
|
+ time.sleep(10)
|
||||||
+ watcher.shutdown()
|
+ watcher.shutdown()
|
||||||
Index: xen-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.1-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/tools/python/xen/xend/server/SrvServer.py
|
||||||
@@ -57,6 +57,7 @@ from xen.web.SrvDir import SrvDir
|
@@ -57,6 +57,7 @@ from xen.web.SrvDir import SrvDir
|
||||||
|
|
||||||
from SrvRoot import SrvRoot
|
from SrvRoot import SrvRoot
|
||||||
@ -397,10 +397,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/server/SrvServer.py
|
|||||||
|
|
||||||
def create():
|
def create():
|
||||||
root = SrvDir()
|
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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
|
||||||
@@ -18,6 +18,7 @@
|
@@ -18,6 +18,7 @@
|
||||||
#include "exec-all.h"
|
#include "exec-all.h"
|
||||||
#include "sysemu.h"
|
#include "sysemu.h"
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -3130,6 +3130,11 @@ class XendDomainInfo:
|
@@ -3130,6 +3130,11 @@ class XendDomainInfo:
|
||||||
self._cleanup_phantom_devs(paths)
|
self._cleanup_phantom_devs(paths)
|
||||||
self._cleanupVm()
|
self._cleanupVm()
|
||||||
|
@ -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
|
returned. To fix this problem, we do not depend on ev.wait() result, but read
|
||||||
xenstore directly to get correct device status.
|
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.1-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/tools/python/xen/xend/server/DevController.py
|
||||||
@@ -149,7 +149,10 @@ class DevController:
|
@@ -149,7 +149,10 @@ class DevController:
|
||||||
(status, err) = self.waitForBackend(devid)
|
(status, err) = self.waitForBackend(devid)
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -172,7 +172,7 @@ def save(fd, dominfo, network, live, dst
|
||||||
dominfo.destroy()
|
dominfo.destroy()
|
||||||
dominfo.testDeviceComplete()
|
dominfo.testDeviceComplete()
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -1297,8 +1297,15 @@ class XendDomainInfo:
|
@@ -1297,8 +1297,15 @@ class XendDomainInfo:
|
||||||
frontpath = self.getDeviceController(deviceClass).frontendPath(dev)
|
frontpath = self.getDeviceController(deviceClass).frontendPath(dev)
|
||||||
backpath = xstransact.Read(frontpath, "backend")
|
backpath = xstransact.Read(frontpath, "backend")
|
||||||
|
@ -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.1-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/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||||
@@ -398,6 +398,11 @@ static int __devinit platform_pci_init(s
|
@@ -425,6 +425,11 @@ static int __devinit platform_pci_init(s
|
||||||
platform_mmio = mmio_addr;
|
platform_mmio = mmio_addr;
|
||||||
platform_mmiolen = mmio_len;
|
platform_mmiolen = mmio_len;
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/xen/arch/x86/domain.c
|
||||||
+++ xen-4.1.0-testing/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 *
|
@@ -150,15 +150,30 @@ void dump_pageframe_info(struct domain *
|
||||||
|
|
||||||
printk("Memory pages belonging to domain %u:\n", d->domain_id);
|
printk("Memory pages belonging to domain %u:\n", d->domain_id);
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendConfig.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
|
||||||
@@ -1874,7 +1874,14 @@ class XendConfig(dict):
|
@@ -1874,7 +1874,14 @@ class XendConfig(dict):
|
||||||
ports = sxp.child(dev_sxp, 'port')
|
ports = sxp.child(dev_sxp, 'port')
|
||||||
for port in ports[1:]:
|
for port in ports[1:]:
|
||||||
|
@ -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.1-testing.orig/tools/firmware/hvmloader/acpi/dsdt.asl
|
||||||
+++ xen-4.1.0-testing/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,
|
@@ -30,21 +30,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2,
|
||||||
/*
|
/*
|
||||||
* S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:
|
* S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes:
|
||||||
|
@ -17,10 +17,10 @@ Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
|||||||
tools/hotplug/Linux/block | 4 ++--
|
tools/hotplug/Linux/block | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
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.1-testing.orig/tools/hotplug/Linux/block
|
||||||
+++ xen-4.1.0-testing/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."
|
@@ -280,8 +280,8 @@ mount it read-write in a guest domain."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendConfig.py
|
||||||
+++ xen-4.1.0-testing/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 = {
|
@@ -159,6 +159,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
|
||||||
'nographic': int,
|
'nographic': int,
|
||||||
'nomigrate': 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']:
|
if 'viridian' not in self['platform']:
|
||||||
self['platform']['viridian'] = 0
|
self['platform']['viridian'] = 0
|
||||||
if 'rtc_timeoffset' not in self['platform']:
|
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.1-testing.orig/tools/python/xen/xend/image.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
|
||||||
@@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler):
|
@@ -839,6 +839,7 @@ class HVMImageHandler(ImageHandler):
|
||||||
|
|
||||||
self.apic = int(vmConfig['platform'].get('apic', 0))
|
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.guest_os_type = vmConfig['platform'].get('guest_os_type')
|
||||||
self.memory_sharing = int(vmConfig['memory_sharing'])
|
self.memory_sharing = int(vmConfig['memory_sharing'])
|
||||||
try:
|
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.1-testing.orig/tools/python/xen/xm/create.py
|
||||||
+++ xen-4.1.0-testing/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',
|
@@ -242,6 +242,10 @@ gopts.var('viridian', val='VIRIDIAN',
|
||||||
use="""Expose Viridian interface to x86 HVM guest?
|
use="""Expose Viridian interface to x86 HVM guest?
|
||||||
(Default is 0).""")
|
(Default is 0).""")
|
||||||
|
@ -17,10 +17,10 @@ qcow2 image (the header is gone after three loop iterations):
|
|||||||
|
|
||||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
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.1-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/tools/ioemu-qemu-xen/block-qcow2.c
|
||||||
@@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr
|
@@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -259,8 +259,11 @@ static int open_disk(struct td_state *s,
|
@@ -259,8 +259,11 @@ static int open_disk(struct td_state *s,
|
||||||
drv = blktap_drivers[i].drv;
|
drv = blktap_drivers[i].drv;
|
||||||
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
|
DPRINTF("%s driver specified\n", drv ? drv->format_name : "No");
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -360,6 +360,15 @@ static void qemu_send_responses(void* op
|
@@ -360,6 +360,15 @@ static void qemu_send_responses(void* op
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_machine_fv.c
|
||||||
@@ -269,6 +269,7 @@ void qemu_invalidate_entry(uint8_t *buff
|
@@ -269,6 +269,7 @@ void qemu_invalidate_entry(uint8_t *buff
|
||||||
|
|
||||||
#endif /* defined(MAPCACHE) */
|
#endif /* defined(MAPCACHE) */
|
||||||
|
@ -15,10 +15,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
|||||||
hw/xen_blktap.h | 14 ++++++++++++++
|
hw/xen_blktap.h | 14 ++++++++++++++
|
||||||
2 files changed, 33 insertions(+), 3 deletions(-)
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -230,9 +230,10 @@ static int map_new_dev(struct td_state *
|
@@ -230,9 +230,10 @@ static int map_new_dev(struct td_state *
|
||||||
return -1;
|
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);
|
msglen = sizeof(msg_hdr_t);
|
||||||
msg->type = CTLMSG_IMG_FAIL;
|
msg->type = CTLMSG_IMG_FAIL;
|
||||||
msg->len = msglen;
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.h
|
||||||
@@ -53,4 +53,18 @@ typedef struct fd_list_entry {
|
@@ -53,4 +53,18 @@ typedef struct fd_list_entry {
|
||||||
|
|
||||||
int init_blktap(void);
|
int init_blktap(void);
|
||||||
|
@ -12,10 +12,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
|||||||
hw/xen_blktap.c | 6 ++++++
|
hw/xen_blktap.c | 6 ++++++
|
||||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -268,6 +268,12 @@ static int open_disk(struct td_state *s,
|
@@ -268,6 +268,12 @@ static int open_disk(struct td_state *s,
|
||||||
s->size = bs->total_sectors;
|
s->size = bs->total_sectors;
|
||||||
s->sector_size = 512;
|
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);
|
s->info = ((s->flags & TD_RDONLY) ? VDISK_READONLY : 0);
|
||||||
|
|
||||||
return 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.1-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/tools/python/xen/xend/server/DevController.py
|
||||||
@@ -155,7 +155,7 @@ class DevController:
|
@@ -155,7 +155,7 @@ class DevController:
|
||||||
(devid, self.deviceClass))
|
(devid, self.deviceClass))
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile
|
||||||
@@ -243,7 +243,7 @@ endif
|
@@ -243,7 +243,7 @@ endif
|
||||||
install: all $(if $(BUILD_DOCS),install-doc)
|
install: all $(if $(BUILD_DOCS),install-doc)
|
||||||
mkdir -p "$(DESTDIR)$(bindir)"
|
mkdir -p "$(DESTDIR)$(bindir)"
|
||||||
@ -11,10 +11,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile
|
|||||||
endif
|
endif
|
||||||
ifneq ($(BLOBS),)
|
ifneq ($(BLOBS),)
|
||||||
mkdir -p "$(DESTDIR)$(datadir)"
|
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.1-testing.orig/tools/ioemu-qemu-xen/Makefile.target
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/Makefile.target
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/Makefile.target
|
||||||
@@ -755,7 +755,7 @@ clean:
|
@@ -755,7 +755,7 @@ clean:
|
||||||
|
|
||||||
install: all install-hook
|
install: all install-hook
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/qemu-xen.h
|
||||||
@@ -1,6 +1,8 @@
|
@@ -1,6 +1,8 @@
|
||||||
#ifndef QEMU_XEN_H
|
#ifndef QEMU_XEN_H
|
||||||
#define 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_parse_disable_pf_config(void);
|
||||||
int xenstore_fd(void);
|
int xenstore_fd(void);
|
||||||
void xenstore_process_event(void *opaque);
|
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.1-testing.orig/tools/ioemu-qemu-xen/vl.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -5830,9 +5830,9 @@ int main(int argc, char **argv, char **e
|
||||||
if ((msg = xenbus_read(XBT_NIL, "domid", &domid_s)))
|
if ((msg = xenbus_read(XBT_NIL, "domid", &domid_s)))
|
||||||
fprintf(stderr,"Can not read our own domid: %s\n", msg);
|
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 */
|
#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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/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)
|
@@ -447,7 +447,7 @@ void xenstore_init(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_platform.c
|
||||||
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
|
@@ -359,6 +359,8 @@ static void platform_ioport_write(void *
|
||||||
case 4:
|
case 4:
|
||||||
fprintf(logfile, "Disconnect IDE hard disk...\n");
|
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");
|
fprintf(logfile, "Disconnect netifs...\n");
|
||||||
pci_unplug_netifs();
|
pci_unplug_netifs();
|
||||||
fprintf(logfile, "Shutdown taps...\n");
|
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.1-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/tools/ioemu-qemu-xen/qemu-xen.h
|
||||||
@@ -57,6 +57,7 @@ void unset_vram_mapping(void *opaque);
|
@@ -57,6 +57,7 @@ void unset_vram_mapping(void *opaque);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -23,10 +23,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/qemu-xen.h
|
|||||||
void destroy_hvm_domain(void);
|
void destroy_hvm_domain(void);
|
||||||
void unregister_iomem(target_phys_addr_t start);
|
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.1-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/tools/ioemu-qemu-xen/hw/pci.c
|
||||||
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
|
@@ -871,6 +871,50 @@ void pci_unplug_netifs(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/vnc.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1734,6 +1734,25 @@ static int protocol_client_msg(VncState
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/libxen/src/xen_common.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -904,8 +904,15 @@ static void parse_into(xen_session *s, x
|
||||||
0 != strcmp((char *)value_node->children->name, "struct") ||
|
0 != strcmp((char *)value_node->children->name, "struct") ||
|
||||||
value_node->children->children == NULL)
|
value_node->children->children == NULL)
|
||||||
|
@ -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>
|
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.1-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/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||||
@@ -322,7 +322,10 @@ static int check_platform_magic(struct d
|
@@ -322,7 +322,10 @@ static int check_platform_magic(struct d
|
||||||
|
|
||||||
if (magic != XEN_IOPORT_MAGIC_VAL) {
|
if (magic != XEN_IOPORT_MAGIC_VAL) {
|
||||||
|
@ -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.1-testing.orig/extras/mini-os/lib/math.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -187,6 +187,7 @@ __qdivrem(uint64_t uq, uint64_t vq, uint
|
||||||
* and thus
|
* and thus
|
||||||
* m = 4 - n <= 2
|
* m = 4 - n <= 2
|
||||||
|
@ -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
|
loopback devices so more than one instance of bootloader can be run
|
||||||
concurrently.
|
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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -74,7 +74,7 @@ from xen.xend.XendPSCSI import XendPSCSI
|
||||||
from xen.xend.XendDSCSI import XendDSCSI, XendDSCSI_HBA
|
from xen.xend.XendDSCSI import XendDSCSI, XendDSCSI_HBA
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Open SuSEfirewall2 FORWARD rule when use xen nat
|
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.1-testing.orig/tools/hotplug/Linux/network-nat
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-nat
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-nat
|
||||||
@@ -83,6 +83,7 @@ function dhcp_stop()
|
@@ -83,6 +83,7 @@ function dhcp_stop()
|
||||||
op_start() {
|
op_start() {
|
||||||
echo 1 >/proc/sys/net/ipv4/ip_forward
|
echo 1 >/proc/sys/net/ipv4/ip_forward
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/network-nat
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/network-nat
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/network-nat
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
-#!/bin/bash -x
|
-#!/bin/bash -x
|
||||||
+#!/bin/bash
|
+#!/bin/bash
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
--- a/unmodified_drivers/linux-2.6/blkfront/Kbuild
|
Index: xen-4.1.1-testing/unmodified_drivers/linux-2.6/blkfront/Kbuild
|
||||||
+++ b/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
|
@@ -3,3 +3,4 @@ include $(M)/overrides.mk
|
||||||
obj-m += xen-vbd.o
|
obj-m += xen-vbd.o
|
||||||
|
|
||||||
xen-vbd-objs := blkfront.o vbd.o
|
xen-vbd-objs := blkfront.o vbd.o
|
||||||
+xen-vbd-objs += $(patsubst %.c,%.o,$(notdir $(wildcard $(src)/vcd.c)))
|
+xen-vbd-objs += $(patsubst %.c,%.o,$(notdir $(wildcard $(src)/vcd.c)))
|
||||||
--- a/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
|
||||||
+++ b/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
|
@@ -123,6 +123,7 @@ unsigned long alloc_xen_mmio(unsigned lo
|
||||||
|
|
||||||
#ifndef __ia64__
|
#ifndef __ia64__
|
||||||
|
@ -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.1-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/unmodified_drivers/linux-2.6/platform-pci/evtchn.c
|
||||||
@@ -40,7 +40,9 @@
|
@@ -40,7 +40,9 @@
|
||||||
#include <xen/platform-compat.h>
|
#include <xen/platform-compat.h>
|
||||||
#endif
|
#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 is_valid_evtchn(x) ((x) != 0)
|
||||||
#define evtchn_from_irq(x) (irq_evtchn[irq].evtchn)
|
#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.1-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/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
|
||||||
@@ -77,7 +77,6 @@ static uint64_t callback_via;
|
@@ -77,7 +77,6 @@ static uint64_t callback_via;
|
||||||
static int __devinit init_xen_info(void)
|
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;
|
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.1-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/unmodified_drivers/linux-2.6/platform-pci/platform-pci.h
|
||||||
@@ -27,6 +27,11 @@
|
@@ -27,6 +27,11 @@
|
||||||
unsigned long alloc_xen_mmio(unsigned long len);
|
unsigned long alloc_xen_mmio(unsigned long len);
|
||||||
void platform_pci_resume(void);
|
void platform_pci_resume(void);
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_platform.c
|
||||||
@@ -365,6 +365,19 @@ static void platform_ioport_write(void *
|
@@ -365,6 +365,19 @@ static void platform_ioport_write(void *
|
||||||
net_tap_shutdown_all();
|
net_tap_shutdown_all();
|
||||||
fprintf(logfile, "Done.\n");
|
fprintf(logfile, "Done.\n");
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-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.1-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/tools/ioemu-qemu-xen/hw/ide.c
|
||||||
@@ -935,8 +935,9 @@ static inline void ide_dma_submit_check(
|
@@ -935,8 +935,9 @@ static inline void ide_dma_submit_check(
|
||||||
|
|
||||||
static inline void ide_set_irq(IDEState *s)
|
static inline void ide_set_irq(IDEState *s)
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/ne2000.c
|
||||||
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
|
@@ -218,7 +218,7 @@ static int ne2000_can_receive(void *opaq
|
||||||
NE2000State *s = opaque;
|
NE2000State *s = opaque;
|
||||||
|
|
||||||
@ -11,10 +11,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/ne2000.c
|
|||||||
return !ne2000_buffer_full(s);
|
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.1-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/tools/ioemu-qemu-xen/hw/pc.c
|
||||||
@@ -413,7 +413,8 @@ static void bochs_bios_write(void *opaqu
|
@@ -413,7 +413,8 @@ static void bochs_bios_write(void *opaqu
|
||||||
case 0x400:
|
case 0x400:
|
||||||
case 0x401:
|
case 0x401:
|
||||||
|
@ -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
|
--- /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 @@
|
@@ -0,0 +1,20 @@
|
||||||
+CC ?= gcc
|
+CC ?= gcc
|
||||||
+CFLAGS ?= -Wall -Os
|
+CFLAGS ?= -Wall -Os
|
||||||
@ -23,10 +23,10 @@ Index: xen-4.1.0-testing/tools/misc/serial-split/Makefile
|
|||||||
+
|
+
|
||||||
+%.o: %.c Makefile
|
+%.o: %.c Makefile
|
||||||
+ $(CC) $(CFLAGS) -c -o $@ $<
|
+ $(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
|
--- /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 @@
|
@@ -0,0 +1,422 @@
|
||||||
+/*
|
+/*
|
||||||
+ * serial-split.c
|
+ * serial-split.c
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/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_
|
@@ -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)) {
|
} else if (!strncmp(command, "continue", len)) {
|
||||||
fprintf(logfile, "dm-command: continue after state save\n");
|
fprintf(logfile, "dm-command: continue after state save\n");
|
||||||
xen_pause_requested = 0;
|
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.1-testing.orig/tools/ioemu-qemu-xen/savevm.c
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
|
||||||
@@ -1106,6 +1106,35 @@ the_end:
|
@@ -1106,6 +1106,35 @@ the_end:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -61,10 +61,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
|
|||||||
#ifndef CONFIG_DM
|
#ifndef CONFIG_DM
|
||||||
|
|
||||||
void do_savevm(const char *name)
|
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.1-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/tools/ioemu-qemu-xen/qemu-xen.h
|
||||||
@@ -42,6 +42,7 @@ enum {
|
@@ -42,6 +42,7 @@ enum {
|
||||||
|
|
||||||
/* xen-vl-extra.c */
|
/* xen-vl-extra.c */
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -103,6 +103,8 @@ int xenstore_watch_new_callback(const ch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/savevm.c
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/savevm.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
#include "sysemu.h"
|
#include "sysemu.h"
|
||||||
#include "qemu-timer.h"
|
#include "qemu-timer.h"
|
||||||
@ -97,10 +97,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/savevm.c
|
|||||||
#ifndef CONFIG_DM
|
#ifndef CONFIG_DM
|
||||||
|
|
||||||
void do_savevm(const char *name)
|
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.1-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/tools/ioemu-qemu-xen/i386-dm/helper2.c
|
||||||
@@ -112,6 +112,9 @@ int send_vcpu = 0;
|
@@ -112,6 +112,9 @@ int send_vcpu = 0;
|
||||||
//the evtchn port for polling the notification,
|
//the evtchn port for polling the notification,
|
||||||
evtchn_port_t *ioreq_local_port;
|
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 */
|
/* Wait to be allowed to continue */
|
||||||
while (xen_pause_requested) {
|
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.1-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/tools/ioemu-qemu-xen/qemu-xen.h
|
||||||
@@ -34,6 +34,15 @@ void qemu_invalidate_map_cache(void)
|
@@ -34,6 +34,15 @@ void qemu_invalidate_map_cache(void)
|
||||||
#define mapcache_lock() ((void)0)
|
#define mapcache_lock() ((void)0)
|
||||||
#define mapcache_unlock() ((void)0)
|
#define mapcache_unlock() ((void)0)
|
||||||
@ -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_check_new_media_present(int timeout);
|
||||||
void xenstore_read_vncpasswd(int domid, char *pwbuf, size_t pwbuflen);
|
void xenstore_read_vncpasswd(int domid, char *pwbuf, size_t pwbuflen);
|
||||||
void xenstore_write_vslots(char *vslots);
|
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.1-testing.orig/tools/ioemu-qemu-xen/xenstore.c
|
||||||
+++ xen-4.1.0-testing/tools/ioemu-qemu-xen/xenstore.c
|
+++ xen-4.1.1-testing/tools/ioemu-qemu-xen/xenstore.c
|
||||||
@@ -17,6 +17,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
|
|
||||||
#include "exec-all.h"
|
#include "exec-all.h"
|
||||||
|
@ -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
|
drives_table[], otherwise the disk in qemu will just stay opened,not
|
||||||
showing up in drives_table[].
|
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.1-testing.orig/tools/blktap/drivers/blktapctrl.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -380,7 +380,22 @@ static int write_msg(int fd, int msgtype
|
||||||
msg->cookie = blkif->cookie;
|
msg->cookie = blkif->cookie;
|
||||||
|
|
||||||
@ -121,10 +121,10 @@ Index: xen-4.1.0-testing/tools/blktap/drivers/blktapctrl.c
|
|||||||
|
|
||||||
ctlfd = blktap_interface_open();
|
ctlfd = blktap_interface_open();
|
||||||
if (ctlfd < 0) {
|
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.1-testing.orig/tools/blktap/lib/blkif.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -89,6 +89,11 @@ void register_new_blkif_hook(int (*fn)(b
|
||||||
{
|
{
|
||||||
new_blkif_hook = fn;
|
new_blkif_hook = fn;
|
||||||
@ -162,10 +162,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blkif.c
|
|||||||
void __init_blkif(void)
|
void __init_blkif(void)
|
||||||
{
|
{
|
||||||
memset(blkif_hash, 0, sizeof(blkif_hash));
|
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.1-testing.orig/tools/blktap/lib/blktaplib.h
|
||||||
+++ xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
|
+++ xen-4.1.1-testing/tools/blktap/lib/blktaplib.h
|
||||||
@@ -38,6 +38,7 @@
|
@@ -38,6 +38,7 @@
|
||||||
#include <xen/xen.h>
|
#include <xen/xen.h>
|
||||||
#include <xen/io/blkif.h>
|
#include <xen/io/blkif.h>
|
||||||
@ -197,10 +197,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/blktaplib.h
|
|||||||
|
|
||||||
/* disk driver types */
|
/* disk driver types */
|
||||||
#define MAX_DISK_TYPES 20
|
#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.1-testing.orig/tools/blktap/lib/xenbus.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -318,6 +318,72 @@ static int check_image(struct xs_handle
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -284,10 +284,10 @@ Index: xen-4.1.0-testing/tools/blktap/lib/xenbus.c
|
|||||||
|
|
||||||
list_add(&be->list, &belist);
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -35,6 +35,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#ifndef QEMU_TOOL
|
#ifndef QEMU_TOOL
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
@ -378,10 +378,10 @@ Index: xen-4.1.0-testing/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
|||||||
default:
|
default:
|
||||||
break;
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.h
|
||||||
@@ -40,7 +40,8 @@ struct td_state {
|
@@ -40,7 +40,8 @@ struct td_state {
|
||||||
void *fd_entry;
|
void *fd_entry;
|
||||||
uint64_t sector_size;
|
uint64_t sector_size;
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/image.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
|
||||||
@@ -490,7 +490,7 @@ class ImageHandler:
|
@@ -490,7 +490,7 @@ class ImageHandler:
|
||||||
|
|
||||||
domains.domains_lock.acquire()
|
domains.domains_lock.acquire()
|
||||||
@ -43,10 +43,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
|
|||||||
def recreate(self):
|
def recreate(self):
|
||||||
if self.device_model is None:
|
if self.device_model is None:
|
||||||
return
|
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.1-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/tools/python/xen/xend/server/blkif.py
|
||||||
@@ -88,6 +88,10 @@ class BlkifController(DevController):
|
@@ -88,6 +88,10 @@ class BlkifController(DevController):
|
||||||
if bootable != None:
|
if bootable != None:
|
||||||
back['bootable'] = str(bootable)
|
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:
|
if security.on() == xsconstants.XS_POLICY_USE:
|
||||||
self.do_access_control(config, uname)
|
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.1-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/tools/python/xen/xend/server/SrvDomain.py
|
||||||
@@ -95,6 +95,31 @@ class SrvDomain(SrvDir):
|
@@ -95,6 +95,31 @@ class SrvDomain(SrvDir):
|
||||||
def do_save(self, _, req):
|
def do_save(self, _, req):
|
||||||
return self.xd.domain_save(self.dom.domid, req.args['file'][0])
|
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)
|
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.1-testing.orig/tools/python/xen/xend/XendCheckpoint.py
|
||||||
+++ xen-4.1.0-testing/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):
|
@@ -65,7 +65,7 @@ def insert_after(list, pred, value):
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -331,10 +331,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/XendCheckpoint.py
|
|||||||
|
|
||||||
if not paused:
|
if not paused:
|
||||||
dominfo.unpause()
|
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.1-testing.orig/tools/python/xen/xend/XendConfig.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendConfig.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendConfig.py
|
||||||
@@ -244,6 +244,7 @@ XENAPI_CFG_TYPES = {
|
@@ -244,6 +244,7 @@ XENAPI_CFG_TYPES = {
|
||||||
'memory_sharing': int,
|
'memory_sharing': int,
|
||||||
'pool_name' : str,
|
'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
|
# 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.1-testing.orig/tools/python/xen/xend/XendDomain.py
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -53,6 +53,7 @@ from xen.xend.xenstore.xstransact import
|
||||||
from xen.xend.xenstore.xswatch import xswatch
|
from xen.xend.xenstore.xswatch import xswatch
|
||||||
from xen.util import mkdir, rwlock
|
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):
|
def domain_pincpu(self, domid, vcpu, cpumap):
|
||||||
"""Set which cpus vcpu can use
|
"""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.1-testing.orig/tools/python/xen/xm/main.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xm/main.py
|
+++ xen-4.1.1-testing/tools/python/xen/xm/main.py
|
||||||
@@ -123,6 +123,14 @@ SUBCOMMAND_HELP = {
|
@@ -123,6 +123,14 @@ SUBCOMMAND_HELP = {
|
||||||
'Restore a domain from a saved state.'),
|
'Restore a domain from a saved state.'),
|
||||||
'save' : ('[-c|-f] <Domain> <CheckpointFile>',
|
'save' : ('[-c|-f] <Domain> <CheckpointFile>',
|
||||||
@ -686,10 +686,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xm/main.py
|
|||||||
"shutdown": xm_shutdown,
|
"shutdown": xm_shutdown,
|
||||||
"start": xm_start,
|
"start": xm_start,
|
||||||
"sysrq": xm_sysrq,
|
"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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -508,7 +508,6 @@ class XendDomainInfo:
|
@@ -508,7 +508,6 @@ class XendDomainInfo:
|
||||||
self._setSchedParams()
|
self._setSchedParams()
|
||||||
self._storeVmDetails()
|
self._storeVmDetails()
|
||||||
|
@ -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.1-testing.orig/xen/arch/x86/hvm/stdvga.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -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
|
/* When in standard vga mode, emulate here all writes to the vram buffer
|
||||||
|
@ -2,10 +2,10 @@ Make our PV drivers "Novell supported modules"
|
|||||||
|
|
||||||
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
|
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
|
||||||
|
|
||||||
Index: xen-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
|
--- /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 @@
|
@@ -0,0 +1,5 @@
|
||||||
+xen-vbd
|
+xen-vbd
|
||||||
+xen-platform-pci
|
+xen-platform-pci
|
||||||
|
@ -11,10 +11,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
|||||||
tapdisk-ioemu.c | 19 +++++++++++++------
|
tapdisk-ioemu.c | 19 +++++++++++++------
|
||||||
1 files changed, 13 insertions(+), 6 deletions(-)
|
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.1-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/tools/ioemu-qemu-xen/tapdisk-ioemu.c
|
||||||
@@ -78,15 +78,22 @@ int main(void)
|
@@ -78,15 +78,22 @@ int main(void)
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
void *old_fd_start = NULL;
|
void *old_fd_start = NULL;
|
||||||
|
@ -16,10 +16,10 @@ Signed-off-by: Kevin Wolf <kwolf@suse.de>
|
|||||||
tapdisk-ioemu.c | 13 ++++++++++---
|
tapdisk-ioemu.c | 13 ++++++++++---
|
||||||
2 files changed, 14 insertions(+), 4 deletions(-)
|
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.1-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/tools/ioemu-qemu-xen/hw/xen_blktap.c
|
||||||
@@ -67,6 +67,7 @@ int read_fd;
|
@@ -67,6 +67,7 @@ int read_fd;
|
||||||
int write_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:
|
case CTLMSG_PID:
|
||||||
memset(buf, 0x00, MSG_SIZE);
|
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.1-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/tools/ioemu-qemu-xen/tapdisk-ioemu.c
|
||||||
@@ -14,6 +14,7 @@ extern void qemu_aio_init(void);
|
@@ -14,6 +14,7 @@ extern void qemu_aio_init(void);
|
||||||
extern void qemu_aio_poll(void);
|
extern void qemu_aio_poll(void);
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/init.d/xencommons
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/init.d/xencommons
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/init.d/xencommons
|
||||||
@@ -45,6 +45,18 @@ do_start () {
|
@@ -45,6 +45,18 @@ do_start () {
|
||||||
local time=0
|
local time=0
|
||||||
local timeout=30
|
local timeout=30
|
||||||
|
@ -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.1-testing.orig/tools/xenstore/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/xenstore/Makefile
|
+++ xen-4.1.1-testing/tools/xenstore/Makefile
|
||||||
@@ -58,6 +58,7 @@ $(CLIENTS_DOMU): xenstore
|
@@ -58,6 +58,7 @@ $(CLIENTS_DOMU): xenstore
|
||||||
|
|
||||||
xenstore: xenstore_client.o $(LIBXENSTORE)
|
xenstore: xenstore_client.o $(LIBXENSTORE)
|
||||||
|
@ -13,10 +13,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
|
|||||||
tools/kboot/select-kernel | 59 +
|
tools/kboot/select-kernel | 59 +
|
||||||
9 files changed, 2111 insertions(+)
|
9 files changed, 2111 insertions(+)
|
||||||
|
|
||||||
Index: xen-4.1.0-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
|
Index: xen-4.1.1-testing/buildconfigs/linux-defconfig_xenUboot_x86_32
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /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 @@
|
@@ -0,0 +1,874 @@
|
||||||
+#
|
+#
|
||||||
+# Automatically generated make config: don't edit
|
+# 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_TSS=y
|
||||||
+CONFIG_X86_NO_IDT=y
|
+CONFIG_X86_NO_IDT=y
|
||||||
+CONFIG_KTIME_SCALAR=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
|
--- /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 @@
|
@@ -0,0 +1,653 @@
|
||||||
+#
|
+#
|
||||||
+# Automatically generated make config: don't edit
|
+# 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_CRC32 is not set
|
||||||
+# CONFIG_LIBCRC32C is not set
|
+# CONFIG_LIBCRC32C is not set
|
||||||
+CONFIG_ZLIB_INFLATE=y
|
+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
|
--- /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 @@
|
@@ -0,0 +1,2 @@
|
||||||
+EXTRAVERSION = xenUboot
|
+EXTRAVERSION = xenUboot
|
||||||
+include buildconfigs/mk.linux-2.6-xen
|
+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
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/tools/kboot/Makefile
|
+++ xen-4.1.1-testing/tools/kboot/Makefile
|
||||||
@@ -0,0 +1,23 @@
|
@@ -0,0 +1,23 @@
|
||||||
+#
|
+#
|
||||||
+# tools/kboot/Makefile
|
+# tools/kboot/Makefile
|
||||||
@ -1585,10 +1585,10 @@ Index: xen-4.1.0-testing/tools/kboot/Makefile
|
|||||||
+kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec
|
+kboot.initramfs: mkinitramfs init select-kernel ../xcutils/xc_kexec
|
||||||
+ sh ./mkinitramfs | tee $@
|
+ sh ./mkinitramfs | tee $@
|
||||||
+
|
+
|
||||||
Index: xen-4.1.0-testing/tools/kboot/README
|
Index: xen-4.1.1-testing/tools/kboot/README
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/tools/kboot/README
|
+++ xen-4.1.1-testing/tools/kboot/README
|
||||||
@@ -0,0 +1,43 @@
|
@@ -0,0 +1,43 @@
|
||||||
+
|
+
|
||||||
+This is a simple kexec-based boot loader
|
+This is a simple kexec-based boot loader
|
||||||
@ -1633,10 +1633,10 @@ Index: xen-4.1.0-testing/tools/kboot/README
|
|||||||
+
|
+
|
||||||
+--
|
+--
|
||||||
+Gerd Hoffmann <kraxel@suse.de>
|
+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
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/tools/kboot/init
|
+++ xen-4.1.1-testing/tools/kboot/init
|
||||||
@@ -0,0 +1,309 @@
|
@@ -0,0 +1,309 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -1947,10 +1947,10 @@ Index: xen-4.1.0-testing/tools/kboot/init
|
|||||||
+msg "bye ..."
|
+msg "bye ..."
|
||||||
+banner "boot $guestos"
|
+banner "boot $guestos"
|
||||||
+xc_kexec -e
|
+xc_kexec -e
|
||||||
Index: xen-4.1.0-testing/tools/kboot/mkinitramfs
|
Index: xen-4.1.1-testing/tools/kboot/mkinitramfs
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/tools/kboot/mkinitramfs
|
+++ xen-4.1.1-testing/tools/kboot/mkinitramfs
|
||||||
@@ -0,0 +1,111 @@
|
@@ -0,0 +1,111 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -2063,10 +2063,10 @@ Index: xen-4.1.0-testing/tools/kboot/mkinitramfs
|
|||||||
+ echo "file $LIB/$(basename $lib) $lib 0755 0 0"
|
+ echo "file $LIB/$(basename $lib) $lib 0755 0 0"
|
||||||
+done
|
+done
|
||||||
+echo
|
+echo
|
||||||
Index: xen-4.1.0-testing/tools/kboot/select-kernel
|
Index: xen-4.1.1-testing/tools/kboot/select-kernel
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/tools/kboot/select-kernel
|
+++ xen-4.1.1-testing/tools/kboot/select-kernel
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -2127,10 +2127,10 @@ Index: xen-4.1.0-testing/tools/kboot/select-kernel
|
|||||||
+msg "using $kernelname"
|
+msg "using $kernelname"
|
||||||
+echo "$kernelname"
|
+echo "$kernelname"
|
||||||
+
|
+
|
||||||
Index: xen-4.1.0-testing/make-kboot
|
Index: xen-4.1.1-testing/make-kboot
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ xen-4.1.0-testing/make-kboot
|
+++ xen-4.1.1-testing/make-kboot
|
||||||
@@ -0,0 +1,37 @@
|
@@ -0,0 +1,37 @@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
+
|
+
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/xen-backend.rules
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -14,3 +14,4 @@ KERNEL=="gntdev", NAME="xen/%k", MODE="0
|
||||||
KERNEL=="pci_iomul", NAME="xen/%k", MODE="0600"
|
KERNEL=="pci_iomul", NAME="xen/%k", MODE="0600"
|
||||||
KERNEL=="tapdev[a-z]*", NAME="xen/blktap-2/tapdev%m", MODE="0600"
|
KERNEL=="tapdev[a-z]*", NAME="xen/blktap-2/tapdev%m", MODE="0600"
|
||||||
|
@ -15,10 +15,10 @@ could be referred to:
|
|||||||
http://www.gossamer-threads.com/lists/xen/devel/181021?search_string=usb-list;#181021
|
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.1-testing.orig/tools/python/xen/xm/main.py
|
||||||
+++ xen-4.1.0-testing/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):
|
@@ -2629,10 +2629,22 @@ def xm_usb_list(args):
|
||||||
ni = parse_dev_info(x[1])
|
ni = parse_dev_info(x[1])
|
||||||
ni['idx'] = int(x[0])
|
ni['idx'] = int(x[0])
|
||||||
|
@ -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.1-testing.orig/tools/hotplug/Linux/vif-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
|
||||||
@@ -101,9 +101,9 @@ case "$command" in
|
@@ -101,9 +101,9 @@ case "$command" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -15,10 +15,10 @@ Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
|||||||
tools/hotplug/Linux/vif-bridge | 5 +++++
|
tools/hotplug/Linux/vif-bridge | 5 +++++
|
||||||
1 file changed, 5 insertions(+)
|
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.1-testing.orig/tools/hotplug/Linux/vif-bridge
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/vif-bridge
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/vif-bridge
|
||||||
@@ -97,6 +97,11 @@ case "$command" in
|
@@ -97,6 +97,11 @@ case "$command" in
|
||||||
|
|
||||||
add)
|
add)
|
||||||
|
@ -4,10 +4,10 @@
|
|||||||
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
|
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
|
||||||
3 files changed, 55 insertions(+), 1 deletion(-)
|
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.1-testing.orig/tools/examples/xend-config.sxp
|
||||||
+++ xen-4.1.0-testing/tools/examples/xend-config.sxp
|
+++ xen-4.1.1-testing/tools/examples/xend-config.sxp
|
||||||
@@ -200,6 +200,26 @@
|
@@ -200,6 +200,26 @@
|
||||||
#(network-script network-route)
|
#(network-script network-route)
|
||||||
#(vif-script vif-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
|
## Use the following if network traffic is routed with NAT, as an alternative
|
||||||
# to the settings for bridged networking given above.
|
# 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.1-testing.orig/tools/hotplug/Linux/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/Makefile
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/Makefile
|
||||||
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
|
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
|
||||||
|
|
||||||
# Xen script dir and scripts to go there.
|
# 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 += network-nat vif-nat
|
||||||
XEN_SCRIPTS += vif2
|
XEN_SCRIPTS += vif2
|
||||||
XEN_SCRIPTS += vif-setup
|
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
|
--- /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 @@
|
@@ -0,0 +1,34 @@
|
||||||
+#!/bin/bash
|
+#!/bin/bash
|
||||||
+#============================================================================
|
+#============================================================================
|
||||||
|
@ -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.1-testing.orig/xen/arch/x86/platform_hypercall.c
|
||||||
+++ xen-4.1.0-testing/xen/arch/x86/platform_hypercall.c
|
+++ xen-4.1.1-testing/xen/arch/x86/platform_hypercall.c
|
||||||
@@ -22,7 +22,7 @@
|
@@ -22,7 +22,7 @@
|
||||||
#include <xen/cpu.h>
|
#include <xen/cpu.h>
|
||||||
#include <asm/current.h>
|
#include <asm/current.h>
|
||||||
@ -44,10 +44,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/platform_hypercall.c
|
|||||||
default:
|
default:
|
||||||
ret = -ENOSYS;
|
ret = -ENOSYS;
|
||||||
break;
|
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.1-testing.orig/xen/include/public/platform.h
|
||||||
+++ xen-4.1.0-testing/xen/include/public/platform.h
|
+++ xen-4.1.1-testing/xen/include/public/platform.h
|
||||||
@@ -355,6 +355,14 @@ struct xenpf_mem_hotadd
|
@@ -355,6 +355,14 @@ struct xenpf_mem_hotadd
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
};
|
};
|
||||||
|
@ -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.1-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/xen/arch/x86/x86_32/entry.S
|
||||||
@@ -389,29 +389,41 @@ UNLIKELY_END(bounce_vm86_3)
|
@@ -389,29 +389,41 @@ UNLIKELY_END(bounce_vm86_3)
|
||||||
movl %eax,UREGS_eip+4(%esp)
|
movl %eax,UREGS_eip+4(%esp)
|
||||||
ret
|
ret
|
||||||
@ -62,10 +62,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_32/entry.S
|
|||||||
domain_crash_synchronous:
|
domain_crash_synchronous:
|
||||||
pushl $domain_crash_synchronous_string
|
pushl $domain_crash_synchronous_string
|
||||||
call printk
|
call printk
|
||||||
Index: xen-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.1-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/xen/arch/x86/x86_64/entry.S
|
||||||
@@ -416,22 +416,35 @@ UNLIKELY_END(bounce_failsafe)
|
@@ -416,22 +416,35 @@ UNLIKELY_END(bounce_failsafe)
|
||||||
jz domain_crash_synchronous
|
jz domain_crash_synchronous
|
||||||
movq %rax,UREGS_rip+8(%rsp)
|
movq %rax,UREGS_rip+8(%rsp)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Change default IO-APIC ack mode for single IO-APIC systems to old-style.
|
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.1-testing.orig/xen/arch/x86/io_apic.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1547,7 +1547,7 @@ static unsigned int startup_level_ioapic
|
||||||
return 0; /* don't check for pending */
|
return 0; /* don't check for pending */
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-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.1-testing.orig/xen/arch/x86/mm.c
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -160,6 +160,8 @@ static int get_superpage(unsigned long m
|
||||||
#endif
|
#endif
|
||||||
static void put_superpage(unsigned long mfn);
|
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) \
|
#define l1_disallow_mask(d) \
|
||||||
((d != dom_io) && \
|
((d != dom_io) && \
|
||||||
(rangeset_is_empty((d)->iomem_caps) && \
|
(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.1-testing.orig/xen/arch/x86/traps.c
|
||||||
+++ xen-4.1.0-testing/xen/arch/x86/traps.c
|
+++ xen-4.1.1-testing/xen/arch/x86/traps.c
|
||||||
@@ -1343,6 +1343,7 @@ asmlinkage void __init do_early_page_fau
|
@@ -1377,6 +1377,7 @@ asmlinkage void __init do_early_page_fau
|
||||||
unsigned long *stk = (unsigned long *)regs;
|
unsigned long *stk = (unsigned long *)regs;
|
||||||
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
|
printk("Early fatal page fault at %04x:%p (cr2=%p, ec=%04x)\n",
|
||||||
regs->cs, _p(regs->eip), _p(cr2), regs->error_code);
|
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: ");
|
printk("Stack dump: ");
|
||||||
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
|
while ( ((long)stk & ((PAGE_SIZE - 1) & ~(BYTES_PER_LONG - 1))) != 0 )
|
||||||
printk("%p ", _p(*stk++));
|
printk("%p ", _p(*stk++));
|
||||||
Index: xen-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.1-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/xen/arch/x86/x86_32/mm.c
|
||||||
@@ -123,6 +123,8 @@ void __init paging_init(void)
|
@@ -123,6 +123,8 @@ void __init paging_init(void)
|
||||||
#undef CNT
|
#undef CNT
|
||||||
#undef MFN
|
#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(). */
|
/* Create page tables for ioremap()/map_domain_page_global(). */
|
||||||
for ( i = 0; i < (IOREMAP_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ )
|
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.1-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/xen/arch/x86/x86_32/traps.c
|
||||||
@@ -164,7 +164,8 @@ void show_page_walk(unsigned long addr)
|
@@ -164,7 +164,8 @@ void show_page_walk(unsigned long addr)
|
||||||
l3t += (cr3 & 0xFE0UL) >> 3;
|
l3t += (cr3 & 0xFE0UL) >> 3;
|
||||||
l3e = l3t[l3_table_offset(addr)];
|
l3e = l3t[l3_table_offset(addr)];
|
||||||
@ -70,10 +70,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_32/traps.c
|
|||||||
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
|
printk(" L1[0x%03lx] = %"PRIpte" %08lx\n",
|
||||||
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
||||||
unmap_domain_page(l1t);
|
unmap_domain_page(l1t);
|
||||||
Index: xen-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.1-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/xen/arch/x86/x86_64/mm.c
|
||||||
@@ -750,6 +750,8 @@ void __init paging_init(void)
|
@@ -750,6 +750,8 @@ void __init paging_init(void)
|
||||||
#undef CNT
|
#undef CNT
|
||||||
#undef MFN
|
#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. */
|
/* Create user-accessible L2 directory to map the MPT for compat guests. */
|
||||||
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
|
BUILD_BUG_ON(l4_table_offset(RDWR_MPT_VIRT_START) !=
|
||||||
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
|
l4_table_offset(HIRO_COMPAT_MPT_VIRT_START));
|
||||||
Index: xen-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.1-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/xen/arch/x86/x86_64/traps.c
|
||||||
@@ -176,7 +176,8 @@ void show_page_walk(unsigned long addr)
|
@@ -176,7 +176,8 @@ void show_page_walk(unsigned long addr)
|
||||||
l4t = mfn_to_virt(mfn);
|
l4t = mfn_to_virt(mfn);
|
||||||
l4e = l4t[l4_table_offset(addr)];
|
l4e = l4t[l4_table_offset(addr)];
|
||||||
@ -127,10 +127,10 @@ Index: xen-4.1.0-testing/xen/arch/x86/x86_64/traps.c
|
|||||||
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
|
printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
|
||||||
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
|
||||||
}
|
}
|
||||||
Index: xen-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.1-testing.orig/xen/include/asm-x86/mm.h
|
||||||
+++ xen-4.1.0-testing/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);
|
@@ -467,6 +467,8 @@ TYPE_SAFE(unsigned long,mfn);
|
||||||
#define SHARED_M2P_ENTRY (~0UL - 1UL)
|
#define SHARED_M2P_ENTRY (~0UL - 1UL)
|
||||||
#define SHARED_M2P(_e) ((_e) == SHARED_M2P_ENTRY)
|
#define SHARED_M2P(_e) ((_e) == SHARED_M2P_ENTRY)
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:9214f5f02f99bf2ff722602f90fbd4e4c39b59f9630fbc976e61de3a97db1b69
|
|
||||||
size 10774607
|
|
3
xen-4.1.1-testing-src.tar.bz2
Normal file
3
xen-4.1.1-testing-src.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:fe402be2467f4d333366ed3cccb584f55bea31d72f2c8ed9bc90d1ae32d77dfc
|
||||||
|
size 10774044
|
@ -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.1-testing.orig/tools/python/xen/xend/XendAuthSessions.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendAuthSessions.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendAuthSessions.py
|
||||||
@@ -84,7 +84,7 @@ class XendAuthSessions:
|
@@ -84,7 +84,7 @@ class XendAuthSessions:
|
||||||
# if PAM doesn't exist, let's ignore it
|
# if PAM doesn't exist, let's ignore it
|
||||||
return False
|
return False
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-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.1-testing.orig/xen/Makefile
|
||||||
+++ xen-4.1.0-testing/xen/Makefile
|
+++ xen-4.1.1-testing/xen/Makefile
|
||||||
@@ -1,3 +1,4 @@
|
@@ -1,3 +1,4 @@
|
||||||
+export XEN_CHANGESET = unavailable
|
+export XEN_CHANGESET = unavailable
|
||||||
# This is the correct place to edit the build version.
|
# This is the correct place to edit the build version.
|
||||||
|
@ -1,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.1-testing.orig/Config.mk
|
||||||
+++ xen-4.1.0-testing/Config.mk
|
+++ xen-4.1.1-testing/Config.mk
|
||||||
@@ -183,7 +183,7 @@ endif
|
@@ -194,7 +194,7 @@ endif
|
||||||
# Specify which qemu-dm to use. This may be `ioemu' to use the old
|
# Specify which qemu-dm to use. This may be `ioemu' to use the old
|
||||||
# Mercurial in-tree version, or a local directory, or a git URL.
|
# Mercurial in-tree version, or a local directory, or a git URL.
|
||||||
# CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
|
# CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
|
||||||
-CONFIG_QEMU ?= $(QEMU_REMOTE)
|
-CONFIG_QEMU ?= $(QEMU_REMOTE)
|
||||||
+CONFIG_QEMU ?= ioemu-qemu-xen
|
+CONFIG_QEMU ?= ioemu-qemu-xen
|
||||||
|
|
||||||
QEMU_TAG := xen-4.1.0
|
QEMU_TAG := xen-4.1.1-rc1
|
||||||
#QEMU_TAG ?= e073e69457b4d99b6da0b6536296e3498f7f6599
|
#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
|
# Optional components
|
||||||
XENSTAT_XENTOP ?= y
|
XENSTAT_XENTOP ?= y
|
||||||
VTPM_TOOLS ?= n
|
VTPM_TOOLS ?= n
|
||||||
@ -20,10 +20,10 @@ Index: xen-4.1.0-testing/Config.mk
|
|||||||
PYTHON_TOOLS ?= y
|
PYTHON_TOOLS ?= y
|
||||||
OCAML_TOOLS ?= y
|
OCAML_TOOLS ?= y
|
||||||
CONFIG_MINITERM ?= n
|
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.1-testing.orig/tools/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/Makefile
|
+++ xen-4.1.1-testing/tools/Makefile
|
||||||
@@ -79,14 +79,16 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TAR
|
@@ -79,14 +79,16 @@ IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TAR
|
||||||
--interp-prefix=$(CROSS_SYS_ROOT)
|
--interp-prefix=$(CROSS_SYS_ROOT)
|
||||||
endif
|
endif
|
||||||
@ -54,10 +54,10 @@ Index: xen-4.1.0-testing/tools/Makefile
|
|||||||
|
|
||||||
.PHONY: ioemu-dir-force-update
|
.PHONY: ioemu-dir-force-update
|
||||||
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.1-testing.orig/tools/libxc/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/libxc/Makefile
|
+++ xen-4.1.1-testing/tools/libxc/Makefile
|
||||||
@@ -195,7 +195,7 @@ xc_dom_bzimageloader.opic: CFLAGS += $(c
|
@@ -195,7 +195,7 @@ xc_dom_bzimageloader.opic: CFLAGS += $(c
|
||||||
|
|
||||||
libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l)
|
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
|
xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl.so
|
||||||
$(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $(OSDEP_PIC_OBJS) -lxenctrl
|
$(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.1-testing.orig/tools/firmware/etherboot/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/firmware/etherboot/Makefile
|
+++ xen-4.1.1-testing/tools/firmware/etherboot/Makefile
|
||||||
@@ -35,11 +35,13 @@ eb-roms.h: Config
|
@@ -35,11 +35,13 @@ eb-roms.h: Config
|
||||||
mv -f $@.new $@
|
mv -f $@.new $@
|
||||||
|
|
||||||
|
@ -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.1-testing.orig/docs/Makefile
|
||||||
+++ xen-4.1.0-testing/docs/Makefile
|
+++ xen-4.1.1-testing/docs/Makefile
|
||||||
@@ -90,7 +90,8 @@ install: all
|
@@ -90,7 +90,8 @@ install: all
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
|
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
|
||||||
cp -dR man1 $(DESTDIR)$(MANDIR)
|
cp -dR man1 $(DESTDIR)$(MANDIR)
|
||||||
@ -22,10 +22,10 @@ Index: xen-4.1.0-testing/docs/Makefile
|
|||||||
+ ln -sf $*.html html.done/$*/index.html
|
+ ln -sf $*.html html.done/$*/index.html
|
||||||
+ rm -rf html/
|
+ rm -rf html/
|
||||||
+
|
+
|
||||||
Index: xen-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.1-testing.orig/tools/security/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/security/Makefile
|
+++ xen-4.1.1-testing/tools/security/Makefile
|
||||||
@@ -60,8 +60,8 @@ install: all $(ACM_CONFIG_FILE)
|
@@ -60,8 +60,8 @@ install: all $(ACM_CONFIG_FILE)
|
||||||
$(INSTALL_DATA) $(ACM_INST_HTML) $(DESTDIR)$(ACM_SECGEN_HTMLDIR)
|
$(INSTALL_DATA) $(ACM_INST_HTML) $(DESTDIR)$(ACM_SECGEN_HTMLDIR)
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
$(INSTALL_DIR) $(DESTDIR)$(ACM_SECGEN_CGIDIR)
|
||||||
@ -37,10 +37,10 @@ Index: xen-4.1.0-testing/tools/security/Makefile
|
|||||||
else
|
else
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
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.1-testing.orig/tools/pygrub/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/pygrub/Makefile
|
+++ xen-4.1.1-testing/tools/pygrub/Makefile
|
||||||
@@ -11,7 +11,7 @@ build:
|
@@ -11,7 +11,7 @@ build:
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: all
|
install: all
|
||||||
@ -50,10 +50,10 @@ Index: xen-4.1.0-testing/tools/pygrub/Makefile
|
|||||||
$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub
|
$(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(BINDIR)/pygrub
|
||||||
$(INSTALL_DIR) $(DESTDIR)/var/run/xend/boot
|
$(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.1-testing.orig/tools/python/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/python/Makefile
|
+++ xen-4.1.1-testing/tools/python/Makefile
|
||||||
@@ -65,7 +65,7 @@ refresh-po: $(POTFILE)
|
@@ -65,7 +65,7 @@ refresh-po: $(POTFILE)
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: install-messages install-dtd
|
install: install-messages install-dtd
|
||||||
@ -63,10 +63,10 @@ Index: xen-4.1.0-testing/tools/python/Makefile
|
|||||||
|
|
||||||
install-dtd: all
|
install-dtd: all
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen
|
$(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.1-testing.orig/tools/xenstore/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/xenstore/Makefile
|
+++ xen-4.1.1-testing/tools/xenstore/Makefile
|
||||||
@@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenctrl)
|
@@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenctrl)
|
||||||
|
|
||||||
CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm xenstore-chmod
|
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_DIR) $(DESTDIR)$(LIBDIR)
|
||||||
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
|
$(INSTALL_PROG) libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
|
||||||
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
|
ln -sf libxenstore.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenstore.so.$(MAJOR)
|
||||||
Index: xen-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.1-testing.orig/tools/hotplug/Linux/Makefile
|
||||||
+++ xen-4.1.0-testing/tools/hotplug/Linux/Makefile
|
+++ xen-4.1.1-testing/tools/hotplug/Linux/Makefile
|
||||||
@@ -41,18 +41,6 @@ endif
|
@@ -41,18 +41,6 @@ endif
|
||||||
UDEV_RULES_DIR = $(CONFIG_DIR)/udev
|
UDEV_RULES_DIR = $(CONFIG_DIR)/udev
|
||||||
UDEV_RULES = xen-backend.rules xend.rules
|
UDEV_RULES = xen-backend.rules xend.rules
|
||||||
|
@ -5,10 +5,10 @@ the "sendkey" command, among other useful things), remove all console
|
|||||||
commands that can read/write dom0's state.
|
commands that can read/write dom0's state.
|
||||||
|
|
||||||
|
|
||||||
Index: xen-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.1-testing.orig/tools/ioemu-qemu-xen/monitor.c
|
||||||
+++ xen-4.1.0-testing/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[] = {
|
@@ -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" },
|
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
|
||||||
{ "info", "s?", do_info,
|
{ "info", "s?", do_info,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: xen-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.1-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/tools/python/xen/xend/server/DevController.py
|
||||||
@@ -592,6 +592,31 @@ class DevController:
|
@@ -592,6 +592,31 @@ class DevController:
|
||||||
return (Missing, None)
|
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):
|
def backendPath(self, backdom, devid):
|
||||||
"""Construct backend path given the backend domain and device id.
|
"""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.1-testing.orig/tools/python/xen/xend/XendBootloader.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendBootloader.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendBootloader.py
|
||||||
@@ -12,7 +12,7 @@
|
@@ -12,7 +12,7 @@
|
||||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
# 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)
|
log.error(msg)
|
||||||
raise VmError(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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -2332,6 +2332,10 @@ class XendDomainInfo:
|
@@ -2332,6 +2332,10 @@ class XendDomainInfo:
|
||||||
deviceClass, config = self.info['devices'].get(dev_uuid)
|
deviceClass, config = self.info['devices'].get(dev_uuid)
|
||||||
self._waitForDevice(deviceClass, config['devid'])
|
self._waitForDevice(deviceClass, config['devid'])
|
||||||
|
@ -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.1-testing.orig/docs/man/xmdomain.cfg.pod.5
|
||||||
+++ xen-4.1.0-testing/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.
|
@@ -335,16 +335,10 @@ at hda1, which is the root filesystem.
|
||||||
|
|
||||||
=item I<NFS Root>
|
=item I<NFS Root>
|
||||||
@ -19,10 +19,10 @@ Index: xen-4.1.0-testing/docs/man/xmdomain.cfg.pod.5
|
|||||||
=back
|
=back
|
||||||
|
|
||||||
=head1 SEE ALSO
|
=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.1-testing.orig/docs/man/xm.pod.1
|
||||||
+++ xen-4.1.0-testing/docs/man/xm.pod.1
|
+++ xen-4.1.1-testing/docs/man/xm.pod.1
|
||||||
@@ -295,7 +295,8 @@ scheduling by the Xen hypervisor.
|
@@ -295,7 +295,8 @@ scheduling by the Xen hypervisor.
|
||||||
|
|
||||||
=item B<s - shutdown>
|
=item B<s - shutdown>
|
||||||
|
@ -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.1-testing.orig/tools/ioemu-qemu-xen/net.h
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -107,8 +107,8 @@ void net_host_device_add(const char *dev
|
||||||
void net_host_device_remove(int vlan_id, const char *device);
|
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
|
#endif
|
||||||
#ifdef __sun__
|
#ifdef __sun__
|
||||||
#define SMBD_COMMAND "/usr/sfw/sbin/smbd"
|
#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.1-testing.orig/tools/ioemu-qemu-xen/net.c
|
||||||
+++ xen-4.1.0-testing/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,
|
@@ -1759,9 +1759,10 @@ int net_client_init(const char *device,
|
||||||
}
|
}
|
||||||
if (get_param_value(script_arg, sizeof(script_arg), "scriptarg", p) == 0 &&
|
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
|
} else
|
||||||
#endif
|
#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.1-testing.orig/tools/python/xen/xend/image.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/image.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/image.py
|
||||||
@@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler):
|
@@ -912,11 +912,13 @@ class HVMImageHandler(ImageHandler):
|
||||||
mac = devinfo.get('mac')
|
mac = devinfo.get('mac')
|
||||||
if mac is None:
|
if mac is None:
|
||||||
@ -51,10 +51,10 @@ Index: xen-4.1.0-testing/tools/python/xen/xend/image.py
|
|||||||
vifname = devinfo.get('vifname')
|
vifname = devinfo.get('vifname')
|
||||||
if vifname:
|
if vifname:
|
||||||
vifname = "tap-" + 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.1-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/tools/ioemu-qemu-xen/i386-dm/qemu-ifup-Linux
|
||||||
@@ -1,36 +1,22 @@
|
@@ -1,36 +1,22 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
PAE must be on for 64-on-64 to work at all.
|
PAE must be on for 64-on-64 to work at all.
|
||||||
|
|
||||||
Index: xen-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.1-testing.orig/tools/python/xen/xend/image.py
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -1030,7 +1030,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
|
||||||
|
|
||||||
def configure(self, vmConfig):
|
def configure(self, vmConfig):
|
||||||
|
@ -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.1-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/tools/ioemu-qemu-xen/hw/xen_platform.c
|
||||||
@@ -30,6 +30,8 @@
|
@@ -30,6 +30,8 @@
|
||||||
#include "qemu-xen.h"
|
#include "qemu-xen.h"
|
||||||
#include "net.h"
|
#include "net.h"
|
||||||
|
@ -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.1-testing.orig/tools/python/xen/xend/XendNode.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendNode.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendNode.py
|
||||||
@@ -949,11 +949,35 @@ class XendNode:
|
@@ -949,11 +949,35 @@ class XendNode:
|
||||||
|
|
||||||
info['cpu_mhz'] = info['cpu_khz'] / 1000
|
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:
|
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.1-testing.orig/tools/python/xen/xend/balloon.py
|
||||||
+++ xen-4.1.0-testing/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
|
@@ -43,6 +43,8 @@ SLEEP_TIME_GROWTH = 0.1
|
||||||
# label actually shown in the PROC_XEN_BALLOON file.
|
# label actually shown in the PROC_XEN_BALLOON file.
|
||||||
#labels = { 'current' : 'Current allocation',
|
#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):
|
def free(need_mem, dominfo):
|
||||||
"""Balloon out memory from the privileged domain so that there is the
|
"""Balloon out memory from the privileged domain so that there is the
|
||||||
specified required amount (in KiB) free.
|
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.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
|
||||||
+++ xen-4.1.0-testing/tools/python/xen/xend/XendDomainInfo.py
|
+++ xen-4.1.1-testing/tools/python/xen/xend/XendDomainInfo.py
|
||||||
@@ -1459,6 +1459,27 @@ class XendDomainInfo:
|
@@ -1459,6 +1459,27 @@ class XendDomainInfo:
|
||||||
pci_conf = self.info['devices'][dev_uuid][1]
|
pci_conf = self.info['devices'][dev_uuid][1]
|
||||||
return map(pci_dict_to_bdf_str, pci_conf['devs'])
|
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):
|
def setMemoryTarget(self, target):
|
||||||
"""Set the memory target of this domain.
|
"""Set the memory target of this domain.
|
||||||
@param target: In MiB.
|
@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.1-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/tools/python/xen/xend/server/SrvDomain.py
|
||||||
@@ -187,7 +187,7 @@ class SrvDomain(SrvDir):
|
@@ -187,7 +187,7 @@ class SrvDomain(SrvDir):
|
||||||
|
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user