From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757421AbcAYPJP (ORCPT ); Mon, 25 Jan 2016 10:09:15 -0500 Received: from aserp1040.oracle.com ([141.146.126.69]:25712 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757369AbcAYPJM (ORCPT ); Mon, 25 Jan 2016 10:09:12 -0500 Subject: Re: [Xen-devel] [PATCH v1 04/12] xen/hvmlite: Bootstrap HVMlite guest To: Andrew Cooper , "Luis R. Rodriguez" References: <1453498558-6028-1-git-send-email-boris.ostrovsky@oracle.com> <1453498558-6028-5-git-send-email-boris.ostrovsky@oracle.com> <20160122233218.GA20964@wotan.suse.de> <56A2C99A.2050701@citrix.com> Cc: Juergen Gross , Jeremy Fitzhardinge , Rusty Russell , linux-kernel@vger.kernel.org, Andy Lutomirski , david.vrabel@citrix.com, hpa@zytor.com, xen-devel@lists.xenproject.org, Borislav Petkov , roger.pau@citrix.com From: Boris Ostrovsky Message-ID: <56A63A87.8000303@oracle.com> Date: Mon, 25 Jan 2016 10:08:55 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <56A2C99A.2050701@citrix.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/22/2016 07:30 PM, Andrew Cooper wrote: > On 22/01/2016 23:32, Luis R. Rodriguez wrote: >> On Fri, Jan 22, 2016 at 04:35:50PM -0500, Boris Ostrovsky wrote: >>> + /* >>> + * See Documentation/x86/boot.txt. >>> + * >>> + * Version 2.12 supports Xen entry point but we will use default x86/PC >>> + * environment (i.e. hardware_subarch 0). >>> + */ >>> + xen_hvmlite_boot_params.hdr.version = 0x212; >>> + xen_hvmlite_boot_params.hdr.type_of_loader = 9; /* Xen loader */ >>> +} >> I realize PV got away with setting up boot_params on C code but best >> ask now that this new code is being introduced: why can't we just have >> the Xen hypervisor fill this in? It'd save us all this code. > I agree that this looks to be a mess. Having said that, the DMLite boot > protocol is OS agnostic, and will be staying that way. > > It happens to look suspiciously like multiboot; a flat 32bit protected > mode entry (at a location chosen in an ELF note), with %ebx pointing to > an in-ram structure containing things like a command line and module list. > > I would have though the correct way to do direct Linux support would be > to have a very small init stub which constructs an appropriate zero > page, and lets the native entry point get on with things. Which is really what hvmlite_start_xen()->xen_prepare_hvmlite()->hvmlite_bootparams() is doing. Not much more than that (for 64-bit it also loads identity mapping because that's what startup_64 wants) -boris > > This covers the usecase where people wish to boot a specific Linux > kernel straight out of the dom0 filesystem. > > For the alternative usecase of general OS support, dom0 would boot > something such as grub2 as the DMLite "kernel", at which point all > stooging around in the guests filesystem is done from guest context, > rather than control context (mitigating a substantial attack surface). > > ~Andrew