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

Re: [Xen-devel] [PATCH v2 16/17] libxc/xc_dom_arm: Copy ACPI tables to guest space



On Mon, 25 Jul 2016, Boris Ostrovsky wrote:
> On 07/25/2016 06:06 PM, Stefano Stabellini wrote:
> > On Mon, 25 Jul 2016, George Dunlap wrote:
> >> On Thu, Jul 21, 2016 at 10:15 PM, Stefano Stabellini
> >> <sstabellini@xxxxxxxxxx> wrote:
> >>>> You are assuming that the guest will map the ACPI blob with the same
> >>>> attributes as the rest of the superpage.
> >>>>
> >>>> IHMO, a sane operating system will want to map the ACPI blob read-only.
> >>> That's true. But there are other things which might be mapped
> >>> differently and could shatter a stage-1 superpage mapping (especially on
> >>> x86 that has a much more complex memory map than ARM). Obviously adding
> >>> one more is not doing it any good, but it might not make a difference in
> >>> practice.
> >>>
> >>> Anyway, I agree with Julien that his suggestion is the best for ARM. If
> >>> the libxl maintainers are willing to accept two different code paths for
> >>> this on ARM and x86, then I am fine with it too.
> >> Sorry to be a bit late to this thread -- there's a interface principle
> >> that I think we should at some point have a larger discussion about:
> >> whether "maxmem" means the amount of RAM which the guest sees as RAM,
> >> or whether "maxmem" means the amount of RAM that the administrator
> >> sees as used by the guest.  At the moment tnhere's no consistent
> >> answer actually; but I am strongly of the opinion that for usability
> >> the best answer is for "memory" to be the *total* amount of *host*
> >> memory used by the guest.  In an ideal world, the admin should be able
> >> to do "xl info", see that there is 3000MiB free, and then start a
> >> guest with 3000MiB and expect it to succeed.  At the moment he has to
> >> guess.
> > I don't want to add to the confusion, but maxmem is often higher than
> > the actual memory allocated for the guest at any given moment, given
> > that it's the upper limit enforced by the hypervisor (maxmem and mem are
> > often different, think about ballooning). So how can it be "the amount
> > of RAM that the administrator sees as used by the guest"? At best it
> > could be "the amount of RAM that the administrator sees could be at most
> > used by the guest" or "the amount of RAM that the administrator sees as
> > allocated on behalf of the guest at boot".
> >
> >
> >> To confirm, do you include memory allocated by the hypervisor to keep
> >> track of the guest (i.e struc domain, struct vcpu...)?
> >>
> >> If not, the problem stays the same because the admin will have to know
> >> how much memory Xen will allocate to keep track of the guest. So if "xl
> >> info" tells you that 3000MiB is free, you will only be able to use
> >> 3000MiB - few kilobytes.
> > That's right, unfortunately all those structs allocated by the
> > hypervisor are completely unknown to the tootlstack. However they should
> > be an order of magnitude or two smaller than things like the videoram,
> > the ethernet blob (on x86) or the ACPI blob. So taking the memory for
> > ACPI and videoram from the existing maxmem pool without increasing it,
> > would significantly improve, but not completely solve, the problem
> > described by George.
> >
> >
> > Going back to the discussion about how to account for the ACPI blob in
> > maxmem, let's make this simple, if we increase maxmem by the size of the
> > ACPI blob:
> >
> > - the toolstack allocates more RAM than expected (bad)
> > - when the admin specifies 1GB of RAM, the guest actually gets 1GB of
> >   usable RAM (good)
> > - things are faster as Xen and the guest can exploit superpage mappings
> >   more easily at stage-1 and stage-2 (good)
> >
> > Let's call this option A.
> >
> > If we do not increase maxmem:
> >
> > - the toolstack allocates less RAM, closer to the size specified in the
> >   VM config file (good)
> > - the guest gets less usable memory than expected, less than what was
> >   specified in the VM config file (bad)
> 
> 
> Not sure I agree with this, at least for x86/Linux: guest gets 1GB of
> usable RAM and part of that RAM stores ACPI stuff. Guest is free to
> stash ACPI tables somewhere else or ignore them altogether and use that
> memory for whatever it wants.

On ARM it will be a ROM (from guest POV)

_______________________________________________
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®.