All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Georgy V. Repin" <grep@informika.ru>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [BUG] invocation of xl create with insufficient memory for new domU causes system reboot
Date: Wed, 02 Apr 2014 14:25:50 +0400	[thread overview]
Message-ID: <533BE5AE.609@informika.ru> (raw)
In-Reply-To: <1396431007.8667.268.camel@kazak.uk.xensource.com>

02.04.2014 13:30, Ian Campbell пишет:
>
> On Tue, 2014-04-01 at 14:17 +0400, Georgy V. Repin wrote:
>> 01.04.2014 13:52, Ian Campbell пишет:
>>> On Tue, 2014-04-01 at 13:35 +0400, Georgy V. Repin wrote:
>>>> Hello!
>>>>
>>>> 1. Problem: invocation of xl create when there is not enough memory to
>>>> create new domU causes oom to select process to kiill; when oom selects
>>>> to kill quemu-system-* process, this causes kernel panic (it's my
>>>> suppose, because i see no message "kernel panic" in log, but i do see
>>>> "CPU: 0 PID: 7899 Comm: qemu-system-i38 Not tainted 3.10.17-gentoo #1" +
>>>> failed call trace), and, therefore (assuming default settings) kernel
>>>> reboot (see log at "4.")
>>>> Couple of remarks:
>>>> - fix checking of available memory for new domU in xl toolstack could
>>>> serve as workaround
>>>> - real cause is not clear to me, maybe it's not even a xen bug (quemu ?
>>>> kernel ?)
>>>
>>> Are you using dom0_mem= together with auto ballooning enabled in the
>>> toolstack?
>>
>> informika-xen-3 ~ # cat /proc/cmdline
>> placeholder root=/dev/sda1 ro
>
> dom0_mem is a hypervisor command line option, not a Linux one. Although
> given that you have show autobaloon=auto that is moot since it implies
> the automatic functionality was indeed added in the version you have.
>
>>
>> part of grub.cfg
>>
>> 		        if [ "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then
>> 		            xen_rm_opts=
>> 		        else
>> 		            xen_rm_opts="no-real-mode edd=off"
>> 		        fi
>> 			multiboot	/boot/xen-4.gz placeholder   ${xen_rm_opts}


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this code from grub.cfg shows that there is no dom0_mem=  parameter for 
/boot/xen-4.gz


>> 			echo	'Loading Linux 3.10.17-gentoo ...'
>> 			module	/boot/vmlinuz-3.10.17-gentoo placeholder root=/dev/sda1 ro
>>
>> xl.conf:
>> # Control whether dom0 is ballooned down when xen doesn't have enough
>> # free memory to create a domain.  "auto" means only balloon if dom0
>> # starts with all the host's memory.
>> #autoballoon="auto"
>>
>> So:
>> 	- no dom0_mem= as boot param
>> 	- autobaloon is set to default ("auto", i suppose)
>
> Correct, the default is auto.
>
> Please can you show us the output of "xl info" and your guest cfg file
> as well as the full output of "xl -vvv create $cfg".

informika-xen-3 ~ # xl info
host                   : informika-xen-3
release                : 3.10.17-gentoo
version                : #1 SMP Sun Dec 8 13:22:31 MSK 2013
machine                : x86_64
nr_cpus                : 16
max_cpu_id             : 15
nr_nodes               : 2
cores_per_socket       : 4
threads_per_core       : 2
cpu_mhz                : 2400
hw_caps                : 
bfebfbff:2c100800:00000000:00003f00:029ee3ff:00000000:00000001:00000000
virt_caps              : hvm
total_memory           : 24566
free_memory            : 418
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 3
xen_extra              : .1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : placeholder
cc_compiler            : x86_64-pc-linux-gnu-gcc (Gentoo 4.7.3-r1 p1.3, 
pie-0.5.5) 4.7.3
cc_compile_by          :
cc_compile_domain      : internal
cc_compile_date        : Sun Jan  5 22:39:16 MSK 2014
xend_config_format     : 4


remark:
	- now there is no oom reaction, because i have reduced memory amount 
for one of other domU's (now it's enough memory for all domU's)
	- it seems that "xen_commandline" states that there is no "dom0_mem=" 
option.

informika-xen-3 ~ # xl -vvv create /etc/xen/vm/www.icsit.ru
Parsing config from /etc/xen/vm/www.icsit.ru
libxl: debug: libxl_create.c:1230:do_domain_create: ao 0x24915a0: 
create: how=(nil) callback=(nil) poller=0x24903a0
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk 
vdev=xvda spec.backend=unknown
libxl: debug: libxl_device.c:296:libxl__device_disk_set_backend: Disk 
vdev=xvda, using backend phy
libxl: debug: libxl_create.c:675:initiate_domain_create: running bootloader
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk 
vdev=(null) spec.backend=phy
libxl: debug: libxl.c:2604:libxl__device_disk_local_initiate_attach: 
locally attaching PHY disk /dev/storage-a/www.icsit.ru
libxl: debug: libxl_bootloader.c:409:bootloader_disk_attached_cb: Config 
bootloader value: pygrub
libxl: debug: libxl_bootloader.c:425:bootloader_disk_attached_cb: 
Checking for bootloader in libexec path: /usr/lib64/xen/bin/pygrub
libxl: debug: libxl_create.c:1243:do_domain_create: ao 0x24915a0: 
inprogress: poller=0x24903a0, flags=i
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch 
w=0x248f798 wpath=/local/domain/8 token=3/0: register slotnum=3
libxl: debug: libxl_event.c:1737:libxl__ao_progress_report: ao 
0x24915a0: progress report: ignored
libxl: debug: libxl_bootloader.c:535:bootloader_gotptys: executing 
bootloader: /usr/lib64/xen/bin/pygrub
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: /usr/lib64/xen/bin/pygrub
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: --args=root=/dev/xvda fastboot
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: --output=/var/run/xen/bootloader.8.out
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: --output-format=simple0
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: --output-directory=/var/run/xen/bootloader.8.d
libxl: debug: libxl_bootloader.c:539:bootloader_gotptys:   bootloader 
arg: /dev/storage-a/www.icsit.ru
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x248f798 
wpath=/local/domain/8 token=3/0: event epath=/local/domain/8

libxl: debug: libxl_bootloader.c:634:bootloader_finished: bootloader 
completed
libxl: debug: libxl_bootloader.c:136:bootloader_result_command: 
bootloader output contained kernel 
/var/run/xen/bootloader.8.d/boot_kernel.VfLJyd
libxl: debug: libxl_bootloader.c:136:bootloader_result_command: 
bootloader output contained ramdisk 
/var/run/xen/bootloader.8.d/boot_ramdisk.HBHXnw
libxl: debug: libxl_bootloader.c:136:bootloader_result_command: 
bootloader output contained args root=/dev/xvda console=hvc0 ro 
root=/dev/xvda fastboot
libxl: debug: libxl_bootloader.c:647:bootloader_finished: bootloader 
execution successful
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch 
w=0x248f798 wpath=/local/domain/8 token=3/0: deregister slotnum=3
libxl: debug: libxl_numa.c:475:libxl__get_numa_candidate: New best NUMA 
placement candidate found: nr_nodes=2, nr_cpus=16, nr_vcpus=65, 
free_memkb=2466
libxl: detail: libxl_dom.c:195:numa_place_domain: NUMA placement 
candidate with 2 nodes, 16 cpus and 2466 KB free selected
domainbuilder: detail: xc_dom_allocate: cmdline="root=/dev/xvda 
console=hvc0 ro root=/dev/xvda fastboot", features="(null)"
libxl: debug: libxl_dom.c:341:libxl__build_pv: pv kernel mapped 1 path 
/var/run/xen/bootloader.8.d/boot_kernel.VfLJyd

domainbuilder: detail: xc_dom_kernel_mem: called
domainbuilder: detail: xc_dom_ramdisk_mem: called
domainbuilder: detail: xc_dom_boot_xen_init: ver 4.3, caps 
xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p 
hvm-3.0-x86_64
domainbuilder: detail: xc_dom_parse_image: called
domainbuilder: detail: xc_dom_find_loader: trying multiboot-binary 
loader ...
domainbuilder: detail: loader probe failed
domainbuilder: detail: xc_dom_find_loader: trying Linux bzImage loader ...
domainbuilder: detail: xc_dom_malloc            : 18250 kB
domainbuilder: detail: xc_dom_do_gunzip: unzip ok, 0x4b30aa -> 0x11d2aa0
domainbuilder: detail: loader probe OK
xc: detail: elf_parse_binary: phdr: paddr=0x1000000 memsz=0xad6000
xc: detail: elf_parse_binary: phdr: paddr=0x1c00000 memsz=0xe30e0
xc: detail: elf_parse_binary: phdr: paddr=0x1ce4000 memsz=0x143c0
xc: detail: elf_parse_binary: phdr: paddr=0x1cf9000 memsz=0x35f000
xc: detail: elf_parse_binary: memory: 0x1000000 -> 0x2058000
xc: detail: elf_xen_parse_note: GUEST_OS = "linux"
xc: detail: elf_xen_parse_note: GUEST_VERSION = "2.6"
xc: detail: elf_xen_parse_note: XEN_VERSION = "xen-3.0"
xc: detail: elf_xen_parse_note: VIRT_BASE = 0xffffffff80000000
xc: detail: elf_xen_parse_note: ENTRY = 0xffffffff81cf9200
xc: detail: elf_xen_parse_note: HYPERCALL_PAGE = 0xffffffff81001000
xc: detail: elf_xen_parse_note: FEATURES = 
"!writable_page_tables|pae_pgdir_above_4gb"
xc: detail: elf_xen_parse_note: PAE_MODE = "yes"
xc: detail: elf_xen_parse_note: LOADER = "generic"
xc: detail: elf_xen_parse_note: unknown xen elf note (0xd)
xc: detail: elf_xen_parse_note: SUSPEND_CANCEL = 0x1
xc: detail: elf_xen_parse_note: HV_START_LOW = 0xffff800000000000
xc: detail: elf_xen_parse_note: PADDR_OFFSET = 0x0
xc: detail: elf_xen_addr_calc_check: addresses:
xc: detail:     virt_base        = 0xffffffff80000000
xc: detail:     elf_paddr_offset = 0x0
xc: detail:     virt_offset      = 0xffffffff80000000
xc: detail:     virt_kstart      = 0xffffffff81000000
xc: detail:     virt_kend        = 0xffffffff82058000
xc: detail:     virt_entry       = 0xffffffff81cf9200
xc: detail:     p2m_base         = 0xffffffffffffffff
domainbuilder: detail: xc_dom_parse_elf_kernel: xen-3.0-x86_64: 
0xffffffff81000000 -> 0xffffffff82058000
domainbuilder: detail: xc_dom_mem_init: mem 2048 MB, pages 0x80000 
pages, 4k each
domainbuilder: detail: xc_dom_mem_init: 0x80000 pages
domainbuilder: detail: xc_dom_boot_mem_init: called
domainbuilder: detail: x86_compat: guest xen-3.0-x86_64, address size 64
domainbuilder: detail: xc_dom_malloc            : 4096 kB
domainbuilder: detail: xc_dom_build_image: called
domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 
0xffffffff81000000 -> 0xffffffff82058000  (pfn 0x1000 + 0x1058 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 
0x1000+0x1058 at 0x7f9aa40e4000
xc: detail: elf_load_binary: phdr 0 at 0x7f9aa40e4000 -> 0x7f9aa4bba000
xc: detail: elf_load_binary: phdr 1 at 0x7f9aa4ce4000 -> 0x7f9aa4dc70e0
xc: detail: elf_load_binary: phdr 2 at 0x7f9aa4dc8000 -> 0x7f9aa4ddc3c0
xc: detail: elf_load_binary: phdr 3 at 0x7f9aa4ddd000 -> 0x7f9aa4eb6000
domainbuilder: detail: xc_dom_alloc_segment:   ramdisk      : 
0xffffffff82058000 -> 0xffffffff82fa8000  (pfn 0x2058 + 0xf50 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 
0x2058+0xf50 at 0x7f9a9f0b0000
domainbuilder: detail: xc_dom_do_gunzip: unzip ok, 0x5c1479 -> 0xf4fa10
domainbuilder: detail: xc_dom_alloc_segment:   phys2mach    : 
0xffffffff82fa8000 -> 0xffffffff833a8000  (pfn 0x2fa8 + 0x400 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 
0x2fa8+0x400 at 0x7f9a9ecb0000
domainbuilder: detail: xc_dom_alloc_page   :   start info   : 
0xffffffff833a8000 (pfn 0x33a8)
domainbuilder: detail: xc_dom_alloc_page   :   xenstore     : 
0xffffffff833a9000 (pfn 0x33a9)
domainbuilder: detail: xc_dom_alloc_page   :   console      : 
0xffffffff833aa000 (pfn 0x33aa)
domainbuilder: detail: nr_page_tables: 0x0000ffffffffffff/48: 
0xffff000000000000 -> 0xffffffffffffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x0000007fffffffff/39: 
0xffffff8000000000 -> 0xffffffffffffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x000000003fffffff/30: 
0xffffffff80000000 -> 0xffffffffbfffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x00000000001fffff/21: 
0xffffffff80000000 -> 0xffffffff837fffff, 28 table(s)
domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 
0xffffffff833ab000 -> 0xffffffff833ca000  (pfn 0x33ab + 0x1f pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 
0x33ab+0x1f at 0x7f9aa9696000
domainbuilder: detail: xc_dom_alloc_page   :   boot stack   : 
0xffffffff833ca000 (pfn 0x33ca)
domainbuilder: detail: xc_dom_build_image  : virt_alloc_end : 
0xffffffff833cb000
domainbuilder: detail: xc_dom_build_image  : virt_pgtab_end : 
0xffffffff83800000
domainbuilder: detail: xc_dom_boot_image: called
domainbuilder: detail: arch_setup_bootearly: doing nothing
domainbuilder: detail: xc_dom_compat_check: supported guest type: 
xen-3.0-x86_64 <= matches
domainbuilder: detail: xc_dom_compat_check: supported guest type: 
xen-3.0-x86_32p
domainbuilder: detail: xc_dom_compat_check: supported guest type: 
hvm-3.0-x86_32
domainbuilder: detail: xc_dom_compat_check: supported guest type: 
hvm-3.0-x86_32p
domainbuilder: detail: xc_dom_compat_check: supported guest type: 
hvm-3.0-x86_64
domainbuilder: detail: xc_dom_update_guest_p2m: dst 64bit, pages 0x80000
domainbuilder: detail: clear_page: pfn 0x33aa, mfn 0x5d4935
domainbuilder: detail: clear_page: pfn 0x33a9, mfn 0x21c2da
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 
0x33a8+0x1 at 0x7f9aa9693000
domainbuilder: detail: start_info_x86_64: called
domainbuilder: detail: setup_hypercall_page: vaddr=0xffffffff81001000 
pfn=0x1001
domainbuilder: detail: domain builder memory footprint
domainbuilder: detail:    allocated
domainbuilder: detail:       malloc             : 22564 kB
domainbuilder: detail:       anon mmap          : 0 bytes
domainbuilder: detail:    mapped
domainbuilder: detail:       file mmap          : 0 bytes
domainbuilder: detail:       domU mmap          : 35 MB
domainbuilder: detail: arch_setup_bootlate: shared_info: pfn 0x0, mfn 
0x1f6b9
domainbuilder: detail: shared_info_x86_64: called
domainbuilder: detail: vcpu_x86_64: called
domainbuilder: detail: vcpu_x86_64: cr3: pfn 0x33ab mfn 0x21c2d9
domainbuilder: detail: launch_vm: called, ctxt=0x7fff07610e70
domainbuilder: detail: xc_dom_release: called
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk 
vdev=xvda spec.backend=phy
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch 
w=0x248dd08 wpath=/local/domain/0/backend/vbd/8/51712/state token=3/1: 
register slotnum=3
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x248dd08 
wpath=/local/domain/0/backend/vbd/8/51712/state token=3/1: event 
epath=/local/domain/0/backend/vbd/8/51712/state
libxl: debug: libxl_event.c:647:devstate_watch_callback: backend 
/local/domain/0/backend/vbd/8/51712/state wanted state 2 still waiting 
state 1
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x248dd08 
wpath=/local/domain/0/backend/vbd/8/51712/state token=3/1: event 
epath=/local/domain/0/backend/vbd/8/51712/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend 
/local/domain/0/backend/vbd/8/51712/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch 
w=0x248dd08 wpath=/local/domain/0/backend/vbd/8/51712/state token=3/1: 
deregister slotnum=3
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch 
w=0x248dd08: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: 
/etc/xen/scripts/block add
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch 
w=0x248de18 wpath=/local/domain/0/backend/vif/8/0/state token=3/2: 
register slotnum=3
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x248de18 
wpath=/local/domain/0/backend/vif/8/0/state token=3/2: event 
epath=/local/domain/0/backend/vif/8/0/state
libxl: debug: libxl_event.c:647:devstate_watch_callback: backend 
/local/domain/0/backend/vif/8/0/state wanted state 2 still waiting state 1
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x248de18 
wpath=/local/domain/0/backend/vif/8/0/state token=3/2: event 
epath=/local/domain/0/backend/vif/8/0/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend 
/local/domain/0/backend/vif/8/0/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch 
w=0x248de18 wpath=/local/domain/0/backend/vif/8/0/state token=3/2: 
deregister slotnum=3
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch 
w=0x248de18: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: 
/etc/xen/scripts/vif-bridge online
libxl: debug: libxl_event.c:1737:libxl__ao_progress_report: ao 
0x24915a0: progress report: ignored
libxl: debug: libxl_event.c:1569:libxl__ao_complete: ao 0x24915a0: 
complete, rc=0
libxl: debug: libxl_event.c:1541:libxl__ao__destroy: ao 0x24915a0: destroy
Daemon running with PID 6087
xc: debug: hypercall buffer: total allocations:346 total releases:346
xc: debug: hypercall buffer: current allocations:0 maximum allocations:4
xc: debug: hypercall buffer: cache current size:4
xc: debug: hypercall buffer: cache hits:336 misses:4 toobig:6

informika-xen-3 ~ # cat /etc/xen/vm/www.icsit.ru
bootloader = "pygrub"
memory = 2048
vcpus = 2
name = "www.icsit.ru"
vif = [ 'mac=00:16:3E:5A:04:01, bridge=v119, model=e1000' ]
disk = ['phy:/dev/storage-a/www.icsit.ru,xvda,w']
root = "/dev/xvda"
extra = "fastboot"

>
> Thanks,
> Ian.
>
>
>
>

-- 
	Georgy V. Repin


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2014-04-02 10:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-01  9:35 [BUG] invocation of xl create with insufficient memory for new domU causes system reboot Georgy V. Repin
2014-04-01  9:52 ` Ian Campbell
2014-04-01 10:17   ` Georgy V. Repin
2014-04-02  5:47     ` Georgy V. Repin
2014-04-02  9:31       ` Ian Campbell
2014-04-02  9:30     ` Ian Campbell
2014-04-02 10:25       ` Georgy V. Repin [this message]
2014-04-02 10:39         ` Georgy V. Repin
2014-04-02 10:52         ` Ian Campbell

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=533BE5AE.609@informika.ru \
    --to=grep@informika.ru \
    --cc=Ian.Campbell@citrix.com \
    --cc=xen-devel@lists.xen.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.