[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