From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51338) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e3WuE-0005YS-BE for qemu-devel@nongnu.org; Sat, 14 Oct 2017 20:35:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e3WuB-0001QR-82 for qemu-devel@nongnu.org; Sat, 14 Oct 2017 20:35:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36112) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e3WuA-0001Pa-VC for qemu-devel@nongnu.org; Sat, 14 Oct 2017 20:35:47 -0400 Date: Sun, 15 Oct 2017 03:35:43 +0300 From: "Michael S. Tsirkin" Message-ID: <20171015033133-mutt-send-email-mst@kernel.org> References: <20170911043820.14617-1-haozhong.zhang@intel.com> <20170911044157.15403-1-haozhong.zhang@intel.com> <20170911160818.1bd44a82@nial.brq.redhat.com> <20170912031509.vufszbju3s2v2bw3@hz-desktop> <20171010160544.GA1772@char.us.oracle.com> <20171012124544.dq3wyr65tefi3glk@hz-desktop> <20171013075326.77azyi4j2wo3b2fx@hz-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171013075326.77azyi4j2wo3b2fx@hz-desktop> Subject: Re: [Qemu-devel] [RFC QEMU PATCH v3 00/10] Implement vNVDIMM for Xen HVM guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Konrad Rzeszutek Wilk , Stefano Stabellini , Igor Mammedov , qemu-devel@nongnu.org, xen-devel@lists.xen.org, Dan Williams , Chao Peng , Eduardo Habkost , Xiao Guangrong , Richard Henderson , Anthony Perard , xen-devel@lists.xenproject.org, ian.jackson@eu.citrix.com, wei.liu2@citrix.com, george.dunlap@citrix.com, JBeulich@suse.com, andrew.cooper3@citrix.com On Fri, Oct 13, 2017 at 03:53:26PM +0800, Haozhong Zhang wrote: > On 10/12/17 17:45 +0200, Paolo Bonzini wrote: > > On 12/10/2017 14:45, Haozhong Zhang wrote: > > > Basically, QEMU builds two ROMs for guest, /rom@etc/acpi/tables and > > > /rom@etc/table-loader. The former is unstructured to guest, and > > > contains all data of guest ACPI. The latter is a BIOSLinkerLoader > > > organized as a set of commands, which direct the guest (e.g., SeaBIOS > > > on KVM/QEMU) to relocate data in the former file, recalculate checksum > > > of specified area, and fill guest address in specified ACPI field. > > > > > > One part of my patches is to implement a mechanism to tell Xen which > > > part of ACPI data is a table (NFIT), and which part defines a > > > namespace device and what the device name is. I can add two new loader > > > commands for them respectively. > > > > > > Because they just provide information and SeaBIOS in non-xen > > > environment ignores unrecognized commands, they will not break SeaBIOS > > > in non-xen environment. > > > > > > On QEMU side, most Xen-specific hacks in ACPI builder could be > > > dropped, and replaced by adding the new loader commands (though they > > > may be used only by Xen). > > > > > > On Xen side, a fw_cfg driver and a BIOSLinkerLoader command executor > > > are needed in, perhaps, hvmloader. > > > > If Xen has to parse BIOSLinkerLoader, it can use the existing commands > > to process a reduced set of ACPI tables. In other words, > > etc/acpi/tables would only include the NFIT, the SSDT with namespace > > devices, and the XSDT. etc/acpi/rsdp would include the RSDP table as usual. > > > > hvmloader can then: > > > > 1) allocate some memory for where the XSDT will go > > > > 2) process the BIOSLinkerLoader like SeaBIOS would do > > > > 3) find the RSDP in low memory, since the loader script must have placed > > it there. If it cannot find it, allocate some low memory, fill it with > > the RSDP header and revision, and and jump to step 6 > > > > 4) If it found QEMU's RSDP, use it to find QEMU's XSDT > > > > 5) Copy ACPI table pointers from QEMU to hvmloader's RSDT and/or XSDT. > > > > 6) build hvmloader tables and link them into the RSDT and/or XSDT as usual. > > > > 7) overwrite the RSDP in low memory with a pointer to hvmloader's own > > RSDT and/or XSDT, and updated the checksums > > > > QEMU's XSDT remains there somewhere in memory, unused but harmless. > > > > It can work for plan tables which do not contain AML. > > However, for a namespace device, Xen needs to know its name in order > to detect the potential name conflict with those used in Xen built > ACPI. Xen does not (and is not going to) introduce an AML parser, so > it cannot get those device names from QEMU built ACPI by its own. > > The idea of either this patch series or the new BIOSLinkerLoader > command is to let QEMU tell Xen where the definition body of a > namespace device (i.e. that part within the outmost "Device(NAME)") is > and what the device name is. Xen, after the name conflict check, can > re-package the definition body in a namespace device (w/ minimal AML > builder code added in Xen) and then in SSDT. > > > Haozhong You most likely can do this without a new command. You can use something similiar to build_append_named_dword in combination with BIOS_LINKER_LOADER_COMMAND_ADD_POINTER like vm gen id does. -- MST From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] [RFC QEMU PATCH v3 00/10] Implement vNVDIMM for Xen HVM guest Date: Sun, 15 Oct 2017 03:35:43 +0300 Message-ID: <20171015033133-mutt-send-email-mst@kernel.org> References: <20170911043820.14617-1-haozhong.zhang@intel.com> <20170911044157.15403-1-haozhong.zhang@intel.com> <20170911160818.1bd44a82@nial.brq.redhat.com> <20170912031509.vufszbju3s2v2bw3@hz-desktop> <20171010160544.GA1772@char.us.oracle.com> <20171012124544.dq3wyr65tefi3glk@hz-desktop> <20171013075326.77azyi4j2wo3b2fx@hz-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e3WuC-0000ri-NP for xen-devel@lists.xenproject.org; Sun, 15 Oct 2017 00:35:48 +0000 Content-Disposition: inline In-Reply-To: <20171013075326.77azyi4j2wo3b2fx@hz-desktop> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Paolo Bonzini , Konrad Rzeszutek Wilk , Stefano Stabellini , Igor Mammedov , qemu-devel@nongnu.org, xen-devel@lists.xen.org, Dan Williams , Chao Peng , Eduardo Habkost , Xiao Guangrong , Richard Henderson , Anthony Perard , xen-devel@lists.xenproject.org, ian.jackson@eu.citrix.com, wei.liu2@citrix.com, george.dunlap@citrix.com, JBeulich@suse.com, andrew.cooper3@citrix.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBPY3QgMTMsIDIwMTcgYXQgMDM6NTM6MjZQTSArMDgwMCwgSGFvemhvbmcgWmhhbmcg d3JvdGU6Cj4gT24gMTAvMTIvMTcgMTc6NDUgKzAyMDAsIFBhb2xvIEJvbnppbmkgd3JvdGU6Cj4g PiBPbiAxMi8xMC8yMDE3IDE0OjQ1LCBIYW96aG9uZyBaaGFuZyB3cm90ZToKPiA+ID4gQmFzaWNh bGx5LCBRRU1VIGJ1aWxkcyB0d28gUk9NcyBmb3IgZ3Vlc3QsIC9yb21AZXRjL2FjcGkvdGFibGVz IGFuZAo+ID4gPiAvcm9tQGV0Yy90YWJsZS1sb2FkZXIuIFRoZSBmb3JtZXIgaXMgdW5zdHJ1Y3R1 cmVkIHRvIGd1ZXN0LCBhbmQKPiA+ID4gY29udGFpbnMgYWxsIGRhdGEgb2YgZ3Vlc3QgQUNQSS4g VGhlIGxhdHRlciBpcyBhIEJJT1NMaW5rZXJMb2FkZXIKPiA+ID4gb3JnYW5pemVkIGFzIGEgc2V0 IG9mIGNvbW1hbmRzLCB3aGljaCBkaXJlY3QgdGhlIGd1ZXN0IChlLmcuLCBTZWFCSU9TCj4gPiA+ IG9uIEtWTS9RRU1VKSB0byByZWxvY2F0ZSBkYXRhIGluIHRoZSBmb3JtZXIgZmlsZSwgcmVjYWxj dWxhdGUgY2hlY2tzdW0KPiA+ID4gb2Ygc3BlY2lmaWVkIGFyZWEsIGFuZCBmaWxsIGd1ZXN0IGFk ZHJlc3MgaW4gc3BlY2lmaWVkIEFDUEkgZmllbGQuCj4gPiA+IAo+ID4gPiBPbmUgcGFydCBvZiBt eSBwYXRjaGVzIGlzIHRvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byB0ZWxsIFhlbiB3aGljaAo+ ID4gPiBwYXJ0IG9mIEFDUEkgZGF0YSBpcyBhIHRhYmxlIChORklUKSwgYW5kIHdoaWNoIHBhcnQg ZGVmaW5lcyBhCj4gPiA+IG5hbWVzcGFjZSBkZXZpY2UgYW5kIHdoYXQgdGhlIGRldmljZSBuYW1l IGlzLiBJIGNhbiBhZGQgdHdvIG5ldyBsb2FkZXIKPiA+ID4gY29tbWFuZHMgZm9yIHRoZW0gcmVz cGVjdGl2ZWx5Lgo+ID4gPiAKPiA+ID4gQmVjYXVzZSB0aGV5IGp1c3QgcHJvdmlkZSBpbmZvcm1h dGlvbiBhbmQgU2VhQklPUyBpbiBub24teGVuCj4gPiA+IGVudmlyb25tZW50IGlnbm9yZXMgdW5y ZWNvZ25pemVkIGNvbW1hbmRzLCB0aGV5IHdpbGwgbm90IGJyZWFrIFNlYUJJT1MKPiA+ID4gaW4g bm9uLXhlbiBlbnZpcm9ubWVudC4KPiA+ID4gCj4gPiA+IE9uIFFFTVUgc2lkZSwgbW9zdCBYZW4t c3BlY2lmaWMgaGFja3MgaW4gQUNQSSBidWlsZGVyIGNvdWxkIGJlCj4gPiA+IGRyb3BwZWQsIGFu ZCByZXBsYWNlZCBieSBhZGRpbmcgdGhlIG5ldyBsb2FkZXIgY29tbWFuZHMgKHRob3VnaCB0aGV5 Cj4gPiA+IG1heSBiZSB1c2VkIG9ubHkgYnkgWGVuKS4KPiA+ID4gCj4gPiA+IE9uIFhlbiBzaWRl LCBhIGZ3X2NmZyBkcml2ZXIgYW5kIGEgQklPU0xpbmtlckxvYWRlciBjb21tYW5kIGV4ZWN1dG9y Cj4gPiA+IGFyZSBuZWVkZWQgaW4sIHBlcmhhcHMsIGh2bWxvYWRlci4KPiA+IAo+ID4gSWYgWGVu IGhhcyB0byBwYXJzZSBCSU9TTGlua2VyTG9hZGVyLCBpdCBjYW4gdXNlIHRoZSBleGlzdGluZyBj b21tYW5kcwo+ID4gdG8gcHJvY2VzcyBhIHJlZHVjZWQgc2V0IG9mIEFDUEkgdGFibGVzLiAgSW4g b3RoZXIgd29yZHMsCj4gPiBldGMvYWNwaS90YWJsZXMgd291bGQgb25seSBpbmNsdWRlIHRoZSBO RklULCB0aGUgU1NEVCB3aXRoIG5hbWVzcGFjZQo+ID4gZGV2aWNlcywgYW5kIHRoZSBYU0RULiAg ZXRjL2FjcGkvcnNkcCB3b3VsZCBpbmNsdWRlIHRoZSBSU0RQIHRhYmxlIGFzIHVzdWFsLgo+ID4K PiA+IGh2bWxvYWRlciBjYW4gdGhlbjoKPiA+IAo+ID4gMSkgYWxsb2NhdGUgc29tZSBtZW1vcnkg Zm9yIHdoZXJlIHRoZSBYU0RUIHdpbGwgZ28KPiA+IAo+ID4gMikgcHJvY2VzcyB0aGUgQklPU0xp bmtlckxvYWRlciBsaWtlIFNlYUJJT1Mgd291bGQgZG8KPiA+IAo+ID4gMykgZmluZCB0aGUgUlNE UCBpbiBsb3cgbWVtb3J5LCBzaW5jZSB0aGUgbG9hZGVyIHNjcmlwdCBtdXN0IGhhdmUgcGxhY2Vk Cj4gPiBpdCB0aGVyZS4gIElmIGl0IGNhbm5vdCBmaW5kIGl0LCBhbGxvY2F0ZSBzb21lIGxvdyBt ZW1vcnksIGZpbGwgaXQgd2l0aAo+ID4gdGhlIFJTRFAgaGVhZGVyIGFuZCByZXZpc2lvbiwgYW5k IGFuZCBqdW1wIHRvIHN0ZXAgNgo+ID4gCj4gPiA0KSBJZiBpdCBmb3VuZCBRRU1VJ3MgUlNEUCwg dXNlIGl0IHRvIGZpbmQgUUVNVSdzIFhTRFQKPiA+IAo+ID4gNSkgQ29weSBBQ1BJIHRhYmxlIHBv aW50ZXJzIGZyb20gUUVNVSB0byBodm1sb2FkZXIncyBSU0RUIGFuZC9vciBYU0RULgo+ID4gCj4g PiA2KSBidWlsZCBodm1sb2FkZXIgdGFibGVzIGFuZCBsaW5rIHRoZW0gaW50byB0aGUgUlNEVCBh bmQvb3IgWFNEVCBhcyB1c3VhbC4KPiA+IAo+ID4gNykgb3ZlcndyaXRlIHRoZSBSU0RQIGluIGxv dyBtZW1vcnkgd2l0aCBhIHBvaW50ZXIgdG8gaHZtbG9hZGVyJ3Mgb3duCj4gPiBSU0RUIGFuZC9v ciBYU0RULCBhbmQgdXBkYXRlZCB0aGUgY2hlY2tzdW1zCj4gPiAKPiA+IFFFTVUncyBYU0RUIHJl bWFpbnMgdGhlcmUgc29tZXdoZXJlIGluIG1lbW9yeSwgdW51c2VkIGJ1dCBoYXJtbGVzcy4KPiA+ IAo+IAo+IEl0IGNhbiB3b3JrIGZvciBwbGFuIHRhYmxlcyB3aGljaCBkbyBub3QgY29udGFpbiBB TUwuCj4gCj4gSG93ZXZlciwgZm9yIGEgbmFtZXNwYWNlIGRldmljZSwgWGVuIG5lZWRzIHRvIGtu b3cgaXRzIG5hbWUgaW4gb3JkZXIKPiB0byBkZXRlY3QgdGhlIHBvdGVudGlhbCBuYW1lIGNvbmZs aWN0IHdpdGggdGhvc2UgdXNlZCBpbiBYZW4gYnVpbHQKPiBBQ1BJLiBYZW4gZG9lcyBub3QgKGFu ZCBpcyBub3QgZ29pbmcgdG8pIGludHJvZHVjZSBhbiBBTUwgcGFyc2VyLCBzbwo+IGl0IGNhbm5v dCBnZXQgdGhvc2UgZGV2aWNlIG5hbWVzIGZyb20gUUVNVSBidWlsdCBBQ1BJIGJ5IGl0cyBvd24u Cj4gCj4gVGhlIGlkZWEgb2YgZWl0aGVyIHRoaXMgcGF0Y2ggc2VyaWVzIG9yIHRoZSBuZXcgQklP U0xpbmtlckxvYWRlcgo+IGNvbW1hbmQgaXMgdG8gbGV0IFFFTVUgdGVsbCBYZW4gd2hlcmUgdGhl IGRlZmluaXRpb24gYm9keSBvZiBhCj4gbmFtZXNwYWNlIGRldmljZSAoaS5lLiB0aGF0IHBhcnQg d2l0aGluIHRoZSBvdXRtb3N0ICJEZXZpY2UoTkFNRSkiKSBpcwo+IGFuZCB3aGF0IHRoZSBkZXZp Y2UgbmFtZSBpcy4gWGVuLCBhZnRlciB0aGUgbmFtZSBjb25mbGljdCBjaGVjaywgY2FuCj4gcmUt cGFja2FnZSB0aGUgZGVmaW5pdGlvbiBib2R5IGluIGEgbmFtZXNwYWNlIGRldmljZSAody8gbWlu aW1hbCBBTUwKPiBidWlsZGVyIGNvZGUgYWRkZWQgaW4gWGVuKSBhbmQgdGhlbiBpbiBTU0RULgo+ IAo+IAo+IEhhb3pob25nCgpZb3UgbW9zdCBsaWtlbHkgY2FuIGRvIHRoaXMgd2l0aG91dCBhIG5l dyBjb21tYW5kLgpZb3UgY2FuIHVzZSBzb21ldGhpbmcgc2ltaWxpYXIgdG8gYnVpbGRfYXBwZW5k X25hbWVkX2R3b3JkCmluIGNvbWJpbmF0aW9uIHdpdGggQklPU19MSU5LRVJfTE9BREVSX0NPTU1B TkRfQUREX1BPSU5URVIKbGlrZSB2bSBnZW4gaWQgZG9lcy4KCi0tIApNU1QKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=