All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <JBeulich@suse.com>, Daniel Kiper <daniel.kiper@oracle.com>
Cc: Juergen Gross <JGross@suse.com>,
	grub-devel@gnu.org, wei.liu2@citrix.com, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, phcoder@gmail.com,
	roy.franz@linaro.org, ning.sun@intel.com,
	david.vrabel@citrix.com, xen-devel@lists.xenproject.org,
	qiaowei.ren@intel.com, keir@xen.org,
	richard.l.maliszewski@intel.com, gang.wei@intel.com,
	fu.wei@linaro.org
Subject: Re: [PATCH v2 22/23] x86: make Xen early boot code relocatable
Date: Thu, 27 Aug 2015 19:04:21 +0100	[thread overview]
Message-ID: <55DF5125.20708@citrix.com> (raw)
In-Reply-To: <55DF48FB020000780009D83F@prv-mh.provo.novell.com>

On 27/08/15 16:29, Jan Beulich wrote:
>>>> On 27.08.15 at 17:10, <daniel.kiper@oracle.com> wrote:
>> On Thu, Aug 27, 2015 at 07:12:38AM -0600, Jan Beulich wrote:
>>>>>> On 20.07.15 at 16:29, <daniel.kiper@oracle.com> wrote:
>>>>          /* Copy bootstrap trampoline to low memory, below 1MB. */
>>>> -        mov     $sym_phys(trampoline_start),%esi
>>>> +        lea     sym_offset(trampoline_start)(%ebp),%esi
>>>>          mov     $trampoline_end - trampoline_start,%ecx
>>>>          rep     movsb
>>>>
>>> The latest at this final hunk I'm getting tired (and upset). I'd much
>>> rather not touch all this code in these fragile ways, and instead
>>> require Xen to be booted without grub2 on badly written firmware
>>> like the one on the machine you quote in the description.
>> Let's start discussion from here. My further work on this patch series
>> is pointless until we do not agree details in this case.
>>
>> So, I agree that any software (including firmware) should not use
>> precious resources (i.e. low memory in that case) if it is not strictly
>> required. And I do not think so that latest UEFI implementations
>> on new hardware really need this low memory to survive (at least page
>> tables could be put anywhere above low memory). However, in case of
>> UEFI it is a wish of smart people not requirement set by spec. I was
>> checking UEFI docs a few times but I was not able to find anything
>> which says that e.g. "...developer MUST allocate memory outside of low
>> memory ...". Even I have not found any suggestion about that. However,
>> I must admit that I do not know whole UEFI spec, so, if you know something
>> which is similar to above please tell me where it is (title, revision,
>> page, paragraph, etc.). Hence, if there is not strict requirement in
>> regards to memory allocation in specs we are lost. Of course we can
>> encourage people to not do nasty things but I do not believe that many
>> will listen. So, sadly, I suppose that we will see more and more machines
>> in the wild which are "broken" (well, let's say do not align to good 
>> practices).
>>
>> On the other hand I think that we should not assume that a given memory
>> region (in our case starting at 1 MiB) is (or will be) available in every
>> machine. I have not seen anything which says that it is true. We should
>> stop doing that even if it works right now. I think that it works by
>> chance and there is a chance that it will stop working one day because
>> somebody will discover that he or she can put there e.g. device or hole.
>>
>> Last but not least. I suppose that Xen users and especially distros will
>> complain when they are not able to use GRUB2 with Xen on every platform
>> just because somebody (i.e. platform designers, developers, or whatever)
>> do not accept our beliefs or we require that platform must obey rules
>> (i.e. memory map requirements) which are specified nowhere.
> You're right, there's no such requirement on memory use in the spec.
> But you're missing the point. Supporting grub2 on UEFI is already a
> hack (ignoring all intentions EFI had from its first days). And now
> you've found an environment where that hack needs another hack
> (in Xen) to actually work. That's too much hackery for my taste, the
> more that things on this system can (afaict) work quite okay (without
> grub2, or with using its chainloader mechanism).
>
> So no, I'm still not convinced of the need for this patch.

I disagree.  There are many things a grub environment gives us which
plain EFI doesn't, most notably a familiar booting environment and
recovery facilities for users (which vastly trumps how EFI expects to
run things).

Furthermore, it offers common management of /boot in the dom0 filesystem
between legacy and EFI boots.

Therefore I am very much +1 get grub working.

