All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Kiper <daniel.kiper@oracle.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: jgross@suse.com, grub-devel@gnu.org, keir@xen.org,
	ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com,
	andrew.cooper3@citrix.com, gang.wei@intel.com,
	roy.franz@linaro.org, ning.sun@intel.com,
	david.vrabel@citrix.com, jbeulich@suse.com, phcoder@gmail.com,
	xen-devel@lists.xenproject.org, wei.liu2@citrix.com,
	richard.l.maliszewski@intel.com, qiaowei.ren@intel.com,
	fu.wei@linaro.org
Subject: Re: [Xen-devel] [PATCH v2 08/23] x86: add multiboot2 protocol support
Date: Thu, 13 Aug 2015 21:22:12 +0200	[thread overview]
Message-ID: <20150813192212.GI3503@olila.local.net-space.pl> (raw)
In-Reply-To: <20150810191747.GE13576@l.oracle.com>

On Mon, Aug 10, 2015 at 03:17:48PM -0400, Konrad Rzeszutek Wilk wrote:
> On Mon, Jul 20, 2015 at 04:29:03PM +0200, Daniel Kiper wrote:
> > Add multiboot2 protocol support. Alter min memory limit handling as we
> > now may not find it from either multiboot (v1) or multiboot2.
> >
> > This way we are laying the foundation for EFI + GRUB2 + Xen development.
> >
> > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > ---
> > v2 - suggestions/fixes:
> >    - generate multiboot2 header using macros
> >      (suggested by Jan Beulich),
> >    - improve comments
> >      (suggested by Jan Beulich),
> >    - simplify assembly in xen/arch/x86/boot/head.S
> >      (suggested by Jan Beulich),
> >    - do not include include/xen/compiler.h
> >      in xen/arch/x86/boot/reloc.c
> >      (suggested by Jan Beulich),
> >    - do not read data beyond the end of Multiboot2 information
> >      (suggested by Jan Beulich).
> >
> > v2 - not fixed yet:
>
> You have two 'v2'

Yep, but it says "not fixed in v2".

> >    - dynamic dependency generation for xen/arch/x86/boot/reloc.S;
> >      this requires more work; I am not sure that it pays because
> >      potential patch requires more changes than addition of just
> >      multiboot2.h to Makefile
> >      (suggested by Jan Beulich),
> >    - isolated/stray __packed attribute usage for multiboot2_memory_map_t
> >      (suggested by Jan Beulich).
> > ---
> >  xen/arch/x86/boot/Makefile        |    3 +-
> >  xen/arch/x86/boot/head.S          |  105 +++++++++++++++++++++--
> >  xen/arch/x86/boot/reloc.c         |  146 +++++++++++++++++++++++++++++++-
> >  xen/arch/x86/x86_64/asm-offsets.c |    7 ++
> >  xen/include/xen/multiboot2.h      |  169 +++++++++++++++++++++++++++++++++++++
> >  5 files changed, 420 insertions(+), 10 deletions(-)
> >  create mode 100644 xen/include/xen/multiboot2.h
> >
> > diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
> > index 5fdb5ae..06893d8 100644
> > --- a/xen/arch/x86/boot/Makefile
> > +++ b/xen/arch/x86/boot/Makefile
> > @@ -1,6 +1,7 @@
> >  obj-bin-y += head.o
> >
> > -RELOC_DEPS = $(BASEDIR)/include/asm-x86/config.h $(BASEDIR)/include/xen/multiboot.h
> > +RELOC_DEPS = $(BASEDIR)/include/asm-x86/config.h $(BASEDIR)/include/xen/multiboot.h \
> > +	     $(BASEDIR)/include/xen/multiboot2.h
> >
> >  head.o: reloc.S
> >
> > diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
> > index 77e7da9..57197db 100644
> > --- a/xen/arch/x86/boot/head.S
> > +++ b/xen/arch/x86/boot/head.S
> > @@ -1,5 +1,6 @@
> >  #include <xen/config.h>
> >  #include <xen/multiboot.h>
> > +#include <xen/multiboot2.h>
> >  #include <public/xen.h>
> >  #include <asm/asm_defns.h>
> >  #include <asm/desc.h>
> > @@ -19,6 +20,28 @@
> >  #define BOOT_PSEUDORM_CS 0x0020
> >  #define BOOT_PSEUDORM_DS 0x0028
> >
> > +#define MB2_HT(name)      (MULTIBOOT2_HEADER_TAG_##name)
> > +#define MB2_TT(name)      (MULTIBOOT2_TAG_TYPE_##name)
> > +
> > +        .macro mb2ht_args arg, args:vararg
> > +        .long \arg
> > +        .ifnb \args
> > +        mb2ht_args \args
> > +        .endif
> > +        .endm
> > +
> > +        .macro mb2ht_init type, req, args:vararg
> > +        .align MULTIBOOT2_TAG_ALIGN
> > +        0:
> > +        .short \type
> > +        .short \req
> > +        .long 1f - 0b
> > +        .ifnb \args
> > +        mb2ht_args \args
> > +        .endif
> > +        1:
> > +        .endm
> > +
> >  ENTRY(start)
> >          jmp     __start
> >
> > @@ -34,6 +57,42 @@ multiboot1_header_start:       /*** MULTIBOOT1 HEADER ****/
> >          .long   -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
> >  multiboot1_header_end:
> >
> > +/*** MULTIBOOT2 HEADER ****/
> > +/* Some ideas are taken from grub-2.00/grub-core/tests/boot/kernel-i386.S file. */
> > +        .align  MULTIBOOT2_HEADER_ALIGN
> > +
> > +.Lmultiboot2_header:
>
> How come you use .L? It makes this hidden while the multiboot1 headers
> are visible? Makes it a bit harder to see the contents of this under
> an debugger.

