From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [libvirt] [PATCH] libxl: don't break the build on Xen>=4.5 because of libxl_vcpu_setaffinity() Date: Mon, 30 Jun 2014 19:19:01 +0200 Message-ID: <20140630171856.1453.59964.stgit@Solace> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com To: libvir-list Cc: xen-devel@lists.xensource.com, Ian Jackson , Ian Campbell List-Id: xen-devel@lists.xenproject.org libxl interface for vcpu pinning is changing in Xen 4.5. Basically, libxl_set_vcpuaffinity() now wants one more parameter. That is representative of 'VCPU soft affinity', which libvirt does not use. To mark such change, the macro LIBXL_HAVE_VCPUINFO_SOFT_AFFINITY is defined. Use it as a gate and, if present, re-#define the calls from the old to the new interface, to avoid breaking the build. Signed-off-by: Dario Faggioli Cc: Jim Fehlig Cc: Ian Campbell Cc: Ian Jackson --- src/libxl/libxl_conf.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 6aa36d2..da66b4e 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -55,6 +55,17 @@ # define LIBXL_DUMP_DIR LIBXL_LIB_DIR "/dump" # define LIBXL_BOOTLOADER_PATH BINDIR "/pygrub" +/* libxl interface for setting VCPU affinity changed in 4.5. In fact, a new + * parameter has been added, representative of 'VCPU soft affinity'. If one + * does not care about it (and that's libvirt case), passing NULL is the + * right thing to do. To mark that change, LIBXL_HAVE_VCPUINFO_SOFT_AFFINITY + * is defined. */ +# ifdef LIBXL_HAVE_VCPUINFO_SOFT_AFFINITY +# define libxl_set_vcpuaffinity(ctx, domid, vcpuid, map) \ + libxl_set_vcpuaffinity((ctx), (domid), (vcpuid), (map), NULL) +# define libxl_set_vcpuaffinity_all(ctx, domid, max_vcpus, map) \ + libxl_set_vcpuaffinity_all((ctx), (domid), (max_vcpus), (map), NULL) +# endif typedef struct _libxlDriverPrivate libxlDriverPrivate; typedef libxlDriverPrivate *libxlDriverPrivatePtr;