~Andrew


  parent reply	other threads:[~2015-08-27 18:06 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-20 14:28 ` 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 ` [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-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 ` Daniel Kiper
2015-07-20 14:28 ` [PATCH v2 04/23] x86/boot: call reloc() using cdecl calling convention Daniel Kiper
2015-08-10 16:33   ` Konrad Rzeszutek Wilk
2015-08-10 16:33   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-17 15:44   ` Jan Beulich
2015-08-17 15:44   ` Jan Beulich
2015-07-20 14:28 ` Daniel Kiper
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   ` Konrad Rzeszutek Wilk
2015-08-10 16:36   ` [Xen-devel] " 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
2015-08-14 10:03       ` Jan Beulich
2015-08-14 10:03       ` [Xen-devel] " Jan Beulich
2015-08-15  6:00         ` Andrew Cooper
2015-08-15  6:00         ` Andrew Cooper
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-24 11:29       ` Jan Beulich
2015-08-22 12:33     ` Daniel Kiper
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   ` Konrad Rzeszutek Wilk
2015-08-10 19:24   ` [Xen-devel] " 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 10:50           ` Andrew Cooper
2015-08-25 15:39             ` Daniel Kiper
2015-08-25 15:39             ` Daniel Kiper
2015-08-25 12:09           ` Jan Beulich
2015-08-25 12:09           ` Jan Beulich
2015-08-25 16:31             ` Daniel Kiper
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: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  6:46               ` Jan Beulich
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   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:25   ` Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 12/23] efi: split out efi_console_set_mode() 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 ` Daniel Kiper
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   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 19:27   ` 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   ` Konrad Rzeszutek Wilk
2015-08-10 19:31   ` [Xen-devel] " 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   ` Konrad Rzeszutek Wilk
2015-08-10 19:34   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-07-20 14:29 ` [PATCH v2 18/23] efi: split out efi_exit_boot() Daniel Kiper
2015-07-20 14:29 ` 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 ` [PATCH v2 19/23] x86/efi: create new early memory allocator Daniel Kiper
2015-08-10 19:49   ` Konrad Rzeszutek Wilk
2015-08-10 19:49   ` [Xen-devel] " 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   ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-10 20:07   ` 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-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-07-20 14:29 ` [PATCH v2 21/23] x86/boot: implement early command line parser in C 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   ` Konrad Rzeszutek Wilk
2015-08-27 12:43   ` Jan Beulich
2015-09-22 17:03     ` Daniel Kiper
2015-09-23  7:25       ` Jan Beulich
2015-09-23  7:25       ` Jan Beulich
2015-09-22 17:03     ` Daniel Kiper
2015-08-27 12:43   ` Jan Beulich
2015-07-20 14:29 ` Daniel Kiper
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 12:49       ` Jan Beulich
2015-08-14 13:59         ` Daniel Kiper
2015-08-14 13:59         ` [Xen-devel] " Daniel Kiper
2015-08-14 14:32           ` Jan Beulich
2015-08-14 14:32           ` [Xen-devel] " Jan Beulich
2015-08-14 14:37             ` Daniel Kiper
2015-08-14 15:12               ` Jan Beulich
2015-08-14 15:12                 ` Jan Beulich
2015-08-14 14:37             ` Daniel Kiper
2015-08-14 12:49       ` Jan Beulich
2015-08-14 15:20       ` Konrad Rzeszutek Wilk
2015-08-14 15:20       ` [Xen-devel] " Konrad Rzeszutek Wilk
2015-08-14 11:52     ` Daniel Kiper
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: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                 ` 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 [this message]
2015-08-28  6:54           ` Jan Beulich
2015-08-28  6:54           ` Jan Beulich
2015-08-28 11:59             ` Andrew Cooper
2015-08-28 11:59             ` Andrew Cooper
2015-08-27 18:04         ` Andrew Cooper
2015-08-28 14:24         ` Jan Beulich
2015-08-28 14:24         ` [Xen-devel] " Jan Beulich
2015-08-27 15:29       ` Jan Beulich
2015-08-27 15:10     ` Daniel Kiper
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-11 16:56   ` Konrad Rzeszutek Wilk
2015-08-14 11:57     ` Daniel Kiper
2015-08-14 11:57     ` Daniel Kiper
2015-08-14 13:43       ` Konrad Rzeszutek Wilk
2015-08-14 13:43       ` 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=55DF5125.20708@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=JGross@suse.com \
    --cc=daniel.kiper@oracle.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=keir@xen.org \
    --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.