Good point. IIRC, Jan asked about that. I will remove .L if he does not object.

> > +        /* Magic number indicating a Multiboot2 header. */
> > +        .long   MULTIBOOT2_HEADER_MAGIC
> > +        /* Architecture: i386. */
> > +        .long   MULTIBOOT2_ARCHITECTURE_I386
> > +        /* Multiboot2 header length. */
> > +        .long   .Lmultiboot2_header_end - .Lmultiboot2_header
> > +        /* Multiboot2 header checksum. */
> > +        .long   -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT2_ARCHITECTURE_I386 + \
> > +                        (.Lmultiboot2_header_end - .Lmultiboot2_header))
> > +
> > +        /* Multiboot2 information request tag. */
> > +        mb2ht_init MB2_HT(INFORMATION_REQUEST), MB2_HT(REQUIRED), \
> > +                   MB2_TT(BASIC_MEMINFO), MB2_TT(MMAP)
> > +
> > +        /* Align modules at page boundry. */
> > +        mb2ht_init MB2_HT(MODULE_ALIGN), MB2_HT(REQUIRED)
> > +
> > +        /* Console flags tag. */
> > +        mb2ht_init MB2_HT(CONSOLE_FLAGS), MB2_HT(OPTIONAL), \
> > +                   MULTIBOOT2_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED
> > +
> > +        /* Framebuffer tag. */
> > +        mb2ht_init MB2_HT(FRAMEBUFFER), MB2_HT(OPTIONAL), \
> > +                   0, /* Number of the columns - no preference. */ \
> > +                   0, /* Number of the lines - no preference. */ \
> > +                   0  /* Number of bits per pixel - no preference. */
> > +
> > +        /* Multiboot2 header end tag. */
> > +        mb2ht_init MB2_HT(END), MB2_HT(REQUIRED)
> > +.Lmultiboot2_header_end:
> > +
> >          .section .init.rodata, "a", @progbits
> >          .align 4
> >
> > @@ -82,10 +141,48 @@ __start:
> >          mov     %ecx,%es
> >          mov     %ecx,%ss
> >
> > -        /* Check for Multiboot bootloader */
> > +        /* Bootloaders may set multiboot{1,2}.mem_lower to a nonzero value. */
> > +        xor     %edx,%edx
> > +
> > +        /* Check for Multiboot2 bootloader. */
> > +        cmp     $MULTIBOOT2_BOOTLOADER_MAGIC,%eax
> > +        je      multiboot2_proto
> > +
> > +        /* Check for Multiboot bootloader. */
> >          cmp     $MULTIBOOT_BOOTLOADER_MAGIC,%eax
> >          jne     not_multiboot
> >
> > +        /* Get mem_lower from Multiboot information. */
> > +        testb   $MBI_MEMLIMITS,MB_flags(%ebx)
> > +
> > +        /* Not available? BDA value will be fine. */
> > +        cmovnz  MB_mem_lower(%ebx),%edx
> > +        jmp     trampoline_setup
> > +
> > +multiboot2_proto:
> > +        /* Skip Multiboot2 information fixed part. */
> > +        lea     MB2_fixed_sizeof(%ebx),%ecx
>
> Is there any point of double checking the aligment? That is
>         and     $~(MULTIBOOT2_TAG_ALIGN-1),%ecx
>
> ?
>
> Looking at the grub code it requests the memory to be aligned properly
> so in practice this will never fail. But since somebody might for fun
> allocate the structure to not be aligned and the fixed part could finish
> on non-aligned space..

