From: Wei Liu <wei.liu2@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: wei.liu2@citrix.com
Subject: [PATCH RFC v1 36/74] --- x86/shim: Kconfig and command line options
Date: Thu, 4 Jan 2018 13:05:47 +0000 [thread overview]
Message-ID: <20180104130625.28605-37-wei.liu2@citrix.com> (raw)
In-Reply-To: <20180104130625.28605-1-wei.liu2@citrix.com>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
docs/misc/xen-command-line.markdown | 11 ++++++++++
xen/arch/x86/Kconfig | 22 +++++++++++++++++++
xen/arch/x86/pv/Makefile | 1 +
xen/arch/x86/pv/shim.c | 39 ++++++++++++++++++++++++++++++++++
xen/include/asm-x86/guest.h | 1 +
xen/include/asm-x86/pv/shim.h | 42 +++++++++++++++++++++++++++++++++++++
6 files changed, 116 insertions(+)
create mode 100644 xen/arch/x86/pv/shim.c
create mode 100644 xen/include/asm-x86/pv/shim.h
diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
index da006dd4f7..3a1a9c1fba 100644
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -1445,6 +1445,17 @@ do; there may be other custom operating systems which do. If you're
certain you don't plan on having PV guests which use this feature,
turning it off can reduce the attack surface.
+### pv-shim (x86)
+> `= <boolean>`
+
+> Default: `false`
+
+This option is intended for use by a toolstack, when choosing to run a PV
+guest compatibly inside an HVM container.
+
+In this mode, the kernel and initrd passed as modules to the hypervisor are
+constructed into a plain unprivileged PV domain.
+
### rcu-idle-timer-period-ms
> `= <integer>`
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index c0b0bcdcb3..4953533f16 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -133,6 +133,28 @@ config PVH_GUEST
---help---
Support booting using the PVH ABI.
+ If unsure, say N.
+
+config PV_SHIM
+ def_bool n
+ prompt "PV Shim"
+ depends on PV && XEN_GUEST
+ ---help---
+ Build Xen with a mode which acts as a shim to allow PV guest to run
+ in an HVM/PVH container. This mode can only be enabled with command
+ line option.
+
+ If unsure, say N.
+
+config PV_SHIM_EXCLUSIVE
+ def_bool n
+ prompt "PV Shim Exclusive"
+ depends on PV_SHIM
+ ---help---
+ Build Xen in a way which unconditionally assumes PV_SHIM mode. This
+ option is only intended for use when building a dedicated PV Shim
+ firmware, and will not function correctly in other scenarios.
+
If unsure, say N.
endmenu
diff --git a/xen/arch/x86/pv/Makefile b/xen/arch/x86/pv/Makefile
index bac2792aa2..65bca04175 100644
--- a/xen/arch/x86/pv/Makefile
+++ b/xen/arch/x86/pv/Makefile
@@ -11,6 +11,7 @@ obj-y += iret.o
obj-y += misc-hypercalls.o
obj-y += mm.o
obj-y += ro-page-fault.o
+obj-$(CONFIG_PV_SHIM) += shim.o
obj-y += traps.o
obj-bin-y += dom0_build.init.o
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
new file mode 100644
index 0000000000..4d037355db
--- /dev/null
+++ b/xen/arch/x86/pv/shim.c
@@ -0,0 +1,39 @@
+/******************************************************************************
+ * arch/x86/pv/shim.c
+ *
+ * Functionaltiy for PV Shim mode
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (c) 2017 Citrix Systems Ltd.
+ */
+#include <xen/init.h>
+#include <xen/types.h>
+
+#include <asm/apic.h>
+
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+bool pv_shim;
+boolean_param("pv-shim", pv_shim);
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/asm-x86/guest.h b/xen/include/asm-x86/guest.h
index 5abdb8c433..a38c6b5b3f 100644
--- a/xen/include/asm-x86/guest.h
+++ b/xen/include/asm-x86/guest.h
@@ -22,6 +22,7 @@
#include <asm/guest/hypercall.h>
#include <asm/guest/pvh-boot.h>
#include <asm/guest/xen.h>
+#include <asm/pv/shim.h>
#endif /* __X86_GUEST_H__ */
diff --git a/xen/include/asm-x86/pv/shim.h b/xen/include/asm-x86/pv/shim.h
new file mode 100644
index 0000000000..1468cfd498
--- /dev/null
+++ b/xen/include/asm-x86/pv/shim.h
@@ -0,0 +1,42 @@
+/******************************************************************************
+ * asm-x86/guest/shim.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms and conditions of the GNU General Public
+ * License, version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (c) 2017 Citrix Systems Ltd.
+ */
+
+#ifndef __X86_PV_SHIM_H__
+#define __X86_PV_SHIM_H__
+
+#include <xen/types.h>
+
+#if defined(CONFIG_PV_SHIM_EXCLUSIVE)
+# define pv_shim 1
+#elif defined(CONFIG_PV_SHIM)
+extern bool pv_shim;
+#else
+# define pv_shim 0
+#endif /* CONFIG_PV_SHIM{,_EXCLUSIVE} */
+
+#endif /* __X86_PV_SHIM_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-01-04 13:29 UTC|newest]
Thread overview: 206+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-04 13:05 [PATCH RFC v1 00/74] Run PV guest in PVH container Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 01/74] x86/svm: Offer CPUID Faulting to AMD HVM guests as well Wei Liu
2018-01-04 14:00 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 02/74] x86: Common cpuid faulting support Wei Liu
2018-01-04 14:19 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 03/74] x86/upcall: inject a spurious event after setting upcall vector Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 04/74] tools/libxc: initialise hvm loader elf log fd to get more logging Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 05/74] tools/libxc: remove extraneous newline in xc_dom_load_acpi Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 06/74] tools/libelf: fix elf notes check for PVH guest Wei Liu
2018-01-04 14:37 ` Jan Beulich
2018-01-08 15:34 ` Wei Liu
2018-01-08 16:02 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 07/74] tools/libxc: Multi modules support Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 08/74] libxl: Introduce hack to allow PVH mode to add a shim Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 09/74] xen/common: Widen the guest logging buffer slightly Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 10/74] x86/time: Print a more helpful error when a platform timer can't be found Wei Liu
2018-01-05 10:37 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 11/74] x86/link: Introduce and use SECTION_ALIGN Wei Liu
2018-01-05 10:38 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 12/74] xen/acpi: mark the PM timer FADT field as optional Wei Liu
2018-01-05 10:52 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 13/74] xen/domctl: Return arch_config via getdomaininfo Wei Liu
2018-01-05 10:58 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 14/74] tools/ocaml: Expose arch_config in domaininfo Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 15/74] tools/ocaml: Extend domain_create() to take arch_domainconfig Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 16/74] x86/fixmap: Modify fix_to_virt() to return a void pointer Wei Liu
2018-01-05 11:05 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 17/74] ---- x86/Kconfig: Options for Xen and PVH support Wei Liu
2018-01-05 11:11 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 18/74] x86/link: Relocate program headers Wei Liu
2018-01-05 11:20 ` Jan Beulich
2018-01-08 15:43 ` Wei Liu
2018-01-08 16:26 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 19/74] x86: introduce ELFNOTE macro Wei Liu
2018-01-05 11:27 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 20/74] x86: produce a binary that can be booted as PVH Wei Liu
2018-01-05 11:39 ` Jan Beulich
2018-01-08 15:59 ` Wei Liu
2018-01-08 16:42 ` Jan Beulich
2018-01-09 13:49 ` Wei Liu
2018-01-10 19:10 ` Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 21/74] x86/entry: Early PVH boot code Wei Liu
2018-01-05 13:32 ` Jan Beulich
2018-01-09 15:45 ` Wei Liu
2018-01-09 16:41 ` Jan Beulich
2018-01-09 17:10 ` Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 22/74] x86/boot: Map more than the first 16MB Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 23/74] x86/entry: Probe for Xen early during boot Wei Liu
2018-01-05 13:40 ` Jan Beulich
2018-01-10 17:45 ` Wei Liu
2018-01-11 7:55 ` Jan Beulich
2018-01-11 9:43 ` Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 24/74] x86/guest: Hypercall support Wei Liu
2018-01-05 13:53 ` Jan Beulich
2018-01-05 14:09 ` Andrew Cooper
2018-01-04 13:05 ` [PATCH RFC v1 25/74] x86/shutdown: Support for using SCHEDOP_{shutdown, reboot} Wei Liu
2018-01-05 14:01 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 26/74] x86/pvh: Retrieve memory map from Xen Wei Liu
2018-01-05 14:05 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 27/74] xen/console: Introduce console=xen Wei Liu
2018-01-05 14:08 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 28/74] x86: initialise shared_info page Wei Liu
2018-01-05 14:11 ` Jan Beulich
2018-01-05 14:20 ` Andrew Cooper
2018-01-05 14:28 ` Roger Pau Monné
2018-01-05 14:40 ` Andrew Cooper
2018-01-04 13:05 ` [PATCH RFC v1 29/74] x86: xen pv clock time source Wei Liu
2018-01-05 14:17 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 30/74] x86: APIC timer calibration when running as a guest Wei Liu
2018-01-05 14:35 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 31/74] x86: read wallclock from Xen running in pvh mode Wei Liu
2018-01-05 14:43 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 32/74] x86: don't swallow the first command line item " Wei Liu
2018-01-05 14:49 ` Jan Beulich
2018-01-09 14:30 ` Roger Pau Monné
2018-01-04 13:05 ` [PATCH RFC v1 33/74] x86/guest: enable event channels upcalls Wei Liu
2018-01-05 15:07 ` Jan Beulich
2018-01-05 15:19 ` Andrew Cooper
2018-01-04 13:05 ` [PATCH RFC v1 34/74] x86/guest: add PV console code Wei Liu
2018-01-05 15:22 ` Jan Beulich
2018-01-10 15:33 ` Roger Pau Monné
2018-01-10 15:55 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 35/74] x86/guest: use PV console for Xen/Dom0 I/O Wei Liu
2018-01-04 13:05 ` Wei Liu [this message]
2018-01-05 15:26 ` [PATCH RFC v1 36/74] --- x86/shim: Kconfig and command line options Jan Beulich
2018-01-05 17:51 ` Andrew Cooper
2018-01-08 8:22 ` Jan Beulich
2018-01-08 11:33 ` Andrew Cooper
2018-01-08 11:46 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 37/74] tools/firmware: Build and install xen-shim Wei Liu
2018-01-04 13:05 ` [PATCH RFC v1 38/74] x86/pv-shim: Force CPUID faulting in pv-shim mode Wei Liu
2018-01-08 10:16 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 39/74] xen/x86: make VGA support selectable Wei Liu
2018-01-08 10:22 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 40/74] xen/x86: report domain id on cpuid Wei Liu
2018-01-08 10:27 ` Jan Beulich
2018-01-08 10:34 ` Andrew Cooper
2018-01-08 11:11 ` Jan Beulich
2018-01-08 11:22 ` Andrew Cooper
2018-01-08 11:27 ` Jan Beulich
2018-01-08 11:29 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 41/74] xen/pvh: do not mark the low 1MB as IO mem Wei Liu
2018-01-08 10:30 ` Jan Beulich
2018-01-08 10:37 ` Roger Pau Monné
2018-01-08 11:11 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 42/74] sched/null: skip vCPUs on the waitqueue that are blocked Wei Liu
2018-01-08 10:37 ` Jan Beulich
2018-01-08 11:12 ` George Dunlap
2018-01-12 9:54 ` Dario Faggioli
2018-01-12 10:45 ` Roger Pau Monné
2018-01-12 11:16 ` Dario Faggioli
2018-01-12 11:22 ` Roger Pau Monné
2018-01-12 10:41 ` Dario Faggioli
2018-01-04 13:05 ` [PATCH RFC v1 43/74] xen: introduce rangeset_reserve_hole Wei Liu
2018-01-08 10:46 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 44/74] xen/pvshim: keep track of unused pages Wei Liu
2018-01-08 10:58 ` Jan Beulich
2018-01-08 11:04 ` Roger Pau Monné
2018-01-08 11:22 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 45/74] x86/guest: use unpopulated memory to map the shared_info page Wei Liu
2018-01-08 11:03 ` Jan Beulich
2018-01-08 11:06 ` Roger Pau Monné
2018-01-08 11:25 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 46/74] xen/guest: fetch vCPU ID from Xen Wei Liu
2018-01-08 11:04 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 47/74] x86/guest: fix upcall vector setup Wei Liu
2018-01-08 11:08 ` Jan Beulich
2018-01-04 13:05 ` [PATCH RFC v1 48/74] x86/guest: unmask console event channel Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 49/74] x86/guest: map per-cpu vcpu_info area Wei Liu
2018-01-08 13:21 ` Jan Beulich
2018-01-09 12:08 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 50/74] xen/pvshim: remove Dom0 kernel support check Wei Liu
2018-01-08 13:28 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 51/74] xen/pvshim: don't allow access to iomem or ioports Wei Liu
2018-01-08 13:29 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 52/74] xen: mark xenstore/console pages as RAM and add them to dom_io Wei Liu
2018-01-08 13:49 ` Jan Beulich
2018-01-09 9:25 ` Roger Pau Monné
2018-01-09 11:03 ` Jan Beulich
2018-01-09 11:26 ` Roger Pau Monné
2018-01-09 13:34 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 53/74] xen/pvshim: modify Dom0 builder in order to build a DomU Wei Liu
2018-01-08 14:06 ` Jan Beulich
2018-01-09 16:09 ` Roger Pau Monné
2018-01-09 16:26 ` Jan Beulich
2018-01-09 9:06 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 54/74] xen/pvshim: set correct domid value Wei Liu
2018-01-08 14:17 ` Jan Beulich
2018-01-09 16:27 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 55/74] xen/pvshim: forward evtchn ops between L0 Xen and L2 DomU Wei Liu
2018-01-08 16:05 ` Jan Beulich
2018-01-08 16:22 ` Roger Pau Monné
2018-01-09 8:00 ` Jan Beulich
2018-01-09 16:45 ` Roger Pau Monné
2018-01-09 17:42 ` Jan Beulich
2018-01-09 17:50 ` Anthony Liguori
2018-01-10 12:23 ` Roger Pau Monné
2018-01-09 7:49 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 56/74] xen/pvshim: add grant table operations Wei Liu
2018-01-08 17:19 ` Jan Beulich
2018-01-09 18:34 ` Roger Pau Monné
2018-01-10 7:28 ` Jan Beulich
2018-01-10 8:01 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 57/74] x86/pv-shim: shadow PV console's page for L2 DomU Wei Liu
2018-01-09 9:13 ` Jan Beulich
2018-01-09 15:43 ` Sergey Dyasli
2018-01-09 16:28 ` Jan Beulich
2018-01-10 16:56 ` Sergey Dyasli
2018-01-12 7:03 ` Sarah Newman
2018-01-04 13:06 ` [PATCH RFC v1 58/74] xen/pvshim: add migration support Wei Liu
2018-01-09 9:38 ` Jan Beulich
2018-01-10 12:54 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 59/74] xen/pvshim: add shim_mem cmdline parameter Wei Liu
2018-01-09 9:47 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 60/74] xen/pvshim: set max_pages to the value of tot_pages Wei Liu
2018-01-09 9:48 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 61/74] xen/pvshim: support vCPU hotplug Wei Liu
2018-01-09 10:16 ` Jan Beulich
2018-01-10 13:07 ` Roger Pau Monné
2018-01-10 13:33 ` Jan Beulich
2018-01-10 14:40 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 62/74] xen/pvshim: memory hotplug Wei Liu
2018-01-09 10:42 ` Jan Beulich
2018-01-10 13:36 ` Roger Pau Monné
2018-01-10 13:42 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 63/74] xen/shim: modify shim_mem parameter behaviour Wei Liu
2018-01-09 10:48 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 64/74] xen/pvshim: use default position for the m2p mappings Wei Liu
2018-01-09 10:50 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 65/74] xen/shim: crash instead of reboot in shim mode Wei Liu
2018-01-09 10:52 ` Jan Beulich
2018-01-04 13:06 ` [PATCH RFC v1 66/74] xen/shim: allow DomU to have as many vcpus as available Wei Liu
2018-01-09 10:59 ` Jan Beulich
2018-01-10 16:14 ` Roger Pau Monné
2018-01-04 13:06 ` [PATCH RFC v1 67/74] libxl: libxl__build_hvm: Introduce separate b_info parameter Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 68/74] libxl__domain_build_info_setdefault_pvhhvm: introduce Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 69/74] libxl_bitmap_copy_alloc: copy 0, NULL as 0, NULL Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 70/74] libxl: pvshim: Check state->shim_path before domain type Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 71/74] libxl: pvshim: Provide first-class config settings to enable shim mode Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 72/74] libxl: pvshim: Introduce pvhshim_extra Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 73/74] xl: pvshim: Provide and document xl config Wei Liu
2018-01-04 13:06 ` [PATCH RFC v1 74/74] libxl: pvshim: Set video_memkb to ~0 Wei Liu
2018-01-08 16:12 ` [PATCH RFC v1 00/74] Run PV guest in PVH container Ian Jackson
2018-01-11 15:39 ` Ian Jackson
2018-01-10 16:26 ` George Dunlap
2018-01-10 16:28 ` Wei Liu
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=20180104130625.28605-37-wei.liu2@citrix.com \
--to=wei.liu2@citrix.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).