patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Chas Williams <ciwillia@brocade.com>
Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com>, dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/vhost: fix socket file deleted on stop' has been queued to stable release 16.11.1
Date: Mon, 23 Jan 2017 15:47:49 +0800	[thread overview]
Message-ID: <1485157675-32114-74-git-send-email-yuanhan.liu@linux.intel.com> (raw)
In-Reply-To: <1485157675-32114-1-git-send-email-yuanhan.liu@linux.intel.com>

Hi,

FYI, your patch has been queued to stable release 16.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
yet. It will be pushed if I get no objections before 01/28/17.
So please shout if anyone has objections.

---

Note 16.11 is a LTS release. v16.11.1 is planned to be released
shortly (about 2-3 weeks) after v17.02.

---

Thanks.

	--yliu

---
>From b7c0199369dda076bb025293ec3e895b734679a0 Mon Sep 17 00:00:00 2001
From: Chas Williams <ciwillia@brocade.com>
Date: Tue, 3 Jan 2017 11:22:42 -0500
Subject: [PATCH] net/vhost: fix socket file deleted on stop

[ upstream commit aed0b12930b3338a9735c9f1bb85b54d61456e43 ]

If you create a vhost server device, it doesn't create the actual datagram
socket until you call .dev_start().  If you call .dev_stop() is also
deletes those sockets.  For QEMU clients, this is a problem since QEMU
doesn't know how to re-attach to datagram sockets that have gone away.

To fix this, register and unregister the datagram sockets during device
creation and removal.

Fixes: ee584e9710b9 ("vhost: add driver on top of the library")

Signed-off-by: Chas Williams <ciwillia@brocade.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
 drivers/net/vhost/rte_eth_vhost.c | 45 +++++++++++++++------------------------
 1 file changed, 17 insertions(+), 28 deletions(-)

diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
index dd79ccf..e715c31 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -115,9 +115,6 @@ struct pmd_internal {
 	char *dev_name;
 	char *iface_name;
 	uint16_t max_queues;
-	uint64_t flags;
-
-	volatile uint16_t once;
 };
 
 struct internal_list {
@@ -776,35 +773,14 @@ vhost_driver_session_stop(void)
 }
 
 static int
-eth_dev_start(struct rte_eth_dev *dev)
+eth_dev_start(struct rte_eth_dev *dev __rte_unused)
 {
-	struct pmd_internal *internal = dev->data->dev_private;
-	int ret = 0;
-
-	if (rte_atomic16_cmpset(&internal->once, 0, 1)) {
-		ret = rte_vhost_driver_register(internal->iface_name,
-						internal->flags);
-		if (ret)
-			return ret;
-	}
-
-	/* We need only one message handling thread */
-	if (rte_atomic16_add_return(&nb_started_ports, 1) == 1)
-		ret = vhost_driver_session_start();
-
-	return ret;
+	return 0;
 }
 
 static void
-eth_dev_stop(struct rte_eth_dev *dev)
+eth_dev_stop(struct rte_eth_dev *dev __rte_unused)
 {
-	struct pmd_internal *internal = dev->data->dev_private;
-
-	if (rte_atomic16_cmpset(&internal->once, 1, 0))
-		rte_vhost_driver_unregister(internal->iface_name);
-
-	if (rte_atomic16_sub_return(&nb_started_ports, 1) == 0)
-		vhost_driver_session_stop();
 }
 
 static int
