[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC XEN PATCH 06/16] tools: reserve guest memory for ACPI from device model



On Wed, Feb 08, 2017 at 09:39:09AM +0800, Haozhong Zhang wrote:
> On 01/27/17 15:44 -0500, Konrad Rzeszutek Wilk wrote:
> > On Mon, Oct 10, 2016 at 08:32:25AM +0800, Haozhong Zhang wrote:
> > > One guest page is reserved for the device model to place guest ACPI. The
> > 
> > guest ACPI what? ACPI SSDT? MADT?
> 
> For NVDIMM, it includes NFIT and SSDT. However, the mechanism
> implemented in this and following libacpi patches can be a generic one
> to pass guest ACPI from device model. A simple conflict detection is
> implemented in patch 11.
> 
> > 
> > Also why one page? What if there is a need for more than one page?
> > 
> > You add  HVM_XS_DM_ACPI_LENGTH which makes me think this is accounted
> > for?
> > 
> 
> One page is enough for NVDIMM (NFIT + SSDT). I don't see fundamental
> restriction to not allow more one page, so I use HVM_XS_DM_ACPI_LENGTH
> to pass the reserved size to allow changing the size in future.

640K ought to be enough for everybody ? :-)

> 
> > > base address and size of the reserved area are passed to the device
> > > model via XenStore keys hvmloader/dm-acpi/{address, length}.
> > > 
> > > Signed-off-by: Haozhong Zhang <haozhong.zhang@xxxxxxxxx>
> > > ---
> > > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> > > Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
> > > ---
> > >  tools/libxc/include/xc_dom.h            |  1 +
> > >  tools/libxc/xc_dom_x86.c                |  7 +++++++
> > >  tools/libxl/libxl_dom.c                 | 25 +++++++++++++++++++++++++
> > >  xen/include/public/hvm/hvm_xs_strings.h | 11 +++++++++++
> > >  4 files changed, 44 insertions(+)
> > > 
> > > diff --git a/tools/libxc/include/xc_dom.h b/tools/libxc/include/xc_dom.h
> > > index 608cbc2..19d65cd 100644
> > > --- a/tools/libxc/include/xc_dom.h
> > > +++ b/tools/libxc/include/xc_dom.h
> > > @@ -98,6 +98,7 @@ struct xc_dom_image {
> > >      xen_pfn_t xenstore_pfn;
> > >      xen_pfn_t shared_info_pfn;
> > >      xen_pfn_t bootstack_pfn;
> > > +    xen_pfn_t dm_acpi_pfn;
> > 
> > Perhaps an pointer to an variable size array?
> > 
> > xen_pfn_t *dm_acpi_pfns;
> > unsigned int dm_apci_nr;
> > 
> > ?
> 
> dm_acpi_pfn is passed to QEMU via xenstore. Though passing an array of
> pfns via xenstore is also doable, a pair of base pfn and length is
> simpler.

Whatever you think is correct - as long as you can do more than
one page.

Thanks!

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.