From: David Vrabel <david.vrabel@citrix.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 1/5] xen: use maximum reservation to limit amount of usable RAM
Date: Thu, 1 Sep 2011 13:12:10 +0100 [thread overview]
Message-ID: <4E5F769A.5080303@citrix.com> (raw)
In-Reply-To: <20110831204057.GA641@dumpdata.com>
On 31/08/11 21:40, Konrad Rzeszutek Wilk wrote:
>> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
>> ---
>> arch/x86/xen/setup.c | 19 +++++++++++++++++++
>> 1 files changed, 19 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
>> index df118a8..c3b8d44 100644
>> --- a/arch/x86/xen/setup.c
>> +++ b/arch/x86/xen/setup.c
>> @@ -184,6 +184,19 @@ static unsigned long __init xen_set_identity(const struct e820entry *list,
>> PFN_UP(start_pci), PFN_DOWN(last));
>> return identity;
>> }
>> +
>> +static unsigned long __init xen_get_max_pages(void)
>> +{
>> + unsigned long max_pages = MAX_DOMAIN_PAGES;
>> + domid_t domid = DOMID_SELF;
>> + int ret;
>> +
>> + ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid);
>> + if (ret > 0)
>> + max_pages = ret;
>> + return min(max_pages, MAX_DOMAIN_PAGES);
>> +}
>> +
>> /**
>> * machine_specific_memory_setup - Hook for machine specific memory setup.
>> **/
>> @@ -292,6 +305,12 @@ char * __init xen_memory_setup(void)
>>
>> sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
>>
>> + extra_limit = xen_get_max_pages();
>> + if (extra_limit >= max_pfn)
>> + extra_pages = extra_limit - max_pfn;
>> + else
>> + extra_pages = 0;
>> +
>> extra_pages += xen_return_unused_memory(xen_start_info->nr_pages, &e820);
>
> I ran this on three setups:
>
> 1) PV (domU)
> 2) PV+PCI (dom0)
> 3) PV+PCI+e820_hole=1 (domU)
>
> and then the same without this patch.
>
> Both the 2) and 3) worked correctly - the E820 had the same non-RAM regions and
> gaps - and the last RAM E820 entry was properly truncated. However, when it
> came to pure PV it was truncated more than it should:
>
> domU: domU:
> 0000000000000000 - 00000000000a0000 (usable) 0000000000000000 - 00000000000a0000 (usable)
> 00000000000a0000 - 0000000000100000 (reserved) 00000000000a0000 - 0000000000100000 (reserved)
> 0000000000100000 - 0000000040800000 (usable) | 0000000000100000 - 0000000040100000 (usable)
>
> (left has the old PV - without your patch). Which makes me think that there is something
> amiss in the toolstack? I used 'xl' (latest xen-unstable from today).
What were you expecting? It looks like xl is either: specifying a memory
map that is larger than it should be or b) setting the maximum
reservation as too low. And if you asked for 1 GiB neither looks right.
David
next prev parent reply other threads:[~2011-09-01 12:12 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-19 14:57 xen: memory initialization/balloon fixes (#2) David Vrabel
2011-08-19 14:57 ` [PATCH 1/5] xen: use maximum reservation to limit amount of usable RAM David Vrabel
2011-08-31 20:40 ` Konrad Rzeszutek Wilk
2011-09-01 12:12 ` David Vrabel [this message]
2011-09-01 13:14 ` Konrad Rzeszutek Wilk
2011-08-19 14:57 ` [PATCH 2/5] xen/balloon: account for pages released during memory setup David Vrabel
2011-09-06 21:31 ` Konrad Rzeszutek Wilk
2011-09-08 15:01 ` David Vrabel
2011-08-19 14:57 ` [PATCH 3/5] xen: allow balloon driver to use more than one memory region David Vrabel
2011-09-06 21:57 ` Konrad Rzeszutek Wilk
2011-09-07 10:44 ` David Vrabel
2011-09-07 18:09 ` Konrad Rzeszutek Wilk
2011-08-19 14:57 ` [PATCH 4/5] xen: allow extra memory to be in multiple regions David Vrabel
2011-09-07 12:28 ` Konrad Rzeszutek Wilk
2011-08-19 14:57 ` [PATCH 5/5] xen: release all pages within 1-1 p2m mappings David Vrabel
2011-08-19 15:05 ` David Vrabel
2011-09-06 21:20 ` Konrad Rzeszutek Wilk
2011-09-07 11:03 ` David Vrabel
2011-09-07 18:23 ` Konrad Rzeszutek Wilk
2011-08-22 14:49 ` xen: memory initialization/balloon fixes (#2) Konrad Rzeszutek Wilk
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=4E5F769A.5080303@citrix.com \
--to=david.vrabel@citrix.com \
--cc=konrad.wilk@oracle.com \
--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;
as well as URLs for NNTP newsgroup(s).