Hyper-V is adding some low speed "specialty" synthetic devices. This patch series propose the solution to support these devices. Instead of writing new kernel-level VMBus drivers for all of these devices, we propose a solution wherein these devices are made accessible to user space through a dedicated UIO-based hv_vmbus_client driver, allowing for efficient device handling via user space drivers. This solution aims to optimize the development process by eliminating the need to create individual kernel-level VMBus drivers for each device and provide flexibility to user space applications to control the ring buffer independently. Since all these new synthetic devices are low speed devices, they don't support monitor bits and we must use vmbus_setevent() to enable interrupts from the host. The new uio driver supports all these requirements effectively. Additionally, this new driver also provide the support for having smaller/cutom ringbuffer size. Furthermore, this patch series includes a revision of the fcopy application to leverage the new interface seamlessly along with removal of old driver and application. However, please note that the development of other similar drivers is still a work in progress, and will be shared as they become available. Saurabh Sengar (5): uio: Add hv_vmbus_client driver tools: hv: Add vmbus_bufring tools: hv: Add new fcopy application based on uio driver tools: hv: Remove hv_fcopy_daemon Drivers: hv: Remove fcopy driver drivers/hv/Makefile | 2 +- drivers/hv/hv_fcopy.c | 427 -------------------------- drivers/hv/hv_util.c | 12 - drivers/uio/Kconfig | 12 + drivers/uio/Makefile | 1 + drivers/uio/uio_hv_vmbus_client.c | 232 ++++++++++++++ tools/hv/Build | 3 +- tools/hv/Makefile | 10 +- tools/hv/hv_fcopy_daemon.c | 266 ---------------- tools/hv/hv_fcopy_uio_daemon.c | 491 ++++++++++++++++++++++++++++++ tools/hv/vmbus_bufring.c | 324 ++++++++++++++++++++ tools/hv/vmbus_bufring.h | 158 ++++++++++ 12 files changed, 1226 insertions(+), 712 deletions(-) delete mode 100644 drivers/hv/hv_fcopy.c create mode 100644 drivers/uio/uio_hv_vmbus_client.c delete mode 100644 tools/hv/hv_fcopy_daemon.c create mode 100644 tools/hv/hv_fcopy_uio_daemon.c create mode 100644 tools/hv/vmbus_bufring.c create mode 100644 tools/hv/vmbus_bufring.h -- 2.34.1