From: Cindy Lu <lulu@redhat.com>
To: lulu@redhat.com, jasowang@redhat.com, mst@redhat.com,
xieyongji@bytedance.com, linux-kernel@vger.kernel.org,
maxime.coquelin@redhat.com
Subject: [PATCH v1 3/4] vduse: Add new ioctl VDUSE_GET_RECONNECT_INFO
Date: Wed, 11 Oct 2023 14:42:07 +0800 [thread overview]
Message-ID: <20231011064208.2143245-4-lulu@redhat.com> (raw)
In-Reply-To: <20231011064208.2143245-1-lulu@redhat.com>
In VDUSE_GET_RECONNECT_INFO, the Userspace App can get the map size
and The number of mapping memory pages from the kernel. The userspace
App can use this information to map the pages.
Add struct vhost_reconnect_data/vhost_reconnect_vring for sync the
information in reconnection
Signed-off-by: Cindy Lu <lulu@redhat.com>
---
drivers/vdpa/vdpa_user/vduse_dev.c | 15 +++++++++++
include/uapi/linux/vduse.h | 43 ++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+)
diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c
index 05e72d752fb6..0f15e7ac716b 100644
--- a/drivers/vdpa/vdpa_user/vduse_dev.c
+++ b/drivers/vdpa/vdpa_user/vduse_dev.c
@@ -1347,6 +1347,21 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
ret = 0;
break;
}
+ case VDUSE_GET_RECONNECT_INFO: {
+ struct vduse_reconnect_mmap_info info;
+
+ ret = -EFAULT;
+ if (copy_from_user(&info, argp, sizeof(info)))
+ break;
+
+ info.size = PAGE_SIZE;
+ info.max_index = dev->vq_num + 1;
+
+ if (copy_to_user(argp, &info, sizeof(info)))
+ break;
+ ret = 0;
+ break;
+ }
default:
ret = -ENOIOCTLCMD;
break;
diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h
index 11bd48c72c6c..5ccac535fba6 100644
--- a/include/uapi/linux/vduse.h
+++ b/include/uapi/linux/vduse.h
@@ -350,4 +350,47 @@ struct vduse_dev_response {
};
};
+/**
+ * struct vhost_reconnect_data - saved the reconnect info for device
+ * @reconnect_time: reconnect time for this device. userspace APP needs to do ++
+ * while reconnecting
+ * @version; version for userspace APP
+ * @features; Device features negotiated in the last reconnect.
+ * @status; Device status in last reconnect
+ * @nr_vrings; number of vqs
+ */
+
+struct vhost_reconnect_data {
+ __u32 reconnect_time;
+ __u32 version;
+ __u64 features;
+ __u8 status;
+ __u32 nr_vrings;
+};
+
+/**
+ * struct vhost_reconnect_vring -saved the reconnect info for vqs
+ * @last_avail_idx: device available index
+ * @avail_wrap_counter: Driver ring wrap counter
+ */
+struct vhost_reconnect_vring {
+ __u16 last_avail_idx;
+ __u16 avail_wrap_counter;
+};
+
+/**
+ * struct vduse_reconnect_mmap_info
+ * @size: mapping memory size, here we use page_size
+ * @max_index: the number of pages allocated in kernel,just
+ * use for check
+ */
+
+struct vduse_reconnect_mmap_info {
+ __u32 size;
+ __u32 max_index;
+};
+
+#define VDUSE_GET_RECONNECT_INFO \
+ _IOWR(VDUSE_BASE, 0x1b, struct vduse_reconnect_mmap_info)
+
#endif /* _UAPI_VDUSE_H_ */
--
2.34.3
next prev parent reply other threads:[~2023-10-11 6:43 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-11 6:42 [PATCH v1 0/4] vduse: Reconnection support in vduse Cindy Lu
2023-10-11 6:42 ` [PATCH v1 1/4] vduse: Add function to get/free the pages for reconnection Cindy Lu
2023-10-18 2:56 ` Jason Wang
2023-11-07 7:26 ` Cindy Lu
2023-10-11 6:42 ` [PATCH v1 2/4] vduse: Add file operation for mmap Cindy Lu
2023-10-18 3:05 ` Jason Wang
2023-10-11 6:42 ` Cindy Lu [this message]
2023-10-18 3:23 ` [PATCH v1 3/4] vduse: Add new ioctl VDUSE_GET_RECONNECT_INFO Jason Wang
2023-10-18 3:24 ` Jason Wang
2023-10-11 6:42 ` [PATCH v1 4/4] vduse: update the vq_info in ioctl Cindy Lu
2023-10-18 5:08 ` Jason Wang
2023-10-17 2:44 ` [PATCH v1 0/4] vduse: Reconnection support in vduse Jason Wang
2023-10-17 2:51 ` Cindy Lu
2023-10-18 5:09 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231011064208.2143245-4-lulu@redhat.com \
--to=lulu@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.coquelin@redhat.com \
--cc=mst@redhat.com \
--cc=xieyongji@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®