All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] libxl: create pci backend only when there are pci devices
@ 2011-09-14 12:19 Roger Pau Monne
  2011-09-14 12:31 ` Ian Campbell
  2011-09-14 13:49 ` Christoph Egger
  0 siblings, 2 replies; 5+ messages in thread
From: Roger Pau Monne @ 2011-09-14 12:19 UTC (permalink / raw)
  To: xen-devel

# HG changeset patch
# User Roger Pau Monne <roger.pau@entel.upc.edu>
# Date 1316002720 -7200
# Node ID 63e254468d6e8d81baeafaed68f05791dc21eb4e
# Parent  ac33d68e89767d49113824e5661c49a5465a18e7
libxl: create pci backend only when there are pci devices.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>

diff -r ac33d68e8976 -r 63e254468d6e tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c	Thu Sep 08 15:13:06 2011 +0100
+++ b/tools/libxl/libxl_create.c	Wed Sep 14 14:18:40 2011 +0200
@@ -584,12 +584,14 @@ static int do_domain_create(libxl__gc *g
     for (i = 0; i < d_config->num_pcidevs; i++)
         libxl__device_pci_add(gc, domid, &d_config->pcidevs[i], 1);
 
-    ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
-                                    d_config->num_pcidevs);
-    if (ret < 0) {
-        LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
-                   "libxl_create_pci_backend failed: %d", ret);
-        goto error_out;
+    if (d_config->num_pcidevs > 0) {
+        ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
+                                        d_config->num_pcidevs);
+        if (ret < 0) {
+            LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                "libxl_create_pci_backend failed: %d", ret);
+            goto error_out;
+        }
     }
 
     if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV &&

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] libxl: create pci backend only when there are pci devices
  2011-09-14 12:19 [PATCH] libxl: create pci backend only when there are pci devices Roger Pau Monne
@ 2011-09-14 12:31 ` Ian Campbell
  2011-09-14 13:49 ` Christoph Egger
  1 sibling, 0 replies; 5+ messages in thread
From: Ian Campbell @ 2011-09-14 12:31 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: xen-devel

On Wed, 2011-09-14 at 08:19 -0400, Roger Pau Monne wrote:
> # HG changeset patch
> # User Roger Pau Monne <roger.pau@entel.upc.edu>
> # Date 1316002720 -7200
> # Node ID 63e254468d6e8d81baeafaed68f05791dc21eb4e
> # Parent  ac33d68e89767d49113824e5661c49a5465a18e7
> libxl: create pci backend only when there are pci devices.

I think I recall discussing this a way back but I don't recall the
specific rationale, can you add something to the commit message please?

Also does this continue to allow a subsequent pci hotplug to work? I
expect it does but it would be useful to check.

Ian.

