public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>, Juergen Gross <jgross@suse.com>
Cc: <boris.ostrovsky@oracle.com>, <xen-devel@lists.xensource.com>,
	David Vrabel <david.vrabel@citrix.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [Xen-devel] [PATCH 0/2] xen: Switch to virtual mapped linear p2m list
Date: Tue, 28 Oct 2014 11:53:37 +0000	[thread overview]
Message-ID: <544F83C1.3010402@citrix.com> (raw)
In-Reply-To: <1414489898.23883.25.camel@citrix.com>

On 28/10/14 09:51, Ian Campbell wrote:
> On Tue, 2014-10-28 at 06:00 +0100, Juergen Gross wrote:
>> On 10/27/2014 04:16 PM, David Vrabel wrote:
>>> On 27/10/14 14:52, Juergen Gross wrote:
>>>> Paravirtualized kernels running on Xen use a three level tree for
>>>> translation of guest specific physical addresses to machine global
>>>> addresses. This p2m tree is used for construction of page table
>>>> entries, so the p2m tree walk is performance critical.
>>>>
>>>> By using a linear virtual mapped p2m list accesses to p2m elements
>>>> can be sped up while even simplifying code. To achieve this goal
>>>> some p2m related initializations have to be performed later in the
>>>> boot process, as the final p2m list can be set up only after basic
>>>> memory management functions are available.
>>> What impact does this have on 32-bit guests which don't have huge amount
>>> of virtual address space?
>>>
>>> I think a 32-bit guest could have up to 64 GiB of PFNs, which would
>>> require a 128 MiB p2m array, which is too large?
>> It is 64 MB (one entry on 32 bit is 32 bits :-) ).
>>
>> With a m2p array of only 16 MB size I doubt a 32 bit guest can be larger
>> than 16 GB, or am I wrong here?
> I think they can be bigger, the compat r/o m2p is 168MB, since Xen
> doesn't need to be in the hole as well (like it was with a real 32-bit
> Xen). There is also some scope for dynamic sizing of the hole (queried
> via XENMEM_machphys_mapping), I'm not sure if pvops makes use of that
> though.
>
> In practice a 32-bit kernel starts to get pretty unhappy somewhere
> between 32 and 64GB because it runs out of low memory for various
> structures which are sized according to the amount of RAM. Or it did,
> it's been years since I've tried, maybe things are more able to use
> highmem now. In any case if you have such large amounts of RAM using a
> 64-bit kernel would be advisable.

It is XenServers experience that something (I presume a
power-of-two-aligned mapping) cuts off at 128MB of the compat m2p,
allowing for 32bit guest pages to exist in the first 128GB of host RAM.

Technically speaking, there is nothing preventing a 32bit PV guest being
that large.  The traditional issues with 32bit PAE kernels do not apply
as Xen is running in long mode, but kernel lowmem will be the limiting
factor.  Switching to a 2/2 split will help, but it is a loosing battle.

It should be noted that OEL formally supports 64GB 32bit PV VMs, and as
a result, the XenServer VM lifecycle tests do test it, and it works.

~Andrew


  reply	other threads:[~2014-10-28 11:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-27 14:52 [PATCH 0/2] xen: Switch to virtual mapped linear p2m list Juergen Gross
2014-10-27 14:52 ` [PATCH 1/2] Xen: Delay remapping memory of pv-domain Juergen Gross
2014-10-28 17:34   ` David Vrabel
2014-10-29  5:30     ` Juergen Gross
2014-10-29  5:43       ` Juergen Gross
2014-10-27 14:52 ` [PATCH 2/2] Xen: switch to linear virtual mapped sparse p2m list Juergen Gross
2014-10-28 17:55   ` David Vrabel
2014-10-27 15:16 ` [PATCH 0/2] xen: Switch to virtual mapped linear " David Vrabel
2014-10-28  5:00   ` Juergen Gross
2014-10-28  9:51     ` [Xen-devel] " Ian Campbell
2014-10-28 11:53       ` Andrew Cooper [this message]
2014-10-28 12:07         ` Juergen Gross
2014-10-28 12:39           ` David Vrabel
2014-10-28 12:42             ` Andrew Cooper
2014-10-28 12:44               ` David Vrabel
2014-10-28 12:46                 ` Andrew Cooper
2014-10-28 13:03                   ` Juergen Gross
2014-10-28 13:04             ` Juergen Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=544F83C1.3010402@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox