All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [libvirt] [PATCH 2/2] libxl: s/virDomainObjListFindByID/virDomainObjListFindByUUID/
       [not found] ` <b1a2334cca8fbb1c147b9f8a7a362115f8dfa855.1429863712.git.mprivozn@redhat.com>
@ 2015-04-24 19:09   ` Jim Fehlig
  0 siblings, 0 replies; only message in thread
From: Jim Fehlig @ 2015-04-24 19:09 UTC (permalink / raw)
  To: Michal Privoznik; +Cc: libvir-list, xen-devel

Michal Privoznik wrote:
> Like in previous commit, lets use FindByUUID() instead of
> ListFindByID(). The latter is suboptimal as it needs to iterate over
> each item in the domain object list, lock it and compare the IDs. If
> an object is already locked, we must wait until it's unlocked. During
> this wait, we keep the whole list locked, and potentially block other
> thread trying to access the list.
>
> There's no such problem with ListFindByUUID() since UUID is the key to
> the hash table, therefore it can be looked up without need for locking
> each single domain object.
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  src/libxl/libxl_domain.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
> index 3039427..55d1313 100644
> --- a/src/libxl/libxl_domain.c
> +++ b/src/libxl/libxl_domain.c
> @@ -494,7 +494,7 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
>      if (xl_reason == LIBXL_SHUTDOWN_REASON_SUSPEND)
>          goto error;
>  
> -    vm = virDomainObjListFindByID(driver->domains, event->domid);
> +    vm = virDomainObjListFindByUUID(driver->domains, event->domuuid.uuid);
>   

Sadly, this won't work. event->domuuid is not populated when libxl
invokes the event handler

Breakpoint 1, libxlDomainEventHandler (data=0x7fffe0012310,
event=0x55555588abb0)
at libxl/libxl_domain.c:477
(gdb) p event->domuuid
$2 = {uuid = '\000' <repeats 15 times>}

Regards,
Jim

>      if (!vm) {
>          VIR_INFO("Received event for unknown domain ID %d", event->domid);
>          goto error;
>   

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-04-24 19:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <cover.1429863712.git.mprivozn@redhat.com>
     [not found] ` <b1a2334cca8fbb1c147b9f8a7a362115f8dfa855.1429863712.git.mprivozn@redhat.com>
2015-04-24 19:09   ` [libvirt] [PATCH 2/2] libxl: s/virDomainObjListFindByID/virDomainObjListFindByUUID/ Jim Fehlig

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.