zdtm.sh: set correct path for dump files (v3)

Don't use an uninitialized variable to create a path pattern.

v2: fix the comment
v3: don't use readlink -m, which isn't supported by busybox

Cc: Christopher Covington <cov@codeaurora.org>
Reported-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Reviewed-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm/cwd01: avoid resolving an abs path

We may not have permissions for this.

Reported-by: Mr Jenkins
Fixes: 7dbd38dbc939 ("zdtm: set additional groups along with uids and gids")
Cc: Ruslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: Andrew Vagin <avagin@openvz.org>
Acked-by: Ruslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
proc: Allocate and get vma fstat in vma_get_mapfile

We will need to detect aio mappings soon, so this is a preparation,
that makes future patching simpler.

Also move aufs stat-ing into aufs code to keep more aufs logic in
one place.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
arm: fix compilation on ARMv7

/tmp/ccq2xzf8.s: Assembler messages:
/tmp/ccq2xzf8.s:5748: Error: thumb conditional instruction should be in IT block -- strexeq r1,r2,[r3]'

Cc: Alexander Kartashov <alekskartashov@parallels.com>
Cc: Ruslan Kuprieiv <kupruser@gmail.com>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm/cwd02: avoid resolving an abs path

We may not have permissions for this.

Reported-by: Mr Jenkins
Fixes: 7dbd38dbc939 ("zdtm: set additional groups along with uids and gids")
Cc: Ruslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cpu: x86 -- Fix --cpu-cap=fpu handling on restore mode

Our CPU_CAP_s are bitmaps so if cpuinfo image is present
but we require only FPU to check we need to check this
bit being sole on comman line.

It was a typo in first place which caused statement to
be false always (it's not a problem though and not a
@stable candidate because with this mistake we fall
into strict match cpu mode).

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
x86: Add io syscalls

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
aio: Dump AIO rings

When AIO context is set up kernel does two things:

1. creates an in-kernel aioctx object
2. maps a ring into process memory

The 2nd thing gives us all the needed information
about how the AIO was set up. So, in order to dump
one we need to pick the ring in memory and get all
the information we need from it.

One thing to note -- we cannot dump tasks if there
are any AIO requests pending. So we also need to
go to parasite and check the ring to be empty.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
aio: Restore AIO contexts

Restoring AIO is quite simple. Once all VMAs are put in
their places we can call io_setup() to let kernel create
the context back and then move the ring into proper place.

Another thing we should "restore" is the context ID. But
the thing is, upon ring creation kernel repots the ring
start address as this ID. And there's a patch in the -next
tree that changes the ID when we remap the ring. That
said after AIO context creation and ring remap we need
to check that the new ID is seen by the kernel.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
check: Add check for remapable AIO rings

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: Simple test for AIO ring

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cpu: Add 'ins' mode to --cpu-cap option

In this mode we test if target cpu has all features present
in image file but do not require bit to bit match: target cpu
may be a new one with more features present.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
jenkins: exclude maps04 from the criu-iter job

This job does three iterations. We need to write about 0.5Gb of images
for maps04.  This is too much for our test VM and other tests start fail
due to timeout.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
pie: Fix sizeof's printinf format

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
.travis.yml: add libaio-dev

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
aio: Fix vma->start printing format on arm

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
check: skip AIO remap error, if --ms is specified

criu check --ms results in an error on a stock fedora 21 kernel.

Signed-off-by: Ruslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
libaio-dev