All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Daniel Kiper <daniel.kiper@oracle.com>
Cc: Juergen Gross <JGross@suse.com>,
	keir@xen.org, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, ross.philipson@citrix.com,
	roy.franz@linaro.org, ning.sun@intel.com,
	Jan Beulich <JBeulich@suse.com>,
	xen-devel@lists.xenproject.org, qiaowei.ren@intel.com,
	richard.l.maliszewski@intel.com, gang.wei@intel.com,
	fu.wei@linaro.org
Subject: Re: [PATCH for-xen-4.5 v4 00/18] xen: Break multiboot (v1) dependency and add multiboot2 support
Date: Thu, 23 Oct 2014 16:55:02 +0100	[thread overview]
Message-ID: <544924D6.1030601@citrix.com> (raw)
In-Reply-To: <20141023145745.GP3467@olila.local.net-space.pl>

On 23/10/14 15:57, Daniel Kiper wrote:
> On Thu, Oct 23, 2014 at 12:08:32PM +0100, Andrew Cooper wrote:
>> On 23/10/14 11:19, Jan Beulich wrote:
>>>>>> On 17.10.14 at 17:49, <daniel.kiper@oracle.com> wrote:
>>>> What is your main concern here (beside that it is big patch series)?
>>> The size alone is not the reason. As already said, I'm not convinced
>>> that the approach you use is ultimately the right one (and Andrew
>>> seems to agree, at least to some degree). And then, looking at your
>>> track record, apart from some kexec (and even older tool stack)
>>> work there hasn't been much you've been doing earlier particularly
>>> with the kind of fragile initial boot code. Hence I think the only
>>> viable route for you to get MB2 code merged is to just add it
>>> _without_ largely re-writing all sorts of other code. Once that
>>> happened we can then go and see whether the consolidation you're
>>> thinking of is (a) the right approach and (b) you're the one to carry
>>> it out.
>>>
>>> Jan
>>>
>> To add to this a little.  I still can't see a reasonable justification
>> for the new "multiboot data" type.  I think it would be perfectly
>> reasonable keep the multiboot1/2 distinction up until the boot_info
>> stage, and cast the pointer based on multiboot magic.

Answering out-of-order:


> I understand that gains are not clearly visible at this stage of development
> because there is lack of relevant multiboot2 + EFI code on top of this patches.

This is entirely the problem.  Acceptance of big changes like this are
first and formost based on the benefits of the changes.

For a change like this, the benefits should be completely obvious to the
reviewers, and this is not the case.  At this point, there are large
numbers of changes all over the boot code.  You have asserted that they
cause an improvement, but have not succeeded is persuading either Jan or
myself.

This is not to say that there are not good reasons, but they are not
obvious.  Furthermore, they have remained not obvious all the way
through review.

> multiboot1 and multiboot2 are completely different things. If we do what
> you suggest then at least we will be forced to complicate assembly code
> parsing cmdline in xen/arch/x86/boot/cmdline.S.

This is a good reason, but it shouldn't become apparent from an email
thread like this.  It should ideally be in the design document
accompanying the series.

> We could also stay with
> multiboot1 stuff but then we will be forced to put all stuff which we are
> able to put in multiboot1. However, we are not able to put at least EFI_HANDLE
> and EFI_SYSTEM_TABLE from multiboot2 (which are a must on EFI; maybe we
> want other data from multiboot2 protocol too) in multiboot1 struct because
> there is not designed place for that. It means that we must add another
> global variables which will appear from nowhere in Xen code (as usual
> in case of global variables).

Globals are fine.

>
> Guys, if you wish I can do what Jan suggest. However, personally I think
> that it will complicate things more which are already complicated enough.
> I can understand that Xen was tied to multiboot1 protocol at early stage of
> development. Even I am able to understand that this thing was not changed
> during introduction of EFI code. However, I think that right know, when we
> introduce third boot protocol, mutliboot2, there is not longer any excuse to
> have it build in early and in main Xen code especially. So, IMO we should
> do all cleanups and fixes first and then put all multiboot2 + EFI stuff
> on top of it. If we reverse the order then I do not believe that cleanup
> will be done in foreseeable future.

One deep problem is that the series is trying to do two independent at
the same time, both in the same area of code.

On the one hand, you have "support multiboot2", whose end goal is
obvious and unquestionably a good thing.  On the other hand, you have
"unify all boot paths", and are using it as a prerequisite to "support
multiboot2" when it really is not a prerequisite.

Furthermore, there is still an open question of whether "unify all boot
paths" is indeed a clever idea in the first place.  Again, this is
ideally something which should have been argued over / decided upon as
part of the design review.  (People on the list might notice a
reoccurring theme there, when it comes to doing large chunks of work.)

