From patchwork Wed Feb 1 11:14:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 122850 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 236DD41B9E; Wed, 1 Feb 2023 12:15:50 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F22F6406A2; Wed, 1 Feb 2023 12:15:49 +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 1BAE04021F for ; Wed, 1 Feb 2023 12:15:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675250147; 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=viFRfP6rrc/O99HF8M1JGsxf6JmOqtBlyT7Z+METil0=; b=VdYxL6kPGNiobCOHvzum5IiXSDbceUA8TKRTxvNCiKVeeoeVptg7r+w0XWuEx8tbFvi89d n2TZhOWsTlxY4vOTSzwkn66PfGAI4dzdoZYiFV2WRYLo0eu25thVqXptxIFAtfFgJFanPK 7NUj+MKNCoU6lu9ngCjFOy7k+7vDkko= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-145-baYxa2G2PwK9QUghM7xkRw-1; Wed, 01 Feb 2023 06:15:46 -0500 X-MC-Unique: baYxa2G2PwK9QUghM7xkRw-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 01315858F0E; Wed, 1 Feb 2023 11:15:46 +0000 (UTC) Received: from dmarchan.redhat.com (ovpn-192-67.brq.redhat.com [10.40.192.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 48474C15BAE; Wed, 1 Feb 2023 11:15:44 +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, mb@smartsharesystems.com Subject: [PATCH v5 0/9] Lock annotations Date: Wed, 1 Feb 2023 12:14:02 +0100 Message-Id: <20230201111411.1509520-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.8 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