c4be1a6534
vmxnet3 driver preallocates buffers for receiving packets and posts the buffers to the emulation. In order to deliver a received packet to the guest, the emulation must map buffer(s) and copy the packet into it. To avoid this memory mapping overhead, this patch introduces the receive data ring - a set of small sized buffers that are always mapped by the emulation. If a packet fits into the receive data ring buffer, the emulation delivers the packet via the receive data ring (which must be copied by the guest driver), or else the usual receive path is used. Signed-off-by: Shrikrishna Khare <skhare@vmware.com> Acked-by: Yong Wang <yongwang@vmware.com> Acked-by: Jin Heo <heoj@vmware.com>