All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: junyan.he@gmx.com
Cc: qemu-devel@nongnu.org, Haozhong Zhang <haozhong.zhang@intel.com>,
	xiaoguangrong.eric@gmail.com, crosthwaite.peter@gmail.com,
	mst@redhat.com, dgilbert@redhat.com, ehabkost@redhat.com,
	quintela@redhat.com, Junyan He <junyan.he@intel.com>,
	stefanha@redhat.com, pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH 4/7 V8] configure: add libpmem support
Date: Tue, 10 Jul 2018 10:49:14 +0200	[thread overview]
Message-ID: <20180710104914.1ca245db@redhat.com> (raw)
In-Reply-To: <1531202789-31006-5-git-send-email-junyan.he@gmx.com>

On Tue, 10 Jul 2018 14:06:26 +0800
junyan.he@gmx.com wrote:

> From: Junyan He <junyan.he@intel.com>
> 
> Add a pair of configure options --{enable,disable}-libpmem to control
> whether QEMU is compiled with PMDK libpmem [1].
> 
> QEMU may write to the host persistent memory (e.g. in vNVDIMM label
> emulation and live migration), so it must take the proper operations
> to ensure the persistence of its own writes. Depending on the CPU
> models and available instructions, the optimal operation can vary [2].
> PMDK libpmem have already implemented those operations on multiple CPU
> models (x86 and ARM) and the logic to select the optimal ones, so QEMU
> can just use libpmem rather than re-implement them.
> 
> [1] PMDK (formerly known as NMVL), https://github.com/pmem/pmdk/
pls use document names in addition to links that could be found using search engine

> [2] https://github.com/pmem/pmdk/blob/38bfa652721a37fd94c0130ce0e3f5d8baa3ed40/src/libpmem/pmem.c#L33
it probably would be better to point out a specific specs/chapters
that describe difference. since the link can disappear and line change
so reader of commit message won't have any clue what [2] meant.

> 
> Signed-off-by: Junyan He <junyan.he@intel.com>
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>

patch probably should be reordered and placed before 
[PATCH 3/7 V8] hostmem-file: add the 'pmem' option

> ---
>  configure | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/configure b/configure
> index 2a7796e..1c9288b 100755
> --- a/configure
> +++ b/configure
> @@ -475,6 +475,7 @@ vxhs=""
>  libxml2=""
>  docker="no"
>  debug_mutex="no"
> +libpmem=""
>  
>  # cross compilers defaults, can be overridden with --cross-cc-ARCH
>  cross_cc_aarch64="aarch64-linux-gnu-gcc"
> @@ -1435,6 +1436,10 @@ for opt do
>    ;;
>    --disable-debug-mutex) debug_mutex=no
>    ;;
> +  --enable-libpmem) libpmem=yes
> +  ;;
> +  --disable-libpmem) libpmem=no
> +  ;;
>    *)
>        echo "ERROR: unknown option $opt"
>        echo "Try '$0 --help' for more information"
> @@ -1710,6 +1715,7 @@ disabled with --disable-FEATURE, default is enabled if available:
>    vhost-user      vhost-user support
>    capstone        capstone disassembler support
>    debug-mutex     mutex debugging support
> +  libpmem         libpmem support
>  
>  NOTE: The object files are built at the place where configure is launched
>  EOF
> @@ -5546,6 +5552,24 @@ if has "docker"; then
>  fi
>  
>  ##########################################
> +# check for libpmem
> +
> +if test "$libpmem" != "no"; then
> +	if $pkg_config --exists "libpmem"; then
> +		libpmem="yes"
> +		libpmem_libs=$($pkg_config --libs libpmem)
> +		libpmem_cflags=$($pkg_config --cflags libpmem)
> +		libs_softmmu="$libs_softmmu $libpmem_libs"
> +		QEMU_CFLAGS="$QEMU_CFLAGS $libpmem_cflags"
> +	else
> +		if test "$libpmem" = "yes" ; then
> +			feature_not_found "libpmem" "Install nvml or pmdk"
> +		fi
> +		libpmem="no"
> +	fi
> +fi
> +
> +##########################################
>  # End of CC checks
>  # After here, no more $cc or $ld runs
>  
> @@ -6010,6 +6034,7 @@ echo "replication support $replication"
>  echo "VxHS block device $vxhs"
>  echo "capstone          $capstone"
>  echo "docker            $docker"
> +echo "libpmem support   $libpmem"
>  
>  if test "$sdl_too_old" = "yes"; then
>  echo "-> Your SDL version is too old - please upgrade to have SDL support"
> @@ -6763,6 +6788,10 @@ if test "$vxhs" = "yes" ; then
>    echo "VXHS_LIBS=$vxhs_libs" >> $config_host_mak
>  fi
>  
> +if test "$libpmem" = "yes" ; then
> +  echo "CONFIG_LIBPMEM=y" >> $config_host_mak
> +fi
> +
>  if test "$tcg_interpreter" = "yes"; then
>    QEMU_INCLUDES="-iquote \$(SRC_PATH)/tcg/tci $QEMU_INCLUDES"
>  elif test "$ARCH" = "sparc64" ; then

  reply	other threads:[~2018-07-10  8:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-10  6:06 [Qemu-devel] [PATCH 0/7 V8] nvdimm: guarantee persistence of QEMU writes to persistent memory junyan.he
2018-07-10  6:06 ` [Qemu-devel] [PATCH 2/7 V8] memory, exec: switch file ram allocation functions to 'flags' parameters junyan.he
2018-07-10  6:06 ` [Qemu-devel] [PATCH 1/7 V8] memory, exec: Expose all memory block related flags junyan.he
2018-07-10  6:06 ` [Qemu-devel] [PATCH 3/7 V8] hostmem-file: add the 'pmem' option junyan.he
2018-07-10  8:49   ` Igor Mammedov
2018-07-10  6:06 ` [Qemu-devel] [PATCH 4/7 V8] configure: add libpmem support junyan.he
2018-07-10  8:49   ` Igor Mammedov [this message]
2018-07-10  6:06 ` [Qemu-devel] [PATCH 5/7 V8] mem/nvdimm: ensure write persistence to PMEM in label emulation junyan.he
2018-07-10  6:06 ` [Qemu-devel] [PATCH 6/7 V8] migration/ram: Add check and info message to nvdimm post copy junyan.he
2018-07-10  6:06 ` [Qemu-devel] [PATCH 7/7 V8] migration/ram: ensure write persistence on loading all data to PMEM junyan.he

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180710104914.1ca245db@redhat.com \
    --to=imammedo@redhat.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=dgilbert@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=haozhong.zhang@intel.com \
    --cc=junyan.he@gmx.com \
    --cc=junyan.he@intel.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rth@twiddle.net \
    --cc=stefanha@redhat.com \
    --cc=xiaoguangrong.eric@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.