Messages in this thread | | | Date | Wed, 30 Nov 2016 15:43:48 +0200 | From | "Michael S. Tsirkin" <> | Subject | Re: [PATCH net] vhost_net: don't continue to call the recvmsg when meet errors |
| |
On Wed, Nov 30, 2016 at 09:07:16PM +0800, Jason Wang wrote: > > > On 2016年11月30日 20:10, Yunjian Wang wrote: > > When we meet an error(err=-EBADFD) recvmsg, the error handling in vhost > > handle_rx() will continue. This will cause a soft CPU lockup in vhost thread. > > > > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com> > > --- > > drivers/vhost/net.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c > > index 5dc128a..edc470b 100644 > > --- a/drivers/vhost/net.c > > +++ b/drivers/vhost/net.c > > @@ -717,6 +717,9 @@ static void handle_rx(struct vhost_net *net) > > pr_debug("Discarded rx packet: " > > " len %d, expected %zd\n", err, sock_len); > > vhost_discard_vq_desc(vq, headcount); > > + /* Don't continue to do, when meet errors. */ > > + if (err < 0) > > + goto out; > > continue; > > } > > /* Supply virtio_net_hdr if VHOST_NET_F_VIRTIO_NET_HDR */ > > Acked-by: Jason Wang <jasowang@redhat.com> > > We may want to rename vhost_discard_vq_desc() in the future, since it does > not discard the desc in fact.
To me this looks a bit too aggressive. I would also like commit log to explain better what is going on, to make sure we are not just treating the symptoms. -- MST
| |