On 7/28/21 10:17 AM, Andrew Melnychenko wrote:
Added qmp call to receive helper path.
Also added monitor functions.
For virQEMUCaps added field for helper path.
Libvirt queries "query-helper-paths" from qmp and saves in qemuCaps.
The qemu and the helper should be "sync" and the helper should
return proper eBPF fd and maps with "interface" for current qemu.
So, qemu returns where to find the helper through qmp, if the qemu supports
"ebpf_rss_fds".
Signed-off-by: Andrew Melnychenko <andrew(a)daynix.com>
---
src/qemu/qemu_capabilities.c | 44 +++++++++++++++++++++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
src/qemu/qemu_monitor.c | 9 +++++++
src/qemu/qemu_monitor.h | 3 +++
src/qemu/qemu_monitor_json.c | 50 ++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 3 +++
6 files changed, 112 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index f16115226d..f62088d32f 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -722,6 +722,9 @@ struct _virQEMUCaps {
/* Capabilities which may differ depending on the accelerator. */
virQEMUCapsAccel kvm;
virQEMUCapsAccel tcg;
+
+ /* Helpers returned by qemu */
+ char *helperEbpfRSS;
};
This is not the usual way we store path for QEMU helpers. Conceptually
this looks similar to qemu-bridge-helper. I suggest you take a look into
our code how we deal with that binary. QEMU_BRIDGE_HELPER,
bridgeHelperName look like good keywords to git grep for.
Michal