From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id E7BBB2B9C for ; Wed, 4 Jan 2017 04:58:46 +0100 (CET) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP; 03 Jan 2017 19:58:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,458,1477983600"; d="scan'208";a="45522065" Received: from dpdk06.sh.intel.com ([10.239.129.195]) by orsmga004.jf.intel.com with ESMTP; 03 Jan 2017 19:58:44 -0800 From: Jianfeng Tan To: dev@dpdk.org Cc: yuanhan.liu@linux.intel.com, ferruh.yigit@intel.com, cunming.liang@intel.com, Jianfeng Tan Date: Wed, 4 Jan 2017 03:59:19 +0000 Message-Id: <1483502366-140154-1-git-send-email-jianfeng.tan@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1480689075-66977-1-git-send-email-jianfeng.tan@intel.com> References: <1480689075-66977-1-git-send-email-jianfeng.tan@intel.com> Subject: [dpdk-dev] [PATCH v3 0/7] virtio_user as an alternative exception path X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jan 2017 03:58:47 -0000 v3: - Drop the patch to postpone driver ok sending patch, superseded it with a bug fix to disable all virtqueues and re-init the device. (you might wonder why not just send reset owner msg. Under my test, it causes spinlock deadlock problem when killing the program). - Avoid compiling error on 32-bit system for pointer convert. - Fix a bug in patch "abstract virtio user backend ops", vhostfd is not properly assigned. - Fix a "MQ cannot be used" bug in v2, which is related to strip some feature bits that vhost kernel does not recognize. - Update release note. v2: (Lots of them are from yuanhan's comment) - Add offloding feature. - Add multiqueue support. - Add a new patch to postpone the sending of driver ok notification. - Put fix patch ahead of the whole patch series. - Split original 0001 patch into 0003 and 0004 patches. - Remove the original vhost_internal design, just add those into struct virtio_user_dev for simplicity. - Reword "control" to "send_request". - Reword "host_features" to "device_features". In v16.07, we upstreamed a virtual device, virtio_user (with vhost-user as the backend). The path to go with a vhost-kernel backend has been dropped for bad performance comparing to vhost-user and code simplicity. But after a second thought, virtio_user + vhost-kernel is a good candidate as an exceptional path, such as KNI, which exchanges packets with kernel networking stack. - maintenance: vhost-net (kernel) is upstreamed and extensively used kernel module. We don't need any out-of-tree module like KNI. - performance: as with KNI, this solution would use one or more kthreads to send/receive packets from user space DPDK applications, which has little impact on user space polling thread (except that it might enter into kernel space to wake up those kthreads if necessary). - features: vhost-net is born to be a networking solution, which has lots of networking related featuers, like multi queue, tso, multi-seg mbuf, etc. Signed-off-by: Jianfeng Tan Jianfeng Tan (7): net/virtio_user: fix wrongly set features net/virtio_user: fix not properly reset device net/virtio_user: move vhost user specific code net/virtio_user: abstract virtio user backend ops net/virtio_user: add vhost kernel support net/virtio_user: enable offloading net/virtio_user: enable multiqueue with vhost kernel doc/guides/rel_notes/release_17_02.rst | 20 + drivers/net/virtio/Makefile | 1 + drivers/net/virtio/virtio_user/vhost.h | 51 +-- drivers/net/virtio/virtio_user/vhost_kernel.c | 487 +++++++++++++++++++++++ drivers/net/virtio/virtio_user/vhost_user.c | 97 +++-- drivers/net/virtio/virtio_user/virtio_user_dev.c | 138 ++++--- drivers/net/virtio/virtio_user/virtio_user_dev.h | 16 +- drivers/net/virtio/virtio_user_ethdev.c | 19 +- 8 files changed, 705 insertions(+), 124 deletions(-) create mode 100644 drivers/net/virtio/virtio_user/vhost_kernel.c -- 2.7.4