xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* PoD code killing domain before it really gets started
@ 2012-07-26 14:41 Jan Beulich
  2012-07-26 15:37 ` Jan Beulich
  2012-07-26 16:14 ` George Dunlap
  0 siblings, 2 replies; 22+ messages in thread
From: Jan Beulich @ 2012-07-26 14:41 UTC (permalink / raw)
  To: George Dunlap; +Cc: xen-devel

George,

in the hope that you might have some insight, or might be
remembering that something like this was reported before (and
ideally fixed), I'll try to describe a problem a customer of ours
reported. Unfortunately this is with Xen 4.0.x (plus numerous
backports), and it is not known whether the same issue exists
on 4.1.x or -unstable.

For a domain with maxmem=16000M and memory=3200M, what
gets logged is

(XEN) p2m_pod_demand_populate: Out of populate-on-demand memory! tot_pages 480 pod_entries 221184
(XEN) domain_crash called from p2m.c:1150
(XEN) Domain 3 reported crashed by domain 0 on cpu#6:
(XEN) p2m_pod_demand_populate: Out of populate-on-demand memory! tot_pages 480 pod_entries 221184
(XEN) domain_crash called from p2m.c:1150

Translated to hex, the numbers are 1e0 and 36000. The latter
one varies across the (rather infrequent) cases where this
happens (but was always a multiple of 1000 - see below), and
instant retries to create the affected domain did always succeed
so far (i.e. the failure is definitely not because of a lack of free
memory).

Given that the memory= target wasn't reached, yet, I would
conclude that this happens in the middle of (4.0.x file name used
here) tools/libxc/xc_hvm_build.c:setup_guest()'s main physmap
population code. However, the way I read the code there, I
would think that the sequence of population should be (using
hex GFNs) 0...9f, c0...7ff, 800-fff, 1000-17ff, etc. That,
however appears to be inconsistent with the logged numbers
above - tot_pages should always be at least 7e0 (low 2Mb less
the VGA hole), especially when pod_entries is divisible by 800
(the increment by which large page population happens).

As a result of this apparent inconsistency I can't really
conclude anything from the logged numbers.

The main question, irrespective of any numbers, of course is:
How would p2m_pod_demand_populate() be invoked at all
during this early phase of domain construction? Nothing
should be touching any of the memory... If this nevertheless
is possible (even if just for a single page), then perhaps the
tools ought to make sure the pages put into the low 2Mb get
actually zeroed, so the PoD code has a chance to find victim
pages.

Thanks for any thoughts or pointers, Jan

^ permalink raw reply	[flat|nested] 22+ messages in thread
[parent not found: <mailman.10292.1344326858.1399.xen-devel@lists.xen.org>]

end of thread, other threads:[~2012-08-09  8:37 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-26 14:41 PoD code killing domain before it really gets started Jan Beulich
2012-07-26 15:37 ` Jan Beulich
2012-07-26 16:14 ` George Dunlap
2012-07-27  6:45   ` Jan Beulich
2012-08-06 13:57   ` Jan Beulich
2012-08-06 14:12     ` Jan Beulich
2012-08-06 16:03       ` George Dunlap
2012-08-07  7:34         ` Jan Beulich
2012-08-07 10:00           ` Tim Deegan
2012-08-07 10:32             ` George Dunlap
2012-08-07 11:03             ` Jan Beulich
2012-08-07 10:20           ` George Dunlap
2012-08-07 11:05             ` Jan Beulich
2012-08-07 12:17         ` Jan Beulich
2012-08-07 13:13           ` George Dunlap
2012-08-07 13:29             ` Jan Beulich
2012-08-07 15:08               ` George Dunlap
2012-08-07 15:36                 ` Jan Beulich
2012-08-09  8:37                 ` Jan Beulich
     [not found] <mailman.10292.1344326858.1399.xen-devel@lists.xen.org>
2012-08-07 14:40 ` Andres Lagar-Cavilla
2012-08-07 15:04   ` George Dunlap
2012-08-07 15:36     ` Andres Lagar-Cavilla

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).