From patchwork Thu Jan 19 18:46:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 122366 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 874D74241A; Thu, 19 Jan 2023 19:46:33 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3A61140223; Thu, 19 Jan 2023 19:46:33 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 8C65C400D5 for ; Thu, 19 Jan 2023 19:46:31 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674153990; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZlbAYk+28Ia7sj9Xuk9nBRzvuiYn0f4hdCnXJYTpcQM=; b=EnxVU/ke0kBbbHM+6n4i9JiYbTKiiJHvi9+DCBkQH+KKcBB1vZ5TDabBFoagVc3fxwe3e1 gV9t2zjx/rZcfe/uikNpnF0qTcXfSIoP4eUQ045iDJ/nEYD8WxiwtEV4fvJAE4XU4DFIUm wpaTRdoSuhNDR3SeFyomMkYfRZSuZ1k= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-551-JutU7qD9PZKwiVy6k1auVg-1; Thu, 19 Jan 2023 13:46:27 -0500 X-MC-Unique: JutU7qD9PZKwiVy6k1auVg-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4DCB53806104; Thu, 19 Jan 2023 18:46:27 +0000 (UTC) Received: from dmarchan.redhat.com (ovpn-193-92.brq.redhat.com [10.40.193.92]) by smtp.corp.redhat.com (Postfix) with ESMTP id C9C58492C3C; Thu, 19 Jan 2023 18:46:25 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: maxime.coquelin@redhat.com, stephen@networkplumber.org, chenbo.xia@intel.com, jiayu.hu@intel.com, yuanx.wang@intel.com, xuan.ding@intel.com Subject: [PATCH v4 0/9] vhost lock annotations Date: Thu, 19 Jan 2023 19:46:11 +0100 Message-Id: <20230119184620.3195267-1-david.marchand@redhat.com> In-Reply-To: <20220328121758.26632-1-david.marchand@redhat.com> References: <20220328121758.26632-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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 vhost internals involves multiple locks to protect data access by multiple threads. This series uses clang thread safety checks [1] to catch issues during compilation: EAL spinlock, seqlock and rwlock are annotated and vhost code is instrumented so that clang can statically check correctness. Those annotations are quite heavy to maintain because the full path of code must be annotated (as can be seen in the vhost datapath code), but I think it is worth using. This has been tested against the whole tree and some fixes are already flying on the mailing list (see [2] for a list). If this first series is merged, I will prepare a followup series for EAL and other libraries. 1: https://clang.llvm.org/docs/ThreadSafetyAnalysis.html 2: https://patchwork.dpdk.org/bundle/dmarchand/lock_fixes/?state=*&archive=both