[CRIU] [PATCH] zdtm: add ability to execute non-namespacess tests concurrently

Ruslan Kuprieiev kupruser at gmail.com
Wed Aug 13 08:03:32 PDT 2014


13.08.2014 17:50, Andrew Vagin пишет:
> On Wed, Aug 13, 2014 at 05:43:16PM +0300, Ruslan Kuprieiev wrote:
>> 13.08.2014 14:19, Ruslan Kuprieiev пишет:
>>> 08.08.2014 21:31, Andrey Vagin пишет:
>>>> For that zdtm.sh is executed in pidns to avoid pid conflicts.
>>>>
>>>> Cc: Christopher Covington <cov at codeaurora.org>
>>>> Signed-off-by: Andrey Vagin <avagin at openvz.org>
>>>> ---
>>>>   test/Makefile | 10 +++++-----
>>>>   test/zdtm.sh  | 21 +++++++++++++++++++++
>>>>   2 files changed, 26 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/test/Makefile b/test/Makefile
>>>> index 351b37b..5d04805 100644
>>>> --- a/test/Makefile
>>>> +++ b/test/Makefile
>>>> @@ -16,11 +16,9 @@ other: .FORCE
>>>>           $(MAKE) -C $$t run || break;    \
>>>>       done                    \
>>>>   -zdtm: .FORCE
>>>> +zdtm: .FORCE
>>>>       $(MAKE) zdtm_ns
>>>> -    for t in $(shell echo "$(TST)" | tr ' ' '\n' | grep -Pv $(EXP)); do
>>>> \
>>>> -        $(MAKE) $$t || break;    \
>>>> -    done
>>>> +    $(MAKE) zdtm_nons
>>>>   .PHONY: zdtm
>>>>     fault-injection: .FORCE
>>>> @@ -28,7 +26,9 @@ fault-injection: .FORCE
>>>>   .PHONY: fault-injection
>>>>     zdtm_ns: $(shell echo "$(TST)" | tr ' ' '\n' | grep -P $(EXP))
>>>> +zdtm_nons: $(shell echo "$(TST)" | tr ' ' '\n' | grep -vP $(EXP))
>>>> +
>>>>   $(TST):
>>>> -    ./zdtm.sh ${ZDTM_ARGS} $(@) &> $(subst /,_,$@).log || \
>>>> +    ./zdtm.sh --ct ${ZDTM_ARGS} $(@) &> $(subst /,_,$@).log || \
>>>>       { flock Makefile cat $(subst /,_,$@).log; exit 1; }
>>>>   .PHONY: zdtm_ns
>>>> diff --git a/test/zdtm.sh b/test/zdtm.sh
>>>> index d1a710d..b6c8095 100755
>>>> --- a/test/zdtm.sh
>>>> +++ b/test/zdtm.sh
>>>> @@ -762,6 +762,7 @@ Options:
>>>>       -P : Make pre-dump instead of dump on all iterations except the
>>>> last one
>>>>       -s : Make iterative snapshots. Only the last one will be checked.
>>>>       --auto-dedup : Make auto-dedup on restore. Check sizes of pages
>>>> imges, it must be zero.
>>>> +    --ct : re-execute $0 in a container
>>>>   EOF
>>>>   }
>>>>   @@ -868,6 +869,26 @@ while :; do
>>>>           usage
>>>>           exit 0
>>>>           ;;
>>>> +      --ct)
>>>> +        [ -z "$ZDTM_SH_IN_CT" ] && {
>>>> +            export ZDTM_SH_IN_CT=1
>>>> +            shift
>>>> +            args="$@"
>>>> +            # pidns is used to avoid conflicts
>>>> +            # mntns is used to mount /proc
>>>> +            # net is used to avoid conflicts of parasite sockets
>>>> +            unshare --pid --mount --ipc --net -- bash -c "
>>>> +
>>> On ubuntu server 14.04 "make test" leads to error "unshare: unrecognized
>>> option '--pid'".
>>>
>> Same issue on desktop version. unshare from util-linux package doesn't have
>> option '--pid'.
> Pls, look at "[CRIU] [PATCH] zdtm: add a small program to create a zdtm
> container".

Oh, sorry, didn't noticed it.
Yep, that patch solves the issue.
I hope, it will be commited soon.

Thanks.

>>>>                 (
>>>> +                    ip link set up dev lo &&
>>>> +                    mount --make-rprivate / &&
>>>> +                    umount -l /proc &&
>>>> +                    mount -t proc proc /proc/ &&
>>>> +                    ./zdtm.sh $args
>>>> +                )"
>>>> +            exit
>>>> +        }
>>>> +        shift
>>>> +        ;;
>>>>         -*)
>>>>           echo "Unrecognized option $1, aborting!" 1>&2
>>>>           usage



More information about the CRIU mailing list