[PATCH v6 00/13] introduce the Xen PV Calls frontend

From: Stefano Stabellini
Date: Tue Oct 24 2017 - 13:33:22 EST


Hi all,

this series introduces the frontend for the newly introduced PV Calls
procotol.

PV Calls is a paravirtualized protocol that allows the implementation of
a set of POSIX functions in a different domain. The PV Calls frontend
sends POSIX function calls to the backend, which implements them and
returns a value to the frontend and acts on the function call.

For more information about PV Calls, please read:

https://xenbits.xen.org/docs/unstable/misc/pvcalls.html

This patch series only implements the frontend driver. It doesn't
attempt to redirect POSIX calls to it. The functions exported in
pvcalls-front.h are meant to be used for that. A separate patch series
will be sent to use them and hook them into the system.


Changes in v6:
- rename PVCALLS_NR_REQ_PER_RING to PVCALLS_NR_RSP_PER_RING
- remove spin_lock/unlock around list_del_init in pvcalls_front_remove
- change list_del_init into list_del in pvcalls_front_remove,
pvcalls_front_free_map and pvcalls_front_release
- add reviwed-bys
- return EOPNOTSUPP when functions are unimplemented in pvcalls-front
- return ret on error in pvcalls_front_accept
- return an error from __write_ring if size >= array_size
- return 0 instead of -EAGAIN from pvcalls_front_recvmsg when nothing
was read
- add bool locked parameter to pvcalls_front_free_map
- move "kfree(map)" to pvcalls_front_free_map
- remove socketpass_mappings, now unused


Stefano Stabellini (13):
xen/pvcalls: introduce the pvcalls xenbus frontend
xen/pvcalls: implement frontend disconnect
xen/pvcalls: connect to the backend
xen/pvcalls: implement socket command and handle events
xen/pvcalls: implement connect command
xen/pvcalls: implement bind command
xen/pvcalls: implement listen command
xen/pvcalls: implement accept command
xen/pvcalls: implement sendmsg
xen/pvcalls: implement recvmsg
xen/pvcalls: implement poll command
xen/pvcalls: implement release command
xen: introduce a Kconfig option to enable the pvcalls frontend

drivers/xen/Kconfig | 9 +
drivers/xen/Makefile | 1 +
drivers/xen/pvcalls-front.c | 1273 +++++++++++++++++++++++++++++++++++++++++++
drivers/xen/pvcalls-front.h | 28 +
4 files changed, 1311 insertions(+)
create mode 100644 drivers/xen/pvcalls-front.c
create mode 100644 drivers/xen/pvcalls-front.h