> 
> Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
> 
> diff -r ac33d68e8976 -r 63e254468d6e tools/libxl/libxl_create.c
> --- a/tools/libxl/libxl_create.c	Thu Sep 08 15:13:06 2011 +0100
> +++ b/tools/libxl/libxl_create.c	Wed Sep 14 14:18:40 2011 +0200
> @@ -584,12 +584,14 @@ static int do_domain_create(libxl__gc *g
>      for (i = 0; i < d_config->num_pcidevs; i++)
>          libxl__device_pci_add(gc, domid, &d_config->pcidevs[i], 1);
>  
> -    ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
> -                                    d_config->num_pcidevs);
> -    if (ret < 0) {
> -        LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
> -                   "libxl_create_pci_backend failed: %d", ret);
> -        goto error_out;
> +    if (d_config->num_pcidevs > 0) {
> +        ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
> +                                        d_config->num_pcidevs);
> +        if (ret < 0) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
> +                "libxl_create_pci_backend failed: %d", ret);
> +            goto error_out;
> +        }
>      }
>  
>      if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV &&
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] libxl: create pci backend only when there are pci devices
  2011-09-14 12:19 [PATCH] libxl: create pci backend only when there are pci devices Roger Pau Monne
  2011-09-14 12:31 ` Ian Campbell
@ 2011-09-14 13:49 ` Christoph Egger
  2011-09-14 15:02   ` Roger Pau Monné
  1 sibling, 1 reply; 5+ messages in thread
From: Christoph Egger @ 2011-09-14 13:49 UTC (permalink / raw)
  To: Roger Pau Monne; +Cc: xen-devel


If you want to have this patch applied to xen-4.1 then please
mention this explicitely.

Christoph

On 09/14/11 14:19, Roger Pau Monne wrote:
> # HG changeset patch
> # User Roger Pau Monne<roger.pau@entel.upc.edu>
> # Date 1316002720 -7200
> # Node ID 63e254468d6e8d81baeafaed68f05791dc21eb4e
> # Parent  ac33d68e89767d49113824e5661c49a5465a18e7
> libxl: create pci backend only when there are pci devices.
>
> Signed-off-by: Roger Pau Monne<roger.pau@entel.upc.edu>
>
> diff -r ac33d68e8976 -r 63e254468d6e tools/libxl/libxl_create.c
> --- a/tools/libxl/libxl_create.c	Thu Sep 08 15:13:06 2011 +0100
> +++ b/tools/libxl/libxl_create.c	Wed Sep 14 14:18:40 2011 +0200
> @@ -584,12 +584,14 @@ static int do_domain_create(libxl__gc *g
>       for (i = 0; i<  d_config->num_pcidevs; i++)
>           libxl__device_pci_add(gc, domid,&d_config->pcidevs[i], 1);
>
> -    ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
> -                                    d_config->num_pcidevs);
> -    if (ret<  0) {
> -        LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
> -                   "libxl_create_pci_backend failed: %d", ret);
> -        goto error_out;
> +    if (d_config->num_pcidevs>  0) {
> +        ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
> +                                        d_config->num_pcidevs);
> +        if (ret<  0) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
> +                "libxl_create_pci_backend failed: %d", ret);
> +            goto error_out;
> +        }
>       }
>
>       if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_PV&&


-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] libxl: create pci backend only when there are pci devices
  2011-09-14 13:49 ` Christoph Egger
@ 2011-09-14 15:02   ` Roger Pau Monné
  2011-09-22  6:30     ` Roger Pau Monné
  0 siblings, 1 reply; 5+ messages in thread
From: Roger Pau Monné @ 2011-09-14 15:02 UTC (permalink / raw)
  To: Christoph Egger; +Cc: xen-devel

This was commited as a part of another patch, and I've decided to
submit it alone. This solves a problem with NetBSD Dom0 and at least
Linux DomU, the DomU kernel waited a very long time at XENBUS init,
because it was unable to attach the PCI devices (although there were
no PCI devices, only an empty pci entry in xenstore). This prevents
libxl from adding the pci entries to xenstore if there are no PCI
devices and solves the problem. I don't have any Linux boxes, but I
think this should not break anything.

If the patch is correct, please add it to xen-4.1 too.

Regards, Roger.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] libxl: create pci backend only when there are pci devices
  2011-09-14 15:02   ` Roger Pau Monné
@ 2011-09-22  6:30     ` Roger Pau Monné
  0 siblings, 0 replies; 5+ messages in thread
From: Roger Pau Monné @ 2011-09-22  6:30 UTC (permalink / raw)
  To: Christoph Egger; +Cc: xen-devel

Can this patch be applied?

Thanks, Roger.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-09-22  6:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-14 12:19 [PATCH] libxl: create pci backend only when there are pci devices Roger Pau Monne
2011-09-14 12:31 ` Ian Campbell
2011-09-14 13:49 ` Christoph Egger
2011-09-14 15:02   ` Roger Pau Monné
2011-09-22  6:30     ` Roger Pau Monné

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.