From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: Re: [PATCH v5 13/20] xen: setup Xen specific data for PVH Date: Tue, 27 Nov 2018 22:10:19 +0100 Message-ID: <20181127211019.ntlrab7bcftf4u23@tomti.i.net-space.pl> References: <20181121142855.13537-1-jgross@suse.com> <20181121142855.13537-14-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181121142855.13537-14-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Juergen Gross Cc: hans@knorrie.org, grub-devel@gnu.org, phcoder@gmail.com, roger.pau@citrix.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBOb3YgMjEsIDIwMTggYXQgMDM6Mjg6NDhQTSArMDEwMCwgSnVlcmdlbiBHcm9zcyB3 cm90ZToKPiBJbml0aWFsaXplIHRoZSBuZWVkZWQgWGVuIHNwZWNpZmljIGRhdGEuIFRoaXMgaXM6 Cj4KPiAtIHRoZSBYZW4gc3RhcnQgb2YgZGF5IHBhZ2UgY29udGFpbmluZyB0aGUgY29uc29sZSBh bmQgWGVuc3RvcmUgcmluZwo+ICAgcGFnZSBQRk4gYW5kIGV2ZW50IGNoYW5uZWwKPiAtIHRoZSBn cmFudCB0YWJsZQo+IC0gdGhlIHNoYXJlZCBpbmZvIHBhZ2UKPgo+IFdyaXRlIGJhY2sgdGhlIHBv c3NpYmx5IG1vZGlmaWVkIG1lbW9yeSBtYXAgdG8gdGhlIGh5cGVydmlzb3IgaW4gY2FzZQo+IHRo ZSBndWVzdCBpcyByZWFkaW5nIGl0IGZyb20gdGhlcmUgYWdhaW4uCj4KPiBTZXQgdGhlIFJTRFAg YWRkcmVzcyBmb3IgdGhlIGd1ZXN0IGZyb20gdGhlIHN0YXJ0X2luZm8gcGFnZSBwYXNzZWQKPiBh cyBib290IHBhcmFtZXRlci4KPgo+IFNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9z c0BzdXNlLmNvbT4KPiBSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3Jh Y2xlLmNvbT4KCk9uZSBuaXRwaWNrIGJlbG93Li4uCgo+IC0tLQo+IFY0OiB3cml0ZSBiYWNrIG1l bW9yeSBtYXAgdG8gWGVuIChSb2dlciBQYXUgTW9ubsOpKQo+IFY1OiBhZGQgY29tbWVudCAoRGFu aWVsIEtpcGVyKQo+IC0tLQo+ICBncnViLWNvcmUva2Vybi9pMzg2L3hlbi9wdmguYyB8IDEyMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMSBmaWxlIGNoYW5n ZWQsIDEyMCBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2tlcm4vaTM4 Ni94ZW4vcHZoLmMgYi9ncnViLWNvcmUva2Vybi9pMzg2L3hlbi9wdmguYwo+IGluZGV4IGJiOTA4 NzRiMy4uNmRlODRlYjhlIDEwMDY0NAo+IC0tLSBhL2dydWItY29yZS9rZXJuL2kzODYveGVuL3B2 aC5jCj4gKysrIGIvZ3J1Yi1jb3JlL2tlcm4vaTM4Ni94ZW4vcHZoLmMKPiBAQCAtMjcsNiArMjcs NyBAQAo+ICAjaW5jbHVkZSA8Z3J1Yi9pMzg2L2xpbnV4Lmg+Cj4gICNpbmNsdWRlIDxncnViL21h Y2hpbmUva2VybmVsLmg+Cj4gICNpbmNsdWRlIDxncnViL21hY2hpbmUvbWVtb3J5Lmg+Cj4gKyNp bmNsdWRlIDx4ZW4vaHZtL3BhcmFtcy5oPgo+ICAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgo+Cj4g ICNkZWZpbmUgWEVOX01FTU9SWV9NQVBfU0laRSAgIDEyOAo+IEBAIC0zNyw2ICszOCw3IEBAIHN0 YXRpYyBjaGFyIGh5cGVyY2FsbF9wYWdlW0dSVUJfWEVOX1BBR0VfU0laRV0KPiAgICBfX2F0dHJp YnV0ZV9fICgoYWxpZ25lZCAoR1JVQl9YRU5fUEFHRV9TSVpFKSkpOwo+Cj4gIHN0YXRpYyBncnVi X3VpbnQzMl90IHhlbl9jcHVpZF9iYXNlOwo+ICtzdGF0aWMgc3RydWN0IHN0YXJ0X2luZm8gZ3J1 Yl94ZW5fc3RhcnRfcGFnZTsKPiAgc3RhdGljIHN0cnVjdCBncnViX2U4MjBfbW1hcF9lbnRyeSBt YXBbWEVOX01FTU9SWV9NQVBfU0laRV07Cj4gIHN0YXRpYyB1bnNpZ25lZCBpbnQgbnJfbWFwX2Vu dHJpZXM7Cj4KPiBAQCAtMTEwLDYgKzExMiwzNiBAQCBncnViX3hlbl9oeXBlcmNhbGwgKGdydWJf dWludDMyX3QgY2FsbG5vLCBncnViX3VpbnQzMl90IGEwLAo+ICAgIHJldHVybiBfX3JlczsKPiAg fQo+Cj4gK3N0YXRpYyBncnViX3VpbnQzMl90Cj4gK2dydWJfeGVuX2dldF9wYXJhbSAoaW50IGlk eCkKPiArewo+ICsgIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHhodjsKPiArICBpbnQgcjsKPiArCj4g KyAgeGh2LmRvbWlkID0gRE9NSURfU0VMRjsKPiArICB4aHYuaW5kZXggPSBpZHg7Cj4gKyAgciA9 IGdydWJfeGVuX2h5cGVyY2FsbCAoX19IWVBFUlZJU09SX2h2bV9vcCwgSFZNT1BfZ2V0X3BhcmFt LAo+ICsJCQkgIChncnViX3VpbnQzMl90KSAoJnhodiksIDAsIDAsIDAsIDApOwo+ICsgIGlmIChy IDwgMCkKPiArICAgIGdydWJfeGVuX3BhbmljICgiQ291bGQgbm90IGdldCBwYXJhbWV0ZXIgZnJv bSBYZW4hXG4iKTsKPiArICByZXR1cm4geGh2LnZhbHVlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCAqCj4gK2dydWJfeGVuX2FkZF9waHlzbWFwICh1bnNpZ25lZCBpbnQgc3BhY2UsIHZvaWQgKmFk ZHIpCj4gK3sKPiArICBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHhhdHA7Cj4gKwo+ICsgIHhh dHAuZG9taWQgPSBET01JRF9TRUxGOwo+ICsgIHhhdHAuaWR4ID0gMDsKPiArICB4YXRwLnNwYWNl ID0gc3BhY2U7Cj4gKyAgeGF0cC5ncGZuID0gKGdydWJfYWRkcl90KSBhZGRyID4+IEdSVUJfWEVO X0xPR19QQUdFX1NJWkU7Cj4gKyAgaWYgKGdydWJfeGVuX2h5cGVyY2FsbCAoX19IWVBFUlZJU09S X21lbW9yeV9vcCwgWEVOTUVNX2FkZF90b19waHlzbWFwLAo+ICsJCQkgIChncnViX3VpbnQzMl90 KSAoJnhhdHApLCAwLCAwLCAwLCAwKSkKPiArICAgIGdydWJfeGVuX3BhbmljICgiTWVtb3J5X29w IGh5cGVyY2FsbCBmYWlsZWQhXG4iKTsKPiArICByZXR1cm4gYWRkcjsKPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQKPiAgZ3J1Yl94ZW5fc29ydF9tbWFwICh2b2lkKQo+ICB7Cj4gQEAgLTE5NiwxMiAr MjI4LDEwMCBAQCBncnViX3hlbl9nZXRfbW1hcCAodm9pZCkKPiAgICBncnViX3hlbl9zb3J0X21t YXAgKCk7Cj4gIH0KPgo+ICtzdGF0aWMgdm9pZAo+ICtncnViX3hlbl9zZXRfbW1hcCAodm9pZCkK PiArewo+ICsgIHN0cnVjdCB4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwIG1lbW1hcDsKPiArCj4gKyAg bWVtbWFwLmRvbWlkID0gRE9NSURfU0VMRjsKPiArICBtZW1tYXAubWFwLm5yX2VudHJpZXMgPSBu cl9tYXBfZW50cmllczsKPiArICBzZXRfeGVuX2d1ZXN0X2hhbmRsZSAobWVtbWFwLm1hcC5idWZm ZXIsIG1hcCk7Cj4gKyAgZ3J1Yl94ZW5faHlwZXJjYWxsIChfX0hZUEVSVklTT1JfbWVtb3J5X29w LCBYRU5NRU1fc2V0X21lbW9yeV9tYXAsCj4gKwkJICAgICAgKGdydWJfdWludDMyX3QpICgmbWVt bWFwKSwgMCwgMCwgMCwgMCk7Cj4gK30KPiArCj4gK3N0YXRpYyBncnViX3VpbnQ2NF90Cj4gK2dy dWJfeGVuX2ZpbmRfcGFnZSAoZ3J1Yl91aW50NjRfdCBzdGFydCkKPiArewo+ICsgIHVuc2lnbmVk IGludCBpLCBqOwo+ICsgIGdydWJfdWludDY0X3QgbGFzdCA9IHN0YXJ0Owo+ICsKPiArICAvKiBU cnkgdG8gZmluZCBhIGU4MjAgbWFwIGhvbGUgYmVsb3cgNEcuICovCj4gKyAgLyogUmVsaWVzIG9u IHBhZ2UtYWxpZ25lZCBlbnRyaWVzIChhZGRyIGFuZCBsZW4pIGFuZCBpbnB1dCAoc3RhcnQpLiAq LwoKSSB3b3VsZCBsaWtlIHRvIHNlZSBhYm92ZSB0d28gY29tbWVudHMgYXMgb25lIGFzIGJlbG93 LgoKLyoKICogVHJ5IHRvIGZpbmQgYSBlODIwIG1hcCBob2xlIGJlbG93IDRHLgogKiBSZWxpZXMg b24gcGFnZS1hbGlnbmVkIGVudHJpZXMgKGFkZHIgYW5kIGxlbikgYW5kIGlucHV0IChzdGFydCku CiAqLwoKWW91IGNhbiByZXRhaW4gbXkgUkIgaWYgeW91IGNoYW5nZSB0aGF0LgoKRGFuaWVsCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1gRkcy-00073c-Pr for mharc-grub-devel@gnu.org; Tue, 27 Nov 2018 16:10:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37471) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRkcv-000716-2n for grub-devel@gnu.org; Tue, 27 Nov 2018 16:10:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRkcr-0005oV-ST for grub-devel@gnu.org; Tue, 27 Nov 2018 16:10:37 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:46988) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gRkcr-0005ks-Gw for grub-devel@gnu.org; Tue, 27 Nov 2018 16:10:33 -0500 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id wARL4TSx106107; Tue, 27 Nov 2018 21:10:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : content-transfer-encoding : in-reply-to; s=corp-2018-07-02; bh=w3G172OGoNq/ZMwD1X/eYUEsNwd26pX/HNXV65VGuC4=; b=u3Te+DROPrgfZ9DN38nkIgsmxzZeHgxChXbsQxT3h6CmPJxz8WyV2Z1wCJ9gzba/vt9v b8ZnVCrVb33Z0/yAAqSNjXazaCrAYgICazWpC3ido1+E6sXOWUBemm0SzYLj6iiqDuf/ Duffjrvn1XRsqRp46YGAV/yB/pPWOGBGWXeXL4NEp/fs/nvNAA962/D00pvww133gj1U jPTW2WEjm3lxw8vHS5nQN418ShsGd/ifQYLXsPw5A7OFrhnSv0wIGEkTIHi+fqbmkcvn EKb631HIyl6zMv0vBYuqhxZ6g0tPjGOI6tiSpq19fzjCGBEgdAYiIZRs4XybgvzLb38q 6g== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2120.oracle.com with ESMTP id 2nxy9r6jgb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 27 Nov 2018 21:10:30 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id wARLAOfa004512 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 27 Nov 2018 21:10:24 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id wARLANxv003705; Tue, 27 Nov 2018 21:10:23 GMT Received: from tomti.i.net-space.pl (/10.175.171.161) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 27 Nov 2018 13:10:23 -0800 Date: Tue, 27 Nov 2018 22:10:19 +0100 From: Daniel Kiper To: Juergen Gross Cc: grub-devel@gnu.org, xen-devel@lists.xen.org, phcoder@gmail.com, roger.pau@citrix.com, hans@knorrie.org Subject: Re: [PATCH v5 13/20] xen: setup Xen specific data for PVH Message-ID: <20181127211019.ntlrab7bcftf4u23@tomti.i.net-space.pl> References: <20181121142855.13537-1-jgross@suse.com> <20181121142855.13537-14-jgross@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20181121142855.13537-14-jgross@suse.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9090 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1811270178 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by userp2120.oracle.com id wARL4TSx106107 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Nov 2018 21:10:39 -0000 On Wed, Nov 21, 2018 at 03:28:48PM +0100, Juergen Gross wrote: > Initialize the needed Xen specific data. This is: > > - the Xen start of day page containing the console and Xenstore ring > page PFN and event channel > - the grant table > - the shared info page > > Write back the possibly modified memory map to the hypervisor in case > the guest is reading it from there again. > > Set the RSDP address for the guest from the start_info page passed > as boot parameter. > > Signed-off-by: Juergen Gross > Reviewed-by: Daniel Kiper One nitpick below... > --- > V4: write back memory map to Xen (Roger Pau Monn=E9) > V5: add comment (Daniel Kiper) > --- > grub-core/kern/i386/xen/pvh.c | 120 ++++++++++++++++++++++++++++++++++= ++++++++ > 1 file changed, 120 insertions(+) > > diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pv= h.c > index bb90874b3..6de84eb8e 100644 > --- a/grub-core/kern/i386/xen/pvh.c > +++ b/grub-core/kern/i386/xen/pvh.c > @@ -27,6 +27,7 @@ > #include > #include > #include > +#include > #include > > #define XEN_MEMORY_MAP_SIZE 128 > @@ -37,6 +38,7 @@ static char hypercall_page[GRUB_XEN_PAGE_SIZE] > __attribute__ ((aligned (GRUB_XEN_PAGE_SIZE))); > > static grub_uint32_t xen_cpuid_base; > +static struct start_info grub_xen_start_page; > static struct grub_e820_mmap_entry map[XEN_MEMORY_MAP_SIZE]; > static unsigned int nr_map_entries; > > @@ -110,6 +112,36 @@ grub_xen_hypercall (grub_uint32_t callno, grub_uin= t32_t a0, > return __res; > } > > +static grub_uint32_t > +grub_xen_get_param (int idx) > +{ > + struct xen_hvm_param xhv; > + int r; > + > + xhv.domid =3D DOMID_SELF; > + xhv.index =3D idx; > + r =3D grub_xen_hypercall (__HYPERVISOR_hvm_op, HVMOP_get_param, > + (grub_uint32_t) (&xhv), 0, 0, 0, 0); > + if (r < 0) > + grub_xen_panic ("Could not get parameter from Xen!\n"); > + return xhv.value; > +} > + > +static void * > +grub_xen_add_physmap (unsigned int space, void *addr) > +{ > + struct xen_add_to_physmap xatp; > + > + xatp.domid =3D DOMID_SELF; > + xatp.idx =3D 0; > + xatp.space =3D space; > + xatp.gpfn =3D (grub_addr_t) addr >> GRUB_XEN_LOG_PAGE_SIZE; > + if (grub_xen_hypercall (__HYPERVISOR_memory_op, XENMEM_add_to_physma= p, > + (grub_uint32_t) (&xatp), 0, 0, 0, 0)) > + grub_xen_panic ("Memory_op hypercall failed!\n"); > + return addr; > +} > + > static void > grub_xen_sort_mmap (void) > { > @@ -196,12 +228,100 @@ grub_xen_get_mmap (void) > grub_xen_sort_mmap (); > } > > +static void > +grub_xen_set_mmap (void) > +{ > + struct xen_foreign_memory_map memmap; > + > + memmap.domid =3D DOMID_SELF; > + memmap.map.nr_entries =3D nr_map_entries; > + set_xen_guest_handle (memmap.map.buffer, map); > + grub_xen_hypercall (__HYPERVISOR_memory_op, XENMEM_set_memory_map, > + (grub_uint32_t) (&memmap), 0, 0, 0, 0); > +} > + > +static grub_uint64_t > +grub_xen_find_page (grub_uint64_t start) > +{ > + unsigned int i, j; > + grub_uint64_t last =3D start; > + > + /* Try to find a e820 map hole below 4G. */ > + /* Relies on page-aligned entries (addr and len) and input (start). = */ I would like to see above two comments as one as below. /* * Try to find a e820 map hole below 4G. * Relies on page-aligned entries (addr and len) and input (start). */ You can retain my RB if you change that. Daniel