forked from Minki/linux
net/9p: add 'pooled_rbuffers' flag to struct p9_trans_module
This is a preparatory change for the subsequent patch: the RDMA transport pulls the buffers for its 9p response messages from a shared pool. [1] So this case has to be considered when choosing an appropriate response message size in the subsequent patch. Link: https://lore.kernel.org/all/Ys3jjg52EIyITPua@codewreck.org/ [1] Link: https://lkml.kernel.org/r/79d24310226bc4eb037892b5c097ec4ad4819a03.1657920926.git.linux_oss@crudebyte.com Signed-off-by: Christian Schoenebeck <linux_oss@crudebyte.com> Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
This commit is contained in:
parent
1effdbf94a
commit
01d205d936
@ -19,6 +19,10 @@
|
|||||||
* @list: used to maintain a list of currently available transports
|
* @list: used to maintain a list of currently available transports
|
||||||
* @name: the human-readable name of the transport
|
* @name: the human-readable name of the transport
|
||||||
* @maxsize: transport provided maximum packet size
|
* @maxsize: transport provided maximum packet size
|
||||||
|
* @pooled_rbuffers: currently only set for RDMA transport which pulls the
|
||||||
|
* response buffers from a shared pool, and accordingly
|
||||||
|
* we're less flexible when choosing the response message
|
||||||
|
* size in this case
|
||||||
* @def: set if this transport should be considered the default
|
* @def: set if this transport should be considered the default
|
||||||
* @create: member function to create a new connection on this transport
|
* @create: member function to create a new connection on this transport
|
||||||
* @close: member function to discard a connection on this transport
|
* @close: member function to discard a connection on this transport
|
||||||
@ -38,6 +42,7 @@ struct p9_trans_module {
|
|||||||
struct list_head list;
|
struct list_head list;
|
||||||
char *name; /* name of transport */
|
char *name; /* name of transport */
|
||||||
int maxsize; /* max message size of transport */
|
int maxsize; /* max message size of transport */
|
||||||
|
bool pooled_rbuffers;
|
||||||
int def; /* this transport should be default */
|
int def; /* this transport should be default */
|
||||||
struct module *owner;
|
struct module *owner;
|
||||||
int (*create)(struct p9_client *client,
|
int (*create)(struct p9_client *client,
|
||||||
|
@ -1083,6 +1083,7 @@ p9_fd_create(struct p9_client *client, const char *addr, char *args)
|
|||||||
static struct p9_trans_module p9_tcp_trans = {
|
static struct p9_trans_module p9_tcp_trans = {
|
||||||
.name = "tcp",
|
.name = "tcp",
|
||||||
.maxsize = MAX_SOCK_BUF,
|
.maxsize = MAX_SOCK_BUF,
|
||||||
|
.pooled_rbuffers = false,
|
||||||
.def = 0,
|
.def = 0,
|
||||||
.create = p9_fd_create_tcp,
|
.create = p9_fd_create_tcp,
|
||||||
.close = p9_fd_close,
|
.close = p9_fd_close,
|
||||||
|
@ -739,6 +739,7 @@ error:
|
|||||||
static struct p9_trans_module p9_rdma_trans = {
|
static struct p9_trans_module p9_rdma_trans = {
|
||||||
.name = "rdma",
|
.name = "rdma",
|
||||||
.maxsize = P9_RDMA_MAXSIZE,
|
.maxsize = P9_RDMA_MAXSIZE,
|
||||||
|
.pooled_rbuffers = true,
|
||||||
.def = 0,
|
.def = 0,
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.create = rdma_create_trans,
|
.create = rdma_create_trans,
|
||||||
|
@ -802,6 +802,7 @@ static struct p9_trans_module p9_virtio_trans = {
|
|||||||
* page in zero copy.
|
* page in zero copy.
|
||||||
*/
|
*/
|
||||||
.maxsize = PAGE_SIZE * (VIRTQUEUE_NUM - 3),
|
.maxsize = PAGE_SIZE * (VIRTQUEUE_NUM - 3),
|
||||||
|
.pooled_rbuffers = false,
|
||||||
.def = 1,
|
.def = 1,
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
};
|
};
|
||||||
|
@ -246,6 +246,7 @@ static irqreturn_t xen_9pfs_front_event_handler(int irq, void *r)
|
|||||||
static struct p9_trans_module p9_xen_trans = {
|
static struct p9_trans_module p9_xen_trans = {
|
||||||
.name = "xen",
|
.name = "xen",
|
||||||
.maxsize = 1 << (XEN_9PFS_RING_ORDER + XEN_PAGE_SHIFT - 2),
|
.maxsize = 1 << (XEN_9PFS_RING_ORDER + XEN_PAGE_SHIFT - 2),
|
||||||
|
.pooled_rbuffers = false,
|
||||||
.def = 1,
|
.def = 1,
|
||||||
.create = p9_xen_create,
|
.create = p9_xen_create,
|
||||||
.close = p9_xen_close,
|
.close = p9_xen_close,
|
||||||
|
Loading…
Reference in New Issue
Block a user