From: Dexuan Cui <de...@microsoft.com> Date: Wed, 4 May 2016 09:56:57 -0700
> +#define VMBUS_RINGBUFFER_SIZE_HVSOCK_RECV (5 * PAGE_SIZE) > +#define VMBUS_RINGBUFFER_SIZE_HVSOCK_SEND (5 * PAGE_SIZE) > + > +#define HVSOCK_RCV_BUF_SZ VMBUS_RINGBUFFER_SIZE_HVSOCK_RECV ... > +struct hvsock_sock { ... > + /* The 'hdr' and 'buf' in the below 'send' and 'recv' definitions must > + * be consecutive: see hvsock_send_data() and hvsock_recv_data(). > + */ > + struct { > + struct vmpipe_proto_header hdr; > + u8 buf[HVSOCK_SND_BUF_SZ]; > + } send; > + > + struct { > + struct vmpipe_proto_header hdr; > + u8 buf[HVSOCK_RCV_BUF_SZ]; > + > + unsigned int data_len; > + unsigned int data_offset; > + } recv; I don't think allocating 5 pages of unswappable memory for every Hyper-V socket created is reasonable.