From: Atom2 <ariel.atom2@web2web.at>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: xen-users@lists.xenproject.org,
xen-devel <xen-devel@lists.xen.org>,
Ian Campbell <Ian.Campbell@citrix.com>,
Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: [Xen-users] substantial shutdown delay for PV guests with PCI -passthrough
Date: Thu, 20 Mar 2014 20:32:47 +0100 [thread overview]
Message-ID: <532B425F.4010701@web2web.at> (raw)
In-Reply-To: <21290.54937.269235.163107@mariner.uk.xensource.com>
[-- Attachment #1: Type: text/plain, Size: 8127 bytes --]
Am 20.03.14 12:52, schrieb Ian Jackson:
> Atom2 writes ("Re: [Xen-devel] [Xen-users] substantial shutdown delay for PV guests with PCI -passthrough"):
>> the patch unfortunately doesn't apply to my sources - some comments to
>> the reasons why further below.
>
> Here's a backport. I have compiled but not executed it.
It compiled at my end as well, but I am sorry to report that the problem
with the 40s delay persits.
Attached please find the new xl-output created with xl -vvv create -F
domain.
This file again contains a few annotations with regards to where the
delays happen. To my untrained eye it looks largely identical to the
last xl-output with the obvious change of domain-id, addresses,
line-numbers for debug output where changes in the sourve have happende
and the use of the new function libxl__wait_for_backend_deprecated
instead of libxl__wait_for_backend due to your patch, the latter of
which I take as proof that your patches have been applied.
For other obvious changes I have commented in the file on those lines
that I could identify: There are a few new lines which were not there
last time and now there's also a new 10s delay which, however, is only
visible through xl -vvvv -F domain as the prompt has already returned by
the time this new delay happens and this delay therefore is not visible
in dom0.
I hope that helps. Thanks for your continued support and best regards,
Atom2
>
>> Sorry for my delay in answering - this is a resend as the first e-Mail
>> with uncompressed attachments did not go through.
>
>> Just FYI: the version I am using is 4.3.1-r5; I have attached the
>> relevant source files referred to by your patches.
>
> Thanks, but our revision control system enables us to retrieve old
> versions very easily :-). So there is not any need to provide us with
> these files.
>
> Having said that, I have no record of 4.3.1-rc5. But I'm pretty sure
> the patch below, which is against staging-4.3, will apply to your
> tree. It applies cleanly to 4.3.0-rc5 and 4.3.1-rc2, which are my two
> guesses as to which version you mean.
>
> Thanks,
> Ian.
>
> From f9df128cd4d4ad6c7ed6ffd9bd8ba0633af78389 Mon Sep 17 00:00:00 2001
> From: Ian Jackson <ian.jackson@eu.citrix.com>
> Date: Wed, 19 Mar 2014 15:47:02 +0000
> Subject: [PATCH] libxl: Tolerate backend state "6" on pciback remove
>
> When shutting down a domain with pci passthrough, it can happen that
> the backend has actually shut down (xenbus state 6) before we try to
> remove it. When this happens, libxl would time out waiting for the
> backend to reach state 4.
>
> Instead, deal with this by having libxl__wait_for_backend take a list
> of suitable states.
>
> The arrangements are still fundamentally incorrect:
> - libxl__wait_for_backend is a slow synchronous function, which is
> forbidden;
> - There is no way to deal properly with the various xenbus states
> that might arise (including erroneous ones).
> We will hopefully fix this later, although it's not trivial. For
> the moment, rename the function to libxl__wait_for_backend_deprecated.
>
> Reported-by: Atom2 <ariel.atom2@web2web.at>
> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
> CC: Atom2 <ariel.atom2@web2web.at>
> CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> CC: Roger Pau Monne <roger.pau@citrix.com>
> CC: Ian Campbell <Ian.Campbell@citrix.com>
>
> Backported to 4.3. Conflicts:
> tools/libxl/libxl_device.c
> tools/libxl/libxl_internal.h
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> ---
> tools/libxl/libxl.c | 2 +-
> tools/libxl/libxl_device.c | 21 ++++++++++++++-------
> tools/libxl/libxl_internal.h | 3 ++-
> tools/libxl/libxl_pci.c | 8 +++++---
> 4 files changed, 22 insertions(+), 12 deletions(-)
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 3d9543b..c0cc0b7 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -2689,7 +2689,7 @@ static void local_device_attach_cb(libxl__egc *egc, libxl__ao_device *aodev)
> if (rc < 0)
> goto out;
> be_path = libxl__device_backend_path(gc, &device);
> - rc = libxl__wait_for_backend(gc, be_path, "4");
> + rc = libxl__wait_for_backend_deprecated(gc, be_path, "4", (char*)0);
> if (rc < 0)
> goto out;
>
> diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
> index ea845b7..779b38b 100644
> --- a/tools/libxl/libxl_device.c
> +++ b/tools/libxl/libxl_device.c
> @@ -1094,7 +1094,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
> check_callback, check_callback_userdata);
> }
>
> -int libxl__wait_for_backend(libxl__gc *gc, char *be_path, char *state)
> +int libxl__wait_for_backend_deprecated(libxl__gc *gc, const char *be_path,
> + ...)
> {
> libxl_ctx *ctx = libxl__gc_owner(gc);
> int watchdog = 100;
> @@ -1115,13 +1116,19 @@ int libxl__wait_for_backend(libxl__gc *gc, char *be_path, char *state)
> }
> goto out;
> } else {
> - if (!strcmp(p, state)) {
> - rc = 0;
> - goto out;
> - } else {
> - usleep(100000);
> - watchdog--;
> + const char *want;
> + va_list al;
> + va_start(al,be_path);
> + while ((want = va_arg(al, char*))) {
> + if (!strcmp(p, want)) {
> + va_end(al);
> + rc = 0;
> + goto out;
> + }
> }
> + va_end(al);
> + usleep(100000);
> + watchdog--;
> }
> }
> LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Backend %s not ready", be_path);
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index f051d91..4485c56 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -944,7 +944,8 @@ _hidden char *libxl__device_frontend_path(libxl__gc *gc, libxl__device *device);
> _hidden int libxl__parse_backend_path(libxl__gc *gc, const char *path,
> libxl__device *dev);
> _hidden int libxl__device_destroy(libxl__gc *gc, libxl__device *dev);
> -_hidden int libxl__wait_for_backend(libxl__gc *gc, char *be_path, char *state);
> +_hidden int libxl__wait_for_backend_deprecated(libxl__gc *gc,
> + const char *be_path, ...) __attribute__((sentinel));
> _hidden int libxl__nic_type(libxl__gc *gc, libxl__device *dev,
> libxl_nic_type *nictype);
>
> diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
> index 0295e0b..e22852c 100644
> --- a/tools/libxl/libxl_pci.c
> +++ b/tools/libxl/libxl_pci.c
> @@ -126,7 +126,7 @@ static int libxl__device_pci_add_xenstore(libxl__gc *gc, uint32_t domid, libxl_d
> return ERROR_FAIL;
>
> if (!starting && domtype == LIBXL_DOMAIN_TYPE_PV) {
> - if (libxl__wait_for_backend(gc, be_path, "4") < 0)
> + if (libxl__wait_for_backend_deprecated(gc, be_path, "4", (char*)0) < 0)
> return ERROR_FAIL;
> }
>
> @@ -169,7 +169,8 @@ static int libxl__device_pci_remove_xenstore(libxl__gc *gc, uint32_t domid, libx
> return ERROR_FAIL;
>
> if (domtype == LIBXL_DOMAIN_TYPE_PV) {
> - if (libxl__wait_for_backend(gc, be_path, "4") < 0) {
> + if (libxl__wait_for_backend_deprecated(gc, be_path, "4", "6", (char*)0)
> + < 0) {
> LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "pci backend at %s is not ready", be_path);
> return ERROR_FAIL;
> }
> @@ -198,7 +199,8 @@ retry_transaction:
> goto retry_transaction;
>
> if (domtype == LIBXL_DOMAIN_TYPE_PV) {
> - if (libxl__wait_for_backend(gc, be_path, "4") < 0) {
> + if (libxl__wait_for_backend_deprecated(gc, be_path, "4", "6", (char*)0)
> + < 0) {
> LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "pci backend at %s is not ready", be_path);
> return ERROR_FAIL;
> }
>
[-- Attachment #2: xl-output --]
[-- Type: text/plain, Size: 22228 bytes --]
Parsing config from 5:voip.9
libxl: debug: libxl_create.c:1230:do_domain_create: ao 0x7fe37ba02850: create: how=(nil) callback=(nil) poller=0x7fe37ba03d70
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda1 spec.backend=unknown
libxl: debug: libxl_device.c:296:libxl__device_disk_set_backend: Disk vdev=xvda1, using backend phy
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda2 spec.backend=unknown
libxl: debug: libxl_device.c:296:libxl__device_disk_set_backend: Disk vdev=xvda2, using backend phy
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda3 spec.backend=unknown
libxl: debug: libxl_device.c:296:libxl__device_disk_set_backend: Disk vdev=xvda3, using backend phy
libxl: debug: libxl_create.c:675:initiate_domain_create: running bootloader
libxl: debug: libxl_bootloader.c:327:libxl__bootloader_run: no bootloader configured, using user supplied kernel
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba02bd8: deregister unregistered
libxl: debug: libxl_x86.c:82:e820_sanitize: Memory: 1048576kB End of RAM: 0x20000 (PFN) Delta: 524288kB, PCI start: 524288kB (0x20000 PFN), Balloon 0kB
libxl: debug: libxl_x86.c:201:e820_sanitize: : [0 -> 20000] RAM
libxl: debug: libxl_x86.c:201:e820_sanitize: : [20000 -> 20200] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [20200 -> 40000] Unusable
libxl: debug: libxl_x86.c:201:e820_sanitize: : [40000 -> 40200] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [40200 -> db9f0] Unusable
libxl: debug: libxl_x86.c:201:e820_sanitize: : [db9f0 -> dc0da] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dc0da -> dc1f9] ACPI NVS
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dc1f9 -> dc651] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dc651 -> dc652] Unusable
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dc652 -> dc695] ACPI NVS
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dc695 -> dcdba] Unusable
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dcdba -> dcff2] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dcff2 -> dd000] Unusable
libxl: debug: libxl_x86.c:201:e820_sanitize: : [dd800 -> dfa00] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [f8000 -> fc000] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [fec00 -> fec01] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [fed00 -> fed04] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [fed1c -> fed20] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [fee00 -> fee01] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [fee01 -> fef00] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [ff000 -> 100000] Reserved
libxl: debug: libxl_x86.c:201:e820_sanitize: : [100000 -> 120000] RAM
domainbuilder: detail: xc_dom_allocate: cmdline="", features="(null)"
libxl: debug: libxl_dom.c:341:libxl__build_pv: pv kernel mapped 0 path /usr/lib/xen/boot/pv-grub-x86_64.gz
domainbuilder: detail: xc_dom_kernel_file: filename="/usr/lib/xen/boot/pv-grub-x86_64.gz"
domainbuilder: detail: xc_dom_malloc_filemap : 1240 kB
domainbuilder: detail: xc_dom_malloc : 15110 kB
domainbuilder: detail: xc_dom_do_gunzip: unzip ok, 0x13631e -> 0xec1ae1
domainbuilder: detail: xc_dom_ramdisk_file: filename="/etc/xen/guests/grub.d/voip.grub"
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_probe_bzimage_kernel: kernel is not a bzImage
domainbuilder: detail: loader probe failed
domainbuilder: detail: xc_dom_find_loader: trying ELF-generic loader ...
domainbuilder: detail: loader probe OK
xc: detail: elf_parse_binary: phdr: paddr=0x0 memsz=0x9a96e0
xc: detail: elf_parse_binary: memory: 0x0 -> 0x9a96e0
xc: detail: elf_xen_parse: __xen_guest: "GUEST_OS=Mini-OS,XEN_VER=xen-3.0,VIRT_BASE=0x0,ELF_PADDR_OFFSET=0x0,HYPERCALL_PAGE=0x2,LOADER=generic"
xc: detail: elf_xen_parse_guest_info: GUEST_OS="Mini-OS"
xc: detail: elf_xen_parse_guest_info: XEN_VER="xen-3.0"
xc: detail: elf_xen_parse_guest_info: VIRT_BASE="0x0"
xc: detail: elf_xen_parse_guest_info: ELF_PADDR_OFFSET="0x0"
xc: detail: elf_xen_parse_guest_info: HYPERCALL_PAGE="0x2"
xc: detail: elf_xen_parse_guest_info: LOADER="generic"
xc: detail: elf_xen_addr_calc_check: addresses:
xc: detail: virt_base = 0x0
xc: detail: elf_paddr_offset = 0x0
xc: detail: virt_offset = 0x0
xc: detail: virt_kstart = 0x0
xc: detail: virt_kend = 0x9a96e0
xc: detail: virt_entry = 0x0
xc: detail: p2m_base = 0xffffffffffffffff
domainbuilder: detail: xc_dom_parse_elf_kernel: xen-3.0-x86_64: 0x0 -> 0x9a96e0
domainbuilder: detail: xc_dom_mem_init: mem 1024 MB, pages 0x40000 pages, 4k each
domainbuilder: detail: xc_dom_mem_init: 0x40000 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 : 2048 kB
domainbuilder: detail: xc_dom_build_image: called
domainbuilder: detail: xc_dom_alloc_segment: kernel : 0x0 -> 0x9aa000 (pfn 0x0 + 0x9aa pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x0+0x9aa at 0x7fe377817000
xc: detail: elf_load_binary: phdr 0 at 0x7fe377817000 -> 0x7fe3781c06e0
domainbuilder: detail: xc_dom_alloc_segment: ramdisk : 0x9aa000 -> 0x9ab000 (pfn 0x9aa + 0x1 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x9aa+0x1 at 0x7fe37b7ce000
domainbuilder: detail: xc_dom_alloc_segment: phys2mach : 0x9ab000 -> 0xbab000 (pfn 0x9ab + 0x200 pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x9ab+0x200 at 0x7fe377617000
domainbuilder: detail: xc_dom_alloc_page : start info : 0xbab000 (pfn 0xbab)
domainbuilder: detail: xc_dom_alloc_page : xenstore : 0xbac000 (pfn 0xbac)
domainbuilder: detail: xc_dom_alloc_page : console : 0xbad000 (pfn 0xbad)
domainbuilder: detail: nr_page_tables: 0x0000ffffffffffff/48: 0x0000000000000000 -> 0x0000ffffffffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x0000007fffffffff/39: 0x0000000000000000 -> 0x0000007fffffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x000000003fffffff/30: 0x0000000000000000 -> 0x000000003fffffff, 1 table(s)
domainbuilder: detail: nr_page_tables: 0x00000000001fffff/21: 0x0000000000000000 -> 0x0000000000ffffff, 8 table(s)
domainbuilder: detail: xc_dom_alloc_segment: page tables : 0xbae000 -> 0xbb9000 (pfn 0xbae + 0xb pages)
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0xbae+0xb at 0x7fe37b680000
domainbuilder: detail: xc_dom_alloc_page : boot stack : 0xbb9000 (pfn 0xbb9)
domainbuilder: detail: xc_dom_build_image : virt_alloc_end : 0xbba000
domainbuilder: detail: xc_dom_build_image : virt_pgtab_end : 0x1000000
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 0x40000
domainbuilder: detail: clear_page: pfn 0xbad, mfn 0x71aabe
domainbuilder: detail: clear_page: pfn 0xbac, mfn 0x71aabf
domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0xbab+0x1 at 0x7fe37b7cb000
domainbuilder: detail: start_info_x86_64: called
domainbuilder: detail: setup_hypercall_page: vaddr=0x2000 pfn=0x2
domainbuilder: detail: domain builder memory footprint
domainbuilder: detail: allocated
domainbuilder: detail: malloc : 17231 kB
domainbuilder: detail: anon mmap : 0 bytes
domainbuilder: detail: mapped
domainbuilder: detail: file mmap : 1241 kB
domainbuilder: detail: domU mmap : 11996 kB
domainbuilder: detail: arch_setup_bootlate: shared_info: pfn 0x0, mfn 0xdb70f
domainbuilder: detail: shared_info_x86_64: called
domainbuilder: detail: vcpu_x86_64: called
domainbuilder: detail: vcpu_x86_64: cr3: pfn 0xbae mfn 0x71aabd
domainbuilder: detail: launch_vm: called, ctxt=0x7fff80e7a330
domainbuilder: detail: xc_dom_release: called
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda1 spec.backend=phy
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba04098 wpath=/local/domain/0/backend/vbd/4/51713/state token=3/0: register slotnum=3
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda2 spec.backend=phy
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda2 spec.backend=phy
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba050b8 wpath=/local/domain/0/backend/vbd/4/51714/state token=2/1: register slotnum=2
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda3 spec.backend=phy
libxl: debug: libxl_device.c:257:libxl__device_disk_set_backend: Disk vdev=xvda3 spec.backend=phy
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51715/state token=1/2: register slotnum=1
libxl: debug: libxl_create.c:1243:do_domain_create: ao 0x7fe37ba02850: inprogress: poller=0x7fe37ba03d70, flags=i
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba04098 wpath=/local/domain/0/backend/vbd/4/51713/state token=3/0: event epath=/local/domain/0/backend/vbd/4/51713/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51713/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba04098 wpath=/local/domain/0/backend/vbd/4/51713/state token=3/0: deregister slotnum=3
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba04098: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block add
libxl: debug: libxl_event.c:472:watchfd_callback: watch epath=/local/domain/0/backend/vbd/4/51713/state token=3/0: empty slot
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba050b8 wpath=/local/domain/0/backend/vbd/4/51714/state token=2/1: event epath=/local/domain/0/backend/vbd/4/51714/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51714/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba050b8 wpath=/local/domain/0/backend/vbd/4/51714/state token=2/1: deregister slotnum=2
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba050b8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block add
libxl: debug: libxl_event.c:472:watchfd_callback: watch epath=/local/domain/0/backend/vbd/4/51714/state token=2/1: empty slot
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51715/state token=1/2: event epath=/local/domain/0/backend/vbd/4/51715/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51715/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51715/state token=1/2: deregister slotnum=1
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba048a8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block add
libxl: debug: libxl_event.c:472:watchfd_callback: watch epath=/local/domain/0/backend/vbd/4/51715/state token=1/2: empty slot
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vif/4/0/state token=1/3: register slotnum=1
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vif/4/0/state token=1/3: event epath=/local/domain/0/backend/vif/4/0/state
libxl: debug: libxl_event.c:647:devstate_watch_callback: backend /local/domain/0/backend/vif/4/0/state wanted state 2 still waiting state 1
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vif/4/0/state token=1/3: event epath=/local/domain/0/backend/vif/4/0/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vif/4/0/state wanted state 2 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vif/4/0/state token=1/3: deregister slotnum=1
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba091e8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/vif-bridge online
libxl: error: libxl_pci.c:992:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:09:02.0
libxl: debug: libxl_pci.c:81:libxl__create_pci_backend: Creating pci backend
libxl: debug: libxl_event.c:1737:libxl__ao_progress_report: ao 0x7fe37ba02850: progress report: ignored
libxl: debug: libxl_event.c:1569:libxl__ao_complete: ao 0x7fe37ba02850: complete, rc=0
libxl: debug: libxl_event.c:1541:libxl__ao__destroy: ao 0x7fe37ba02850: destroy
Waiting for domain voip (domid 4) to die [pid 2409]
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba007e0 wpath=@releaseDomain token=1/4: register slotnum=1
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba007e0 wpath=@releaseDomain token=1/4: event epath=@releaseDomain
libxl: debug: libxl.c:1000:domain_death_xswatch_callback: [evg=0x7fe37ba08900:4] from domid=4 nentries=1 rc=1
libxl: debug: libxl.c:1011:domain_death_xswatch_callback: [evg=0x7fe37ba08900:4] got=domaininfos[0] got->domain=4
libxl: debug: libxl.c:1038:domain_death_xswatch_callback: exists shutdown_reported=0 dominf.flags=ffff0020
libxl: debug: libxl.c:1004:domain_death_xswatch_callback: [evg=0] all reported
libxl: debug: libxl.c:1068:domain_death_xswatch_callback: domain death search done
<NOTE: this is after the start - no further output until shutdown -h now from ssh connection>
Domain 4 has shut down, reason code 0 0x0
Action for shutdown reason code 0 is destroy
Domain 4 needs to be cleaned up: destroying the domain
libxl: debug: libxl.c:1252:libxl_domain_destroy: ao 0x7fe37ba02850: create: how=(nil) callback=(nil) poller=0x7fe37ba03d70
libxl: error: libxl_pci.c:1250:do_pci_remove: xc_domain_irq_permission irq=17
<NOTE: at this point a 10s pause happens>
libxl: error: libxl_device.c:1134:libxl__wait_for_backend_deprecated: Backend /local/domain/0/backend/pci/4/0 not ready
libxl: debug: libxl_pci.c:204:libxl__device_pci_remove_xenstore: pci backend at /local/domain/0/backend/pci/4/0 is not ready
libxl: error: libxl_pci.c:1250:do_pci_remove: xc_domain_irq_permission irq=16
<NOTE: at this point a 10s pause happens>
libxl: error: libxl_device.c:1134:libxl__wait_for_backend_deprecated: Backend /local/domain/0/backend/pci/4/0 not ready
libxl: debug: libxl_pci.c:174:libxl__device_pci_remove_xenstore: pci backend at /local/domain/0/backend/pci/4/0 is not ready
libxl: error: libxl_pci.c:1250:do_pci_remove: xc_domain_irq_permission irq=18
libxl: error: libxl_pci.c:992:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:09:02.0
<NOTE: at this point a 10s pause happens>
libxl: error: libxl_device.c:1134:libxl__wait_for_backend_deprecated: Backend /local/domain/0/backend/pci/4/0 not ready
libxl: debug: libxl_pci.c:174:libxl__device_pci_remove_xenstore: pci backend at /local/domain/0/backend/pci/4/0 is not ready
libxl: error: libxl_pci.c:1250:do_pci_remove: xc_domain_irq_permission irq=23
<NOTE: at this point a 10s pause happens>
libxl: error: libxl_device.c:1134:libxl__wait_for_backend_deprecated: Backend /local/domain/0/backend/pci/4/0 not ready
libxl: debug: libxl_pci.c:174:libxl__device_pci_remove_xenstore: pci backend at /local/domain/0/backend/pci/4/0 is not ready
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51713/state token=2/5: register slotnum=2
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vbd/4/51714/state token=3/6: register slotnum=3
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba0c298 wpath=/local/domain/0/backend/vbd/4/51715/state token=0/7: register slotnum=0
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba043c8 wpath=/local/domain/0/backend/vif/4/0/state token=19/8: register slotnum=19
libxl: debug: libxl_event.c:559:libxl__ev_xswatch_register: watch w=0x7fe37ba05408 wpath=/local/domain/0/backend/pci/4/0/state token=18/9: register slotnum=18
libxl: debug: libxl.c:1261:libxl_domain_destroy: ao 0x7fe37ba02850: inprogress: poller=0x7fe37ba03d70, flags=i
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51713/state token=2/5: event epath=/local/domain/0/backend/vbd/4/51713/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51713/state wanted state 6 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba048a8 wpath=/local/domain/0/backend/vbd/4/51713/state token=2/5: deregister slotnum=2
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba048a8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block remove
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vbd/4/51714/state token=3/6: event epath=/local/domain/0/backend/vbd/4/51714/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51714/state wanted state 6 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba091e8 wpath=/local/domain/0/backend/vbd/4/51714/state token=3/6: deregister slotnum=3
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba091e8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block remove
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba0c298 wpath=/local/domain/0/backend/vbd/4/51715/state token=0/7: event epath=/local/domain/0/backend/vbd/4/51715/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vbd/4/51715/state wanted state 6 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba0c298 wpath=/local/domain/0/backend/vbd/4/51715/state token=0/7: deregister slotnum=0
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba0c298: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/block remove
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba043c8 wpath=/local/domain/0/backend/vif/4/0/state token=19/8: event epath=/local/domain/0/backend/vif/4/0/state
libxl: debug: libxl_event.c:643:devstate_watch_callback: backend /local/domain/0/backend/vif/4/0/state wanted state 6 ok
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba043c8 wpath=/local/domain/0/backend/vif/4/0/state token=19/8: deregister slotnum=19
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba043c8: deregister unregistered
libxl: debug: libxl_device.c:959:device_hotplug: calling hotplug script: /etc/xen/scripts/vif-bridge offline
libxl: debug: libxl_event.c:503:watchfd_callback: watch w=0x7fe37ba05408 wpath=/local/domain/0/backend/pci/4/0/state token=18/9: event epath=/local/domain/0/backend/pci/4/0/state
libxl: debug: libxl_event.c:647:devstate_watch_callback: backend /local/domain/0/backend/pci/4/0/state wanted state 6 still waiting state 5
<NOTE1: the above line is new compared to the old output file>
<NOTE2: at this point a new 10s delay happens - which is only visible here as the prompt in dom0 has already returned>
<NOTE3: the next line differs from the old output file>
libxl: debug: libxl_event.c:661:devstate_timeout: backend /local/domain/0/backend/pci/4/0/state wanted state 6 timed out
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba05408 wpath=/local/domain/0/backend/pci/4/0/state token=18/9: deregister slotnum=18
libxl: debug: libxl_event.c:608:libxl__ev_xswatch_deregister: watch w=0x7fe37ba05408: deregister unregistered
<NOTE: the following 2 lines are new compared to the old output file>
libxl: error: libxl_device.c:894:device_backend_callback: unable to remove device with path /local/domain/0/backend/pci/4/0
libxl: error: libxl.c:1452:devices_destroy_cb: libxl__devices_destroy failed for 4
libxl: debug: libxl_event.c:1569:libxl__ao_complete: ao 0x7fe37ba02850: complete, rc=0
libxl: debug: libxl_event.c:1541:libxl__ao__destroy: ao 0x7fe37ba02850: destroy
Done. Exiting now
libxl: debug: libxl_event.c:596:libxl__ev_xswatch_deregister: watch w=0x7fe37ba007e0 wpath=@releaseDomain token=1/4: deregister slotnum=1
xc: debug: hypercall buffer: total allocations:554 total releases:554
xc: debug: hypercall buffer: current allocations:0 maximum allocations:2
xc: debug: hypercall buffer: cache current size:2
xc: debug: hypercall buffer: cache hits:548 misses:2 toobig:4
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-03-20 19:32 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5325B828.1060303@web2web.at>
[not found] ` <1395050430.4122.29.camel@kazak.uk.xensource.com>
[not found] ` <53273B3C.40707@web2web.at>
2014-03-18 10:15 ` [Xen-users] substantial shutdown delay for PV guests with PCI -passthrough Ian Campbell
2014-03-18 13:01 ` Atom2
2014-03-18 15:07 ` Ian Campbell
2014-03-19 0:25 ` Atom2
2014-03-19 11:26 ` Ian Campbell
2014-03-19 13:00 ` Konrad Rzeszutek Wilk
2014-03-19 14:03 ` Atom2
2014-03-19 15:45 ` Ian Jackson
2014-03-20 2:31 ` Atom2
2014-03-20 11:52 ` Ian Jackson
2014-03-20 13:53 ` Pasi Kärkkäinen
2014-03-20 15:28 ` Ian Jackson
2014-03-20 19:34 ` Atom2
2014-03-20 19:32 ` Atom2 [this message]
2014-03-21 18:11 ` Ian Jackson
2014-03-21 19:39 ` Atom2
2014-04-02 14:44 ` Ian Jackson
2014-04-02 15:17 ` Atom2
2014-04-18 21:47 ` Atom2
2014-04-19 0:12 ` Konrad Rzeszutek Wilk
2014-04-19 18:59 ` Atom2
2014-04-22 10:44 ` George Dunlap
2014-04-22 12:02 ` Atom2
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=532B425F.4010701@web2web.at \
--to=ariel.atom2@web2web.at \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xen.org \
--cc=xen-users@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.