* [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO
@ 2014-02-12 5:43 Jason Wang
2014-02-12 11:59 ` Michael S. Tsirkin
0 siblings, 1 reply; 5+ messages in thread
From: Jason Wang @ 2014-02-12 5:43 UTC (permalink / raw)
To: rusty, mst, virtio-dev, virtualization, netdev, linux-kernel
Cc: Jason Wang, Sridhar Samudrala
We should alloc big buffers also when guest can receive UFO
pakcets. Otherwise the big packets will be truncated when mergeable rx
buffer is disabled.
Fixes 5c5167515d80f78f6bb538492c423adcae31ad65
(virtio-net: Allow UFO feature to be set and advertised.)
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
drivers/net/virtio_net.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index d75f8ed..5632a99 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1711,7 +1711,8 @@ static int virtnet_probe(struct virtio_device *vdev)
/* If we can receive ANY GSO packets, we must allocate large ones. */
if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
- virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN))
+ virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
+ virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
vi->big_packets = true;
if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
--
1.8.3.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO
2014-02-12 5:43 [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO Jason Wang
@ 2014-02-12 11:59 ` Michael S. Tsirkin
2014-02-13 3:02 ` Jason Wang
0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2014-02-12 11:59 UTC (permalink / raw)
To: Jason Wang
Cc: rusty, virtio-dev, virtualization, netdev, linux-kernel,
Sridhar Samudrala
On Wed, Feb 12, 2014 at 01:43:28PM +0800, Jason Wang wrote:
> We should alloc big buffers also when guest can receive UFO
> pakcets. Otherwise the big packets will be truncated when mergeable rx
> buffer is disabled.
Not truncated, they will be dropped.
> Fixes 5c5167515d80f78f6bb538492c423adcae31ad65
> (virtio-net: Allow UFO feature to be set and advertised.)
>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Sridhar Samudrala <sri@us.ibm.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
for patch but please fix commit message.
> ---
> drivers/net/virtio_net.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index d75f8ed..5632a99 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -1711,7 +1711,8 @@ static int virtnet_probe(struct virtio_device *vdev)
> /* If we can receive ANY GSO packets, we must allocate large ones. */
> if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
> virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
> - virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN))
> + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
> + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
> vi->big_packets = true;
>
> if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
> --
> 1.8.3.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO
2014-02-12 11:59 ` Michael S. Tsirkin
@ 2014-02-13 3:02 ` Jason Wang
2014-02-13 5:15 ` Michael S. Tsirkin
0 siblings, 1 reply; 5+ messages in thread
From: Jason Wang @ 2014-02-13 3:02 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: rusty, virtio-dev, virtualization, netdev, linux-kernel,
Sridhar Samudrala
On 02/12/2014 07:59 PM, Michael S. Tsirkin wrote:
> On Wed, Feb 12, 2014 at 01:43:28PM +0800, Jason Wang wrote:
>> > We should alloc big buffers also when guest can receive UFO
>> > pakcets. Otherwise the big packets will be truncated when mergeable rx
>> > buffer is disabled.
> Not truncated, they will be dropped.
>
Why dropped? We enable the ufo on tap0 if VIRTIO_NET_F_GUEST_UFO is
negotiated. So skb was queued on the receive queue. But since the
receive buffer is small, it will be truncated during tun_put_user().
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO
2014-02-13 3:02 ` Jason Wang
@ 2014-02-13 5:15 ` Michael S. Tsirkin
2014-02-13 5:40 ` Jason Wang
0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2014-02-13 5:15 UTC (permalink / raw)
To: Jason Wang
Cc: rusty, virtio-dev, virtualization, netdev, linux-kernel,
Sridhar Samudrala
On Thu, Feb 13, 2014 at 11:02:13AM +0800, Jason Wang wrote:
> On 02/12/2014 07:59 PM, Michael S. Tsirkin wrote:
> > On Wed, Feb 12, 2014 at 01:43:28PM +0800, Jason Wang wrote:
> >> > We should alloc big buffers also when guest can receive UFO
> >> > pakcets. Otherwise the big packets will be truncated when mergeable rx
> >> > buffer is disabled.
> > Not truncated, they will be dropped.
> >
>
> Why dropped? We enable the ufo on tap0 if VIRTIO_NET_F_GUEST_UFO is
> negotiated. So skb was queued on the receive queue. But since the
> receive buffer is small, it will be truncated during tun_put_user().
Hypervisor shouldn't truncate packets silently - if it does
it's a hypervisor bug. Passing malformed packets to guest is
a bad idea.
--
MST
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO
2014-02-13 5:15 ` Michael S. Tsirkin
@ 2014-02-13 5:40 ` Jason Wang
0 siblings, 0 replies; 5+ messages in thread
From: Jason Wang @ 2014-02-13 5:40 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: rusty, virtio-dev, virtualization, netdev, linux-kernel,
Sridhar Samudrala
On 02/13/2014 01:15 PM, Michael S. Tsirkin wrote:
> On Thu, Feb 13, 2014 at 11:02:13AM +0800, Jason Wang wrote:
>> On 02/12/2014 07:59 PM, Michael S. Tsirkin wrote:
>>> On Wed, Feb 12, 2014 at 01:43:28PM +0800, Jason Wang wrote:
>>>>> We should alloc big buffers also when guest can receive UFO
>>>>> pakcets. Otherwise the big packets will be truncated when mergeable rx
>>>>> buffer is disabled.
>>> Not truncated, they will be dropped.
>>>
>> Why dropped? We enable the ufo on tap0 if VIRTIO_NET_F_GUEST_UFO is
>> negotiated. So skb was queued on the receive queue. But since the
>> receive buffer is small, it will be truncated during tun_put_user().
> Hypervisor shouldn't truncate packets silently - if it does
> it's a hypervisor bug. Passing malformed packets to guest is
> a bad idea.
>
Yes, but the commit log describes the current behaviour so it was ok?
Btw, dropping the packets silently is still not good. Virito needs a
method to report rx errors to guest.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-02-13 5:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-12 5:43 [PATCH net] virtio-net: alloc big buffers also when guest can receive UFO Jason Wang
2014-02-12 11:59 ` Michael S. Tsirkin
2014-02-13 3:02 ` Jason Wang
2014-02-13 5:15 ` Michael S. Tsirkin
2014-02-13 5:40 ` Jason Wang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).