[CRIU] [PATCH] test/zdtm: do not allow running with --lazy-pages on kernel without uffd
Pavel Emelyanov
xemul at virtuozzo.com
Mon Jul 10 12:20:00 MSK 2017
On 07/10/2017 11:48 AM, Mike Rapoport wrote:
> On Mon, Jul 10, 2017 at 11:32:09AM +0300, Pavel Emelyanov wrote:
>> 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>
>
> It will return 1 even if uffd is present, but it still does not have
> non-cooperative events. For instance, in travis ;-)
Then there should be one more feature in criu, not just lazy_pages :) Parsing
stdout of it will break some day soon.
-- Pavel
>>> + 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