All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V6 0/3] handle polling errors in vhost/vhost_net
@ 2013-01-16 15:44 Jason Wang
  2013-01-16 15:44 ` [PATCH V6 1/3] vhost_net: correct error handling in vhost_net_set_backend() Jason Wang
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Jason Wang @ 2013-01-16 15:44 UTC (permalink / raw)
  To: davem, mst, netdev, linux-kernel; +Cc: Jason Wang

This is an update version of last version to fix the handling of polling errors
in vhost/vhost_net.

Currently, vhost and vhost_net ignore polling errors which can lead kernel
crashing when it tries to remove itself from waitqueue after the polling
failure. Fix this by:

- examing the POLLERR when setting backend and report erros to userspace
- let tun always add to waitqueue in .poll() after the queue is created even if
  it was detached.

Changes from V5:
- use rcu_dereference() instead of the wrong rtnl_dereference() in data path
- test with CONFIG_PROVE_RCU

Changes from V4:
- check the detached state by tfile->detached and protect it by RCU

Changes from V3:
- make a smaller patch that doesn't touch the whole polling state and only check
  the polliner errors in backend setting.
- add a patch that allows tuntap to do polling/reading/writing when detached
  which could simplify the work of its user.

Changes from v2:
- check poll->wqh instead of the wrong assumption about POLLERR and waitqueue
- drop the whole tx polling state check since it was replaced by the wqh
  checking
- drop the buggy tuntap patch

Changes from v1:
- restore the state before the ioctl when vhost_init_used() fails
- log the error when meet polling errors in the data path
- don't put into waitqueue when tun_chr_poll() return POLLERR

Jason Wang (3):
  vhost_net: correct error handling in vhost_net_set_backend()
  vhost_net: handle polling errors when setting backend
  tuntap: allow polling/writing/reading when detached

 drivers/net/tun.c     |   45 ++++++++++++++++++++++++++-------------------
 drivers/vhost/net.c   |   41 ++++++++++++++++++++++++++++-------------
 drivers/vhost/vhost.c |   18 +++++++++++++++---
 drivers/vhost/vhost.h |    2 +-
 4 files changed, 70 insertions(+), 36 deletions(-)


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-01-24 10:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-16 15:44 [PATCH V6 0/3] handle polling errors in vhost/vhost_net Jason Wang
2013-01-16 15:44 ` [PATCH V6 1/3] vhost_net: correct error handling in vhost_net_set_backend() Jason Wang
2013-01-24 10:38   ` Michael S. Tsirkin
2013-01-16 15:44 ` [PATCH V6 2/3] vhost_net: handle polling errors when setting backend Jason Wang
2013-01-24 10:38   ` Michael S. Tsirkin
2013-01-16 15:44 ` [PATCH V6 3/3] tuntap: allow polling/writing/reading when detached Jason Wang
2013-01-16 17:03   ` Michael S. Tsirkin
2013-01-17  1:16     ` Jason Wang
2013-01-24 10:12       ` Jason Wang
2013-01-24 10:37         ` Michael S. Tsirkin
2013-01-24 10:38   ` Michael S. Tsirkin
2013-01-24 10:38 ` [PATCH V6 0/3] handle polling errors in vhost/vhost_net Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.