* [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: 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
[not found] ` <52FC35B5.6000900@redhat.com>
0 siblings, 2 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2014-02-12 11:59 UTC (permalink / raw)
To: Jason Wang
Cc: virtio-dev, netdev, linux-kernel, virtualization,
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
[not found] ` <52FC35B5.6000900@redhat.com>
1 sibling, 0 replies; 5+ messages in thread
From: Jason Wang @ 2014-02-13 3:02 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: virtio-dev, netdev, linux-kernel, virtualization,
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
[not found] ` <52FC35B5.6000900@redhat.com>
@ 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: virtio-dev, netdev, linux-kernel, virtualization,
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: virtio-dev, netdev, linux-kernel, virtualization,
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:40 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
[not found] ` <52FC35B5.6000900@redhat.com>
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).