From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1ZxAHA-0002O6-Kk for mharc-grub-devel@gnu.org; Fri, 13 Nov 2015 04:04:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxAH7-0002NU-Qv for grub-devel@gnu.org; Fri, 13 Nov 2015 04:04:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZxAH6-0007mK-HF for grub-devel@gnu.org; Fri, 13 Nov 2015 04:04:05 -0500 Received: from mail-oi0-x232.google.com ([2607:f8b0:4003:c06::232]:33160) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxAH6-0007mE-DP for grub-devel@gnu.org; Fri, 13 Nov 2015 04:04:04 -0500 Received: by oixx65 with SMTP id x65so34719489oix.0 for ; Fri, 13 Nov 2015 01:04:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=90tCeAS9z9hIvAmV9DO6DvmtbbZlSXqTwySGE5CHb3E=; b=QZA3nlf2fHSveqM5J6+r1sxA8w6BzVJYvN9bXg1b67wFyTWjhUeCsaQsQk/bjaFhGd 49xtBPemu/238j40ltomcJXbIBgH25t39Yi0y0+kaFz3QPzRMTJN57Cy+RJ5+to3RZCA t1g/Xmj9ZUOXWHN8Jnv2hn5ie1R/jOKfBB3N7QVyn7bRJDZrhfSFBTgu3fjNmseuvJ5G GsdHTrOCkMT1FsRztjNMQaPB5ockHERptpbIbB5imrBFZujyYLOwHrIStKk9nlZl4DrV fnvu4xIIiH/P79Fr0E11jbOq+Rdo3Z41kgpHIdd1U2yxAQiH9WRcmD2lRS1l6TYXxbK3 usYA== MIME-Version: 1.0 X-Received: by 10.202.185.136 with SMTP id j130mr11257756oif.38.1447405443846; Fri, 13 Nov 2015 01:04:03 -0800 (PST) Received: by 10.202.102.151 with HTTP; Fri, 13 Nov 2015 01:04:03 -0800 (PST) In-Reply-To: <5645A3E802000078000B495A@prv-mh.provo.novell.com> References: <56449726.8090707@gmail.com> <5644C1F502000078000B455F@prv-mh.provo.novell.com> <1447348140.18450.92.camel@citrix.com> <5645A3E802000078000B495A@prv-mh.provo.novell.com> Date: Fri, 13 Nov 2015 12:04:03 +0300 Message-ID: Subject: Re: [Xen-devel] Uniform commands for booting xen From: Andrei Borzenkov To: The development of GNU GRUB Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4003:c06::232 Cc: Vladimir Serbinenko , Ian Campbell , "xen-devel@lists.xen.org" X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Nov 2015 09:04:07 -0000 On Fri, Nov 13, 2015 at 10:48 AM, Jan Beulich wrote: >>>> On 12.11.15 at 18:09, wrote: >> On Thu, 2015-11-12 at 08:44 -0700, Jan Beulich wrote: >>> > > > On 12.11.15 at 14:41, wrote: >>> > Hello, all. I'd like to have set of commands that would boot xen on all >>> > platforms. I thought of following set: >>> > >>> > xen_hypervisor FILE XEN_OPTIONS >>> > xen_kernel FILE KERNEL_OPTIONS >>> > xen_initrd INITRD INITRD INITRD >>> > all initrds are concatenated. >>> > xen_xsm ??? >>> >>> xen_ucode (and we might add more going forward). I don't see >>> why the multiboot mechanism (kernel plus any number of modules) >>> can't be used, without adding any Xen-specific directives. >> >> You likely aren't aware that on ARM Xen doesn't boot via multiboot, but via >> a protocol which involves passing modules in an fdt[0]. >> >> I had originally hoped that this would use the same command names in the >> grub cfg, such that things would just work, however the grub maintainers >> didn't like that (and I appreciate why). >> >> Hence on grub/ARM we already have xen_{hypervisor,kernel,initrd,...}. >> >> The question then is what grub-mkconfig (or more precisely >> /etc/grub.d/20_linux_xen) ought to emit so that things just work on all >> architectures. >> >> The author of the grub/ARM/Xen patches initially made it generate the xen_* >> namas for arm and the multiboot names for x86, here is Vladimir's feedback >> on that: http://lists.gnu.org/archive/html/grub-devel/2015-10/msg00133.html >> >> Which I think gets us to approximately today and Vladimir's question. > > Now that makes the situation really ugly (and supports my > reservations regarding grub2 as a uniform solution for everything). Well, if you want uniform solution for everything why not simply implement uniform boot protocol everywhere? > How do you express modules other than kernel+initrd in that > scheme, without grub needing to be aware of any new addition we > may find necessary going forward? > Are modules used by Xen self-identifying? Is it enough to simply pass Xen kernel list of binary blobs or Xen kernel must be told what these binary blobs are? If they are self identifying, why arm needs to be passed module type in the first place? > I think any architecture following a well defined, cross-arch > protocol (like multiboot) should not require any special xen_* > directives. If ARM64 needs Xen to be treated specially, special > directives are maybe warranted for this particular case, but I don't > see why all architectures supporting Xen should then automatically > have to use those too. So we can have common grub.cfg that does not depend on each platform peculiarities and can be reused everywhere. Exactly so that grub could be uniform solution for everything. Let's face it. Bootloader obviously must be aware of any changes in boot protocol requires for a kernel. If (Xen) boot protocol does any addition, bootloader (GRUB) obviously must implement this addition. As soon as it needs to implement it for at least one supported arch - it will automatically be available on every other Xen platform. So it does not really cost anything (and you can continue to use "module" on multiboot complying platforms anyway). Because we already have precedent of using incompatible Xen boot protocol on different architectures, we try to find uniform solution that covers everything. Give us protocol that does not require knowledge of module type everywhere and we will use. But so far you just shoot the messenger.