From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
xen-devel <xen-devel@lists.xenproject.org>
Cc: Tamas K Lengyel <tamas@tklengyel.com>
Subject: Re: Ubuntu 16.04.1 LTS kernel 4.4.0-57 over-allocation and xen-access fail
Date: Tue, 10 Jan 2017 11:06:11 +0200 [thread overview]
Message-ID: <661a3921-e18f-8236-dde3-93d9327a657a@bitdefender.com> (raw)
In-Reply-To: <58fb1e1a-0fdd-f31a-77e4-e136fa0931de@citrix.com>
On 01/09/2017 02:54 PM, Andrew Cooper wrote:
> On 09/01/17 11:36, Razvan Cojocaru wrote:
>> Hello,
>>
>> We've come across a weird phenomenon: an Ubuntu 16.04.1 LTS HVM guest
>> running kernel 4.4.0 installed via XenCenter in XenServer Dundee seems
>> to eat up all the RAM it can:
>>
>> (XEN) [ 394.379760] d1v1 Over-allocation for domain 1: 524545 > 524544
>>
>> This leads to a problem with xen-access, specifically libxc which does
>> this in xc_vm_event_enable() (this is Xen 4.6):
>>
>> ring_page = xc_map_foreign_batch(xch, domain_id, PROT_READ | PROT_WRITE,
>> &mmap_pfn, 1);
>>
>> if ( mmap_pfn & XEN_DOMCTL_PFINFO_XTAB )
>> {
>> /* Map failed, populate ring page */
>> rc1 = xc_domain_populate_physmap_exact(xch, domain_id, 1, 0, 0,
>> &ring_pfn);
>> if ( rc1 != 0 )
>> {
>> PERROR("Failed to populate ring pfn\n");
>> goto out;
>> }
>>
>> The first time everything works fine, xen-access can map the ring page.
>> But most of the time the second time fails in the
>> xc_domain_populate_physmap_exact() call, and again this is dumped in the
>> Xen log (once for each failed attempt):
>>
>> (XEN) [ 395.952188] d0v3 Over-allocation for domain 1: 524545 > 524544
>
> Thinking further about this, what happens if you avoid removing the page
> on exit?
>
> The first populate succeeds, and if you leave the page populated, the
> second time you come around the loop, it should not be of type XTAB, and
> the map should succeed.
Sorry for the late reply, had to put out another fire yesterday.
I've taken your recommendation to roughly mean this:
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index ba9690a..805564b 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -100,8 +100,11 @@ static int vm_event_enable(
return 0;
err:
+ /*
destroy_ring_for_helper(&ved->ring_page,
ved->ring_pg_struct);
+ */
+ ved->ring_page = NULL;
vm_event_ring_unlock(ved);
return rc;
@@ -229,9 +232,12 @@ static int vm_event_disable(struct domain *d,
struct vm_event_domain *ved)
}
}
+ /*
destroy_ring_for_helper(&ved->ring_page,
ved->ring_pg_struct);
+ */
+ ved->ring_page = NULL;
vm_event_cleanup_domain(d);
vm_event_ring_unlock(ved);
but this unfortunately still fails to map the page the second time. Do
you mean to simply no longer munmap() the ring page from libxc / the
client application?
Thanks,
Razvan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-01-10 9:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-09 11:36 Ubuntu 16.04.1 LTS kernel 4.4.0-57 over-allocation and xen-access fail Razvan Cojocaru
2017-01-09 11:52 ` Jan Beulich
2017-01-09 12:01 ` Razvan Cojocaru
2017-01-09 12:04 ` Andrew Cooper
2017-01-09 19:18 ` Tamas K Lengyel
2017-01-09 12:54 ` Andrew Cooper
2017-01-10 9:06 ` Razvan Cojocaru [this message]
2017-01-10 14:13 ` Andrew Cooper
2017-01-10 15:02 ` Razvan Cojocaru
2017-01-10 15:11 ` Andrew Cooper
2017-01-10 15:35 ` Razvan Cojocaru
2017-01-10 16:29 ` Tamas K Lengyel
2017-01-10 16:34 ` Razvan Cojocaru
2017-01-10 16:40 ` Tamas K Lengyel
2017-01-10 17:09 ` Razvan Cojocaru
2017-01-10 9:45 ` Razvan Cojocaru
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=661a3921-e18f-8236-dde3-93d9327a657a@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=andrew.cooper3@citrix.com \
--cc=tamas@tklengyel.com \
--cc=xen-devel@lists.xenproject.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.