qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/3] configure: add libdaxctl support


From: Joao Martins
Subject: Re: [PATCH v2 3/3] configure: add libdaxctl support
Date: Tue, 28 Apr 2020 17:23:06 +0100

On 4/15/20 4:35 AM, Jingqi Liu wrote:
> Add a pair of configure options --{enable,disable}-libdaxctl to control
> whether QEMU is compiled with libdaxctl [1]. Libdaxctl is a utility
> library for managing the device dax subsystem.
> 
> QEMU uses mmap(2) to maps vNVDIMM backends and aligns the mapping
> address to the page size (getpagesize(2)) by default. However, some
> types of backends may require an alignment different than the page
> size. The 'align' option is provided to memory-backend-file to allow
> users to specify the proper alignment.
> 
> For device dax (e.g., /dev/dax0.0), the 'align' option needs to match
> the alignment requirement of the device dax, which can be fetched
> through the libdaxctl APIs.
> 
> [1] Libdaxctl is a part of ndctl project.
> The project's repository is: https://github.com/pmem/ndctl
> 
> For more information about libdaxctl APIs, you can refer to the
> comments in source code of: pmem/ndctl/daxctl/lib/libdaxctl.c.
> 
> Signed-off-by: Jingqi Liu <address@hidden>
> ---
>  configure | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/configure b/configure
> index e225a1e3ff..df1752cf08 100755
> --- a/configure
> +++ b/configure
> @@ -509,6 +509,7 @@ libpmem=""
>  default_devices="yes"
>  plugins="no"
>  fuzzing="no"
> +libdaxctl=""
>  
>  supported_cpu="no"
>  supported_os="no"
> @@ -1601,6 +1602,10 @@ for opt do
>    ;;
>    --gdb=*) gdb_bin="$optarg"
>    ;;
> +  --enable-libdaxctl) libdaxctl=yes
> +  ;;
> +  --disable-libdaxctl) libdaxctl=no
> +  ;;
>    *)
>        echo "ERROR: unknown option $opt"
>        echo "Try '$0 --help' for more information"
> @@ -1894,6 +1899,7 @@ disabled with --disable-FEATURE, default is enabled if 
> available:
>    debug-mutex     mutex debugging support
>    libpmem         libpmem support
>    xkbcommon       xkbcommon support
> +  libdaxctl       libdaxctl support
>  
>  NOTE: The object files are built at the place where configure is launched
>  EOF
> @@ -6190,6 +6196,25 @@ if test "$libpmem" != "no"; then
>       fi
>  fi
>  
> +##########################################
> +# check for libdaxctl
> +
> +if test "$libdaxctl" != "no"; then
> +     if $pkg_config --exists "libdaxctl"; then
> +             libdaxctl="yes"
> +             libdaxctl_libs=$($pkg_config --libs libdaxctl)
> +             libdaxctl_cflags=$($pkg_config --cflags libdaxctl)
> +             libs_softmmu="$libs_softmmu $libdaxctl_libs"
> +             QEMU_CFLAGS="$QEMU_CFLAGS $libdaxctl_cflags"
> +     else
> +             if test "$libdaxctl" = "yes" ; then
> +                     feature_not_found "libdaxctl" "Install libdaxctl"
> +             fi

Region iteration APIs, align and path getter routines are only available since
libdaxctl v56/v57 (the latest is v68).

Not sure how likely this happens in today's distros but if we care about systems
with < v57 we should probably check that
daxctl_region_foreach/daxctl_region_get_align/daxctl_region_get_path symbols
exist? Or alternatively requiring v57 or up which serves as a bandage, but more
long term ... any usage of newer daxctl APIs will require the former.

> +             libdaxctl="no"
> +     fi
> +fi
> +
> +
>  ##########################################
>  # check for slirp
>  
> @@ -6767,6 +6792,7 @@ echo "parallels support $parallels"
>  echo "sheepdog support  $sheepdog"
>  echo "capstone          $capstone"
>  echo "libpmem support   $libpmem"
> +echo "libdaxctl support $libdaxctl"
>  echo "libudev           $libudev"
>  echo "default devices   $default_devices"
>  echo "plugin support    $plugins"
> @@ -7590,6 +7616,10 @@ if test "$libpmem" = "yes" ; then
>    echo "CONFIG_LIBPMEM=y" >> $config_host_mak
>  fi
>  
> +if test "$libdaxctl" = "yes" ; then
> +  echo "CONFIG_LIBDAXCTL=y" >> $config_host_mak
> +fi
> +
>  if test "$bochs" = "yes" ; then
>    echo "CONFIG_BOCHS=y" >> $config_host_mak
>  fi
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]