qemu-devel.nongnu.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).