* [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
@ 2021-02-02 19:09 Andrew Cooper
2021-02-04 11:48 ` Ian Jackson
2021-02-04 13:29 ` Oleksandr Tyshchenko
0 siblings, 2 replies; 7+ messages in thread
From: Andrew Cooper @ 2021-02-02 19:09 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk, Oleksandr
For now, simply try to map 40 frames of grant table. This catches most of the
basic errors with resource sizes found and fixed through the 4.15 dev window.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Ian Jackson <iwj@xenproject.org>
CC: Wei Liu <wl@xen.org>
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Oleksandr <olekstysh@gmail.com>
Fails against current staging:
XENMEM_acquire_resource tests
Test x86 PV
d7: grant table
Fail: Map 7 - Argument list too long
Test x86 PVH
d8: grant table
Fail: Map 7 - Argument list too long
The fix has already been posted:
[PATCH v9 01/11] xen/memory: Fix mapping grant tables with XENMEM_acquire_resource
and the fixed run is:
XENMEM_acquire_resource tests
Test x86 PV
d7: grant table
Test x86 PVH
d8: grant table
ARM folk: would you mind testing this? I'm pretty sure the create parameters
are suitable, but I don't have any way to test this.
I've got more plans for this, but insufficient time right now.
---
tools/tests/Makefile | 1 +
tools/tests/resource/.gitignore | 1 +
tools/tests/resource/Makefile | 40 ++++++++++
tools/tests/resource/test-resource.c | 138 +++++++++++++++++++++++++++++++++++
4 files changed, 180 insertions(+)
create mode 100644 tools/tests/resource/.gitignore
create mode 100644 tools/tests/resource/Makefile
create mode 100644 tools/tests/resource/test-resource.c
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index fc9b715951..c45b5fbc1d 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
SUBDIRS-y :=
+SUBDIRS-y := resource
SUBDIRS-$(CONFIG_X86) += cpu-policy
SUBDIRS-$(CONFIG_X86) += mce-test
ifneq ($(clang),y)
diff --git a/tools/tests/resource/.gitignore b/tools/tests/resource/.gitignore
new file mode 100644
index 0000000000..4872e97d4b
--- /dev/null
+++ b/tools/tests/resource/.gitignore
@@ -0,0 +1 @@
+test-resource
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
new file mode 100644
index 0000000000..8a3373e786
--- /dev/null
+++ b/tools/tests/resource/Makefile
@@ -0,0 +1,40 @@
+XEN_ROOT = $(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TARGET := test-resource
+
+.PHONY: all
+all: $(TARGET)
+
+.PHONY: run
+run: $(TARGET)
+ ./$(TARGET)
+
+.PHONY: clean
+clean:
+ $(RM) -f -- *.o .*.d .*.d2 $(TARGET)
+
+.PHONY: distclean
+distclean: clean
+ $(RM) -f -- *~
+
+.PHONY: install
+install: all
+
+.PHONY: uninstall
+uninstall:
+
+CFLAGS += -Werror -D__XEN_TOOLS__
+CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += $(CFLAGS_libxenctrl)
+CFLAGS += $(CFLAGS_libxenforeginmemory)
+CFLAGS += $(APPEND_CFLAGS)
+
+LDFLAGS += $(LDLIBS_libxenctrl)
+LDFLAGS += $(LDLIBS_libxenforeignmemory)
+LDFLAGS += $(APPEND_LDFLAGS)
+
+test-resource: test-resource.o
+ $(CC) $(LDFLAGS) -o $@ $<
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
new file mode 100644
index 0000000000..81a2a5cd12
--- /dev/null
+++ b/tools/tests/resource/test-resource.c
@@ -0,0 +1,138 @@
+#include <err.h>
+#include <errno.h>
+#include <error.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/mman.h>
+
+#include <xenctrl.h>
+#include <xenforeignmemory.h>
+#include <xendevicemodel.h>
+#include <xen-tools/libs.h>
+
+static unsigned int nr_failures;
+#define fail(fmt, ...) \
+({ \
+ nr_failures++; \
+ (void)printf(fmt, ##__VA_ARGS__); \
+})
+
+static xc_interface *xch;
+static xenforeignmemory_handle *fh;
+static xendevicemodel_handle *dh;
+
+static void test_gnttab(uint32_t domid, unsigned int nr_frames)
+{
+ xenforeignmemory_resource_handle *res;
+ void *addr = NULL;
+ size_t size;
+ int rc;
+
+ printf(" d%u: grant table\n", domid);
+
+ rc = xenforeignmemory_resource_size(
+ fh, domid, XENMEM_resource_grant_table,
+ XENMEM_resource_grant_table_id_shared, &size);
+ if ( rc )
+ return fail(" Fail: Get size: %d - %s\n", errno, strerror(errno));
+
+ if ( (size >> XC_PAGE_SHIFT) != nr_frames )
+ return fail(" Fail: Get size: expected %u frames, got %zu\n",
+ nr_frames, size >> XC_PAGE_SHIFT);
+
+ res = xenforeignmemory_map_resource(
+ fh, domid, XENMEM_resource_grant_table,
+ XENMEM_resource_grant_table_id_shared, 0, size >> XC_PAGE_SHIFT,
+ &addr, PROT_READ | PROT_WRITE, 0);
+ if ( !res )
+ return fail(" Fail: Map %d - %s\n", errno, strerror(errno));
+
+ rc = xenforeignmemory_unmap_resource(fh, res);
+ if ( rc )
+ return fail(" Fail: Unmap %d - %s\n", errno, strerror(errno));
+}
+
+static void test_domain_configurations(void)
+{
+ static struct test {
+ const char *name;
+ struct xen_domctl_createdomain create;
+ } tests[] = {
+#if defined(__x86_64__) || defined(__i386__)
+ {
+ .name = "x86 PV",
+ .create = {
+ .max_vcpus = 2,
+ .max_grant_frames = 40,
+ },
+ },
+ {
+ .name = "x86 PVH",
+ .create = {
+ .flags = XEN_DOMCTL_CDF_hvm,
+ .max_vcpus = 2,
+ .max_grant_frames = 40,
+ .arch = {
+ .emulation_flags = XEN_X86_EMU_LAPIC,
+ },
+ },
+ },
+#elif defined(__aarch64__) || defined(__arm__)
+ {
+ .name = "ARM",
+ .create = {
+ .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
+ .max_vcpus = 2,
+ .max_grant_frames = 40,
+ },
+ },
+#endif
+ };
+
+ for ( unsigned int i = 0; i < ARRAY_SIZE(tests); ++i )
+ {
+ struct test *t = &tests[i];
+ uint32_t domid = 0;
+ int rc;
+
+ printf("Test %s\n", t->name);
+
+ rc = xc_domain_create(xch, &domid, &t->create);
+ if ( rc )
+ {
+ if ( errno == EINVAL || errno == EOPNOTSUPP )
+ printf(" Skip: %d - %s\n", errno, strerror(errno));
+ else
+ fail(" Domain create failure: %d - %s\n",
+ errno, strerror(errno));
+ continue;
+ }
+
+ test_gnttab(domid, t->create.max_grant_frames);
+
+ rc = xc_domain_destroy(xch, domid);
+ if ( rc )
+ fail(" Failed to destroy domain: %d - %s\n",
+ errno, strerror(errno));
+ }
+}
+
+int main(int argc, char **argv)
+{
+ printf("XENMEM_acquire_resource tests\n");
+
+ xch = xc_interface_open(NULL, NULL, 0);
+ fh = xenforeignmemory_open(NULL, 0);
+ dh = xendevicemodel_open(NULL, 0);
+
+ if ( !xch )
+ err(1, "xc_interface_open");
+ if ( !fh )
+ err(1, "xenforeignmemory_open");
+ if ( !dh )
+ err(1, "xendevicemodel_open");
+
+ test_domain_configurations();
+
+ return !!nr_failures;
+}
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-02 19:09 [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource Andrew Cooper
@ 2021-02-04 11:48 ` Ian Jackson
2021-02-04 13:29 ` Oleksandr Tyshchenko
1 sibling, 0 replies; 7+ messages in thread
From: Ian Jackson @ 2021-02-04 11:48 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Wei Liu, Jan Beulich, Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk, Oleksandr
Andrew Cooper writes ("[PATCH for-4.15] tools/tests: Introduce a test for acquire_resource"):
> For now, simply try to map 40 frames of grant table. This catches most of the
> basic errors with resource sizes found and fixed through the 4.15 dev window.
FTAOD
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-02 19:09 [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource Andrew Cooper
2021-02-04 11:48 ` Ian Jackson
@ 2021-02-04 13:29 ` Oleksandr Tyshchenko
2021-02-04 15:38 ` Oleksandr
1 sibling, 1 reply; 7+ messages in thread
From: Oleksandr Tyshchenko @ 2021-02-04 13:29 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk
[-- Attachment #1: Type: text/plain, Size: 8391 bytes --]
Hi Andrew.
[Sorry for the possible format issues]
On Tue, Feb 2, 2021 at 9:10 PM Andrew Cooper <andrew.cooper3@citrix.com>
wrote:
> For now, simply try to map 40 frames of grant table. This catches most of
> the
> basic errors with resource sizes found and fixed through the 4.15 dev
> window.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Ian Jackson <iwj@xenproject.org>
> CC: Wei Liu <wl@xen.org>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Wei Liu <wl@xen.org>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Oleksandr <olekstysh@gmail.com>
>
> Fails against current staging:
>
> XENMEM_acquire_resource tests
> Test x86 PV
> d7: grant table
> Fail: Map 7 - Argument list too long
> Test x86 PVH
> d8: grant table
> Fail: Map 7 - Argument list too long
>
> The fix has already been posted:
> [PATCH v9 01/11] xen/memory: Fix mapping grant tables with
> XENMEM_acquire_resource
>
> and the fixed run is:
>
> XENMEM_acquire_resource tests
> Test x86 PV
> d7: grant table
> Test x86 PVH
> d8: grant table
>
> ARM folk: would you mind testing this? I'm pretty sure the create
> parameters
> are suitable, but I don't have any way to test this.
>
Yes, as it was agreed on IRC, I will test this today's evening and inform
about the results)
>
> I've got more plans for this, but insufficient time right now.
> ---
> tools/tests/Makefile | 1 +
> tools/tests/resource/.gitignore | 1 +
> tools/tests/resource/Makefile | 40 ++++++++++
> tools/tests/resource/test-resource.c | 138
> +++++++++++++++++++++++++++++++++++
> 4 files changed, 180 insertions(+)
> create mode 100644 tools/tests/resource/.gitignore
> create mode 100644 tools/tests/resource/Makefile
> create mode 100644 tools/tests/resource/test-resource.c
>
> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> index fc9b715951..c45b5fbc1d 100644
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -2,6 +2,7 @@ XEN_ROOT = $(CURDIR)/../..
> include $(XEN_ROOT)/tools/Rules.mk
>
> SUBDIRS-y :=
> +SUBDIRS-y := resource
> SUBDIRS-$(CONFIG_X86) += cpu-policy
> SUBDIRS-$(CONFIG_X86) += mce-test
> ifneq ($(clang),y)
> diff --git a/tools/tests/resource/.gitignore
> b/tools/tests/resource/.gitignore
> new file mode 100644
> index 0000000000..4872e97d4b
> --- /dev/null
> +++ b/tools/tests/resource/.gitignore
> @@ -0,0 +1 @@
> +test-resource
> diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
> new file mode 100644
> index 0000000000..8a3373e786
> --- /dev/null
> +++ b/tools/tests/resource/Makefile
> @@ -0,0 +1,40 @@
> +XEN_ROOT = $(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TARGET := test-resource
> +
> +.PHONY: all
> +all: $(TARGET)
> +
> +.PHONY: run
> +run: $(TARGET)
> + ./$(TARGET)
> +
> +.PHONY: clean
> +clean:
> + $(RM) -f -- *.o .*.d .*.d2 $(TARGET)
> +
> +.PHONY: distclean
> +distclean: clean
> + $(RM) -f -- *~
> +
> +.PHONY: install
> +install: all
> +
> +.PHONY: uninstall
> +uninstall:
> +
> +CFLAGS += -Werror -D__XEN_TOOLS__
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += $(CFLAGS_libxenctrl)
> +CFLAGS += $(CFLAGS_libxenforeginmemory)
> +CFLAGS += $(APPEND_CFLAGS)
> +
> +LDFLAGS += $(LDLIBS_libxenctrl)
> +LDFLAGS += $(LDLIBS_libxenforeignmemory)
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +test-resource: test-resource.o
> + $(CC) $(LDFLAGS) -o $@ $<
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/resource/test-resource.c
> b/tools/tests/resource/test-resource.c
> new file mode 100644
> index 0000000000..81a2a5cd12
> --- /dev/null
> +++ b/tools/tests/resource/test-resource.c
> @@ -0,0 +1,138 @@
> +#include <err.h>
> +#include <errno.h>
> +#include <error.h>
> +#include <stdio.h>
> +#include <string.h>
> +#include <sys/mman.h>
> +
> +#include <xenctrl.h>
> +#include <xenforeignmemory.h>
> +#include <xendevicemodel.h>
> +#include <xen-tools/libs.h>
> +
> +static unsigned int nr_failures;
> +#define fail(fmt, ...) \
> +({ \
> + nr_failures++; \
> + (void)printf(fmt, ##__VA_ARGS__); \
> +})
> +
> +static xc_interface *xch;
> +static xenforeignmemory_handle *fh;
> +static xendevicemodel_handle *dh;
> +
> +static void test_gnttab(uint32_t domid, unsigned int nr_frames)
> +{
> + xenforeignmemory_resource_handle *res;
> + void *addr = NULL;
> + size_t size;
> + int rc;
> +
> + printf(" d%u: grant table\n", domid);
> +
> + rc = xenforeignmemory_resource_size(
> + fh, domid, XENMEM_resource_grant_table,
> + XENMEM_resource_grant_table_id_shared, &size);
> + if ( rc )
> + return fail(" Fail: Get size: %d - %s\n", errno,
> strerror(errno));
> +
> + if ( (size >> XC_PAGE_SHIFT) != nr_frames )
> + return fail(" Fail: Get size: expected %u frames, got %zu\n",
> + nr_frames, size >> XC_PAGE_SHIFT);
> +
> + res = xenforeignmemory_map_resource(
> + fh, domid, XENMEM_resource_grant_table,
> + XENMEM_resource_grant_table_id_shared, 0, size >> XC_PAGE_SHIFT,
> + &addr, PROT_READ | PROT_WRITE, 0);
> + if ( !res )
> + return fail(" Fail: Map %d - %s\n", errno, strerror(errno));
> +
> + rc = xenforeignmemory_unmap_resource(fh, res);
> + if ( rc )
> + return fail(" Fail: Unmap %d - %s\n", errno, strerror(errno));
> +}
> +
> +static void test_domain_configurations(void)
> +{
> + static struct test {
> + const char *name;
> + struct xen_domctl_createdomain create;
> + } tests[] = {
> +#if defined(__x86_64__) || defined(__i386__)
> + {
> + .name = "x86 PV",
> + .create = {
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + },
> + },
> + {
> + .name = "x86 PVH",
> + .create = {
> + .flags = XEN_DOMCTL_CDF_hvm,
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + .arch = {
> + .emulation_flags = XEN_X86_EMU_LAPIC,
> + },
> + },
> + },
> +#elif defined(__aarch64__) || defined(__arm__)
> + {
> + .name = "ARM",
> + .create = {
> + .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + },
> + },
> +#endif
> + };
> +
> + for ( unsigned int i = 0; i < ARRAY_SIZE(tests); ++i )
> + {
> + struct test *t = &tests[i];
> + uint32_t domid = 0;
> + int rc;
> +
> + printf("Test %s\n", t->name);
> +
> + rc = xc_domain_create(xch, &domid, &t->create);
> + if ( rc )
> + {
> + if ( errno == EINVAL || errno == EOPNOTSUPP )
> + printf(" Skip: %d - %s\n", errno, strerror(errno));
> + else
> + fail(" Domain create failure: %d - %s\n",
> + errno, strerror(errno));
> + continue;
> + }
> +
> + test_gnttab(domid, t->create.max_grant_frames);
> +
> + rc = xc_domain_destroy(xch, domid);
> + if ( rc )
> + fail(" Failed to destroy domain: %d - %s\n",
> + errno, strerror(errno));
> + }
> +}
> +
> +int main(int argc, char **argv)
> +{
> + printf("XENMEM_acquire_resource tests\n");
> +
> + xch = xc_interface_open(NULL, NULL, 0);
> + fh = xenforeignmemory_open(NULL, 0);
> + dh = xendevicemodel_open(NULL, 0);
> +
> + if ( !xch )
> + err(1, "xc_interface_open");
> + if ( !fh )
> + err(1, "xenforeignmemory_open");
> + if ( !dh )
> + err(1, "xendevicemodel_open");
> +
> + test_domain_configurations();
> +
> + return !!nr_failures;
> +}
> --
> 2.11.0
>
>
--
Regards,
Oleksandr Tyshchenko
[-- Attachment #2: Type: text/html, Size: 11270 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-04 13:29 ` Oleksandr Tyshchenko
@ 2021-02-04 15:38 ` Oleksandr
2021-02-04 15:44 ` Andrew Cooper
0 siblings, 1 reply; 7+ messages in thread
From: Oleksandr @ 2021-02-04 15:38 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk
[-- Attachment #1: Type: text/plain, Size: 12248 bytes --]
On 04.02.21 15:29, Oleksandr Tyshchenko wrote:
Hi Andrew
>
> Hi Andrew.
> [Sorry for the possible format issues]
>
> On Tue, Feb 2, 2021 at 9:10 PM Andrew Cooper
> <andrew.cooper3@citrix.com <mailto:andrew.cooper3@citrix.com>> wrote:
>
> For now, simply try to map 40 frames of grant table. This catches
> most of the
> basic errors with resource sizes found and fixed through the 4.15
> dev window.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com
> <mailto:andrew.cooper3@citrix.com>>
> ---
> CC: Ian Jackson <iwj@xenproject.org <mailto:iwj@xenproject.org>>
> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
> CC: Jan Beulich <JBeulich@suse.com <mailto:JBeulich@suse.com>>
> CC: Roger Pau Monné <roger.pau@citrix.com
> <mailto:roger.pau@citrix.com>>
> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
> CC: Stefano Stabellini <sstabellini@kernel.org
> <mailto:sstabellini@kernel.org>>
> CC: Julien Grall <julien@xen.org <mailto:julien@xen.org>>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com
> <mailto:Volodymyr_Babchuk@epam.com>>
> CC: Oleksandr <olekstysh@gmail.com <mailto:olekstysh@gmail.com>>
>
> Fails against current staging:
>
> XENMEM_acquire_resource tests
> Test x86 PV
> d7: grant table
> Fail: Map 7 - Argument list too long
> Test x86 PVH
> d8: grant table
> Fail: Map 7 - Argument list too long
>
> The fix has already been posted:
> [PATCH v9 01/11] xen/memory: Fix mapping grant tables with
> XENMEM_acquire_resource
>
> and the fixed run is:
>
> XENMEM_acquire_resource tests
> Test x86 PV
> d7: grant table
> Test x86 PVH
> d8: grant table
>
> ARM folk: would you mind testing this? I'm pretty sure the create
> parameters
> are suitable, but I don't have any way to test this.
>
> Yes, as it was agreed on IRC, I will test this today's evening and
> inform about the results)
OK, well, I decided to test right away because going to be busy in the
evening)
I am based on:
9dc687f x86/debug: fix page-overflow bug in dbg_rw_guest_mem
I noticed the error during building this test in my Yocto environment on
Arm:
/media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
test-resource.o: undefined reference to symbol
'xendevicemodel_open@@VERS_1.0'
/media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
/media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/git/tools/tests/resource/../../../tools/libs/devicemodel/libxendevicemodel.so.1:
error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:38: recipe for target 'test-resource' failed
I didn't investigate whether it is related or not. I just added as
following:
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index 8a3373e..03b19ef 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -32,6 +32,7 @@ CFLAGS += $(APPEND_CFLAGS)
LDFLAGS += $(LDLIBS_libxenctrl)
LDFLAGS += $(LDLIBS_libxenforeignmemory)
+LDFLAGS += $(LDLIBS_libxendevicemodel)
LDFLAGS += $(APPEND_LDFLAGS)
test-resource: test-resource.o
I got the following result without and with "[PATCH v9 01/11]
xen/memory: Fix mapping grant tables with XENMEM_acquire_resource"
root@generic-armv8-xt-dom0:~# test-resource
XENMEM_acquire_resource tests
Test ARM
d3: grant table
xenforeignmemory: error: ioctl failed: Invalid argument
Fail: Get size: 22 - Invalid argument
>
>
> I've got more plans for this, but insufficient time right now.
> ---
> tools/tests/Makefile | 1 +
> tools/tests/resource/.gitignore | 1 +
> tools/tests/resource/Makefile | 40 ++++++++++
> tools/tests/resource/test-resource.c | 138
> +++++++++++++++++++++++++++++++++++
> 4 files changed, 180 insertions(+)
> create mode 100644 tools/tests/resource/.gitignore
> create mode 100644 tools/tests/resource/Makefile
> create mode 100644 tools/tests/resource/test-resource.c
>
> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> index fc9b715951..c45b5fbc1d 100644
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -2,6 +2,7 @@ XEN_ROOT = $(CURDIR)/../..
> include $(XEN_ROOT)/tools/Rules.mk
>
> SUBDIRS-y :=
> +SUBDIRS-y := resource
> SUBDIRS-$(CONFIG_X86) += cpu-policy
> SUBDIRS-$(CONFIG_X86) += mce-test
> ifneq ($(clang),y)
> diff --git a/tools/tests/resource/.gitignore
> b/tools/tests/resource/.gitignore
> new file mode 100644
> index 0000000000..4872e97d4b
> --- /dev/null
> +++ b/tools/tests/resource/.gitignore
> @@ -0,0 +1 @@
> +test-resource
> diff --git a/tools/tests/resource/Makefile
> b/tools/tests/resource/Makefile
> new file mode 100644
> index 0000000000..8a3373e786
> --- /dev/null
> +++ b/tools/tests/resource/Makefile
> @@ -0,0 +1,40 @@
> +XEN_ROOT = $(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TARGET := test-resource
> +
> +.PHONY: all
> +all: $(TARGET)
> +
> +.PHONY: run
> +run: $(TARGET)
> + ./$(TARGET)
> +
> +.PHONY: clean
> +clean:
> + $(RM) -f -- *.o .*.d .*.d2 $(TARGET)
> +
> +.PHONY: distclean
> +distclean: clean
> + $(RM) -f -- *~
> +
> +.PHONY: install
> +install: all
> +
> +.PHONY: uninstall
> +uninstall:
> +
> +CFLAGS += -Werror -D__XEN_TOOLS__
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += $(CFLAGS_libxenctrl)
> +CFLAGS += $(CFLAGS_libxenforeginmemory)
> +CFLAGS += $(APPEND_CFLAGS)
> +
> +LDFLAGS += $(LDLIBS_libxenctrl)
> +LDFLAGS += $(LDLIBS_libxenforeignmemory)
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +test-resource: test-resource.o
> + $(CC) $(LDFLAGS) -o $@ $<
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/resource/test-resource.c
> b/tools/tests/resource/test-resource.c
> new file mode 100644
> index 0000000000..81a2a5cd12
> --- /dev/null
> +++ b/tools/tests/resource/test-resource.c
> @@ -0,0 +1,138 @@
> +#include <err.h>
> +#include <errno.h>
> +#include <error.h>
> +#include <stdio.h>
> +#include <string.h>
> +#include <sys/mman.h>
> +
> +#include <xenctrl.h>
> +#include <xenforeignmemory.h>
> +#include <xendevicemodel.h>
> +#include <xen-tools/libs.h>
> +
> +static unsigned int nr_failures;
> +#define fail(fmt, ...) \
> +({ \
> + nr_failures++; \
> + (void)printf(fmt, ##__VA_ARGS__); \
> +})
> +
> +static xc_interface *xch;
> +static xenforeignmemory_handle *fh;
> +static xendevicemodel_handle *dh;
> +
> +static void test_gnttab(uint32_t domid, unsigned int nr_frames)
> +{
> + xenforeignmemory_resource_handle *res;
> + void *addr = NULL;
> + size_t size;
> + int rc;
> +
> + printf(" d%u: grant table\n", domid);
> +
> + rc = xenforeignmemory_resource_size(
> + fh, domid, XENMEM_resource_grant_table,
> + XENMEM_resource_grant_table_id_shared, &size);
> + if ( rc )
> + return fail(" Fail: Get size: %d - %s\n", errno,
> strerror(errno));
> +
> + if ( (size >> XC_PAGE_SHIFT) != nr_frames )
> + return fail(" Fail: Get size: expected %u frames, got
> %zu\n",
> + nr_frames, size >> XC_PAGE_SHIFT);
> +
> + res = xenforeignmemory_map_resource(
> + fh, domid, XENMEM_resource_grant_table,
> + XENMEM_resource_grant_table_id_shared, 0, size >>
> XC_PAGE_SHIFT,
> + &addr, PROT_READ | PROT_WRITE, 0);
> + if ( !res )
> + return fail(" Fail: Map %d - %s\n", errno,
> strerror(errno));
> +
> + rc = xenforeignmemory_unmap_resource(fh, res);
> + if ( rc )
> + return fail(" Fail: Unmap %d - %s\n", errno,
> strerror(errno));
> +}
> +
> +static void test_domain_configurations(void)
> +{
> + static struct test {
> + const char *name;
> + struct xen_domctl_createdomain create;
> + } tests[] = {
> +#if defined(__x86_64__) || defined(__i386__)
> + {
> + .name = "x86 PV",
> + .create = {
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + },
> + },
> + {
> + .name = "x86 PVH",
> + .create = {
> + .flags = XEN_DOMCTL_CDF_hvm,
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + .arch = {
> + .emulation_flags = XEN_X86_EMU_LAPIC,
> + },
> + },
> + },
> +#elif defined(__aarch64__) || defined(__arm__)
> + {
> + .name = "ARM",
> + .create = {
> + .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
> + .max_vcpus = 2,
> + .max_grant_frames = 40,
> + },
> + },
> +#endif
> + };
> +
> + for ( unsigned int i = 0; i < ARRAY_SIZE(tests); ++i )
> + {
> + struct test *t = &tests[i];
> + uint32_t domid = 0;
> + int rc;
> +
> + printf("Test %s\n", t->name);
> +
> + rc = xc_domain_create(xch, &domid, &t->create);
> + if ( rc )
> + {
> + if ( errno == EINVAL || errno == EOPNOTSUPP )
> + printf(" Skip: %d - %s\n", errno, strerror(errno));
> + else
> + fail(" Domain create failure: %d - %s\n",
> + errno, strerror(errno));
> + continue;
> + }
> +
> + test_gnttab(domid, t->create.max_grant_frames);
> +
> + rc = xc_domain_destroy(xch, domid);
> + if ( rc )
> + fail(" Failed to destroy domain: %d - %s\n",
> + errno, strerror(errno));
> + }
> +}
> +
> +int main(int argc, char **argv)
> +{
> + printf("XENMEM_acquire_resource tests\n");
> +
> + xch = xc_interface_open(NULL, NULL, 0);
> + fh = xenforeignmemory_open(NULL, 0);
> + dh = xendevicemodel_open(NULL, 0);
> +
> + if ( !xch )
> + err(1, "xc_interface_open");
> + if ( !fh )
> + err(1, "xenforeignmemory_open");
> + if ( !dh )
> + err(1, "xendevicemodel_open");
> +
> + test_domain_configurations();
> +
> + return !!nr_failures;
> +}
> --
> 2.11.0
>
>
>
> --
> Regards,
>
> Oleksandr Tyshchenko
--
Regards,
Oleksandr Tyshchenko
[-- Attachment #2: Type: text/html, Size: 18833 bytes --]
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-04 15:38 ` Oleksandr
@ 2021-02-04 15:44 ` Andrew Cooper
2021-02-04 16:33 ` Oleksandr
0 siblings, 1 reply; 7+ messages in thread
From: Andrew Cooper @ 2021-02-04 15:44 UTC (permalink / raw)
To: Oleksandr
Cc: Xen-devel, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk
[-- Attachment #1: Type: text/plain, Size: 4632 bytes --]
On 04/02/2021 15:38, Oleksandr wrote:
>>
>> Hi Andrew.
>> [Sorry for the possible format issues]
>>
>> On Tue, Feb 2, 2021 at 9:10 PM Andrew Cooper
>> <andrew.cooper3@citrix.com <mailto:andrew.cooper3@citrix.com>> wrote:
>>
>> For now, simply try to map 40 frames of grant table. This
>> catches most of the
>> basic errors with resource sizes found and fixed through the 4.15
>> dev window.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com
>> <mailto:andrew.cooper3@citrix.com>>
>> ---
>> CC: Ian Jackson <iwj@xenproject.org <mailto:iwj@xenproject.org>>
>> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
>> CC: Jan Beulich <JBeulich@suse.com <mailto:JBeulich@suse.com>>
>> CC: Roger Pau Monné <roger.pau@citrix.com
>> <mailto:roger.pau@citrix.com>>
>> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
>> CC: Stefano Stabellini <sstabellini@kernel.org
>> <mailto:sstabellini@kernel.org>>
>> CC: Julien Grall <julien@xen.org <mailto:julien@xen.org>>
>> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com
>> <mailto:Volodymyr_Babchuk@epam.com>>
>> CC: Oleksandr <olekstysh@gmail.com <mailto:olekstysh@gmail.com>>
>>
>> Fails against current staging:
>>
>> XENMEM_acquire_resource tests
>> Test x86 PV
>> d7: grant table
>> Fail: Map 7 - Argument list too long
>> Test x86 PVH
>> d8: grant table
>> Fail: Map 7 - Argument list too long
>>
>> The fix has already been posted:
>> [PATCH v9 01/11] xen/memory: Fix mapping grant tables with
>> XENMEM_acquire_resource
>>
>> and the fixed run is:
>>
>> XENMEM_acquire_resource tests
>> Test x86 PV
>> d7: grant table
>> Test x86 PVH
>> d8: grant table
>>
>> ARM folk: would you mind testing this? I'm pretty sure the
>> create parameters
>> are suitable, but I don't have any way to test this.
>>
>> Yes, as it was agreed on IRC, I will test this today's evening and
>> inform about the results)
>
>
> OK, well, I decided to test right away because going to be busy in the
> evening)
>
> I am based on:
> 9dc687f x86/debug: fix page-overflow bug in dbg_rw_guest_mem
>
> I noticed the error during building this test in my Yocto environment
> on Arm:
>
>
> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
> test-resource.o: undefined reference to symbol
> 'xendevicemodel_open@@VERS_1.0'
> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/git/tools/tests/resource/../../../tools/libs/devicemodel/libxendevicemodel.so.1:
> error adding symbols: DSO missing from command line
> collect2: error: ld returned 1 exit status
> Makefile:38: recipe for target 'test-resource' failed
>
>
> I didn't investigate whether it is related or not. I just added as
> following:
>
> diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
> index 8a3373e..03b19ef 100644
> --- a/tools/tests/resource/Makefile
> +++ b/tools/tests/resource/Makefile
> @@ -32,6 +32,7 @@ CFLAGS += $(APPEND_CFLAGS)
>
> LDFLAGS += $(LDLIBS_libxenctrl)
> LDFLAGS += $(LDLIBS_libxenforeignmemory)
> +LDFLAGS += $(LDLIBS_libxendevicemodel)
> LDFLAGS += $(APPEND_LDFLAGS)
>
> test-resource: test-resource.o
>
Urgh yes - I didn't fully strip out the libxendevicemodel uses. I'll
fix that, rather than having this test link against a library which it
doesn't use (yet).
>
> I got the following result without and with "[PATCH v9 01/11]
> xen/memory: Fix mapping grant tables with XENMEM_acquire_resource"
>
> root@generic-armv8-xt-dom0:~# test-resource
> XENMEM_acquire_resource tests
> Test ARM
> d3: grant table
> xenforeignmemory: error: ioctl failed: Invalid argument
> Fail: Get size: 22 - Invalid argument
>
Ah yes - you also need a bugfix in the dom0 kernel. "xen/privcmd: allow
fetching resource sizes" which is in mainline, and also backported to
the LTS trees.
However, this did get past the bit I wasn't sure about for ARM, which is
good.
~Andrew
[-- Attachment #2: Type: text/html, Size: 7499 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-04 15:44 ` Andrew Cooper
@ 2021-02-04 16:33 ` Oleksandr
2021-02-04 16:39 ` Andrew Cooper
0 siblings, 1 reply; 7+ messages in thread
From: Oleksandr @ 2021-02-04 16:33 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk
[-- Attachment #1: Type: text/plain, Size: 5600 bytes --]
Hi Andrew
On 04.02.21 17:44, Andrew Cooper wrote:
> On 04/02/2021 15:38, Oleksandr wrote:
>>>
>>> Hi Andrew.
>>> [Sorry for the possible format issues]
>>>
>>> On Tue, Feb 2, 2021 at 9:10 PM Andrew Cooper
>>> <andrew.cooper3@citrix.com <mailto:andrew.cooper3@citrix.com>> wrote:
>>>
>>> For now, simply try to map 40 frames of grant table. This
>>> catches most of the
>>> basic errors with resource sizes found and fixed through the
>>> 4.15 dev window.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com
>>> <mailto:andrew.cooper3@citrix.com>>
>>> ---
>>> CC: Ian Jackson <iwj@xenproject.org <mailto:iwj@xenproject.org>>
>>> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
>>> CC: Jan Beulich <JBeulich@suse.com <mailto:JBeulich@suse.com>>
>>> CC: Roger Pau Monné <roger.pau@citrix.com
>>> <mailto:roger.pau@citrix.com>>
>>> CC: Wei Liu <wl@xen.org <mailto:wl@xen.org>>
>>> CC: Stefano Stabellini <sstabellini@kernel.org
>>> <mailto:sstabellini@kernel.org>>
>>> CC: Julien Grall <julien@xen.org <mailto:julien@xen.org>>
>>> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com
>>> <mailto:Volodymyr_Babchuk@epam.com>>
>>> CC: Oleksandr <olekstysh@gmail.com <mailto:olekstysh@gmail.com>>
>>>
>>> Fails against current staging:
>>>
>>> XENMEM_acquire_resource tests
>>> Test x86 PV
>>> d7: grant table
>>> Fail: Map 7 - Argument list too long
>>> Test x86 PVH
>>> d8: grant table
>>> Fail: Map 7 - Argument list too long
>>>
>>> The fix has already been posted:
>>> [PATCH v9 01/11] xen/memory: Fix mapping grant tables with
>>> XENMEM_acquire_resource
>>>
>>> and the fixed run is:
>>>
>>> XENMEM_acquire_resource tests
>>> Test x86 PV
>>> d7: grant table
>>> Test x86 PVH
>>> d8: grant table
>>>
>>> ARM folk: would you mind testing this? I'm pretty sure the
>>> create parameters
>>> are suitable, but I don't have any way to test this.
>>>
>>> Yes, as it was agreed on IRC, I will test this today's evening and
>>> inform about the results)
>>
>>
>> OK, well, I decided to test right away because going to be busy in
>> the evening)
>>
>> I am based on:
>> 9dc687f x86/debug: fix page-overflow bug in dbg_rw_guest_mem
>>
>> I noticed the error during building this test in my Yocto environment
>> on Arm:
>>
>>
>> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
>> test-resource.o: undefined reference to symbol
>> 'xendevicemodel_open@@VERS_1.0'
>> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.2.0/ld:
>> /media/b/build/build/tmp/work/x86_64-xt-linux/dom0-image-thin-initramfs/1.0-r0/repo/build/tmp/work/aarch64-poky-linux/xen/4.14.0+gitAUTOINC+e00e0f38c3-r0/git/tools/tests/resource/../../../tools/libs/devicemodel/libxendevicemodel.so.1:
>> error adding symbols: DSO missing from command line
>> collect2: error: ld returned 1 exit status
>> Makefile:38: recipe for target 'test-resource' failed
>>
>>
>> I didn't investigate whether it is related or not. I just added as
>> following:
>>
>> diff --git a/tools/tests/resource/Makefile
>> b/tools/tests/resource/Makefile
>> index 8a3373e..03b19ef 100644
>> --- a/tools/tests/resource/Makefile
>> +++ b/tools/tests/resource/Makefile
>> @@ -32,6 +32,7 @@ CFLAGS += $(APPEND_CFLAGS)
>>
>> LDFLAGS += $(LDLIBS_libxenctrl)
>> LDFLAGS += $(LDLIBS_libxenforeignmemory)
>> +LDFLAGS += $(LDLIBS_libxendevicemodel)
>> LDFLAGS += $(APPEND_LDFLAGS)
>>
>> test-resource: test-resource.o
>>
>
> Urgh yes - I didn't fully strip out the libxendevicemodel uses. I'll
> fix that, rather than having this test link against a library which it
> doesn't use (yet).
>
>>
>> I got the following result without and with "[PATCH v9 01/11]
>> xen/memory: Fix mapping grant tables with XENMEM_acquire_resource"
>>
>> root@generic-armv8-xt-dom0:~# test-resource
>> XENMEM_acquire_resource tests
>> Test ARM
>> d3: grant table
>> xenforeignmemory: error: ioctl failed: Invalid argument
>> Fail: Get size: 22 - Invalid argument
>>
>
> Ah yes - you also need a bugfix in the dom0 kernel. "xen/privcmd:
> allow fetching resource sizes" which is in mainline, and also
> backported to the LTS trees.
Well, my dom0 Linux is old)
uname -a
Linux generic-armv8-xt-dom0 4.14.75-ltsi-yocto-tiny #1 SMP PREEMPT Thu
Nov 5 10:52:32 UTC 2020 aarch64 GNU/Linux
so I use ported "xen/privcmd: add IOCTL_PRIVCMD_MMAP_RESOURCE".
I didn't find "xen/privcmd: allow fetching resource sizes" for my Linux
version, so I backported it by myself.
So, with "[PATCH v9 01/11] xen/memory: Fix mapping grant tables with
XENMEM_acquire_resource"
root@generic-armv8-xt-dom0:~# test-resource
XENMEM_acquire_resource tests
Test ARM
d7: grant table
(XEN) grant_table.c:1854:d0v1 Expanding d7 grant table from 1 to 32 frames
(XEN) grant_table.c:1854:d0v1 Expanding d7 grant table from 32 to 40 frames
[I didn't test without your patch]
Hope that helps.
>
> However, this did get past the bit I wasn't sure about for ARM, which
> is good.
>
> ~Andrew
--
Regards,
Oleksandr Tyshchenko
[-- Attachment #2: Type: text/html, Size: 9452 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource
2021-02-04 16:33 ` Oleksandr
@ 2021-02-04 16:39 ` Andrew Cooper
0 siblings, 0 replies; 7+ messages in thread
From: Andrew Cooper @ 2021-02-04 16:39 UTC (permalink / raw)
To: Oleksandr
Cc: Xen-devel, Ian Jackson, Wei Liu, Jan Beulich,
Roger Pau Monné,
Stefano Stabellini, Julien Grall, Volodymyr Babchuk
On 04/02/2021 16:33, Oleksandr wrote:
> On 04.02.21 17:44, Andrew Cooper wrote:
>> On 04/02/2021 15:38, Oleksandr wrote:
>>>
>>>
>>> I got the following result without and with "[PATCH v9 01/11]
>>> xen/memory: Fix mapping grant tables with XENMEM_acquire_resource"
>>>
>>> root@generic-armv8-xt-dom0:~# test-resource
>>> XENMEM_acquire_resource tests
>>> Test ARM
>>> d3: grant table
>>> xenforeignmemory: error: ioctl failed: Invalid argument
>>> Fail: Get size: 22 - Invalid argument
>>>
>>
>> Ah yes - you also need a bugfix in the dom0 kernel. "xen/privcmd:
>> allow fetching resource sizes" which is in mainline, and also
>> backported to the LTS trees.
>
> Well, my dom0 Linux is old)
>
> uname -a
> Linux generic-armv8-xt-dom0 4.14.75-ltsi-yocto-tiny #1 SMP PREEMPT Thu
> Nov 5 10:52:32 UTC 2020 aarch64 GNU/Linux
> so I use ported "xen/privcmd: add IOCTL_PRIVCMD_MMAP_RESOURCE".
> I didn't find "xen/privcmd: allow fetching resource sizes" for my
> Linux version, so I backported it by myself.
>
> So, with "[PATCH v9 01/11] xen/memory: Fix mapping grant tables with
> XENMEM_acquire_resource"
>
> root@generic-armv8-xt-dom0:~# test-resource
> XENMEM_acquire_resource tests
> Test ARM
> d7: grant table
> (XEN) grant_table.c:1854:d0v1 Expanding d7 grant table from 1 to 32 frames
> (XEN) grant_table.c:1854:d0v1 Expanding d7 grant table from 32 to 40
> frames
>
> [I didn't test without your patch]
>
> Hope that helps.
>
Yup - fantastic thankyou.
~Andrew
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-02-04 16:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-02 19:09 [PATCH for-4.15] tools/tests: Introduce a test for acquire_resource Andrew Cooper
2021-02-04 11:48 ` Ian Jackson
2021-02-04 13:29 ` Oleksandr Tyshchenko
2021-02-04 15:38 ` Oleksandr
2021-02-04 15:44 ` Andrew Cooper
2021-02-04 16:33 ` Oleksandr
2021-02-04 16:39 ` Andrew Cooper
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).