> -----Original Message----- > From: Maxime Coquelin <maxime.coque...@redhat.com> > Sent: Thursday, March 25, 2021 4:32 PM > To: Ilya Maximets <i.maxim...@ovn.org> > Cc: Xia, Chenbo <chenbo....@intel.com>; dev@dpdk.org; Adrian Moreno > <amore...@redhat.com>; Stefan Hajnoczi <stefa...@redhat.com>; Julia Suvorova > <jus...@redhat.com>; sta...@dpdk.org; Yang, Zhiyong <zhiyong.y...@intel.com> > Subject: Re: [PATCH 1/4] net/virtio: fix interrupt unregistering for listening > socket > > > > On 3/17/21 9:25 PM, Ilya Maximets wrote: > > virtio_user_dev_server_reconnect() is typically called from the > > interrupt context while checking the link state: > > > > vhost_user_update_link_state() > > --> virtio_user_dev_server_reconnect() > > > > Under this conditions callback unregistering always fails. This means > > that listenfd is never unregistered and continue to trigger interrupts. > > For example, if second client will try to connect to the same socket, > > the server will receive interrupts infinitely because it will not > > accept them while listen fd is readable and generates epoll events. > > > > Fix that by moving reconfiguration of interrupts out of the > > interrupt context to alarm handler. > > > > 'virtio_user_dev_delayed_handler' renamed to > > 'virtio_user_dev_delayed_disconnect_handler' to better reflect its > > purpose. > > > > Additionally improved error logging around interrupt management. > > > > Fixes: bd8f50a45d0f ("net/virtio-user: support server mode") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Ilya Maximets <i.maxim...@ovn.org> > > --- > > > > CC: Zhiyong Yang <zhiyong.y...@intel.com> > > > > drivers/net/virtio/virtio_user/vhost_user.c | 4 +- > > .../net/virtio/virtio_user/virtio_user_dev.c | 70 ++++++++++++++----- > > .../net/virtio/virtio_user/virtio_user_dev.h | 2 +- > > 3 files changed, 57 insertions(+), 19 deletions(-) > > > > Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> > > Thanks, > Maxime
This patch is applied to next-virtio/main with below fix: In virtio_user_dev_delayed_intr_reconfig_handler, change 'dev->port_id' to 'dev->hw.port_id' Thanks