[CRIU] [PATCH] test/zdtm: do not allow running with --lazy-pages on kernel without uffd

Pavel Emelyanov xemul at virtuozzo.com
Mon Jul 10 11:32:09 MSK 2017


On 07/09/2017 09:12 AM, Mike Rapoport wrote:
> Raise an exception for kernels that do not have userfaultfd. For the
> kernels that have userfaultfd but do not provide non-cooperative events
> (4.3 - 4.10) warn about incomplete feature.
> 
> Fixes: #363
> 
> Signed-off-by: Mike Rapoport <rppt at linux.vnet.ibm.com>
> ---
>  test/zdtm.py | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/test/zdtm.py b/test/zdtm.py
> index 2ee76cd..e6d2701 100755
> --- a/test/zdtm.py
> +++ b/test/zdtm.py
> @@ -1767,6 +1767,16 @@ def run_tests(opts):
>  		if subprocess.Popen(["ip", "netns", "exec", "zdtm_netns", "ip", "link", "set", "up", "dev", "lo"]).wait():
>  			raise Exception("ip link set up dev lo")
>  
> +	if opts['lazy_pages'] or opts['remote_lazy_pages']:
> +		check = subprocess.Popen([criu_bin, "check", "--feature", "lazy_pages"], stderr = subprocess.PIPE)

There's a helper for that:

        if opts['pre'] or opts['snaps']:
                if not criu.check("mem_dirty_track"):
                        print "Tracking memory is not available"
                        return

so you can do it with

	if not criu.check("lazy_pages"):
		<bail-out>

> +		ret = check.wait()
> +		err = ''.join(check.stderr.readlines())
> +		if ret:
> +			if "UFFD is not supported" in err:
> +				raise Exception("UFFD is not supported, cannot run with --lazy-pages")
> +			# Most test will work with 4.3 - 4.10
> +			print "WARNING: UFFD is missing essentail features"
> +
>  	l = launcher(opts, len(torun))
>  	try:
>  		for t in torun:
> 



More information about the CRIU mailing list