hw/virtio/virtio-balloon.c | 67 ++++++++++++++++--------- include/standard-headers/linux/virtio_balloon.h | 4 ++ 2 files changed, 47 insertions(+), 24 deletions(-)
If the guest kernel has many fragmentation pages, use virtio_balloon
will split THP of QEMU when it calls MADV_DONTNEED madvise to release
the balloon pages.
Set option thp-order to on will open flags VIRTIO_BALLOON_F_THP_ORDER.
It will set balloon size to THP size to handle the THP split issue.
Signed-off-by: Hui Zhu <teawaterz@linux.alibaba.com>
---
hw/virtio/virtio-balloon.c | 67 ++++++++++++++++---------
include/standard-headers/linux/virtio_balloon.h | 4 ++
2 files changed, 47 insertions(+), 24 deletions(-)
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index a4729f7..cfe86b0 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -340,37 +340,49 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq)
while (iov_to_buf(elem->out_sg, elem->out_num, offset, &pfn, 4) == 4) {
unsigned int p = virtio_ldl_p(vdev, &pfn);
hwaddr pa;
+ size_t handle_size = BALLOON_PAGE_SIZE;
pa = (hwaddr) p << VIRTIO_BALLOON_PFN_SHIFT;
offset += 4;
- section = memory_region_find(get_system_memory(), pa,
- BALLOON_PAGE_SIZE);
- if (!section.mr) {
- trace_virtio_balloon_bad_addr(pa);
- continue;
- }
- if (!memory_region_is_ram(section.mr) ||
- memory_region_is_rom(section.mr) ||
- memory_region_is_romd(section.mr)) {
- trace_virtio_balloon_bad_addr(pa);
- memory_region_unref(section.mr);
- continue;
- }
+ if (virtio_has_feature(s->host_features,
+ VIRTIO_BALLOON_F_THP_ORDER))
+ handle_size = BALLOON_PAGE_SIZE << VIRTIO_BALLOON_THP_ORDER;
+
+ while (handle_size > 0) {
+ section = memory_region_find(get_system_memory(), pa,
+ BALLOON_PAGE_SIZE);
+ if (!section.mr) {
+ trace_virtio_balloon_bad_addr(pa);
+ continue;
+ }
+ if (!memory_region_is_ram(section.mr) ||
+ memory_region_is_rom(section.mr) ||
+ memory_region_is_romd(section.mr)) {
+ trace_virtio_balloon_bad_addr(pa);
+ memory_region_unref(section.mr);
+ continue;
+ }
- trace_virtio_balloon_handle_output(memory_region_name(section.mr),
- pa);
- if (!qemu_balloon_is_inhibited()) {
- if (vq == s->ivq) {
- balloon_inflate_page(s, section.mr,
- section.offset_within_region, &pbp);
- } else if (vq == s->dvq) {
- balloon_deflate_page(s, section.mr, section.offset_within_region);
- } else {
- g_assert_not_reached();
+ trace_virtio_balloon_handle_output(memory_region_name(section.mr),
+ pa);
+ if (!qemu_balloon_is_inhibited()) {
+ if (vq == s->ivq) {
+ balloon_inflate_page(s, section.mr,
+ section.offset_within_region,
+ &pbp);
+ } else if (vq == s->dvq) {
+ balloon_deflate_page(s, section.mr,
+ section.offset_within_region);
+ } else {
+ g_assert_not_reached();
+ }
}
+ memory_region_unref(section.mr);
+
+ pa += BALLOON_PAGE_SIZE;
+ handle_size -= BALLOON_PAGE_SIZE;
}
- memory_region_unref(section.mr);
}
virtqueue_push(vq, elem, offset);
@@ -693,6 +705,8 @@ static void virtio_balloon_set_config(VirtIODevice *vdev,
memcpy(&config, config_data, virtio_balloon_config_size(dev));
dev->actual = le32_to_cpu(config.actual);
+ if (virtio_has_feature(vdev->host_features, VIRTIO_BALLOON_F_THP_ORDER))
+ dev->actual <<= VIRTIO_BALLOON_THP_ORDER;
if (dev->actual != oldactual) {
qapi_event_send_balloon_change(vm_ram_size -
((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT));
@@ -728,6 +742,9 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target)
}
if (target) {
dev->num_pages = (vm_ram_size - target) >> VIRTIO_BALLOON_PFN_SHIFT;
+ if (virtio_has_feature(dev->host_features,
+ VIRTIO_BALLOON_F_THP_ORDER))
+ dev->num_pages >>= VIRTIO_BALLOON_THP_ORDER;
virtio_notify_config(vdev);
}
trace_virtio_balloon_to_target(target, dev->num_pages);
@@ -916,6 +933,8 @@ static Property virtio_balloon_properties[] = {
VIRTIO_BALLOON_F_DEFLATE_ON_OOM, false),
DEFINE_PROP_BIT("free-page-hint", VirtIOBalloon, host_features,
VIRTIO_BALLOON_F_FREE_PAGE_HINT, false),
+ DEFINE_PROP_BIT("thp-order", VirtIOBalloon, host_features,
+ VIRTIO_BALLOON_F_THP_ORDER, false),
/* QEMU 4.0 accidentally changed the config size even when free-page-hint
* is disabled, resulting in QEMU 3.1 migration incompatibility. This
* property retains this quirk for QEMU 4.1 machine types.
diff --git a/include/standard-headers/linux/virtio_balloon.h b/include/standard-headers/linux/virtio_balloon.h
index 9375ca2..f54d613 100644
--- a/include/standard-headers/linux/virtio_balloon.h
+++ b/include/standard-headers/linux/virtio_balloon.h
@@ -36,10 +36,14 @@
#define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */
#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
+#define VIRTIO_BALLOON_F_THP_ORDER 5 /* Set balloon page order to thp order */
/* Size of a PFN in the balloon interface. */
#define VIRTIO_BALLOON_PFN_SHIFT 12
+/* The order of the balloon page */
+#define VIRTIO_BALLOON_THP_ORDER 9
+
#define VIRTIO_BALLOON_CMD_ID_STOP 0
#define VIRTIO_BALLOON_CMD_ID_DONE 1
struct virtio_balloon_config {
--
2.7.4
On Thu, Mar 12, 2020 at 03:49:55PM +0800, Hui Zhu wrote: > If the guest kernel has many fragmentation pages, use virtio_balloon > will split THP of QEMU when it calls MADV_DONTNEED madvise to release > the balloon pages. > Set option thp-order to on will open flags VIRTIO_BALLOON_F_THP_ORDER. > It will set balloon size to THP size to handle the THP split issue. > > Signed-off-by: Hui Zhu <teawaterz@linux.alibaba.com> What's wrong with just using the PartiallyBalloonedPage machinery instead? That would make it guest transparent. > --- > hw/virtio/virtio-balloon.c | 67 ++++++++++++++++--------- > include/standard-headers/linux/virtio_balloon.h | 4 ++ > 2 files changed, 47 insertions(+), 24 deletions(-) > > diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c > index a4729f7..cfe86b0 100644 > --- a/hw/virtio/virtio-balloon.c > +++ b/hw/virtio/virtio-balloon.c > @@ -340,37 +340,49 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq) > while (iov_to_buf(elem->out_sg, elem->out_num, offset, &pfn, 4) == 4) { > unsigned int p = virtio_ldl_p(vdev, &pfn); > hwaddr pa; > + size_t handle_size = BALLOON_PAGE_SIZE; > > pa = (hwaddr) p << VIRTIO_BALLOON_PFN_SHIFT; > offset += 4; > > - section = memory_region_find(get_system_memory(), pa, > - BALLOON_PAGE_SIZE); > - if (!section.mr) { > - trace_virtio_balloon_bad_addr(pa); > - continue; > - } > - if (!memory_region_is_ram(section.mr) || > - memory_region_is_rom(section.mr) || > - memory_region_is_romd(section.mr)) { > - trace_virtio_balloon_bad_addr(pa); > - memory_region_unref(section.mr); > - continue; > - } > + if (virtio_has_feature(s->host_features, > + VIRTIO_BALLOON_F_THP_ORDER)) > + handle_size = BALLOON_PAGE_SIZE << VIRTIO_BALLOON_THP_ORDER; > + > + while (handle_size > 0) { > + section = memory_region_find(get_system_memory(), pa, > + BALLOON_PAGE_SIZE); > + if (!section.mr) { > + trace_virtio_balloon_bad_addr(pa); > + continue; > + } > + if (!memory_region_is_ram(section.mr) || > + memory_region_is_rom(section.mr) || > + memory_region_is_romd(section.mr)) { > + trace_virtio_balloon_bad_addr(pa); > + memory_region_unref(section.mr); > + continue; > + } > > - trace_virtio_balloon_handle_output(memory_region_name(section.mr), > - pa); > - if (!qemu_balloon_is_inhibited()) { > - if (vq == s->ivq) { > - balloon_inflate_page(s, section.mr, > - section.offset_within_region, &pbp); > - } else if (vq == s->dvq) { > - balloon_deflate_page(s, section.mr, section.offset_within_region); > - } else { > - g_assert_not_reached(); > + trace_virtio_balloon_handle_output(memory_region_name(section.mr), > + pa); > + if (!qemu_balloon_is_inhibited()) { > + if (vq == s->ivq) { > + balloon_inflate_page(s, section.mr, > + section.offset_within_region, > + &pbp); > + } else if (vq == s->dvq) { > + balloon_deflate_page(s, section.mr, > + section.offset_within_region); > + } else { > + g_assert_not_reached(); > + } > } > + memory_region_unref(section.mr); > + > + pa += BALLOON_PAGE_SIZE; > + handle_size -= BALLOON_PAGE_SIZE; > } > - memory_region_unref(section.mr); > } > > virtqueue_push(vq, elem, offset); > @@ -693,6 +705,8 @@ static void virtio_balloon_set_config(VirtIODevice *vdev, > > memcpy(&config, config_data, virtio_balloon_config_size(dev)); > dev->actual = le32_to_cpu(config.actual); > + if (virtio_has_feature(vdev->host_features, VIRTIO_BALLOON_F_THP_ORDER)) > + dev->actual <<= VIRTIO_BALLOON_THP_ORDER; > if (dev->actual != oldactual) { > qapi_event_send_balloon_change(vm_ram_size - > ((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT)); > @@ -728,6 +742,9 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) > } > if (target) { > dev->num_pages = (vm_ram_size - target) >> VIRTIO_BALLOON_PFN_SHIFT; > + if (virtio_has_feature(dev->host_features, > + VIRTIO_BALLOON_F_THP_ORDER)) > + dev->num_pages >>= VIRTIO_BALLOON_THP_ORDER; > virtio_notify_config(vdev); > } > trace_virtio_balloon_to_target(target, dev->num_pages); > @@ -916,6 +933,8 @@ static Property virtio_balloon_properties[] = { > VIRTIO_BALLOON_F_DEFLATE_ON_OOM, false), > DEFINE_PROP_BIT("free-page-hint", VirtIOBalloon, host_features, > VIRTIO_BALLOON_F_FREE_PAGE_HINT, false), > + DEFINE_PROP_BIT("thp-order", VirtIOBalloon, host_features, > + VIRTIO_BALLOON_F_THP_ORDER, false), > /* QEMU 4.0 accidentally changed the config size even when free-page-hint > * is disabled, resulting in QEMU 3.1 migration incompatibility. This > * property retains this quirk for QEMU 4.1 machine types. > diff --git a/include/standard-headers/linux/virtio_balloon.h b/include/standard-headers/linux/virtio_balloon.h > index 9375ca2..f54d613 100644 > --- a/include/standard-headers/linux/virtio_balloon.h > +++ b/include/standard-headers/linux/virtio_balloon.h > @@ -36,10 +36,14 @@ > #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ > #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ > #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ > +#define VIRTIO_BALLOON_F_THP_ORDER 5 /* Set balloon page order to thp order */ > > /* Size of a PFN in the balloon interface. */ > #define VIRTIO_BALLOON_PFN_SHIFT 12 > > +/* The order of the balloon page */ > +#define VIRTIO_BALLOON_THP_ORDER 9 > + > #define VIRTIO_BALLOON_CMD_ID_STOP 0 > #define VIRTIO_BALLOON_CMD_ID_DONE 1 > struct virtio_balloon_config { > -- > 2.7.4
> 2020年3月12日 16:25,Michael S. Tsirkin <mst@redhat.com> 写道: > > On Thu, Mar 12, 2020 at 03:49:55PM +0800, Hui Zhu wrote: >> If the guest kernel has many fragmentation pages, use virtio_balloon >> will split THP of QEMU when it calls MADV_DONTNEED madvise to release >> the balloon pages. >> Set option thp-order to on will open flags VIRTIO_BALLOON_F_THP_ORDER. >> It will set balloon size to THP size to handle the THP split issue. >> >> Signed-off-by: Hui Zhu <teawaterz@linux.alibaba.com> > > What's wrong with just using the PartiallyBalloonedPage machinery > instead? That would make it guest transparent. In balloon_inflate_page: rb_page_size = qemu_ram_pagesize(rb); if (rb_page_size == BALLOON_PAGE_SIZE) { /* Easy case */ It seems that PartiallyBalloonedPage is only used when rb_page_size is greater than BALLOON_PAGE_SIZE. Do you mean I should modify the working mechanism of balloon_inflate_page function? Thanks, Hui > >> --- >> hw/virtio/virtio-balloon.c | 67 ++++++++++++++++--------- >> include/standard-headers/linux/virtio_balloon.h | 4 ++ >> 2 files changed, 47 insertions(+), 24 deletions(-) >> >> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c >> index a4729f7..cfe86b0 100644 >> --- a/hw/virtio/virtio-balloon.c >> +++ b/hw/virtio/virtio-balloon.c >> @@ -340,37 +340,49 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq) >> while (iov_to_buf(elem->out_sg, elem->out_num, offset, &pfn, 4) == 4) { >> unsigned int p = virtio_ldl_p(vdev, &pfn); >> hwaddr pa; >> + size_t handle_size = BALLOON_PAGE_SIZE; >> >> pa = (hwaddr) p << VIRTIO_BALLOON_PFN_SHIFT; >> offset += 4; >> >> - section = memory_region_find(get_system_memory(), pa, >> - BALLOON_PAGE_SIZE); >> - if (!section.mr) { >> - trace_virtio_balloon_bad_addr(pa); >> - continue; >> - } >> - if (!memory_region_is_ram(section.mr) || >> - memory_region_is_rom(section.mr) || >> - memory_region_is_romd(section.mr)) { >> - trace_virtio_balloon_bad_addr(pa); >> - memory_region_unref(section.mr); >> - continue; >> - } >> + if (virtio_has_feature(s->host_features, >> + VIRTIO_BALLOON_F_THP_ORDER)) >> + handle_size = BALLOON_PAGE_SIZE << VIRTIO_BALLOON_THP_ORDER; >> + >> + while (handle_size > 0) { >> + section = memory_region_find(get_system_memory(), pa, >> + BALLOON_PAGE_SIZE); >> + if (!section.mr) { >> + trace_virtio_balloon_bad_addr(pa); >> + continue; >> + } >> + if (!memory_region_is_ram(section.mr) || >> + memory_region_is_rom(section.mr) || >> + memory_region_is_romd(section.mr)) { >> + trace_virtio_balloon_bad_addr(pa); >> + memory_region_unref(section.mr); >> + continue; >> + } >> >> - trace_virtio_balloon_handle_output(memory_region_name(section.mr), >> - pa); >> - if (!qemu_balloon_is_inhibited()) { >> - if (vq == s->ivq) { >> - balloon_inflate_page(s, section.mr, >> - section.offset_within_region, &pbp); >> - } else if (vq == s->dvq) { >> - balloon_deflate_page(s, section.mr, section.offset_within_region); >> - } else { >> - g_assert_not_reached(); >> + trace_virtio_balloon_handle_output(memory_region_name(section.mr), >> + pa); >> + if (!qemu_balloon_is_inhibited()) { >> + if (vq == s->ivq) { >> + balloon_inflate_page(s, section.mr, >> + section.offset_within_region, >> + &pbp); >> + } else if (vq == s->dvq) { >> + balloon_deflate_page(s, section.mr, >> + section.offset_within_region); >> + } else { >> + g_assert_not_reached(); >> + } >> } >> + memory_region_unref(section.mr); >> + >> + pa += BALLOON_PAGE_SIZE; >> + handle_size -= BALLOON_PAGE_SIZE; >> } >> - memory_region_unref(section.mr); >> } >> >> virtqueue_push(vq, elem, offset); >> @@ -693,6 +705,8 @@ static void virtio_balloon_set_config(VirtIODevice *vdev, >> >> memcpy(&config, config_data, virtio_balloon_config_size(dev)); >> dev->actual = le32_to_cpu(config.actual); >> + if (virtio_has_feature(vdev->host_features, VIRTIO_BALLOON_F_THP_ORDER)) >> + dev->actual <<= VIRTIO_BALLOON_THP_ORDER; >> if (dev->actual != oldactual) { >> qapi_event_send_balloon_change(vm_ram_size - >> ((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT)); >> @@ -728,6 +742,9 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) >> } >> if (target) { >> dev->num_pages = (vm_ram_size - target) >> VIRTIO_BALLOON_PFN_SHIFT; >> + if (virtio_has_feature(dev->host_features, >> + VIRTIO_BALLOON_F_THP_ORDER)) >> + dev->num_pages >>= VIRTIO_BALLOON_THP_ORDER; >> virtio_notify_config(vdev); >> } >> trace_virtio_balloon_to_target(target, dev->num_pages); >> @@ -916,6 +933,8 @@ static Property virtio_balloon_properties[] = { >> VIRTIO_BALLOON_F_DEFLATE_ON_OOM, false), >> DEFINE_PROP_BIT("free-page-hint", VirtIOBalloon, host_features, >> VIRTIO_BALLOON_F_FREE_PAGE_HINT, false), >> + DEFINE_PROP_BIT("thp-order", VirtIOBalloon, host_features, >> + VIRTIO_BALLOON_F_THP_ORDER, false), >> /* QEMU 4.0 accidentally changed the config size even when free-page-hint >> * is disabled, resulting in QEMU 3.1 migration incompatibility. This >> * property retains this quirk for QEMU 4.1 machine types. >> diff --git a/include/standard-headers/linux/virtio_balloon.h b/include/standard-headers/linux/virtio_balloon.h >> index 9375ca2..f54d613 100644 >> --- a/include/standard-headers/linux/virtio_balloon.h >> +++ b/include/standard-headers/linux/virtio_balloon.h >> @@ -36,10 +36,14 @@ >> #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ >> #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ >> #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ >> +#define VIRTIO_BALLOON_F_THP_ORDER 5 /* Set balloon page order to thp order */ >> >> /* Size of a PFN in the balloon interface. */ >> #define VIRTIO_BALLOON_PFN_SHIFT 12 >> >> +/* The order of the balloon page */ >> +#define VIRTIO_BALLOON_THP_ORDER 9 >> + >> #define VIRTIO_BALLOON_CMD_ID_STOP 0 >> #define VIRTIO_BALLOON_CMD_ID_DONE 1 >> struct virtio_balloon_config { >> -- >> 2.7.4
On Tue, Mar 17, 2020 at 06:13:32PM +0800, teawater wrote: > > > > 2020年3月12日 16:25,Michael S. Tsirkin <mst@redhat.com> 写道: > > > > On Thu, Mar 12, 2020 at 03:49:55PM +0800, Hui Zhu wrote: > >> If the guest kernel has many fragmentation pages, use virtio_balloon > >> will split THP of QEMU when it calls MADV_DONTNEED madvise to release > >> the balloon pages. > >> Set option thp-order to on will open flags VIRTIO_BALLOON_F_THP_ORDER. > >> It will set balloon size to THP size to handle the THP split issue. > >> > >> Signed-off-by: Hui Zhu <teawaterz@linux.alibaba.com> > > > > What's wrong with just using the PartiallyBalloonedPage machinery > > instead? That would make it guest transparent. > > In balloon_inflate_page: > rb_page_size = qemu_ram_pagesize(rb); > > if (rb_page_size == BALLOON_PAGE_SIZE) { > /* Easy case */ > > It seems that PartiallyBalloonedPage is only used when rb_page_size is greater than BALLOON_PAGE_SIZE. > Do you mean I should modify the working mechanism of balloon_inflate_page function? > > Thanks, > Hui Yes, we can tweak it to unconditionally combine pages to a huge page. > > > >> --- > >> hw/virtio/virtio-balloon.c | 67 ++++++++++++++++--------- > >> include/standard-headers/linux/virtio_balloon.h | 4 ++ > >> 2 files changed, 47 insertions(+), 24 deletions(-) > >> > >> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c > >> index a4729f7..cfe86b0 100644 > >> --- a/hw/virtio/virtio-balloon.c > >> +++ b/hw/virtio/virtio-balloon.c > >> @@ -340,37 +340,49 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq) > >> while (iov_to_buf(elem->out_sg, elem->out_num, offset, &pfn, 4) == 4) { > >> unsigned int p = virtio_ldl_p(vdev, &pfn); > >> hwaddr pa; > >> + size_t handle_size = BALLOON_PAGE_SIZE; > >> > >> pa = (hwaddr) p << VIRTIO_BALLOON_PFN_SHIFT; > >> offset += 4; > >> > >> - section = memory_region_find(get_system_memory(), pa, > >> - BALLOON_PAGE_SIZE); > >> - if (!section.mr) { > >> - trace_virtio_balloon_bad_addr(pa); > >> - continue; > >> - } > >> - if (!memory_region_is_ram(section.mr) || > >> - memory_region_is_rom(section.mr) || > >> - memory_region_is_romd(section.mr)) { > >> - trace_virtio_balloon_bad_addr(pa); > >> - memory_region_unref(section.mr); > >> - continue; > >> - } > >> + if (virtio_has_feature(s->host_features, > >> + VIRTIO_BALLOON_F_THP_ORDER)) > >> + handle_size = BALLOON_PAGE_SIZE << VIRTIO_BALLOON_THP_ORDER; > >> + > >> + while (handle_size > 0) { > >> + section = memory_region_find(get_system_memory(), pa, > >> + BALLOON_PAGE_SIZE); > >> + if (!section.mr) { > >> + trace_virtio_balloon_bad_addr(pa); > >> + continue; > >> + } > >> + if (!memory_region_is_ram(section.mr) || > >> + memory_region_is_rom(section.mr) || > >> + memory_region_is_romd(section.mr)) { > >> + trace_virtio_balloon_bad_addr(pa); > >> + memory_region_unref(section.mr); > >> + continue; > >> + } > >> > >> - trace_virtio_balloon_handle_output(memory_region_name(section.mr), > >> - pa); > >> - if (!qemu_balloon_is_inhibited()) { > >> - if (vq == s->ivq) { > >> - balloon_inflate_page(s, section.mr, > >> - section.offset_within_region, &pbp); > >> - } else if (vq == s->dvq) { > >> - balloon_deflate_page(s, section.mr, section.offset_within_region); > >> - } else { > >> - g_assert_not_reached(); > >> + trace_virtio_balloon_handle_output(memory_region_name(section.mr), > >> + pa); > >> + if (!qemu_balloon_is_inhibited()) { > >> + if (vq == s->ivq) { > >> + balloon_inflate_page(s, section.mr, > >> + section.offset_within_region, > >> + &pbp); > >> + } else if (vq == s->dvq) { > >> + balloon_deflate_page(s, section.mr, > >> + section.offset_within_region); > >> + } else { > >> + g_assert_not_reached(); > >> + } > >> } > >> + memory_region_unref(section.mr); > >> + > >> + pa += BALLOON_PAGE_SIZE; > >> + handle_size -= BALLOON_PAGE_SIZE; > >> } > >> - memory_region_unref(section.mr); > >> } > >> > >> virtqueue_push(vq, elem, offset); > >> @@ -693,6 +705,8 @@ static void virtio_balloon_set_config(VirtIODevice *vdev, > >> > >> memcpy(&config, config_data, virtio_balloon_config_size(dev)); > >> dev->actual = le32_to_cpu(config.actual); > >> + if (virtio_has_feature(vdev->host_features, VIRTIO_BALLOON_F_THP_ORDER)) > >> + dev->actual <<= VIRTIO_BALLOON_THP_ORDER; > >> if (dev->actual != oldactual) { > >> qapi_event_send_balloon_change(vm_ram_size - > >> ((ram_addr_t) dev->actual << VIRTIO_BALLOON_PFN_SHIFT)); > >> @@ -728,6 +742,9 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) > >> } > >> if (target) { > >> dev->num_pages = (vm_ram_size - target) >> VIRTIO_BALLOON_PFN_SHIFT; > >> + if (virtio_has_feature(dev->host_features, > >> + VIRTIO_BALLOON_F_THP_ORDER)) > >> + dev->num_pages >>= VIRTIO_BALLOON_THP_ORDER; > >> virtio_notify_config(vdev); > >> } > >> trace_virtio_balloon_to_target(target, dev->num_pages); > >> @@ -916,6 +933,8 @@ static Property virtio_balloon_properties[] = { > >> VIRTIO_BALLOON_F_DEFLATE_ON_OOM, false), > >> DEFINE_PROP_BIT("free-page-hint", VirtIOBalloon, host_features, > >> VIRTIO_BALLOON_F_FREE_PAGE_HINT, false), > >> + DEFINE_PROP_BIT("thp-order", VirtIOBalloon, host_features, > >> + VIRTIO_BALLOON_F_THP_ORDER, false), > >> /* QEMU 4.0 accidentally changed the config size even when free-page-hint > >> * is disabled, resulting in QEMU 3.1 migration incompatibility. This > >> * property retains this quirk for QEMU 4.1 machine types. > >> diff --git a/include/standard-headers/linux/virtio_balloon.h b/include/standard-headers/linux/virtio_balloon.h > >> index 9375ca2..f54d613 100644 > >> --- a/include/standard-headers/linux/virtio_balloon.h > >> +++ b/include/standard-headers/linux/virtio_balloon.h > >> @@ -36,10 +36,14 @@ > >> #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ > >> #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ > >> #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ > >> +#define VIRTIO_BALLOON_F_THP_ORDER 5 /* Set balloon page order to thp order */ > >> > >> /* Size of a PFN in the balloon interface. */ > >> #define VIRTIO_BALLOON_PFN_SHIFT 12 > >> > >> +/* The order of the balloon page */ > >> +#define VIRTIO_BALLOON_THP_ORDER 9 > >> + > >> #define VIRTIO_BALLOON_CMD_ID_STOP 0 > >> #define VIRTIO_BALLOON_CMD_ID_DONE 1 > >> struct virtio_balloon_config { > >> -- > >> 2.7.4
Patchew URL: https://patchew.org/QEMU/1583999395-9131-2-git-send-email-teawater@gmail.com/ Hi, This series failed the asan build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash export ARCH=x86_64 make docker-image-fedora V=1 NETWORK=1 time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1 === TEST SCRIPT END === PASS 1 fdc-test /x86_64/fdc/cmos PASS 2 fdc-test /x86_64/fdc/no_media_on_start PASS 3 fdc-test /x86_64/fdc/read_without_media ==6136==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 fdc-test /x86_64/fdc/media_change PASS 5 fdc-test /x86_64/fdc/sense_interrupt PASS 6 fdc-test /x86_64/fdc/relative_seek --- PASS 32 test-opts-visitor /visitor/opts/range/beyond PASS 33 test-opts-visitor /visitor/opts/dict/unvisited MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-coroutine -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-coroutine" ==6187==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6187==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff659f7000; bottom 0x7f4bef2e8000; size: 0x00b37670f000 (770786258944) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 1 test-coroutine /basic/no-dangling-access --- PASS 12 test-aio /aio/event/flush PASS 13 test-aio /aio/event/wait/no-flush-cb PASS 14 test-aio /aio/timer/schedule ==6202==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 15 test-aio /aio/coroutine/queue-chaining PASS 16 test-aio /aio-gsource/flush PASS 17 test-aio /aio-gsource/bh/schedule --- PASS 12 fdc-test /x86_64/fdc/read_no_dma_19 PASS 13 fdc-test /x86_64/fdc/fuzz-registers MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/ide-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ide-test" ==6210==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 28 test-aio /aio-gsource/timer/schedule MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-aio-multithread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-aio-multithread" PASS 1 ide-test /x86_64/ide/identify ==6217==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-aio-multithread /aio/multi/lifecycle ==6219==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 ide-test /x86_64/ide/flush PASS 2 test-aio-multithread /aio/multi/schedule ==6236==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 ide-test /x86_64/ide/bmdma/simple_rw ==6247==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 ide-test /x86_64/ide/bmdma/trim PASS 3 test-aio-multithread /aio/multi/mutex/contended ==6253==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 test-aio-multithread /aio/multi/mutex/handoff PASS 5 test-aio-multithread /aio/multi/mutex/mcs PASS 6 test-aio-multithread /aio/multi/mutex/pthread MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-throttle -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-throttle" ==6275==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-throttle /throttle/leak_bucket PASS 2 test-throttle /throttle/compute_wait PASS 3 test-throttle /throttle/init --- PASS 15 test-throttle /throttle/config/iops_size MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-thread-pool -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-thread-pool" PASS 1 test-thread-pool /thread-pool/submit ==6279==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-thread-pool /thread-pool/submit-aio PASS 3 test-thread-pool /thread-pool/submit-co PASS 4 test-thread-pool /thread-pool/submit-many ==6346==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-thread-pool /thread-pool/cancel PASS 6 test-thread-pool /thread-pool/cancel-async MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-hbitmap -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-hbitmap" --- PASS 14 test-hbitmap /hbitmap/set/twice PASS 15 test-hbitmap /hbitmap/set/overlap PASS 16 test-hbitmap /hbitmap/reset/empty ==6356==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 17 test-hbitmap /hbitmap/reset/general PASS 18 test-hbitmap /hbitmap/reset/all PASS 19 test-hbitmap /hbitmap/truncate/nop --- PASS 31 test-hbitmap /hbitmap/meta/one PASS 32 test-hbitmap /hbitmap/meta/byte PASS 33 test-hbitmap /hbitmap/meta/word ==6362==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 34 test-hbitmap /hbitmap/meta/sector PASS 35 test-hbitmap /hbitmap/serialize/align PASS 36 test-hbitmap /hbitmap/serialize/basic --- PASS 44 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_4 PASS 45 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_after_truncate MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bdrv-drain -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-drain" ==6369==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bdrv-drain /bdrv-drain/nested PASS 2 test-bdrv-drain /bdrv-drain/multiparent PASS 3 test-bdrv-drain /bdrv-drain/set_aio_context --- PASS 41 test-bdrv-drain /bdrv-drain/bdrv_drop_intermediate/poll PASS 42 test-bdrv-drain /bdrv-drain/replace_child/mid-drain MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bdrv-graph-mod -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-graph-mod" ==6408==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bdrv-graph-mod /bdrv-graph-mod/update-perm-tree PASS 2 test-bdrv-graph-mod /bdrv-graph-mod/should-update-child MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-blockjob -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob" ==6412==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-blockjob /blockjob/ids PASS 2 test-blockjob /blockjob/cancel/created PASS 3 test-blockjob /blockjob/cancel/running --- PASS 7 test-blockjob /blockjob/cancel/pending PASS 8 test-blockjob /blockjob/cancel/concluded MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-blockjob-txn -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob-txn" ==6416==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-blockjob-txn /single/success PASS 2 test-blockjob-txn /single/failure PASS 3 test-blockjob-txn /single/cancel --- PASS 6 test-blockjob-txn /pair/cancel PASS 7 test-blockjob-txn /pair/fail-cancel-race MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-block-backend -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-backend" ==6422==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-block-backend /block-backend/drain_aio_error PASS 2 test-block-backend /block-backend/drain_all_aio_error MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-block-iothread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-iothread" ==6419==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6429==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-block-iothread /sync-op/pread PASS 2 test-block-iothread /sync-op/pwrite PASS 3 test-block-iothread /sync-op/load_vmstate --- PASS 15 test-block-iothread /propagate/diamond PASS 16 test-block-iothread /propagate/mirror MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-image-locking -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-image-locking" ==6450==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-image-locking /image-locking/basic PASS 2 test-image-locking /image-locking/set-perm-abort MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-x86-cpuid -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-x86-cpuid" --- MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-list -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-list" PASS 1 test-rcu-list /rcu/qlist/single-threaded PASS 2 test-rcu-list /rcu/qlist/short-few ==6514==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 test-rcu-list /rcu/qlist/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-simpleq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-simpleq" PASS 1 test-rcu-simpleq /rcu/qsimpleq/single-threaded PASS 2 test-rcu-simpleq /rcu/qsimpleq/short-few PASS 3 test-rcu-simpleq /rcu/qsimpleq/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-tailq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-tailq" ==6574==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-rcu-tailq /rcu/qtailq/single-threaded PASS 2 test-rcu-tailq /rcu/qtailq/short-few PASS 3 test-rcu-tailq /rcu/qtailq/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-rcu-slist -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-slist" PASS 1 test-rcu-slist /rcu/qslist/single-threaded ==6619==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-rcu-slist /rcu/qslist/short-few PASS 3 test-rcu-slist /rcu/qslist/long-many MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qdist -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qdist" --- PASS 7 test-qdist /qdist/binning/expand PASS 8 test-qdist /qdist/binning/shrink MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qht -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht" ==6659==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 ide-test /x86_64/ide/bmdma/various_prdts ==6665==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6665==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff4fd7b000; bottom 0x7fb28fffe000; size: 0x004cbfd7d000 (329636106240) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 6 ide-test /x86_64/ide/bmdma/no_busmaster PASS 7 ide-test /x86_64/ide/flush/nodev ==6676==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 8 ide-test /x86_64/ide/flush/empty_drive ==6681==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 9 ide-test /x86_64/ide/flush/retry_pci ==6687==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 10 ide-test /x86_64/ide/flush/retry_isa ==6693==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 ide-test /x86_64/ide/cdrom/pio ==6699==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-qht /qht/mode/default PASS 12 ide-test /x86_64/ide/cdrom/pio_large PASS 2 test-qht /qht/mode/resize MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qht-par -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht-par" ==6705==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 ide-test /x86_64/ide/cdrom/dma MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/ahci-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ahci-test" PASS 1 test-qht-par /qht/parallel/2threads-0%updates-1s ==6728==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 ahci-test /x86_64/ahci/sanity PASS 2 test-qht-par /qht/parallel/2threads-20%updates-1s MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bitops -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bitops" ==6740==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-bitops /bitops/sextract32 PASS 2 test-bitops /bitops/sextract64 PASS 3 test-bitops /bitops/half_shuffle32 --- PASS 1 check-qom-interface /qom/interface/direct_impl PASS 2 check-qom-interface /qom/interface/intermediate_impl MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/check-qom-proplist -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="check-qom-proplist" ==6759==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 check-qom-proplist /qom/proplist/createlist PASS 2 check-qom-proplist /qom/proplist/createv PASS 3 check-qom-proplist /qom/proplist/createcmdline --- PASS 3 test-write-threshold /write-threshold/multi-set-get PASS 4 test-write-threshold /write-threshold/not-trigger PASS 5 test-write-threshold /write-threshold/trigger ==6784==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-hash -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-hash" PASS 1 test-crypto-hash /crypto/hash/iov PASS 2 test-crypto-hash /crypto/hash/alloc --- PASS 15 test-crypto-secret /crypto/secret/crypt/missingiv PASS 16 test-crypto-secret /crypto/secret/crypt/badiv MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-tlscredsx509 -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-tlscredsx509" ==6810==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 ahci-test /x86_64/ahci/hba_enable ==6824==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectserver PASS 2 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectclient PASS 6 ahci-test /x86_64/ahci/identify ==6830==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 7 ahci-test /x86_64/ahci/max ==6836==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca1 PASS 4 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca2 PASS 8 ahci-test /x86_64/ahci/reset ==6842==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6842==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fffcedf6000; bottom 0x7f5ebdbfe000; size: 0x00a1111f8000 (691777011712) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 5 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca3 --- PASS 8 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badca3 PASS 9 ahci-test /x86_64/ahci/io/pio/lba28/simple/zero PASS 9 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver1 ==6848==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6848==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff87881000; bottom 0x7fe1e9dfe000; size: 0x001d9da83000 (127199096832) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 10 ahci-test /x86_64/ahci/io/pio/lba28/simple/low PASS 10 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver2 PASS 11 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver3 ==6854==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6854==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe879cc000; bottom 0x7f9e113fe000; size: 0x0060765ce000 (414302658560) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 11 ahci-test /x86_64/ahci/io/pio/lba28/simple/high PASS 12 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver4 ==6860==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6860==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff14a10000; bottom 0x7fc38a9fe000; size: 0x003b8a012000 (255718400000) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 12 ahci-test /x86_64/ahci/io/pio/lba28/double/zero ==6866==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6866==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff36210000; bottom 0x7f4ef89fe000; size: 0x00b03d812000 (756946116608) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 13 ahci-test /x86_64/ahci/io/pio/lba28/double/low PASS 13 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver5 ==6872==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6872==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffebaaca000; bottom 0x7f8ecc1fe000; size: 0x006fee8cc000 (480743571456) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 14 ahci-test /x86_64/ahci/io/pio/lba28/double/high ==6878==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver6 ==6878==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffea3d5c000; bottom 0x7fbcdb37c000; size: 0x0041c89e0000 (282538672128) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 15 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver7 --- MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-tlssession -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-tlssession" PASS 15 ahci-test /x86_64/ahci/io/pio/lba28/long/zero PASS 1 test-crypto-tlssession /qcrypto/tlssession/psk ==6888==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 test-crypto-tlssession /qcrypto/tlssession/basicca ==6888==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffeb04c7000; bottom 0x7f4a26b24000; size: 0x00b4899a3000 (775402696704) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 16 ahci-test /x86_64/ahci/io/pio/lba28/long/low ==6894==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6894==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc2c698000; bottom 0x7f7437bfe000; size: 0x0087f4a9a000 (583925342208) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 17 ahci-test /x86_64/ahci/io/pio/lba28/long/high PASS 3 test-crypto-tlssession /qcrypto/tlssession/differentca ==6900==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 18 ahci-test /x86_64/ahci/io/pio/lba28/short/zero ==6906==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 19 ahci-test /x86_64/ahci/io/pio/lba28/short/low ==6912==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 20 ahci-test /x86_64/ahci/io/pio/lba28/short/high PASS 4 test-crypto-tlssession /qcrypto/tlssession/altname1 ==6918==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 test-crypto-tlssession /qcrypto/tlssession/altname2 ==6918==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff9ed92000; bottom 0x7f69c77fe000; size: 0x0095d7594000 (643563077632) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 21 ahci-test /x86_64/ahci/io/pio/lba48/simple/zero PASS 6 test-crypto-tlssession /qcrypto/tlssession/altname3 ==6924==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6924==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffda3fc3000; bottom 0x7f051bffe000; size: 0x00f887fc5000 (1067433349120) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 22 ahci-test /x86_64/ahci/io/pio/lba48/simple/low PASS 7 test-crypto-tlssession /qcrypto/tlssession/altname4 ==6930==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6930==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffdecdbb000; bottom 0x7ff410dfe000; size: 0x0009dbfbd000 (42345418752) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 23 ahci-test /x86_64/ahci/io/pio/lba48/simple/high PASS 8 test-crypto-tlssession /qcrypto/tlssession/altname5 PASS 9 test-crypto-tlssession /qcrypto/tlssession/altname6 ==6936==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6936==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe016fb000; bottom 0x7f0438ffe000; size: 0x00f9c86fd000 (1072809627648) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 10 test-crypto-tlssession /qcrypto/tlssession/wildcard1 PASS 24 ahci-test /x86_64/ahci/io/pio/lba48/double/zero ==6942==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 test-crypto-tlssession /qcrypto/tlssession/wildcard2 ==6942==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffed5a28000; bottom 0x7fca249fe000; size: 0x0034b102a000 (226308038656) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 25 ahci-test /x86_64/ahci/io/pio/lba48/double/low ==6948==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6948==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcefea2000; bottom 0x7ff65cffe000; size: 0x000692ea4000 (28234629120) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 26 ahci-test /x86_64/ahci/io/pio/lba48/double/high ==6954==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 12 test-crypto-tlssession /qcrypto/tlssession/wildcard3 ==6954==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffca1c24000; bottom 0x7fdf071fe000; size: 0x001d9aa26000 (127148384256) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 13 test-crypto-tlssession /qcrypto/tlssession/wildcard4 PASS 27 ahci-test /x86_64/ahci/io/pio/lba48/long/zero PASS 14 test-crypto-tlssession /qcrypto/tlssession/wildcard5 ==6960==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==6960==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc0dfa2000; bottom 0x7f0c47b7c000; size: 0x00efc6426000 (1029823422464) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 28 ahci-test /x86_64/ahci/io/pio/lba48/long/low ==6966==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 15 test-crypto-tlssession /qcrypto/tlssession/wildcard6 ==6966==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcc0eeb000; bottom 0x7fa8f537c000; size: 0x0053cbb6f000 (359900049408) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 16 test-crypto-tlssession /qcrypto/tlssession/cachain MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qga -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qga" PASS 29 ahci-test /x86_64/ahci/io/pio/lba48/long/high ==6980==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 30 ahci-test /x86_64/ahci/io/pio/lba48/short/zero PASS 1 test-qga /qga/sync-delimited PASS 2 test-qga /qga/sync --- PASS 15 test-qga /qga/invalid-cmd PASS 16 test-qga /qga/invalid-args PASS 17 test-qga /qga/fsfreeze-status ==6986==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 31 ahci-test /x86_64/ahci/io/pio/lba48/short/low PASS 18 test-qga /qga/blacklist ==6995==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 19 test-qga /qga/config PASS 20 test-qga /qga/guest-exec PASS 21 test-qga /qga/guest-exec-invalid PASS 32 ahci-test /x86_64/ahci/io/pio/lba48/short/high ==7013==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 22 test-qga /qga/guest-get-osinfo PASS 23 test-qga /qga/guest-get-host-name PASS 24 test-qga /qga/guest-get-timezone --- PASS 7 test-util-sockets /socket/fd-pass/num/bad PASS 8 test-util-sockets /socket/fd-pass/num/nocli MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-authz-simple -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-authz-simple" ==7024==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-authz-simple /authz/simple MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-authz-list -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-authz-list" PASS 34 ahci-test /x86_64/ahci/io/dma/lba28/retry --- PASS 4 test-authz-listfile /auth/list/explicit/deny PASS 5 test-authz-listfile /auth/list/explicit/allow MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-io-task -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-task" ==7047==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-io-task /crypto/task/complete PASS 2 test-io-task /crypto/task/datafree PASS 3 test-io-task /crypto/task/failure --- PASS 4 test-io-channel-file /io/channel/pipe/sync PASS 5 test-io-channel-file /io/channel/pipe/async MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-io-channel-tls -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-tls" ==7091==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 36 ahci-test /x86_64/ahci/io/dma/lba28/simple/low PASS 1 test-io-channel-tls /qio/channel/tls/basic MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-io-channel-command -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-command" ==7121==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-io-channel-command /io/channel/command/fifo/sync PASS 2 test-io-channel-command /io/channel/command/fifo/async PASS 3 test-io-channel-command /io/channel/command/echo/sync --- PASS 3 test-base64 /util/base64/not-nul-terminated PASS 4 test-base64 /util/base64/invalid-chars MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-pbkdf -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-pbkdf" ==7139==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-crypto-pbkdf /crypto/pbkdf/rfc3962/sha1/iter1 PASS 2 test-crypto-pbkdf /crypto/pbkdf/rfc3962/sha1/iter2 PASS 3 test-crypto-pbkdf /crypto/pbkdf/rfc3962/sha1/iter1200a --- PASS 17 test-crypto-xts /crypto/xts/t-21-key-32-ptx-31/basic PASS 18 test-crypto-xts /crypto/xts/t-21-key-32-ptx-31/unaligned MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-crypto-block -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-block" ==7156==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-crypto-block /crypto/block/qcow MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-logging -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-logging" PASS 1 test-logging /logging/parse_range --- PASS 4 test-logging /logging/logfile_lock_path MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-replication -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-replication" PASS 39 ahci-test /x86_64/ahci/io/dma/lba28/double/low ==7179==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7181==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-replication /replication/primary/read PASS 2 test-replication /replication/primary/write PASS 40 ahci-test /x86_64/ahci/io/dma/lba28/double/high ==7189==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 test-replication /replication/primary/start PASS 4 test-replication /replication/primary/stop PASS 5 test-replication /replication/primary/do_checkpoint PASS 6 test-replication /replication/primary/get_error_all ==7189==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe97ab4000; bottom 0x7f8d3e7fd000; size: 0x0071592b7000 (486827323392) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 41 ahci-test /x86_64/ahci/io/dma/lba28/long/zero ==7196==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7196==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcee2ff000; bottom 0x7f4eb5323000; size: 0x00ae38fdc000 (748280463360) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 7 test-replication /replication/secondary/read PASS 42 ahci-test /x86_64/ahci/io/dma/lba28/long/low ==7203==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7203==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffde06e6000; bottom 0x7fc35a57b000; size: 0x003a8616b000 (251357736960) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 8 test-replication /replication/secondary/write PASS 43 ahci-test /x86_64/ahci/io/dma/lba28/long/high ==7210==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 44 ahci-test /x86_64/ahci/io/dma/lba28/short/zero ==7216==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 45 ahci-test /x86_64/ahci/io/dma/lba28/short/low ==7223==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7179==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc5a310000; bottom 0x7f4406be8000; size: 0x00b853728000 (791673995264) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 9 test-replication /replication/secondary/start PASS 46 ahci-test /x86_64/ahci/io/dma/lba28/short/high ==7247==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 47 ahci-test /x86_64/ahci/io/dma/lba48/simple/zero ==7253==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 48 ahci-test /x86_64/ahci/io/dma/lba48/simple/low ==7259==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 49 ahci-test /x86_64/ahci/io/dma/lba48/simple/high PASS 10 test-replication /replication/secondary/stop ==7265==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 50 ahci-test /x86_64/ahci/io/dma/lba48/double/zero ==7271==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 51 ahci-test /x86_64/ahci/io/dma/lba48/double/low ==7277==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 test-replication /replication/secondary/continuous_replication PASS 52 ahci-test /x86_64/ahci/io/dma/lba48/double/high ==7283==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7283==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffeb26d1000; bottom 0x7f9d00ffd000; size: 0x0061b16d4000 (419588554752) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 53 ahci-test /x86_64/ahci/io/dma/lba48/long/zero ==7290==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7290==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc097f1000; bottom 0x7f694f923000; size: 0x0092b9ece000 (630184534016) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 54 ahci-test /x86_64/ahci/io/dma/lba48/long/low ==7297==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 12 test-replication /replication/secondary/do_checkpoint ==7297==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc23565000; bottom 0x7f6912123000; size: 0x009311442000 (631649869824) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 55 ahci-test /x86_64/ahci/io/dma/lba48/long/high ==7304==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 test-replication /replication/secondary/get_error_all PASS 56 ahci-test /x86_64/ahci/io/dma/lba48/short/zero MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-bufferiszero -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bufferiszero" ==7310==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 57 ahci-test /x86_64/ahci/io/dma/lba48/short/low ==7319==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 58 ahci-test /x86_64/ahci/io/dma/lba48/short/high ==7325==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 59 ahci-test /x86_64/ahci/io/ncq/simple ==7331==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 60 ahci-test /x86_64/ahci/io/ncq/retry ==7337==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 61 ahci-test /x86_64/ahci/flush/simple ==7343==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 62 ahci-test /x86_64/ahci/flush/retry ==7349==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7355==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 63 ahci-test /x86_64/ahci/flush/migrate ==7363==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7369==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 64 ahci-test /x86_64/ahci/migrate/sanity ==7377==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7383==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 65 ahci-test /x86_64/ahci/migrate/dma/simple ==7391==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7397==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 66 ahci-test /x86_64/ahci/migrate/dma/halted ==7405==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7411==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 67 ahci-test /x86_64/ahci/migrate/ncq/simple ==7419==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7425==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 68 ahci-test /x86_64/ahci/migrate/ncq/halted ==7433==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 69 ahci-test /x86_64/ahci/cdrom/eject ==7438==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 70 ahci-test /x86_64/ahci/cdrom/dma/single ==7444==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 71 ahci-test /x86_64/ahci/cdrom/dma/multi ==7450==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 72 ahci-test /x86_64/ahci/cdrom/pio/single ==7456==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7456==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd43437000; bottom 0x7f71a0dfe000; size: 0x008ba2639000 (599724888064) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 PASS 73 ahci-test /x86_64/ahci/cdrom/pio/multi ==7462==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 74 ahci-test /x86_64/ahci/cdrom/pio/bcl MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/hd-geo-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="hd-geo-test" PASS 1 hd-geo-test /x86_64/hd-geo/ide/none ==7476==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 2 hd-geo-test /x86_64/hd-geo/ide/drive/cd_0 ==7482==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/blank ==7488==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/lba ==7494==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 5 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/chs ==7500==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 6 hd-geo-test /x86_64/hd-geo/ide/device/mbr/blank PASS 1 test-bufferiszero /cutils/bufferiszero MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-uuid -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-uuid" ==7506==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 1 test-uuid /uuid/is_null PASS 2 test-uuid /uuid/generate PASS 3 test-uuid /uuid/parse --- PASS 1 test-qapi-util /qapi/util/qapi_enum_parse PASS 2 test-qapi-util /qapi/util/parse_qapi_name MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} tests/test-qgraph -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qgraph" ==7518==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 8 hd-geo-test /x86_64/hd-geo/ide/device/mbr/chs PASS 1 test-qgraph /qgraph/init_nop PASS 2 test-qgraph /qgraph/test_machine --- PASS 21 test-qgraph /qgraph/test_two_test_same_interface PASS 22 test-qgraph /qgraph/test_test_in_path PASS 23 test-qgraph /qgraph/test_double_edge ==7531==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 9 hd-geo-test /x86_64/hd-geo/ide/device/user/chs ==7536==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 10 hd-geo-test /x86_64/hd-geo/ide/device/user/chst ==7542==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7546==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7550==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7554==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7558==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7562==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7566==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7570==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7573==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 11 hd-geo-test /x86_64/hd-geo/override/ide ==7580==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7584==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7588==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7592==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7596==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7600==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7604==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7608==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7611==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 12 hd-geo-test /x86_64/hd-geo/override/scsi ==7618==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7622==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7626==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7630==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7634==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7638==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7642==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7646==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7649==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 13 hd-geo-test /x86_64/hd-geo/override/scsi_2_controllers ==7656==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7660==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7664==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7668==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7671==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 14 hd-geo-test /x86_64/hd-geo/override/virtio_blk ==7678==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7682==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7685==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 15 hd-geo-test /x86_64/hd-geo/override/zero_chs ==7692==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7696==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7700==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7704==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7707==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 16 hd-geo-test /x86_64/hd-geo/override/scsi_hot_unplug ==7714==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7718==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7722==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7726==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==7729==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 17 hd-geo-test /x86_64/hd-geo/override/virtio_hot_unplug MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/boot-order-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="boot-order-test" PASS 1 boot-order-test /x86_64/boot-order/pc --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7798==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP' Using expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7804==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP' Using expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7810==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.bridge' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7816==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.ipmikcs' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7822==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.cphp' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7829==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.memhp' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7835==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.numamem' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7841==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.dimmpxm' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7850==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/pc/FACP.acpihmat' Looking for expected file 'tests/data/acpi/pc/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7857==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.bridge' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7863==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.mmio64' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7869==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.ipmibt' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7875==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.cphp' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7882==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.memhp' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7888==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.numamem' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7894==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.dimmpxm' Looking for expected file 'tests/data/acpi/q35/FACP' --- Could not access KVM kernel module: No such file or directory qemu-system-x86_64: -accel kvm: failed to initialize kvm: No such file or directory qemu-system-x86_64: falling back to tcg ==7903==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! Looking for expected file 'tests/data/acpi/q35/FACP.acpihmat' Looking for expected file 'tests/data/acpi/q35/FACP' --- PASS 1 i440fx-test /x86_64/i440fx/defaults PASS 2 i440fx-test /x86_64/i440fx/pam PASS 3 i440fx-test /x86_64/i440fx/firmware/bios ==7995==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 4 i440fx-test /x86_64/i440fx/firmware/pflash MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/fw_cfg-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="fw_cfg-test" PASS 1 fw_cfg-test /x86_64/fw_cfg/signature --- MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/drive_del-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="drive_del-test" PASS 1 drive_del-test /x86_64/drive_del/without-dev PASS 2 drive_del-test /x86_64/drive_del/after_failed_device_add ==8088==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! PASS 3 drive_del-test /x86_64/blockdev/drive_del_device_del MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qtest/wdt_ib700-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="wdt_ib700-test" PASS 1 wdt_ib700-test /x86_64/wdt_ib700/pause --- dbus-daemon[8258]: Could not get password database information for UID of current process: User "???" unknown or no memory to allocate password entry ** ERROR:/tmp/qemu-test/src/tests/qtest/dbus-vmstate-test.c:114:get_connection: assertion failed (err == NULL): The connection is closed (g-io-error-quark, 18) cleaning up pid 8258 ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/qtest/dbus-vmstate-test.c:114:get_connection: assertion failed (err == NULL): The connection is closed (g-io-error-quark, 18) make: *** [/tmp/qemu-test/src/tests/Makefile.include:632: check-qtest-x86_64] Error 1 make: *** Waiting for unfinished jobs.... Traceback (most recent call last): File "./tests/docker/docker.py", line 664, in <module> --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=097891ecdb724e63ab99fd5fa3b8b179', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=x86_64-softmmu', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-logmabgq/src/docker-src.2020-03-12-03.54.30.26791:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-debug']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=097891ecdb724e63ab99fd5fa3b8b179 make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-logmabgq/src' make: *** [docker-run-test-debug@fedora] Error 2 real 27m51.719s user 0m9.162s The full log is available at http://patchew.org/logs/1583999395-9131-2-git-send-email-teawater@gmail.com/testing.asan/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
© 2016 - 2024 Red Hat, Inc.