From: Vitaly Kuznetsov <vkuznets@redhat.com> To: xen-devel@lists.xenproject.org Cc: x86@kernel.org, linux-kernel@vger.kernel.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Juergen Gross <jgross@suse.com>, Andrew Jones <drjones@redhat.com> Subject: [PATCH v2 10/21] x86/xen: split off smp_hvm.c Date: Thu, 2 Mar 2017 18:53:46 +0100 [thread overview] Message-ID: <20170302175357.8222-11-vkuznets@redhat.com> (raw) In-Reply-To: <20170302175357.8222-1-vkuznets@redhat.com> Move PVHVM related code to smp_hvm.c. Drop 'static' qualifier from xen_smp_send_reschedule(), xen_smp_send_call_function_ipi(), xen_smp_send_call_function_single_ipi(), these functions will be moved to common smp code when smp_pv.c is split. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> --- arch/x86/xen/Kconfig | 4 ++++ arch/x86/xen/Makefile | 1 + arch/x86/xen/smp.c | 57 +++---------------------------------------------- arch/x86/xen/smp.h | 3 +++ arch/x86/xen/smp_hvm.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+), 54 deletions(-) create mode 100644 arch/x86/xen/smp_hvm.c diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig index c387560..dae8dc6 100644 --- a/arch/x86/xen/Kconfig +++ b/arch/x86/xen/Kconfig @@ -37,6 +37,10 @@ config XEN_PVHVM help Support running as a Xen PVHVM guest. +config XEN_PVHVM_SMP + def_bool y + depends on XEN_PVHVM && SMP + config XEN_512GB bool "Limit Xen pv-domain memory to 512GB" depends on XEN_PV && X86_64 diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile index 5ca8d3eb..bc7df8c 100644 --- a/arch/x86/xen/Makefile +++ b/arch/x86/xen/Makefile @@ -21,6 +21,7 @@ obj-$(CONFIG_XEN_PVH) += enlighten_pvh.o obj-$(CONFIG_EVENT_TRACING) += trace.o obj-$(CONFIG_SMP) += smp.o +obj-$(CONFIG_XEN_PVHVM_SMP) += smp_hvm.o obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o obj-$(CONFIG_XEN_DOM0) += vga.o diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 6c4b415..c692336 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@ -327,25 +327,6 @@ static void __init xen_pv_smp_prepare_boot_cpu(void) xen_init_spinlocks(); } -static void __init xen_hvm_smp_prepare_boot_cpu(void) -{ - BUG_ON(smp_processor_id() != 0); - native_smp_prepare_boot_cpu(); - - /* - * Setup vcpu_info for boot CPU. - */ - xen_vcpu_setup(0); - - /* - * The alternative logic (which patches the unlock/lock) runs before - * the smp bootup up code is activated. Hence we need to set this up - * the core kernel is being patched. Otherwise we will have only - * modules patched but not core code. - */ - xen_init_spinlocks(); -} - static void __init xen_smp_prepare_cpus(unsigned int max_cpus) { unsigned cpu; @@ -529,15 +510,6 @@ static void xen_pv_cpu_die(unsigned int cpu) } } -static void xen_hvm_cpu_die(unsigned int cpu) -{ - if (common_cpu_die(cpu) == 0) { - xen_smp_intr_free(cpu); - xen_uninit_lock_cpu(cpu); - xen_teardown_timer(cpu); - } -} - static void xen_play_dead(void) /* used only with HOTPLUG_CPU */ { play_dead_common(); @@ -565,11 +537,6 @@ static void xen_pv_cpu_die(unsigned int cpu) BUG(); } -static void xen_hvm_cpu_die(unsigned int cpu) -{ - BUG(); -} - static void xen_play_dead(void) { BUG(); @@ -595,7 +562,7 @@ static void xen_stop_other_cpus(int wait) smp_call_function(stop_self, NULL, wait); } -static void xen_smp_send_reschedule(int cpu) +void xen_smp_send_reschedule(int cpu) { xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); } @@ -609,7 +576,7 @@ static void __xen_send_IPI_mask(const struct cpumask *mask, xen_send_IPI_one(cpu, vector); } -static void xen_smp_send_call_function_ipi(const struct cpumask *mask) +void xen_smp_send_call_function_ipi(const struct cpumask *mask) { int cpu; @@ -624,7 +591,7 @@ static void xen_smp_send_call_function_ipi(const struct cpumask *mask) } } -static void xen_smp_send_call_function_single_ipi(int cpu) +void xen_smp_send_call_function_single_ipi(int cpu) { __xen_send_IPI_mask(cpumask_of(cpu), XEN_CALL_FUNCTION_SINGLE_VECTOR); @@ -762,21 +729,3 @@ void __init xen_smp_init(void) smp_ops = xen_smp_ops; xen_fill_possible_map(); } - -static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus) -{ - native_smp_prepare_cpus(max_cpus); - WARN_ON(xen_smp_intr_init(0)); - - xen_init_lock_cpu(0); -} - -void __init xen_hvm_smp_init(void) -{ - smp_ops.smp_prepare_cpus = xen_hvm_smp_prepare_cpus; - smp_ops.smp_send_reschedule = xen_smp_send_reschedule; - smp_ops.cpu_die = xen_hvm_cpu_die; - smp_ops.send_call_func_ipi = xen_smp_send_call_function_ipi; - smp_ops.send_call_func_single_ipi = xen_smp_send_call_function_single_ipi; - smp_ops.smp_prepare_boot_cpu = xen_hvm_smp_prepare_boot_cpu; -} diff --git a/arch/x86/xen/smp.h b/arch/x86/xen/smp.h index a059adb..bf36e79 100644 --- a/arch/x86/xen/smp.h +++ b/arch/x86/xen/smp.h @@ -14,6 +14,9 @@ extern void xen_smp_intr_free(unsigned int cpu); extern int xen_smp_intr_init_pv(unsigned int cpu); extern void xen_smp_intr_free_pv(unsigned int cpu); +extern void xen_smp_send_reschedule(int cpu); +extern void xen_smp_send_call_function_ipi(const struct cpumask *mask); +extern void xen_smp_send_call_function_single_ipi(int cpu); #else /* CONFIG_SMP */ static inline int xen_smp_intr_init(unsigned int cpu) diff --git a/arch/x86/xen/smp_hvm.c b/arch/x86/xen/smp_hvm.c new file mode 100644 index 0000000..8bed434 --- /dev/null +++ b/arch/x86/xen/smp_hvm.c @@ -0,0 +1,58 @@ +#include <asm/smp.h> + +#include "xen-ops.h" +#include "smp.h" + + +static void __init xen_hvm_smp_prepare_boot_cpu(void) +{ + BUG_ON(smp_processor_id() != 0); + native_smp_prepare_boot_cpu(); + + /* + * Setup vcpu_info for boot CPU. + */ + xen_vcpu_setup(0); + + /* + * The alternative logic (which patches the unlock/lock) runs before + * the smp bootup up code is activated. Hence we need to set this up + * the core kernel is being patched. Otherwise we will have only + * modules patched but not core code. + */ + xen_init_spinlocks(); +} + +static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus) +{ + native_smp_prepare_cpus(max_cpus); + WARN_ON(xen_smp_intr_init(0)); + + xen_init_lock_cpu(0); +} + +#ifdef CONFIG_HOTPLUG_CPU +static void xen_hvm_cpu_die(unsigned int cpu) +{ + if (common_cpu_die(cpu) == 0) { + xen_smp_intr_free(cpu); + xen_uninit_lock_cpu(cpu); + xen_teardown_timer(cpu); + } +} +#else +static void xen_hvm_cpu_die(unsigned int cpu) +{ + BUG(); +} +#endif + +void __init xen_hvm_smp_init(void) +{ + smp_ops.smp_prepare_cpus = xen_hvm_smp_prepare_cpus; + smp_ops.smp_send_reschedule = xen_smp_send_reschedule; + smp_ops.cpu_die = xen_hvm_cpu_die; + smp_ops.send_call_func_ipi = xen_smp_send_call_function_ipi; + smp_ops.send_call_func_single_ipi = xen_smp_send_call_function_single_ipi; + smp_ops.smp_prepare_boot_cpu = xen_hvm_smp_prepare_boot_cpu; +} -- 2.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Vitaly Kuznetsov <vkuznets@redhat.com> To: xen-devel@lists.xenproject.org Cc: Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, x86@kernel.org, Andrew Jones <drjones@redhat.com>, linux-kernel@vger.kernel.org Subject: [PATCH v2 10/21] x86/xen: split off smp_hvm.c Date: Thu, 2 Mar 2017 18:53:46 +0100 [thread overview] Message-ID: <20170302175357.8222-11-vkuznets@redhat.com> (raw) In-Reply-To: <20170302175357.8222-1-vkuznets@redhat.com> Move PVHVM related code to smp_hvm.c. Drop 'static' qualifier from xen_smp_send_reschedule(), xen_smp_send_call_function_ipi(), xen_smp_send_call_function_single_ipi(), these functions will be moved to common smp code when smp_pv.c is split. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> --- arch/x86/xen/Kconfig | 4 ++++ arch/x86/xen/Makefile | 1 + arch/x86/xen/smp.c | 57 +++---------------------------------------------- arch/x86/xen/smp.h | 3 +++ arch/x86/xen/smp_hvm.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+), 54 deletions(-) create mode 100644 arch/x86/xen/smp_hvm.c diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig index c387560..dae8dc6 100644 --- a/arch/x86/xen/Kconfig +++ b/arch/x86/xen/Kconfig @@ -37,6 +37,10 @@ config XEN_PVHVM help Support running as a Xen PVHVM guest. +config XEN_PVHVM_SMP + def_bool y + depends on XEN_PVHVM && SMP + config XEN_512GB bool "Limit Xen pv-domain memory to 512GB" depends on XEN_PV && X86_64 diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile index 5ca8d3eb..bc7df8c 100644 --- a/arch/x86/xen/Makefile +++ b/arch/x86/xen/Makefile @@ -21,6 +21,7 @@ obj-$(CONFIG_XEN_PVH) += enlighten_pvh.o obj-$(CONFIG_EVENT_TRACING) += trace.o obj-$(CONFIG_SMP) += smp.o +obj-$(CONFIG_XEN_PVHVM_SMP) += smp_hvm.o obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o obj-$(CONFIG_XEN_DOM0) += vga.o diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 6c4b415..c692336 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@ -327,25 +327,6 @@ static void __init xen_pv_smp_prepare_boot_cpu(void) xen_init_spinlocks(); } -static void __init xen_hvm_smp_prepare_boot_cpu(void) -{ - BUG_ON(smp_processor_id() != 0); - native_smp_prepare_boot_cpu(); - - /* - * Setup vcpu_info for boot CPU. - */ - xen_vcpu_setup(0); - - /* - * The alternative logic (which patches the unlock/lock) runs before - * the smp bootup up code is activated. Hence we need to set this up - * the core kernel is being patched. Otherwise we will have only - * modules patched but not core code. - */ - xen_init_spinlocks(); -} - static void __init xen_smp_prepare_cpus(unsigned int max_cpus) { unsigned cpu; @@ -529,15 +510,6 @@ static void xen_pv_cpu_die(unsigned int cpu) } } -static void xen_hvm_cpu_die(unsigned int cpu) -{ - if (common_cpu_die(cpu) == 0) { - xen_smp_intr_free(cpu); - xen_uninit_lock_cpu(cpu); - xen_teardown_timer(cpu); - } -} - static void xen_play_dead(void) /* used only with HOTPLUG_CPU */ { play_dead_common(); @@ -565,11 +537,6 @@ static void xen_pv_cpu_die(unsigned int cpu) BUG(); } -static void xen_hvm_cpu_die(unsigned int cpu) -{ - BUG(); -} - static void xen_play_dead(void) { BUG(); @@ -595,7 +562,7 @@ static void xen_stop_other_cpus(int wait) smp_call_function(stop_self, NULL, wait); } -static void xen_smp_send_reschedule(int cpu) +void xen_smp_send_reschedule(int cpu) { xen_send_IPI_one(cpu, XEN_RESCHEDULE_VECTOR); } @@ -609,7 +576,7 @@ static void __xen_send_IPI_mask(const struct cpumask *mask, xen_send_IPI_one(cpu, vector); } -static void xen_smp_send_call_function_ipi(const struct cpumask *mask) +void xen_smp_send_call_function_ipi(const struct cpumask *mask) { int cpu; @@ -624,7 +591,7 @@ static void xen_smp_send_call_function_ipi(const struct cpumask *mask) } } -static void xen_smp_send_call_function_single_ipi(int cpu) +void xen_smp_send_call_function_single_ipi(int cpu) { __xen_send_IPI_mask(cpumask_of(cpu), XEN_CALL_FUNCTION_SINGLE_VECTOR); @@ -762,21 +729,3 @@ void __init xen_smp_init(void) smp_ops = xen_smp_ops; xen_fill_possible_map(); } - -static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus) -{ - native_smp_prepare_cpus(max_cpus); - WARN_ON(xen_smp_intr_init(0)); - - xen_init_lock_cpu(0); -} - -void __init xen_hvm_smp_init(void) -{ - smp_ops.smp_prepare_cpus = xen_hvm_smp_prepare_cpus; - smp_ops.smp_send_reschedule = xen_smp_send_reschedule; - smp_ops.cpu_die = xen_hvm_cpu_die; - smp_ops.send_call_func_ipi = xen_smp_send_call_function_ipi; - smp_ops.send_call_func_single_ipi = xen_smp_send_call_function_single_ipi; - smp_ops.smp_prepare_boot_cpu = xen_hvm_smp_prepare_boot_cpu; -} diff --git a/arch/x86/xen/smp.h b/arch/x86/xen/smp.h index a059adb..bf36e79 100644 --- a/arch/x86/xen/smp.h +++ b/arch/x86/xen/smp.h @@ -14,6 +14,9 @@ extern void xen_smp_intr_free(unsigned int cpu); extern int xen_smp_intr_init_pv(unsigned int cpu); extern void xen_smp_intr_free_pv(unsigned int cpu); +extern void xen_smp_send_reschedule(int cpu); +extern void xen_smp_send_call_function_ipi(const struct cpumask *mask); +extern void xen_smp_send_call_function_single_ipi(int cpu); #else /* CONFIG_SMP */ static inline int xen_smp_intr_init(unsigned int cpu) diff --git a/arch/x86/xen/smp_hvm.c b/arch/x86/xen/smp_hvm.c new file mode 100644 index 0000000..8bed434 --- /dev/null +++ b/arch/x86/xen/smp_hvm.c @@ -0,0 +1,58 @@ +#include <asm/smp.h> + +#include "xen-ops.h" +#include "smp.h" + + +static void __init xen_hvm_smp_prepare_boot_cpu(void) +{ + BUG_ON(smp_processor_id() != 0); + native_smp_prepare_boot_cpu(); + + /* + * Setup vcpu_info for boot CPU. + */ + xen_vcpu_setup(0); + + /* + * The alternative logic (which patches the unlock/lock) runs before + * the smp bootup up code is activated. Hence we need to set this up + * the core kernel is being patched. Otherwise we will have only + * modules patched but not core code. + */ + xen_init_spinlocks(); +} + +static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus) +{ + native_smp_prepare_cpus(max_cpus); + WARN_ON(xen_smp_intr_init(0)); + + xen_init_lock_cpu(0); +} + +#ifdef CONFIG_HOTPLUG_CPU +static void xen_hvm_cpu_die(unsigned int cpu) +{ + if (common_cpu_die(cpu) == 0) { + xen_smp_intr_free(cpu); + xen_uninit_lock_cpu(cpu); + xen_teardown_timer(cpu); + } +} +#else +static void xen_hvm_cpu_die(unsigned int cpu) +{ + BUG(); +} +#endif + +void __init xen_hvm_smp_init(void) +{ + smp_ops.smp_prepare_cpus = xen_hvm_smp_prepare_cpus; + smp_ops.smp_send_reschedule = xen_smp_send_reschedule; + smp_ops.cpu_die = xen_hvm_cpu_die; + smp_ops.send_call_func_ipi = xen_smp_send_call_function_ipi; + smp_ops.send_call_func_single_ipi = xen_smp_send_call_function_single_ipi; + smp_ops.smp_prepare_boot_cpu = xen_hvm_smp_prepare_boot_cpu; +} -- 2.9.3 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-03-02 22:09 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-02 17:53 [PATCH v2 00/21] x86/xen: untangle PV and PVHVM guest support code Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-02 17:53 ` [PATCH v2 01/21] x86/xen: separate PV and HVM hypervisors Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:06 ` Juergen Gross 2017-03-08 15:06 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 02/21] x86/xen: globalize have_vcpu_info_placement Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:07 ` Juergen Gross 2017-03-08 15:07 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 03/21] x86/xen: add CONFIG_XEN_PV to Kconfig Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:12 ` Juergen Gross 2017-03-08 15:12 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 04/21] x86/xen: split off enlighten_pvh.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:14 ` Juergen Gross 2017-03-08 15:14 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 05/21] x86/xen: split off enlighten_hvm.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:16 ` Juergen Gross 2017-03-08 15:16 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 06/21] x86/xen: split off enlighten_pv.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-08 15:18 ` Juergen Gross 2017-03-08 15:18 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 07/21] x86/xen: split xen_smp_intr_init()/xen_smp_intr_free() Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 7:30 ` Juergen Gross 2017-03-13 7:30 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 08/21] x86/xen: split xen_smp_prepare_boot_cpu() Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 7:33 ` Juergen Gross 2017-03-13 7:33 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 09/21] x86/xen: split xen_cpu_die() Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 7:34 ` Juergen Gross 2017-03-13 7:34 ` Juergen Gross 2017-03-02 17:53 ` Vitaly Kuznetsov [this message] 2017-03-02 17:53 ` [PATCH v2 10/21] x86/xen: split off smp_hvm.c Vitaly Kuznetsov 2017-03-13 7:37 ` Juergen Gross 2017-03-13 7:37 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 11/21] x86/xen: split off smp_pv.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:33 ` Juergen Gross 2017-03-13 9:33 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 12/21] x86/xen: split off mmu_hvm.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:34 ` Juergen Gross 2017-03-13 9:34 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 13/21] x86/xen: split off mmu_pv.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:35 ` Juergen Gross 2017-03-13 9:35 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 14/21] x86/xen: split suspend.c for PV and PVHVM guests Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-05 9:13 ` kbuild test robot 2017-03-05 9:13 ` [Xen-devel] " kbuild test robot 2017-03-02 17:53 ` [PATCH v2 15/21] x86/xen: put setup.c, pmu.c and apic.c under CONFIG_XEN_PV Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-02 17:53 ` [PATCH v2 16/21] x86/xen: define startup_xen for XEN PV only Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:36 ` Juergen Gross 2017-03-13 9:36 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 17/21] x86/xen: create stubs for HVM-only builds in page.h Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:43 ` Juergen Gross 2017-03-13 9:43 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 18/21] xen/balloon: decorate PV-only parts with #ifdef CONFIG_XEN_PV Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:47 ` Juergen Gross 2017-03-13 9:47 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 19/21] xen: create xen_create/destroy_contiguous_region() stubs for PVHVM only builds Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:47 ` Juergen Gross 2017-03-13 9:47 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 20/21] x86/xen: enable PVHVM-only builds Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:48 ` Juergen Gross 2017-03-13 9:48 ` Juergen Gross 2017-03-02 17:53 ` [PATCH v2 21/21] x86/xen: rename some PV-only functions in smp_pv.c Vitaly Kuznetsov 2017-03-02 17:53 ` Vitaly Kuznetsov 2017-03-13 9:49 ` Juergen Gross 2017-03-13 9:49 ` Juergen Gross 2017-03-05 17:59 ` [Xen-devel] [PATCH v2 00/21] x86/xen: untangle PV and PVHVM guest support code Boris Ostrovsky 2017-03-13 13:02 ` Vitaly Kuznetsov 2017-03-13 13:02 ` [Xen-devel] " Vitaly Kuznetsov 2017-03-05 17:59 ` Boris Ostrovsky
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170302175357.8222-11-vkuznets@redhat.com \ --to=vkuznets@redhat.com \ --cc=boris.ostrovsky@oracle.com \ --cc=drjones@redhat.com \ --cc=jgross@suse.com \ --cc=linux-kernel@vger.kernel.org \ --cc=x86@kernel.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.