Message ID | 20170531210923.GF23526@fieldses.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, May 31, 2017 at 05:09:23PM -0400, bfields@fieldses.org wrote: > On Tue, May 30, 2017 at 07:26:37PM +0300, Michael S. Tsirkin wrote: > > On Fri, May 26, 2017 at 03:31:33PM -0400, bfields@fieldses.org wrote: > > > Looks like the culprit is very likely d85b758f72b0 "virtio_net: fix > > > support for small rings". > > > > > > After that patch, my NFS server VM stops responding to packets after a > > > few minutes of testing. Before that patch, my server keeps working. > > > > > > --b. > > > > Others complained about that too. > > I'm still trying to reproduce though. > > > > Meanwhile, could you please locate this line of code: > > + vi->rq[i].min_buf_len = mergeable_min_buf_len(vi, vi->rq[i].vq); > > > > and add something like > > printk(KERN_ERR, "min buf = 0x%x expected 0x%x size 0x%x big %d\n", > > vi->rq[i].min_buf_len, GOOD_PACKET_LEN, > > virtqueue_get_vring_size(vi->rq[i].vq), > > (int)vi->big_packets); > > > > after it? > > Then boot and capture the output. > > Doesn't look like that code's run on boot; apply the below, boot, and: Whoops, no, just a typo in the printk. Here you go: min buf = 0x101 expected 0x5ee size 0x100 big 1 --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 9320d96a1632..b10014f7b480 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2212,6 +2212,10 @@ static int virtnet_find_vqs(struct virtnet_info *vi) for (i = 0; i < vi->max_queue_pairs; i++) { vi->rq[i].vq = vqs[rxq2vq(i)]; vi->rq[i].min_buf_len = mergeable_min_buf_len(vi, vi->rq[i].vq); + printk(KERN_ERR, "min buf = 0x%x expected 0x%x size 0x%x big %d\n", + vi->rq[i].min_buf_len, GOOD_PACKET_LEN, + virtqueue_get_vring_size(vi->rq[i].vq), + (int)vi->big_packets); vi->sq[i].vq = vqs[txq2vq(i)]; }