[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] tests/qtest/fuzz: Avoid QTest ioport serialization
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 1/2] tests/qtest/fuzz: Avoid QTest ioport serialization |
Date: |
Tue, 26 May 2020 07:58:19 +0200 |
We don't need to serialize over QTest chardev when we can
directly access the globally registered I/O address space.
i440fx-qtest-reboot-fuzz gets 2x performance improvement.
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
tests/qtest/fuzz/i440fx_fuzz.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/tests/qtest/fuzz/i440fx_fuzz.c b/tests/qtest/fuzz/i440fx_fuzz.c
index bcd6769b4c..d770caffa7 100644
--- a/tests/qtest/fuzz/i440fx_fuzz.c
+++ b/tests/qtest/fuzz/i440fx_fuzz.c
@@ -20,6 +20,7 @@
#include "fuzz/qos_fuzz.h"
#include "fuzz/fork_fuzz.h"
+#include "exec/address-spaces.h"
#define I440FX_PCI_HOST_BRIDGE_CFG 0xcf8
#define I440FX_PCI_HOST_BRIDGE_DATA 0xcfc
@@ -59,22 +60,28 @@ static void ioport_fuzz_qtest(QTestState *s,
I440FX_PCI_HOST_BRIDGE_DATA;
switch (a.opcode % ACTION_MAX) {
case WRITEB:
- qtest_outb(s, addr, (uint8_t)a.value);
+ address_space_write(&address_space_io, addr,
MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint8_t));
break;
case WRITEW:
- qtest_outw(s, addr, (uint16_t)a.value);
+ address_space_write(&address_space_io, addr,
MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint16_t));
break;
case WRITEL:
- qtest_outl(s, addr, (uint32_t)a.value);
+ address_space_write(&address_space_io, addr,
MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint32_t));
break;
case READB:
- qtest_inb(s, addr);
+ address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint8_t));
break;
case READW:
- qtest_inw(s, addr);
+ address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint16_t));
break;
case READL:
- qtest_inl(s, addr);
+ address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED,
+ &a.value, sizeof(uint32_t));
break;
}
/* Move to the next operation */
--
2.21.3
- [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Philippe Mathieu-Daudé, 2020/05/26
- [PATCH 1/2] tests/qtest/fuzz: Avoid QTest ioport serialization,
Philippe Mathieu-Daudé <=
- [PATCH 2/2] tests/qtest/fuzz: Avoid QTest mmio serialization, Philippe Mathieu-Daudé, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Stefan Hajnoczi, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Philippe Mathieu-Daudé, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Alexander Bulekov, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Philippe Mathieu-Daudé, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Alexander Bulekov, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Philippe Mathieu-Daudé, 2020/05/26
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Philippe Mathieu-Daudé, 2020/05/28
- Re: [PATCH 0/2] tests/qtest/fuzz: Avoid QTest serialization, Alexander Bulekov, 2020/05/28