@@ -1048,7 +1024,6 @@ eth_dev_vhost_create(const char *name, char *iface_name, int16_t queues,
 	internal->iface_name = strdup(iface_name);
 	if (internal->iface_name == NULL)
 		goto error;
-	internal->flags = flags;
 
 	list->eth_dev = eth_dev;
 	pthread_mutex_lock(&internal_list_lock);
@@ -1083,6 +1058,15 @@ eth_dev_vhost_create(const char *name, char *iface_name, int16_t queues,
 	eth_dev->rx_pkt_burst = eth_vhost_rx;
 	eth_dev->tx_pkt_burst = eth_vhost_tx;
 
+	if (rte_vhost_driver_register(iface_name, flags))
+		goto error;
+
+	/* We need only one message handling thread */
+	if (rte_atomic16_add_return(&nb_started_ports, 1) == 1) {
+		if (vhost_driver_session_start())
+			goto error;
+	}
+
 	return data->port_id;
 
 error:
@@ -1220,6 +1204,11 @@ rte_pmd_vhost_remove(const char *name)
 
 	eth_dev_stop(eth_dev);
 
+	rte_vhost_driver_unregister(internal->iface_name);
+
+	if (rte_atomic16_sub_return(&nb_started_ports, 1) == 0)
+		vhost_driver_session_stop();
+
 	rte_free(vring_states[eth_dev->data->port_id]);
 	vring_states[eth_dev->data->port_id] = NULL;
 
-- 
1.9.0

  parent reply	other threads:[~2017-01-23  7:47 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-23  7:46 [dpdk-stable] patch 'pmdinfogen: fix endianness with cross-compilation' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'pci: fix check of mknod' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'ethdev: check maximum number of queues for statistics' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'mempool: fix API documentation' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'ethdev: fix port lookup if none' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'vdev: fix detaching with alias' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'examples/ethtool: fix driver information' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'ethdev: remove invalid function from version map' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'ethdev: fix extended statistics name index' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'pmdinfogen: fix null dereference' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'app/testpmd: fix static build link ordering' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'app/testpmd: fix check for invalid ports' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'examples/ip_pipeline: fix coremask limitation' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'examples/ip_pipeline: fix parsing of pass-through pipeline' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e: fix xstats value mapping' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/mlx5: fix leak when starvation occurs' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/mlx5: fix endianness in Tx completion queue' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e: fix logging for Tx free threshold check' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e: enable auto link update for 25G' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40evf: fix casting between structs' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e/base: fix flow control set for 25G' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e/base: fix bit test mask' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e/base: fix long link down notification time' " Yuanhan Liu
2017-01-23  7:46 ` [dpdk-stable] patch 'net/i40e/base: fix unknown PHYs incorrect identification' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e/base: fix WoL failure on PF reset' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e/base: fix NVM access interfering' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e/base: fix division by zero' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e/base: fix byte order' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: fix resource leak' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/pcap: fix timestamps in output pcap file' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/vmxnet3: fix Rx deadlock' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/nfp: fix typo in Tx offload capabilities' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix PHY reset check for x550em-ext' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix clearing SAN MAC address' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix PHY identification for x550a' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix getting PHY type for some x550 devices' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix SGMII link setup for M88 PHYs' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix setting unsupported autoneg speeds' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/ixgbe/base: fix IXGBE LSWFW register' " Yuanhan Liu
     [not found]   ` <49759EB36A64CF4892C1AFEC9231E8D63A354E36@PGSMSX106.gar.corp.intel.com>
2017-01-23  9:44     ` Yuanhan Liu
2017-01-23 10:17       ` Thomas Monjalon
2017-01-23 10:29       ` Mcnamara, John
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: fix filtering code' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: add vendor/device id info' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix SRIOV printouts' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix multiple acquisition requests by VF' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix error code in resc allocation' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix mutex in freeing context manager' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix Rx queue access by malicious VFs' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix to handle acquire request from VF' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede/base: fix VF over legacy PF' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/mlx5: fix RSS hash result for flows' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e: fix wrong return value when handling PF message' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/mlx5: fix missing inline attributes' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/mlx5: fix Tx doorbell' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: fix PF fastpath status block index' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: fix per queue statisitics' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/af_packet: fix fd use after free' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e: fix segment number in reassemble process' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/enic: remove unnecessary function parameter attributes' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/nfp: fix VLAN offload flags check' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/cxgbe: fix parenthesis on bitwise operation' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/qede: fix function declaration' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/mlx: fix IPv4 and IPv6 packet type' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/i40e: fix VF reset flow' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'cryptodev: fix crash on null dereference' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/openssl: fix extra bytes written at end of data' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/aesni_mb: fix incorrect crypto session' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/aesni_gcm: fix J0 padding bytes' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/aesni_gcm: fix IV size in capabilities' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/qat: " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'cryptodev: fix loop in device query' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'crypto/openssl: fix indentation in guide' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'app/test: fix symmetric session free in crypto perf tests' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'vhost: fix guest/host physical address mapping' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'vhost: fix memory leak' " Yuanhan Liu
2017-01-23  7:47 ` Yuanhan Liu [this message]
2017-01-23  7:47 ` [dpdk-stable] patch 'examples/vhost: fix calculation of mbuf count' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'examples/vhost: fix lcore initialization' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'examples/ethtool: fix querying non-PCI devices' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/virtio-user: fix wrongly get/set features' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/virtio-user: fix not properly reset device' " Yuanhan Liu
2017-01-23  7:47 ` [dpdk-stable] patch 'net/virtio: fix rewriting LSC flag' " Yuanhan Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1485157675-32114-74-git-send-email-yuanhan.liu@linux.intel.com \
    --to=yuanhan.liu@linux.intel.com \
    --cc=ciwillia@brocade.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).