All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: konrad wilk <konrad.wilk@oracle.com>,
	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 22:55:29 +0100	[thread overview]
Message-ID: <54497951.1000702@citrix.com> (raw)
In-Reply-To: <54494343.3030502@oracle.com>

On 23/10/2014 19:04, konrad wilk wrote:
>
>> 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.)
>>
>
> And it _was_ discussed at the Xen hackathon multiple times - where it
> seems it was the perfect place to hash this out.

The majority of the hackathon revolved around what was needed to get EFI
multiboot2 to work.  At the time, there were no patches (if I recall
correctly), and most of the discussion was around what functionality we
needed out of grub to make it work nicely, and what Linux did for EFI
booting.

>
> Or are we saying that any big project in Xen MUST have a design
> document with it? If so we really need to document that somewhere.

I am not in a position to insist on anything.

I have, however, found design documents to be very useful starting
points to get appropriate architectural input from interested parties,
as well as getting agreement in principle for how to proceed.

I will certainly be submitting design documents for any major work I do,
and I hope others will follow suit.

>
> This is frustrating.

I agree.  With my XenServer hat on, we would love multiboot2 support in
Xen 4.5.

However, just throwing patches in would be completely remiss of the
maintainers.  This critical feedback is nothing personal; it reflects
the fact that, in my opinion, the patch series is not of a sufficient
quality to be accepted.  (Note that of the patches are Reviewed-by me,
which I consider to be good quality.)  The flip side of all of this is
that I expect the community to hold me and my patches to the same high
standards; after all, it is Xen which benefits as a result.

As I have indicated before, most of my concerns are caused by a lack of
understanding of *why* changes have been made the way they have.  After
the monolithic patch was split into these 18-or-so, the individual
changes became apparent.  This was good, but still doesn't help with the
*why*.

Take as a perfect example the MBD structure.  It took until this
argument thread for me to understand why it was a good idea in the
context of supporting multiboot1 and multiboot2.  Now that I understand
why, I consider it a good idea.  The problem is that the *why* should be
clearly explained in the patch commit message, (and possibly even in
brief beside the relevant code).  It should not take an argument of this
magnitude to gain a basic understanding of the reasoning behind the changes.

The underlying issue here is that the patch series is trying to do two
completely orthogonal things at once.

Supporting multiboot2 necessarily involves playing with the boot
assembly code, which very likely involves untangling the multiboot1-isms
while doing so.

Unifying the boot paths is completely independent, albeit related.  I
will agree that, in principle, swapping a rats nest of random global
variables for a dedicated collection is a good thing.  Even more so as
it allows the use of more common code on legacy and efi boot paths. 
Implementing this is purely an exercise in shuffling.

The problem is that still, these two end goals are mixed all the way
through this series.  It has taken me until this iteration to work out
that the two goals were completely orthogonal.  Again, this is down to
my lack of understanding of why the changes have been made in the way
they have, which is a fault of the quality of explanation presented with
the series.


To summarise,

I am not against either of the changes per se, but do still have
unresolved issues which give me concerns against the series as a whole,
in its current form.

I highly suggest that multiboot2 is perused independently, (and probably
ahead of) unification.  The first is a new functional piece, while the
second is a massive quantity of cleanup.  These are both good things
independently, but should not be mixed together, especially as they are
causing confusion of each other during review.

I hope I have not ranted for too long, and I hope I am not being
unreasonable (and if you think I am, please call me out on it;  I wont
take it personally)

~Andrew

  reply	other threads:[~2014-10-23 21:55 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
2014-10-23 18:04             ` konrad wilk
2014-10-23 21:55               ` Andrew Cooper [this message]
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=54497951.1000702@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=konrad.wilk@oracle.com \
    --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.