Re: [RFC v3 3/5] KVM: implement wire protocol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 2021/3/17 下午9:08, Elena Afanasova 写道:
On Tue, 2021-03-09 at 14:19 +0800, Jason Wang wrote:
On 2021/2/21 8:04 下午, Elena Afanasova wrote:
Add ioregionfd blocking read/write operations.

Signed-off-by: Elena Afanasova <eafanasova@xxxxxxxxx>
---
v3:
   - change wire protocol license
   - remove ioregionfd_cmd info and drop appropriate macros
   - fix ioregionfd state machine
   - add sizeless ioregions support
   - drop redundant check in ioregion_read/write()

   include/uapi/linux/ioregion.h |  30 +++++++
   virt/kvm/ioregion.c           | 162
+++++++++++++++++++++++++++++++++-
   2 files changed, 190 insertions(+), 2 deletions(-)
   create mode 100644 include/uapi/linux/ioregion.h

diff --git a/include/uapi/linux/ioregion.h
b/include/uapi/linux/ioregion.h
new file mode 100644
index 000000000000..58f9b5ba6186
--- /dev/null
+++ b/include/uapi/linux/ioregion.h
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-
note) OR BSD-3-Clause) */
+#ifndef _UAPI_LINUX_IOREGION_H
+#define _UAPI_LINUX_IOREGION_H
+
+/* Wire protocol */
+
+struct ioregionfd_cmd {
+	__u8 cmd;
+	__u8 size_exponent : 4;
+	__u8 resp : 1;
+	__u8 padding[6];
+	__u64 user_data;
+	__u64 offset;
+	__u64 data;
+};
Sorry if I've asked this before. Do we need a id for each
request/response? E.g an ioregion fd could be used by multiple
vCPUS.
VCPU needs to have a way to find which request belongs to itself or
not?

I don’t think the id is necessary here since all requests/responses are
serialized.


It's probably fine for the first version but it will degrate the performance e.g if the ioregionfd is used for multiple queues (e.g doorbell). The design should have the capability to allow the extension like this.

Thanks




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux