# xl create /etc/xen/ace2x1
Parsing config file /etc/xen/ace2x1
libxl: error: libxl_create.c:700:do_domain_create: Failed while collecting E820 with: -3 (errno:0)
I had to add some extra logging into libxl_pci.c to work this one out. It turns out it was choking in e820_sanitize on this test:
if (!src || !map_limitkb || !balloon_kb || !nr_entries)
As you can see, if balloon_kb is 0 (which comes from libxl_domain_config), it will fail. That's what was happening in my case.
libxl: error: libxl_pci.c:1182:e820_sanitize: ============== delta_kb: 0 start: 0 start_kb: 0 last: 0 map_limitkb: 200000 balloon_kb: 0 nr_entries: 18
Hence, this issue can be worked around quite easily by adding a maxmem assignment to the guest config.
memory = '2047'
maxmem = '2048'