You are right, we should check it. multiboot2 spec states:

3.4.2 Basic tags structure

Boot information consists of fixed part and a series of tags. Its start
is 8-bytes aligned.

Daniel


  reply	other threads:[~2015-08-13 19:22 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-20 14:28 [PATCH v2 00/23] x86: multiboot2 protocol support Daniel Kiper
2015-07-20 14:28 ` [PATCH v2 01/23] x86/boot: remove unneeded instruction Daniel Kiper
2015-07-24 16:22   ` Konrad Rzeszutek Wilk
2015-07-24 16:22   ` Konrad Rzeszutek Wilk
2015-07-27 19:46     ` Daniel Kiper
2015-08-10 16:07       ` Konrad Rzeszutek Wilk
2015-08-10 16:07       ` Konrad Rzeszutek Wilk
2015-07-27 19:46     ` Daniel Kiper
2015-07-20 14:28 ` Daniel Kiper
2015-07-20 14:28 ` [PATCH v2 02/23] x86/boot: copy only text section from *.lnk file to *.bin file Daniel Kiper
2015-07-20 14:28 ` Daniel Kiper
2015-07-21  9:35   ` Jan Beulich
2015-07-21 17:23     ` Daniel Kiper
2015-07-22  5:14       ` Jan Beulich
2015-07-22  8:02       ` Jan Beulich
2015-07-22 13:31         ` Daniel Kiper
2015-07-22 14:07           ` Jan Beulich
2015-07-20 14:28 ` [PATCH v2 03/23] x86: zero BSS using stosl instead of stosb Daniel Kiper
2015-07-20 14:28 ` Daniel Kiper
2015-07-21  9:37   ` Jan Beulich
2015-07-21 18:23     ` Daniel Kiper
2015-07-22  5:18       ` Jan Beulich
2015-07-22  8:42         ` Andrew Cooper
2015-07-22 10:04           ` Jan Beulich
2015-07-22 11:22             ` Andrew Cooper
2015-07-22 11:48               ` Jan Beulich
2015-07-20 14:28 ` [PATCH v2 04/23] x86/boot: call reloc() using cdecl calling convention Daniel Kiper
2015-07-20 14:28 ` Daniel Kiper
2015-08-10 16:33   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 16:33   ` Konrad Rzeszutek Wilk
2015-08-17 15:44   ` Jan Beulich
2015-08-17 15:44   ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 05/23] x86/boot/reloc: create generic alloc and copy functions Daniel Kiper
2015-08-17 15:51   ` Jan Beulich
2015-08-17 22:03     ` Daniel Kiper
2015-08-17 15:51   ` Jan Beulich
2015-07-20 14:29 ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 06/23] x86/boot: use %ecx instead of %eax Daniel Kiper
2015-07-20 14:29 ` Daniel Kiper
2015-08-10 16:36   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 16:36   ` Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 07/23] x86/boot/reloc: Rename some variables and rearrange code a bit Daniel Kiper
2015-08-10 16:40   ` Konrad Rzeszutek Wilk
2015-08-10 16:40   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-17 15:55   ` Jan Beulich
2015-08-17 15:55   ` Jan Beulich
2015-07-20 14:29 ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 08/23] x86: add multiboot2 protocol support Daniel Kiper
2015-08-10 19:17   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-13 19:22     ` Daniel Kiper [this message]
2015-08-14 10:03       ` Jan Beulich
2015-08-15  6:00         ` Andrew Cooper
2015-08-15  6:00         ` [Xen-devel] " Andrew Cooper
2015-08-14 10:03       ` Jan Beulich
2015-08-13 19:22     ` Daniel Kiper
2015-08-10 19:17   ` Konrad Rzeszutek Wilk
2015-08-18  8:12   ` Jan Beulich
2015-08-18 12:00     ` Daniel Kiper
2015-08-18 14:20       ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 09/23] efi: create efi_enabled() Daniel Kiper
2015-08-10 19:20   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:20   ` Konrad Rzeszutek Wilk
2015-08-20 15:18   ` Jan Beulich
2015-08-22 12:33     ` Daniel Kiper
2015-08-22 12:33     ` Daniel Kiper
2015-08-24 11:29       ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 10/23] efi: build xen.gz with EFI code Daniel Kiper
2015-07-20 14:29 ` Daniel Kiper
2015-08-10 19:24   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:24   ` Konrad Rzeszutek Wilk
2015-08-20 15:39   ` Jan Beulich
2015-08-22 13:59     ` Daniel Kiper
2015-08-24 11:35       ` Jan Beulich
2015-08-24 20:54         ` Daniel Kiper
2015-08-24 20:54         ` Daniel Kiper
2015-08-25 10:50           ` Andrew Cooper
2015-08-25 15:39             ` Daniel Kiper
2015-08-25 15:39             ` Daniel Kiper
2015-08-25 10:50           ` Andrew Cooper
2015-08-25 12:09           ` Jan Beulich
2015-08-25 12:09           ` Jan Beulich
2015-08-25 16:31             ` Daniel Kiper
2015-08-26  6:46               ` Jan Beulich
2015-08-26 12:33                 ` Daniel Kiper
2015-08-26 12:40                   ` Jan Beulich
2015-08-26 12:58                     ` Daniel Kiper
2015-08-26 12:58                     ` Daniel Kiper
2015-08-26 12:40                   ` Jan Beulich
2015-08-26 12:33                 ` Daniel Kiper
2015-08-26  6:46               ` Jan Beulich
2015-08-25 16:31             ` Daniel Kiper
2015-08-22 13:59     ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 11/23] efi: split out efi_init() Daniel Kiper
2015-08-10 19:25   ` Konrad Rzeszutek Wilk
2015-08-10 19:25   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 12/23] efi: split out efi_console_set_mode() Daniel Kiper
2015-07-20 14:29 ` Daniel Kiper
2015-08-10 19:25   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:25   ` Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 13/23] efi: split out efi_get_gop() Daniel Kiper
2015-07-20 14:29 ` Daniel Kiper
2015-08-10 19:27   ` Konrad Rzeszutek Wilk
2015-08-10 19:27   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 14/23] efi: split out efi_find_gop_mode() Daniel Kiper
2015-08-10 19:31   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:31   ` Konrad Rzeszutek Wilk
2015-08-20 15:48   ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 15/23] efi: split out efi_tables() Daniel Kiper
2015-08-10 19:32   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:32   ` Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 16/23] efi: split out efi_variables() Daniel Kiper
2015-08-10 19:34   ` Konrad Rzeszutek Wilk
2015-08-10 19:34   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 17/23] efi: split out efi_set_gop_mode() Daniel Kiper
2015-08-10 19:34   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:34   ` Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 18/23] efi: split out efi_exit_boot() Daniel Kiper
2015-08-10 19:36   ` Konrad Rzeszutek Wilk
2015-08-10 19:36   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-07-20 14:29 ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 19/23] x86/efi: create new early memory allocator Daniel Kiper
2015-08-10 19:49   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:49   ` Konrad Rzeszutek Wilk
2015-08-27 11:23   ` Jan Beulich
2015-08-27 11:23   ` Jan Beulich
2015-07-20 14:29 ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 20/23] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
2015-08-10 20:07   ` Konrad Rzeszutek Wilk
2015-08-10 20:07   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-11 15:23   ` Konrad Rzeszutek Wilk
2015-08-11 15:23   ` Konrad Rzeszutek Wilk
2015-08-27 12:01   ` Jan Beulich
2015-09-22 15:21     ` Daniel Kiper
2015-09-22 15:58       ` Jan Beulich
2015-09-22 15:58       ` Jan Beulich
2015-08-27 12:01   ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 21/23] x86/boot: implement early command line parser in C Daniel Kiper
2015-07-20 14:29 ` Daniel Kiper
2015-08-10 20:31   ` Konrad Rzeszutek Wilk
2015-08-10 20:31   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-11 14:43   ` Konrad Rzeszutek Wilk
2015-08-11 14:43   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-27 12:43   ` Jan Beulich
2015-08-27 12:43   ` Jan Beulich
2015-09-22 17:03     ` Daniel Kiper
2015-09-22 17:03     ` Daniel Kiper
2015-09-23  7:25       ` Jan Beulich
2015-09-23  7:25       ` Jan Beulich
2015-07-20 14:29 ` [PATCH v2 22/23] x86: make Xen early boot code relocatable Daniel Kiper
2015-08-11 16:48   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-14 11:52     ` Daniel Kiper
2015-08-14 11:52     ` [Xen-devel] " Daniel Kiper
2015-08-14 12:49       ` Jan Beulich
2015-08-14 12:49       ` [Xen-devel] " Jan Beulich
2015-08-14 13:59         ` Daniel Kiper
2015-08-14 14:32           ` Jan Beulich
2015-08-14 14:37             ` Daniel Kiper
2015-08-14 14:37             ` [Xen-devel] " Daniel Kiper
2015-08-14 15:12               ` Jan Beulich
2015-08-14 15:12                 ` [Xen-devel] " Jan Beulich
2015-08-14 14:32           ` Jan Beulich
2015-08-14 13:59         ` Daniel Kiper
2015-08-14 15:20       ` Konrad Rzeszutek Wilk
2015-08-14 15:20       ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-11 16:48   ` Konrad Rzeszutek Wilk
2015-08-27 13:12   ` Jan Beulich
2015-08-27 15:10     ` Daniel Kiper
2015-08-27 15:10     ` Daniel Kiper
2015-08-27 15:29       ` Jan Beulich
2015-08-27 17:56         ` Ben Hildred
2015-08-28  8:22           ` Jan Beulich
2015-08-28  8:22           ` [Xen-devel] " Jan Beulich
2015-08-28 13:42             ` Konrad Rzeszutek Wilk
2015-08-28 14:16               ` Jan Beulich
2015-08-28 14:16                 ` [Xen-devel] " Jan Beulich
2015-08-31 19:49                 ` Daniel Kiper
2015-08-31 19:49                 ` [Xen-devel] " Daniel Kiper
2015-09-01  6:59                   ` Jan Beulich
2015-09-01  6:59                   ` Jan Beulich
2015-08-28 13:42             ` Konrad Rzeszutek Wilk
2015-08-27 17:56         ` Ben Hildred
2015-08-27 18:04         ` Andrew Cooper
2015-08-28  6:54           ` Jan Beulich
2015-08-28 11:59             ` Andrew Cooper
2015-08-28 11:59             ` Andrew Cooper
2015-08-28  6:54           ` Jan Beulich
2015-08-27 18:04         ` Andrew Cooper
2015-08-28 14:24         ` [Xen-devel] " Jan Beulich
2015-08-28 14:24         ` Jan Beulich
2015-08-27 15:29       ` Jan Beulich
2015-08-27 13:12   ` Jan Beulich
2015-07-20 14:29 ` Daniel Kiper
2015-07-20 14:29 ` [PATCH v2 23/23] x86: add multiboot2 protocol support for relocatable images Daniel Kiper
2015-08-11 16:56   ` Konrad Rzeszutek Wilk
2015-08-14 11:57     ` Daniel Kiper
2015-08-14 13:43       ` Konrad Rzeszutek Wilk
2015-08-14 13:43       ` Konrad Rzeszutek Wilk
2015-08-14 11:57     ` Daniel Kiper
2015-08-11 16:56   ` Konrad Rzeszutek Wilk
2015-07-21  9:39 ` [PATCH v2 00/23] x86: multiboot2 protocol support Jan Beulich
2015-07-21  9:39 ` Jan Beulich

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=20150813192212.GI3503@olila.local.net-space.pl \
    --to=daniel.kiper@oracle.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=david.vrabel@citrix.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=grub-devel@gnu.org \
    --cc=ian.campbell@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=keir@xen.org \
    --cc=konrad.wilk@oracle.com \
    --cc=ning.sun@intel.com \
    --cc=phcoder@gmail.com \
    --cc=qiaowei.ren@intel.com \
    --cc=richard.l.maliszewski@intel.com \
    --cc=roy.franz@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=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 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.