If you were to cut the problem in half and just do the multiboot2
support, I suspect you would find it much easier to get the multiboot2
series accepted.  At that point, with the code in-tree, you are in a far
better position to make an argument for unifying the boot paths.

~Andrew

  parent reply	other threads:[~2014-10-23 16:04 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-17 14:11 [PATCH for-xen-4.5 v4 00/18] xen: Break multiboot (v1) dependency and add multiboot2 support Daniel Kiper
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 01/18] xen/makefile: clean target should remove xen.efi binary Daniel Kiper
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 02/18] x86/boot: fix reloc.S build dependencies Daniel Kiper
2014-10-17 14:51   ` Jan Beulich
2014-10-17 16:10     ` Daniel Kiper
2014-10-17 16:22       ` Jan Beulich
2014-10-17 14:56   ` Andrew Cooper
2014-10-17 15:10     ` Jan Beulich
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 03/18] x86: define cmdline_cook() loader_name argument as a const Daniel Kiper
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 04/18] x86/boot: use constant in head.S instead of hardcoded value Daniel Kiper
2014-10-17 15:00   ` Andrew Cooper
2014-10-17 15:52     ` Daniel Kiper
2014-10-17 16:18       ` Jan Beulich
2014-10-17 16:22         ` Daniel Kiper
2014-10-20  8:00           ` Jan Beulich
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 05/18] x86/boot/reloc: create generic alloc and copy functions Daniel Kiper
2014-10-17 16:04   ` Andrew Cooper
2014-10-17 17:11     ` Daniel Kiper
2014-10-17 17:22       ` Andrew Cooper
2014-10-17 14:11 ` [PATCH for-xen-4.5 v4 06/18] x86: introduce MultiBoot Data (MBD) type Daniel Kiper
2014-10-17 17:14   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 07/18] x86/efi: add place_string_u32() function Daniel Kiper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 08/18] x86: introduce boot_info structure Daniel Kiper
2014-10-17 20:55   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 09/18] x86: move boot_loader_name from mbi to boot_info Daniel Kiper
2014-10-17 21:05   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 10/18] x86: move cmdline " Daniel Kiper
2014-10-17 21:27   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 11/18] x86: move legacy BIOS memory map stuff " Daniel Kiper
2014-10-17 22:08   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 12/18] x86: move modules data from mbi to boot_info and remove mbi Daniel Kiper
2014-10-17 22:35   ` Andrew Cooper
2014-10-20  8:38     ` Jan Beulich
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 13/18] x86: move EFI memory map stuff to boot_info Daniel Kiper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 14/18] x86: move MPS, ACPI and SMBIOS data " Daniel Kiper
2014-10-17 22:51   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 15/18] x86: move video " Daniel Kiper
2014-10-17 22:55   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 16/18] x86: move HDD " Daniel Kiper
2014-10-17 22:57   ` Andrew Cooper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 17/18] x86/boot: use %ecx instead of %eax Daniel Kiper
2014-10-17 14:12 ` [PATCH for-xen-4.5 v4 18/18] xen/x86: add multiboot2 protocol support Daniel Kiper
2014-10-17 23:13   ` Andrew Cooper
2014-10-17 14:42 ` [PATCH for-xen-4.5 v4 00/18] xen: Break multiboot (v1) dependency and add multiboot2 support Jan Beulich
2014-10-17 15:49   ` Daniel Kiper
2014-10-23 10:19     ` Jan Beulich
2014-10-23 11:08       ` Andrew Cooper
2014-10-23 14:57         ` Daniel Kiper
2014-10-23 15:26           ` Jan Beulich
2014-10-23 15:50             ` Daniel Kiper
2014-10-23 16:04               ` Jan Beulich
2014-10-23 17:55                 ` konrad wilk
2014-10-24  9:09                   ` Jan Beulich
2014-10-23 15:55           ` Andrew Cooper [this message]
2014-10-23 18:04             ` konrad wilk
2014-10-23 21:55               ` Andrew Cooper
2014-10-24  7:07                 ` Daniel Kiper
2014-10-23 11:14       ` Stefano Stabellini
2014-10-23 11:33         ` Jan Beulich
2014-10-17 18:02 ` Roy Franz
2014-10-27 11:09   ` Daniel Kiper

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=544924D6.1030601@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=JGross@suse.com \
    --cc=daniel.kiper@oracle.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=ian.campbell@citrix.com \
    --cc=keir@xen.org \
    --cc=ning.sun@intel.com \
    --cc=qiaowei.ren@intel.com \
    --cc=richard.l.maliszewski@intel.com \
    --cc=ross.philipson@citrix.com \
    --cc=roy.franz@linaro.org \
    --cc=stefano.stabellini@eu.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.