[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
>
- [PATCH v2 0/3] fetch the alignment of device dax, Jingqi Liu, 2020/04/14
- [PATCH v2 1/3] exec: fetch the alignment of Linux devdax pmem character device nodes, Jingqi Liu, 2020/04/14
- [PATCH v2 3/3] configure: add libdaxctl support, Jingqi Liu, 2020/04/14
- Re: [PATCH v2 3/3] configure: add libdaxctl support,
Joao Martins <=
- [PATCH v2 2/3] docs/nvdimm: add description of alignment requirement of device dax, Jingqi Liu, 2020/04/14
- Re: [PATCH v2 0/3] fetch the alignment of device dax, Liu, Jingqi, 2020/04/19