mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-31 08:28:34 +00:00
This change the version of QEMU used in the tests and CI. The scripts/configure-hypervisor.sh was changed so that: - Passing the `--enable-virtiofsd` flag - Do not compiling with -O3 to avoid the warning: Program python3 found: YES (/usr/bin/python3) ../meson.build:104: WARNING: Consider using the built-in optimization level instead of using "-O3". ../meson.build:108: WARNING: Consider using the built-in optimization level instead of using "-O3". The qemu.blacklist files was changed so that new and uneeded firmware files are removed from the final tarball. Except for qboot.rom which is new but kept, since it can be used with microvm machine type (in case we want to enable microvm in the future). The patches which are applied on QEMU sources: - 0001-virtiofsd-Allow-to-build-it-without-the-tools.patch (Build fix for Meson - allows passing `--disable-tools --enable-virtiofsd`) - 0002-virtiofsd-extract-lo_do_open-from-lo_open.patch 0003-virtiofsd-optionally-return-inode-pointer-from-lo_do.patch 0004-virtiofsd-prevent-opening-of-special-files-CVE-2020-.patch 0005-virtiofsd-Add-_llseek-to-the-seccomp-whitelist.patch 0006-virtiofsd-Add-restart_syscall-to-the-seccomp-whiteli.patch (Security fixes for virtiofsd) - 0007-9p-removing-coroutines-of-9p-to-increase-the-I-O-per.patch (Performance improvement for 9p driver) - 0008-hw-s390x-fix-build-for-virtio-9p-ccw.patch (Build fix for virtio-9p-ccw machine type) Fixes: #1238 Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
99 lines
2.9 KiB
Diff
99 lines
2.9 KiB
Diff
From 3de89ce9fb5eda46f7cefd70e9090cb7cd7ec803 Mon Sep 17 00:00:00 2001
|
|
From: Yang Zhong <yang.zhong@intel.com>
|
|
Date: Wed, 28 Mar 2018 20:14:53 +0800
|
|
Subject: [PATCH 1/2] 9p: removing coroutines of 9p to increase the I/O
|
|
performance
|
|
|
|
This is a quick workaround, need to be fixed.
|
|
|
|
Signed-off-by: Chao Peng <chao.p.peng@linux.intel.com>
|
|
---
|
|
hw/9pfs/9p.c | 12 +++++-------
|
|
hw/9pfs/9p.h | 6 +++---
|
|
hw/9pfs/coth.h | 3 +++
|
|
3 files changed, 11 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
|
|
index 9e046f7acb..11c8ee08d9 100644
|
|
--- a/hw/9pfs/9p.c
|
|
+++ b/hw/9pfs/9p.c
|
|
@@ -1082,10 +1082,7 @@ static void coroutine_fn pdu_complete(V9fsPDU *pdu, ssize_t len)
|
|
out_notify:
|
|
pdu->s->transport->push_and_notify(pdu);
|
|
|
|
- /* Now wakeup anybody waiting in flush for this request */
|
|
- if (!qemu_co_queue_next(&pdu->complete)) {
|
|
- pdu_free(pdu);
|
|
- }
|
|
+ pdu_free(pdu);
|
|
}
|
|
|
|
static mode_t v9mode_to_mode(uint32_t mode, V9fsString *extension)
|
|
@@ -3997,7 +3994,7 @@ static inline bool is_read_only_op(V9fsPDU *pdu)
|
|
|
|
void pdu_submit(V9fsPDU *pdu, P9MsgHeader *hdr)
|
|
{
|
|
- Coroutine *co;
|
|
+// Coroutine *co;
|
|
CoroutineEntry *handler;
|
|
V9fsState *s = pdu->s;
|
|
|
|
@@ -4015,8 +4012,9 @@ void pdu_submit(V9fsPDU *pdu, P9MsgHeader *hdr)
|
|
}
|
|
|
|
qemu_co_queue_init(&pdu->complete);
|
|
- co = qemu_coroutine_create(handler, pdu);
|
|
- qemu_coroutine_enter(co);
|
|
+ handler(pdu);
|
|
+ //co = qemu_coroutine_create(handler, pdu);
|
|
+ //qemu_coroutine_enter(co);
|
|
}
|
|
|
|
/* Returns 0 on success, 1 on failure. */
|
|
diff --git a/hw/9pfs/9p.h b/hw/9pfs/9p.h
|
|
index b8f72a3bd9..d16bf9d05e 100644
|
|
--- a/hw/9pfs/9p.h
|
|
+++ b/hw/9pfs/9p.h
|
|
@@ -391,21 +391,21 @@ extern int total_open_fd;
|
|
static inline void v9fs_path_write_lock(V9fsState *s)
|
|
{
|
|
if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
|
|
- qemu_co_rwlock_wrlock(&s->rename_lock);
|
|
+ // qemu_co_rwlock_wrlock(&s->rename_lock);
|
|
}
|
|
}
|
|
|
|
static inline void v9fs_path_read_lock(V9fsState *s)
|
|
{
|
|
if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
|
|
- qemu_co_rwlock_rdlock(&s->rename_lock);
|
|
+ // qemu_co_rwlock_rdlock(&s->rename_lock);
|
|
}
|
|
}
|
|
|
|
static inline void v9fs_path_unlock(V9fsState *s)
|
|
{
|
|
if (s->ctx.export_flags & V9FS_PATHNAME_FSCONTEXT) {
|
|
- qemu_co_rwlock_unlock(&s->rename_lock);
|
|
+ // qemu_co_rwlock_unlock(&s->rename_lock);
|
|
}
|
|
}
|
|
|
|
diff --git a/hw/9pfs/coth.h b/hw/9pfs/coth.h
|
|
index c2cdc7a9ea..0fe971d1f5 100644
|
|
--- a/hw/9pfs/coth.h
|
|
+++ b/hw/9pfs/coth.h
|
|
@@ -46,6 +46,9 @@
|
|
qemu_coroutine_yield(); \
|
|
} while (0)
|
|
|
|
+#undef v9fs_co_run_in_worker
|
|
+#define v9fs_co_run_in_worker(code_block) do {code_block} while(0);
|
|
+
|
|
void co_run_in_worker_bh(void *);
|
|
int coroutine_fn v9fs_co_readlink(V9fsPDU *, V9fsPath *, V9fsString *);
|
|
int coroutine_fn v9fs_co_readdir(V9fsPDU *, V9fsFidState *, struct dirent **);
|
|
--
|
|
2.21.0
|
|
|