From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=BAYES_00, DATE_IN_FUTURE_06_12,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F350FC07E96 for ; Fri, 9 Jul 2021 03:15:23 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id 67F5F61432 for ; Fri, 9 Jul 2021 03:15:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 67F5F61432 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4F4CE4014D; Fri, 9 Jul 2021 05:15:22 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 0B83340143 for ; Fri, 9 Jul 2021 05:15:20 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10039"; a="209454925" X-IronPort-AV: E=Sophos;i="5.84,225,1620716400"; d="scan'208";a="209454925" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2021 20:15:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,225,1620716400"; d="scan'208";a="428606853" Received: from npg_dpdk_virtio_jiayuhu_07.sh.intel.com ([10.67.119.25]) by orsmga002.jf.intel.com with ESMTP; 08 Jul 2021 20:15:18 -0700 From: Jiayu Hu To: dev@dpdk.org Cc: maxime.coquelin@redhat.com, chenbo.xia@intel.com, yinan.wang@intel.com, Jiayu Hu Date: Fri, 9 Jul 2021 05:43:07 -0400 Message-Id: <1625823790-91995-1-git-send-email-jiayu.hu@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1625656687-40604-2-git-send-email-jiayu.hu@intel.com> References: <1625656687-40604-2-git-send-email-jiayu.hu@intel.com> Subject: [dpdk-dev] [PATCH v3 0/3] provide thread unsafe async registration functions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Lock protection is needed during the vhost notifies the application of device readiness, so the first patch adds lock protection. In addition, the second patch reworks async feature structure to improve readability. After performing locking, existed async vhost registration functions will cause deadlock, as they acquire lock too. The last patch provides thread unsafe registration functions to support calling within vhost callback functions. v3: * rename and use enum to define async device features * change padding fields to 8 bytes v2: * rework async feature structure * fix typo in commit log Jiayu Hu (3): vhost: fix lock on device readiness notification vhost: rework async configuration struct vhost: add thread unsafe async registeration functions doc/guides/prog_guide/vhost_lib.rst | 31 +++++-- examples/vhost/main.c | 8 +- lib/vhost/rte_vhost_async.h | 74 ++++++++++++---- lib/vhost/version.map | 4 + lib/vhost/vhost.c | 165 +++++++++++++++++++++++++++--------- lib/vhost/vhost_user.c | 5 +- 6 files changed, 213 insertions(+), 74 deletions(-) -- 2.7.4