From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359566; cv=none; d=zohomail.com; s=zohoarc; b=U8LRULNpiQmZweB0OBVKuufn859Zgv8JETbKx6pOuR6W8t7iGSEo15orByhQLvBFSXfdkrRnAyj8E4DxEP5436h1CNqYAcAUXX40z8RM68JXkni+/nVSdZqodKvyJPJu3uy/SgPcwno128mBCyDo63Ti4ENngs99C0cK5Q9iHyk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359566; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iex4krl+AoaT64QcFTp9wEMOeDmUtH4keLKzogfXUVs=; b=jXzMf3MuIcg++8pjFtIoRG/CbE8++ZUzasUaWCeDfORhtVb1Nhu1yLWZOZvbdZ/fOzLbNXong5DbmXLOB4/5dB9ReV/iH6gJ6VFDq2QkIwYvBiXno315+QPwszzBfklofNBYJTgVQI+cFa+B8YJoxEmcUCuMI5KxaUu30Q11LM8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644359566499252.69378323151705; Tue, 8 Feb 2022 14:32:46 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-347-q1BRkh8HOSG9FeQccj9i6w-1; Tue, 08 Feb 2022 17:32:43 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 033C31091DA2; Tue, 8 Feb 2022 22:32:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 81CBB4CEF8; Tue, 8 Feb 2022 22:32:35 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7D0024CA93; Tue, 8 Feb 2022 22:32:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCH1U006285 for ; Mon, 7 Feb 2022 08:12:17 -0500 Received: by smtp.corp.redhat.com (Postfix) id 4A5851038ACB; Mon, 7 Feb 2022 13:12:17 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id 93E991038AC9; Mon, 7 Feb 2022 13:12:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359565; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=iex4krl+AoaT64QcFTp9wEMOeDmUtH4keLKzogfXUVs=; b=b/OJeOcM08w8atDL6LE5DS5I5J06fCgvkJCHcQDYZhUET2lU/2E160vZsooxYq3bMv+z5N 5ooHwmseChhkj/gbkBgoQq8H78S6VjU7KEMXl+1W+FH2w9VqrrOobdlzTw2/e5smxEhRbY AeYSCYfjq4W621KngB0e1vDa0zelrgY= X-MC-Unique: q1BRkh8HOSG9FeQccj9i6w-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 01/11] virthreadpool: Use automatic memory management Date: Mon, 7 Feb 2022 14:12:04 +0100 Message-Id: <20220207131214.54855-2-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359567140100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/util/virthreadpool.c | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/src/util/virthreadpool.c b/src/util/virthreadpool.c index 426840e435..b6d154802a 100644 --- a/src/util/virthreadpool.c +++ b/src/util/virthreadpool.c @@ -306,15 +306,13 @@ void virThreadPoolFree(virThreadPool *pool) if (!pool) return; =20 - virMutexLock(&pool->mutex); - virThreadPoolDrainLocked(pool); + virThreadPoolDrain(pool); =20 if (pool->identity) g_object_unref(pool->identity); =20 g_free(pool->jobName); g_free(pool->workers); - virMutexUnlock(&pool->mutex); virMutexDestroy(&pool->mutex); virCondDestroy(&pool->quit_cond); virCondDestroy(&pool->cond); @@ -326,66 +324,60 @@ void virThreadPoolFree(virThreadPool *pool) =20 size_t virThreadPoolGetMinWorkers(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->minWorkers; - virMutexUnlock(&pool->mutex); =20 return ret; } =20 size_t virThreadPoolGetMaxWorkers(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->maxWorkers; - virMutexUnlock(&pool->mutex); =20 return ret; } =20 size_t virThreadPoolGetPriorityWorkers(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->nPrioWorkers; - virMutexUnlock(&pool->mutex); =20 return ret; } =20 size_t virThreadPoolGetCurrentWorkers(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->nWorkers; - virMutexUnlock(&pool->mutex); =20 return ret; } =20 size_t virThreadPoolGetFreeWorkers(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->freeWorkers; - virMutexUnlock(&pool->mutex); =20 return ret; } =20 size_t virThreadPoolGetJobQueueDepth(virThreadPool *pool) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t ret; =20 - virMutexLock(&pool->mutex); ret =3D pool->jobQueueDepth; - virMutexUnlock(&pool->mutex); =20 return ret; } @@ -398,9 +390,9 @@ int virThreadPoolSendJob(virThreadPool *pool, unsigned int priority, void *jobData) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); virThreadPoolJob *job; =20 - virMutexLock(&pool->mutex); if (pool->quit) goto error; =20 @@ -431,11 +423,9 @@ int virThreadPoolSendJob(virThreadPool *pool, if (priority) virCondSignal(&pool->prioCond); =20 - virMutexUnlock(&pool->mutex); return 0; =20 error: - virMutexUnlock(&pool->mutex); return -1; } =20 @@ -445,11 +435,10 @@ virThreadPoolSetParameters(virThreadPool *pool, long long int maxWorkers, long long int prioWorkers) { + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); size_t max; size_t min; =20 - virMutexLock(&pool->mutex); - max =3D maxWorkers >=3D 0 ? maxWorkers : pool->maxWorkers; min =3D minWorkers >=3D 0 ? minWorkers : pool->minWorkers; if (min > max) { @@ -490,26 +479,24 @@ virThreadPoolSetParameters(virThreadPool *pool, pool->maxPrioWorkers =3D prioWorkers; } =20 - virMutexUnlock(&pool->mutex); return 0; =20 error: - virMutexUnlock(&pool->mutex); return -1; } =20 void virThreadPoolStop(virThreadPool *pool) { - virMutexLock(&pool->mutex); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); + virThreadPoolStopLocked(pool); - virMutexUnlock(&pool->mutex); } =20 void virThreadPoolDrain(virThreadPool *pool) { - virMutexLock(&pool->mutex); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); + virThreadPoolDrainLocked(pool); - virMutexUnlock(&pool->mutex); } --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359652; cv=none; d=zohomail.com; s=zohoarc; b=YExX7bgJ6V09LkpLZpNxEL0MuwYLJfBGJ4ofl6LdNA9qtPP7U/lsVt+b+SLp0RAjdqLJESeEPS58cH6DbKaMafboeU+xeIcO/fGGeaXAnlXeeJIgqeSXlEUG5YbPMTFrc4b7HOSWY+9rbYC1hJLMN3RnB8fKu+z3xKFlQXjB3xg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359652; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KSTm/WdtNTwi7bbdkpL470HqbegAwdtVNGJXMh52OtU=; b=LdcZqaLJcFV6/trTsfNczk9aLGZ7fhJxss03DkZ8ApxHZyrTh/F7iUW1y8wQ8gBh9G61s0HM9Y1Tzf18LejuvIYphjXD5L0DKd9OJMZs4nry84z3Cw3MgTQScZxNZSO7qW3TzfjZJAIWFukp9J45xaF4uW/K0Ab7DYytCzLWzZ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644359652186318.80491867321075; Tue, 8 Feb 2022 14:34:12 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-197-_MdewDyhMyydD-KzYGzfiQ-1; Tue, 08 Feb 2022 17:34:07 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F37511054F9F; Tue, 8 Feb 2022 22:34:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D1F795DB8E; Tue, 8 Feb 2022 22:34:01 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A0357576BF; Tue, 8 Feb 2022 22:34:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCIJd006299 for ; Mon, 7 Feb 2022 08:12:18 -0500 Received: by smtp.corp.redhat.com (Postfix) id 552681038ACA; Mon, 7 Feb 2022 13:12:18 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9D46A1038AC9; Mon, 7 Feb 2022 13:12:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359651; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=KSTm/WdtNTwi7bbdkpL470HqbegAwdtVNGJXMh52OtU=; b=GDcZrI5XoowuIHaml4JGUeaOhWV7nBWx1Ofu43Sxju0Y+MBlwBPm7zONv4UDe4EWQ8G0KF +/+wSQjutlfAHiKilsK0PazFVvqnkUgLKhVJT8RjhuMvy8m2yfhUlnnDKuQlVAUqvtQwEP vj4FV0eugAykeoww/cf20zXQUiIi0Lo= X-MC-Unique: _MdewDyhMyydD-KzYGzfiQ-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 02/11] virthreadpool: Cleanup Date: Mon, 7 Feb 2022 14:12:05 +0100 Message-Id: <20220207131214.54855-3-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359652872100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/util/virthreadpool.c | 51 ++++++++++------------------------------ 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/src/util/virthreadpool.c b/src/util/virthreadpool.c index b6d154802a..2f1d49d665 100644 --- a/src/util/virthreadpool.c +++ b/src/util/virthreadpool.c @@ -325,61 +325,43 @@ void virThreadPoolFree(virThreadPool *pool) size_t virThreadPoolGetMinWorkers(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; =20 - ret =3D pool->minWorkers; - - return ret; + return pool->minWorkers; } =20 size_t virThreadPoolGetMaxWorkers(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; - - ret =3D pool->maxWorkers; =20 - return ret; + return pool->maxWorkers; } =20 size_t virThreadPoolGetPriorityWorkers(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; - - ret =3D pool->nPrioWorkers; =20 - return ret; + return pool->nPrioWorkers; } =20 size_t virThreadPoolGetCurrentWorkers(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; =20 - ret =3D pool->nWorkers; - - return ret; + return pool->nWorkers; } =20 size_t virThreadPoolGetFreeWorkers(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; - - ret =3D pool->freeWorkers; =20 - return ret; + return pool->freeWorkers; } =20 size_t virThreadPoolGetJobQueueDepth(virThreadPool *pool) { VIR_LOCK_GUARD lock =3D virLockGuardLock(&pool->mutex); - size_t ret; =20 - ret =3D pool->jobQueueDepth; - - return ret; + return pool->jobQueueDepth; } =20 /* @@ -394,12 +376,12 @@ int virThreadPoolSendJob(virThreadPool *pool, virThreadPoolJob *job; =20 if (pool->quit) - goto error; + return -1; =20 if (pool->freeWorkers - pool->jobQueueDepth <=3D 0 && pool->nWorkers < pool->maxWorkers && virThreadPoolExpand(pool, 1, false) < 0) - goto error; + return -1; =20 job =3D g_new0(virThreadPoolJob, 1); =20 @@ -424,9 +406,6 @@ int virThreadPoolSendJob(virThreadPool *pool, virCondSignal(&pool->prioCond); =20 return 0; - - error: - return -1; } =20 int @@ -444,7 +423,7 @@ virThreadPoolSetParameters(virThreadPool *pool, if (min > max) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("minWorkers cannot be larger than maxWorkers")); - goto error; + return -1; } =20 if ((maxWorkers =3D=3D 0 && pool->maxWorkers > 0) || @@ -452,14 +431,13 @@ virThreadPoolSetParameters(virThreadPool *pool, virReportError(VIR_ERR_INVALID_ARG, "%s", _("maxWorkers must not be switched from zero to non= -zero" " and vice versa")); - goto error; + return -1; } =20 if (minWorkers >=3D 0) { if ((size_t) minWorkers > pool->nWorkers && - virThreadPoolExpand(pool, minWorkers - pool->nWorkers, - false) < 0) - goto error; + virThreadPoolExpand(pool, minWorkers - pool->nWorkers, false) = < 0) + return -1; pool->minWorkers =3D minWorkers; } =20 @@ -474,15 +452,12 @@ virThreadPoolSetParameters(virThreadPool *pool, } else if ((size_t) prioWorkers > pool->nPrioWorkers && virThreadPoolExpand(pool, prioWorkers - pool->nPrioWork= ers, true) < 0) { - goto error; + return -1; } pool->maxPrioWorkers =3D prioWorkers; } =20 return 0; - - error: - return -1; } =20 void --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359618; cv=none; d=zohomail.com; s=zohoarc; b=ShG2b2fqbDHIWhE0rN4+HBC8pN92Xqgn0/mgaqm7ZcXmJOXgSP/Ui5jxQpI57IjlUZ/C9B33vCJkAdvKxCRGnFe8PJbZNoNpkrh2e5mW3YZP0ayOiWBmjRcGhTVp3niOCwoP3vjYdeXI5xTWiAQiRzxDlcJmlvY/u41FKm8981w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359618; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/fuYmExAYHhYl/QNRWSwSwFK5MALS2/pmQfNIu+n46o=; b=b31PvyfEcDG0alUX9DzZUSyuIapqQtqXYwPI9zfib9sbINB9JXLT29t/5vNYLKKBEwS9AFw8o2pPV0ckwmn9p1g+ZEv5kD5TvD1MR1bJvcjOVTyZoIwksCJCpRxwcO8tY+1Ac7z1ovpjmGzaAJDpTJTsGQIrder4WpNg+AkaZ3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 164435961853648.81980126641554; Tue, 8 Feb 2022 14:33:38 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-270-2-2VHDmkNfWT0uvaZcRCXw-1; Tue, 08 Feb 2022 17:33:34 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BA8D85AB6; Tue, 8 Feb 2022 22:33:29 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9CC424CEFC; Tue, 8 Feb 2022 22:33:29 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 446015005D; Tue, 8 Feb 2022 22:33:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCJOw006305 for ; Mon, 7 Feb 2022 08:12:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id 5FBD61038AC9; Mon, 7 Feb 2022 13:12:19 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id AB3FB1038AC4; Mon, 7 Feb 2022 13:12:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359618; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=/fuYmExAYHhYl/QNRWSwSwFK5MALS2/pmQfNIu+n46o=; b=GUPfHQvLUgzp2VFUg+55xmckP7YaZ1HnSBnEVbV7pd0isKdw+Auut2CmXppj78jLchUAvU IMENB4EutynI8bs7THjqn0h76B+W4yKOEY2nQmZia+SwXPOxerNTUweaO58XTYJQEkTwjU Ea0hK2JgfIrlTnW7bHXE/DcOjFbSe70= X-MC-Unique: 2-2VHDmkNfWT0uvaZcRCXw-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 03/11] libxl: Use automatic memory management Date: Mon, 7 Feb 2022 14:12:06 +0100 Message-Id: <20220207131214.54855-4-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359620574100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/libxl/libxl_conf.c | 8 ++------ src/libxl/libxl_conf.h | 12 ------------ src/libxl/libxl_logger.c | 20 +++++++++----------- 3 files changed, 11 insertions(+), 29 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index f062f8e958..a0fc51c74a 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1815,12 +1815,8 @@ libxlDriverConfigInit(libxlDriverConfig *cfg) libxlDriverConfig * libxlDriverConfigGet(libxlDriverPrivate *driver) { - libxlDriverConfig *cfg; - - libxlDriverLock(driver); - cfg =3D virObjectRef(driver->config); - libxlDriverUnlock(driver); - return cfg; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + return virObjectRef(driver->config); } =20 int libxlDriverConfigLoadFile(libxlDriverConfig *cfg, diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index b74f455b69..16a7195bfd 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -219,15 +219,3 @@ libxlBuildDomainConfig(virPortAllocatorRange *graphics= ports, virDomainDef *def, libxlDriverConfig *cfg, libxl_domain_config *d_config); - -static inline void -libxlDriverLock(libxlDriverPrivate *driver) -{ - virMutexLock(&driver->lock); -} - -static inline void -libxlDriverUnlock(libxlDriverPrivate *driver) -{ - virMutexUnlock(&driver->lock); -} diff --git a/src/libxl/libxl_logger.c b/src/libxl/libxl_logger.c index 4708553f29..45cdc32f38 100644 --- a/src/libxl/libxl_logger.c +++ b/src/libxl/libxl_logger.c @@ -79,16 +79,16 @@ libvirt_vmessage(xentoollog_logger *logger_in, /* Should we print to a domain-specific log file? */ if ((start =3D strstr(message, ": Domain ")) && (end =3D strstr(start + 9, ":"))) { - FILE *domainLogFile; + FILE *domainLogFile =3D NULL; =20 VIR_DEBUG("Found domain log message"); =20 start =3D start + 9; *end =3D '\0'; =20 - virMutexLock(&lg->tableLock); - domainLogFile =3D virHashLookup(lg->files, start); - virMutexUnlock(&lg->tableLock); + VIR_WITH_MUTEX_LOCK_GUARD(&lg->tableLock) { + domainLogFile =3D virHashLookup(lg->files, start); + } if (domainLogFile) logFile =3D domainLogFile; =20 @@ -197,9 +197,9 @@ libxlLoggerOpenFile(libxlLogger *logger, path, g_strerror(errno)); return; } - virMutexLock(&logger->tableLock); - ignore_value(virHashAddEntry(logger->files, domidstr, logFile)); - virMutexUnlock(&logger->tableLock); + VIR_WITH_MUTEX_LOCK_GUARD(&logger->tableLock) { + ignore_value(virHashAddEntry(logger->files, domidstr, logFile)); + } =20 /* domain_config is non NULL only when starting a new domain */ if (domain_config) { @@ -211,10 +211,8 @@ libxlLoggerOpenFile(libxlLogger *logger, void libxlLoggerCloseFile(libxlLogger *logger, int id) { - g_autofree char *domidstr =3D NULL; - domidstr =3D g_strdup_printf("%d", id); + g_autofree char *domidstr =3D g_strdup_printf("%d", id); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&logger->tableLock); =20 - virMutexLock(&logger->tableLock); ignore_value(virHashRemoveEntry(logger->files, domidstr)); - virMutexUnlock(&logger->tableLock); } --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359587; cv=none; d=zohomail.com; s=zohoarc; b=gkn35NLzB6H1n/eLVkTfuDXGsNR8HsCT/ahDznhLHKK8NcwbgULQqmswy7Hntlp6AtdMXWGv19M9uOoSOI9TMHDnqpWdb5U+mBIWMmohYqEHCwA8+lKI35XTjzYz+GBy67I7vJzobJjjev+9u/YG0CMMnBkC4jxfottPKHdr9Z0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359587; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qH3VOOf1wryJ4XbPQficW95IO5SDomwET7zczJ97HMU=; b=WAFW5f90jM21OEtCN11TWPgKOK4THz+3TSHYtLu0zQ8QGpz5x7Xhq35KIlh4GgB6KVGyuqfKJ56oa3XgdUJdm5YP9EcLxeL93M9RC87PrFCsFze1ShAKKLJJ3bRj18lF3rtyEGCPyOsKGideBknO94xrjJdU39YKehDX5UCRGWU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1644359587662861.6405794764096; Tue, 8 Feb 2022 14:33:07 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-518-Hgjy0VR8OkyKDitwSNHl6A-1; Tue, 08 Feb 2022 17:33:03 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3C42618397A7; Tue, 8 Feb 2022 22:32:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 026014CEEC; Tue, 8 Feb 2022 22:32:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9DFBF4A7C8; Tue, 8 Feb 2022 22:32:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCKoe006317 for ; Mon, 7 Feb 2022 08:12:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id 69AF01038ACA; Mon, 7 Feb 2022 13:12:20 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id B35DD1038AC4; Mon, 7 Feb 2022 13:12:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359586; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=qH3VOOf1wryJ4XbPQficW95IO5SDomwET7zczJ97HMU=; b=gJ1vsb5y+8PM8F14xVP7W7ZZt3SgVpFwaS8awGYi1lwdAMHDFfcmpDLvVAtO2ZUhmFdDfM IoL/I6Oz4Eh5Me6laHG51j4gTGtyEO3UKnHJeNNXI15X1dgC3uazIzIqAPX/+U8EXwuPJr B3q6wv24IFa03MRkLuD5mfPcy6L64fY= X-MC-Unique: Hgjy0VR8OkyKDitwSNHl6A-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 04/11] lxc: Prepare virLXCDriverGetCapabilities for automatic mutex management Date: Mon, 7 Feb 2022 14:12:07 +0100 Message-Id: <20220207131214.54855-5-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359588873100001 Content-Type: text/plain; charset="utf-8" No functional change intended. This change makes the recfatoring to automatic mutex management easier to follow. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/lxc/lxc_conf.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index 8955578d54..cf6679711a 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -156,28 +156,28 @@ virCaps *virLXCDriverCapsInit(virLXCDriver *driver) virCaps *virLXCDriverGetCapabilities(virLXCDriver *driver, bool refresh) { - virCaps *ret; - if (refresh) { - virCaps *caps =3D NULL; - if ((caps =3D virLXCDriverCapsInit(driver)) =3D=3D NULL) - return NULL; + virCaps *ret =3D NULL; + virCaps *caps =3D NULL; + + lxcDriverLock(driver); + if (!refresh && !driver->caps) { + VIR_DEBUG("Capabilities didn't detect any guests. Forcing a refres= h."); + refresh =3D true; + } + lxcDriverUnlock(driver); =20 - lxcDriverLock(driver); + if (refresh && !(caps =3D virLXCDriverCapsInit(driver))) + return NULL; + + lxcDriverLock(driver); + if (refresh) { virObjectUnref(driver->caps); driver->caps =3D caps; - } else { - lxcDriverLock(driver); - - if (driver->caps =3D=3D NULL) { - VIR_DEBUG("Capabilities didn't detect any guests. Forcing a " - "refresh."); - lxcDriverUnlock(driver); - return virLXCDriverGetCapabilities(driver, true); - } } =20 ret =3D virObjectRef(driver->caps); lxcDriverUnlock(driver); + return ret; } =20 --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359591; cv=none; d=zohomail.com; s=zohoarc; b=SbP8+EwnrROZathoLDvEzNTT2TF06/If/6nYQ/bjsr2EVoL11DSd3WPO0LihKFcOBhf9faeKvnBfduS22EiNIzdOFjcaumO1+9Skld65k6qsffqx5JQHGiEctJLMG4SZ1E7OM+zda91tPUN0GcizeB4Bjw8WZ1plWy+A5zJ4rzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359591; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ObKNipzRh9FkE39IiDN1+IgtlFX7yZL4UAJb+tSHdtM=; b=exhxmLP/Q+M/KaZTFJsMfvaZz/NnNPeG85mQg+LndkL8LmrD9gmnqXmQoHCzR8d66z2kBgPVes81a4hdR0F8VFL2juWxoIZnk/S/5y9GY0iiBUJ7kowkEJ8IVejjafVeguYbtSJ5J6KRL6WTHgvCRIL8bJZYggfE9z7RBjmRNQs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1644359591196862.2213220622447; Tue, 8 Feb 2022 14:33:11 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-92-QdsY0QELMDC_49o1iXDdDQ-1; Tue, 08 Feb 2022 17:33:09 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0FB7915720; Tue, 8 Feb 2022 22:33:04 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E505D1037F50; Tue, 8 Feb 2022 22:33:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id B249B1809CB8; Tue, 8 Feb 2022 22:33:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCLqf006328 for ; Mon, 7 Feb 2022 08:12:21 -0500 Received: by smtp.corp.redhat.com (Postfix) id 716A91038ACA; Mon, 7 Feb 2022 13:12:21 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id BD9131038AC4; Mon, 7 Feb 2022 13:12:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359590; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=ObKNipzRh9FkE39IiDN1+IgtlFX7yZL4UAJb+tSHdtM=; b=DRTWi6WtPbHcQOu6QgaRkn4LiqpzB1WDkDh9mB0Wsbta/uhDA99Obm0x4fxLP3mVR3oXUn Q85EMtCjMbnenCYI1olOFguB0eqFXetgAMHSdUIPbSyvbpMwbreUGzfdsnV2+FI0loAZoY 4VKKnS/QjzcnmNAbg4VRLOsKGjOQG5A= X-MC-Unique: QdsY0QELMDC_49o1iXDdDQ-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 05/11] lxc: Use automatic mutex management Date: Mon, 7 Feb 2022 14:12:08 +0100 Message-Id: <20220207131214.54855-6-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359593639100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/lxc/lxc_conf.c | 31 ++++++++++++++----------------- src/lxc/lxc_conf.h | 9 --------- src/lxc/lxc_controller.c | 25 ++++++++++--------------- src/lxc/lxc_fuse.c | 12 ++++++------ 4 files changed, 30 insertions(+), 47 deletions(-) diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index cf6679711a..3ab4d61fe3 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -159,24 +159,24 @@ virCaps *virLXCDriverGetCapabilities(virLXCDriver *dr= iver, virCaps *ret =3D NULL; virCaps *caps =3D NULL; =20 - lxcDriverLock(driver); - if (!refresh && !driver->caps) { - VIR_DEBUG("Capabilities didn't detect any guests. Forcing a refres= h."); - refresh =3D true; + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + if (!refresh && !driver->caps) { + VIR_DEBUG("Capabilities didn't detect any guests. Forcing a re= fresh."); + refresh =3D true; + } } - lxcDriverUnlock(driver); =20 if (refresh && !(caps =3D virLXCDriverCapsInit(driver))) return NULL; =20 - lxcDriverLock(driver); - if (refresh) { - virObjectUnref(driver->caps); - driver->caps =3D caps; - } + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + if (refresh) { + virObjectUnref(driver->caps); + driver->caps =3D caps; + } =20 - ret =3D virObjectRef(driver->caps); - lxcDriverUnlock(driver); + ret =3D virObjectRef(driver->caps); + } =20 return ret; } @@ -248,11 +248,8 @@ virLXCLoadDriverConfig(virLXCDriverConfig *cfg, =20 virLXCDriverConfig *virLXCDriverGetConfig(virLXCDriver *driver) { - virLXCDriverConfig *cfg; - lxcDriverLock(driver); - cfg =3D virObjectRef(driver->config); - lxcDriverUnlock(driver); - return cfg; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + return virObjectRef(driver->config); } =20 static void diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h index 5a1351bd63..04e51aa954 100644 --- a/src/lxc/lxc_conf.h +++ b/src/lxc/lxc_conf.h @@ -113,12 +113,3 @@ virCaps *virLXCDriverGetCapabilities(virLXCDriver *dri= ver, bool refresh); virDomainXMLOption *lxcDomainXMLConfInit(virLXCDriver *driver, const char *defsecmodel); - -static inline void lxcDriverLock(virLXCDriver *driver) -{ - virMutexLock(&driver->lock); -} -static inline void lxcDriverUnlock(virLXCDriver *driver) -{ - virMutexUnlock(&driver->lock); -} diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index c4e3b66751..b5289b2448 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -995,7 +995,7 @@ static int lxcControllerClearCapabilities(void) } =20 static bool wantReboot; -static virMutex lock =3D VIR_MUTEX_INITIALIZER; +static virMutex mutex =3D VIR_MUTEX_INITIALIZER; =20 static int virLXCControllerEventSendExit(virLXCController *ctrl, @@ -1012,13 +1012,13 @@ static void virLXCControllerSignalChildIO(virNetDae= mon *dmn G_GNUC_UNUSED, ret =3D waitpid(-1, &status, WNOHANG); VIR_DEBUG("Got sig child %d vs %lld", ret, (long long)ctrl->initpid); if (ret =3D=3D ctrl->initpid) { - virMutexLock(&lock); - if (WIFSIGNALED(status) && - WTERMSIG(status) =3D=3D SIGHUP) { - VIR_DEBUG("Status indicates reboot"); - wantReboot =3D true; + VIR_WITH_MUTEX_LOCK_GUARD(&mutex) { + if (WIFSIGNALED(status) && + WTERMSIG(status) =3D=3D SIGHUP) { + VIR_DEBUG("Status indicates reboot"); + wantReboot =3D true; + } } - virMutexUnlock(&lock); virLXCControllerEventSendExit(ctrl, wantReboot ? 1 : 0); } } @@ -1132,8 +1132,8 @@ static void virLXCControllerConsoleUpdateWatch(virLXC= ControllerConsole *console) static void virLXCControllerConsoleEPoll(int watch, int fd, int events, vo= id *opaque) { virLXCControllerConsole *console =3D opaque; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&mutex); =20 - virMutexLock(&lock); VIR_DEBUG("IO event watch=3D%d fd=3D%d events=3D%d fromHost=3D%zu from= cont=3D%zu", watch, fd, events, console->fromHostLen, @@ -1149,7 +1149,7 @@ static void virLXCControllerConsoleEPoll(int watch, i= nt fd, int events, void *op virReportSystemError(errno, "%s", _("Unable to wait on epoll")); virNetDaemonQuit(console->daemon); - goto cleanup; + return; } =20 if (ret =3D=3D 0) @@ -1171,16 +1171,13 @@ static void virLXCControllerConsoleEPoll(int watch,= int fd, int events, void *op break; } } - - cleanup: - virMutexUnlock(&lock); } =20 static void virLXCControllerConsoleIO(int watch, int fd, int events, void = *opaque) { virLXCControllerConsole *console =3D opaque; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&mutex); =20 - virMutexLock(&lock); VIR_DEBUG("IO event watch=3D%d fd=3D%d events=3D%d fromHost=3D%zu from= cont=3D%zu", watch, fd, events, console->fromHostLen, @@ -1254,7 +1251,6 @@ static void virLXCControllerConsoleIO(int watch, int = fd, int events, void *opaqu } =20 virLXCControllerConsoleUpdateWatch(console); - virMutexUnlock(&lock); return; =20 error: @@ -1262,7 +1258,6 @@ static void virLXCControllerConsoleIO(int watch, int = fd, int events, void *opaqu virEventRemoveHandle(console->hostWatch); console->contWatch =3D console->hostWatch =3D -1; virNetDaemonQuit(console->daemon); - virMutexUnlock(&lock); } =20 =20 diff --git a/src/lxc/lxc_fuse.c b/src/lxc/lxc_fuse.c index c2fe8f0e60..2e600e4402 100644 --- a/src/lxc/lxc_fuse.c +++ b/src/lxc/lxc_fuse.c @@ -260,11 +260,11 @@ static struct fuse_operations lxcProcOper =3D { =20 static void lxcFuseDestroy(struct virLXCFuse *fuse) { - virMutexLock(&fuse->lock); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&fuse->lock); + fuse_unmount(fuse->mountpoint, fuse->ch); fuse_destroy(fuse->fuse); fuse->fuse =3D NULL; - virMutexUnlock(&fuse->lock); } =20 static void lxcFuseRun(void *opaque) @@ -346,10 +346,10 @@ void lxcFreeFuse(struct virLXCFuse **f) if (fuse) { /* exit fuse_loop, lxcFuseRun thread may try to destroy * fuse->fuse at the same time,so add a lock here. */ - virMutexLock(&fuse->lock); - if (fuse->fuse) - fuse_exit(fuse->fuse); - virMutexUnlock(&fuse->lock); + VIR_WITH_MUTEX_LOCK_GUARD(&fuse->lock) { + if (fuse->fuse) + fuse_exit(fuse->fuse); + } =20 g_free(fuse->mountpoint); g_free(*f); --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359596; cv=none; d=zohomail.com; s=zohoarc; b=VyrbkuD32zIUQo4jkbb+UGNohLZMe6nwprlAGl5hBZTiSmCBEWyXMJTCW6Upf4gB6bfPV5/AzU9vcnONeIQ/kqp3WvSxEcRCBTZNpxxBqnHknzvQ2Krk5tE0uWy9g5pYwVaezUwVIsPLrsSJMf3PV1v+vI2N5KYpfxeoNQhyPiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359596; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=p6L2eflkyFt4ZD20VzW9vY9FgpsPVTONFZabDJP7Y4c=; b=cmYojGld3xxwivCF593t4kbbjaoalU+bS+0bQomFDK1n4NH2VovyRGx0JK6Bn//H78XMJ1LQ0yZDiSkuEDm9MoslEr7kRcBaZl/oFxXZSOPqw3LqantyzIGUall9EBJLKTMLQudSXE9tdxIixYCOuZPCwx5plhVJLnGzSU3PI4w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1644359596553955.6640279454508; Tue, 8 Feb 2022 14:33:16 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-668-hLcdzMWEP3eSs9KkxWI_jA-1; Tue, 08 Feb 2022 17:33:12 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3097D654; Tue, 8 Feb 2022 22:33:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 119E24CEEC; Tue, 8 Feb 2022 22:33:07 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A5DA74A7CA; Tue, 8 Feb 2022 22:33:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCMgo006335 for ; Mon, 7 Feb 2022 08:12:22 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7FC6A1038AC9; Mon, 7 Feb 2022 13:12:22 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id C552D1038AC4; Mon, 7 Feb 2022 13:12:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359595; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=p6L2eflkyFt4ZD20VzW9vY9FgpsPVTONFZabDJP7Y4c=; b=WZFinG3M2tHm5FeVlrkvyEryTkdtmjAevvzBhirKr/1CR4VCkkDuHH85E2v7OO2ijz2Tsa yqk7ZJtxhNC0/ILMQFw21rX6IWyioES/ipN30jY32YruA4/Gija91bqMIKCpLYi8oBW4Yf Aqaljz33Zi6InC7OFexi/pbuhOZ5q6I= X-MC-Unique: hLcdzMWEP3eSs9KkxWI_jA-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 06/11] ch: Prepare virCHDriverGetCapabilities for automatic mutex management Date: Mon, 7 Feb 2022 14:12:09 +0100 Message-Id: <20220207131214.54855-7-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359598139100001 Content-Type: text/plain; charset="utf-8" No functional change intended. This change makes the refactoring to automatic mutex management easier to follow. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/ch/ch_conf.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ch/ch_conf.c b/src/ch/ch_conf.c index be12934dcd..cdf69e3e70 100644 --- a/src/ch/ch_conf.c +++ b/src/ch/ch_conf.c @@ -87,21 +87,22 @@ virCaps *virCHDriverCapsInit(void) virCaps *virCHDriverGetCapabilities(virCHDriver *driver, bool refresh) { - virCaps *ret; - if (refresh) { - virCaps *caps =3D NULL; - if ((caps =3D virCHDriverCapsInit()) =3D=3D NULL) - return NULL; + virCaps *ret =3D NULL; + virCaps *caps =3D NULL; =20 - chDriverLock(driver); + if (refresh && !(caps =3D virCHDriverCapsInit())) + return NULL; + + chDriverLock(driver); + + if (refresh) { virObjectUnref(driver->caps); driver->caps =3D caps; - } else { - chDriverLock(driver); } =20 ret =3D virObjectRef(driver->caps); chDriverUnlock(driver); + return ret; } =20 --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359645; cv=none; d=zohomail.com; s=zohoarc; b=Ym1iU7CdvSd70qx1O72xqi+mxfNMf8CU/n0rlcQYRfpZQV+Q2PjsTa4EY5Ks5uYs/zfjswjKFAyq5w0nZOsc768IADgDok8RT0/Uib5iJiMZ6c4FTOKTsY1QgPGhdQ80Nts9MC4Q0SbuEeyBVhYoiV8ajalSLrWlT9cR1+1O2j0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359645; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+p85GgwzS4/lg3cByVHzMN+ucP4PILORUyn/8hx0C3Q=; b=AvJgG481qcROngBMLzWZPm+th1KTmABAD/zGaI9MVQz2JjHcI0qv8pI/FiVP+k5liyRmQMrvB1FMTMpSMmzwGidWhIIUSLLbG5Ue460X6zAgKgTjK7HIJNkB6cUafQzGFp7XLW/6xVct0DvkSgAXwUItlI6wUCmRGb02NguSLkc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644359645765191.66986272231566; Tue, 8 Feb 2022 14:34:05 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-557-8-aoWGrYPaWc8LMSf2ZJlw-1; Tue, 08 Feb 2022 17:33:15 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E89F784B9A8; Tue, 8 Feb 2022 22:33:09 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C9297519A3; Tue, 8 Feb 2022 22:33:09 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 99A301809CB9; Tue, 8 Feb 2022 22:33:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCNcX006340 for ; Mon, 7 Feb 2022 08:12:23 -0500 Received: by smtp.corp.redhat.com (Postfix) id 8FAB3106C0F9; Mon, 7 Feb 2022 13:12:23 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id D482A1038AC4; Mon, 7 Feb 2022 13:12:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359644; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=+p85GgwzS4/lg3cByVHzMN+ucP4PILORUyn/8hx0C3Q=; b=LGKyl8WD+f+HVEeNJmZ3f1QvQ/WPFhGRDutDrleQtpCa+1XGK43QckVHgw7gCNnXLzEnPr SaGxSRqavZ43dGmf2GDM9G/4enhjh++47LQt5JIolZzcMvz5iC+Q+jOKcbX3gC+Vn1PboP BWeguZOOUwPy37FlT+3ka75ENev/3Jk= X-MC-Unique: 8-aoWGrYPaWc8LMSf2ZJlw-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 07/11] ch: Use automatic mutex management Date: Mon, 7 Feb 2022 14:12:10 +0100 Message-Id: <20220207131214.54855-8-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359647821100005 Content-Type: text/plain; charset="utf-8" This leaves a bogus `virMutexUnlock` in `chDomainCreateXML`. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/ch/ch_conf.c | 20 ++++++++------------ src/ch/ch_conf.h | 10 ---------- src/ch/ch_driver.c | 30 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 37 deletions(-) diff --git a/src/ch/ch_conf.c b/src/ch/ch_conf.c index cdf69e3e70..ccc01ecdab 100644 --- a/src/ch/ch_conf.c +++ b/src/ch/ch_conf.c @@ -93,16 +93,15 @@ virCaps *virCHDriverGetCapabilities(virCHDriver *driver, if (refresh && !(caps =3D virCHDriverCapsInit())) return NULL; =20 - chDriverLock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + if (refresh) { + virObjectUnref(driver->caps); + driver->caps =3D caps; + } =20 - if (refresh) { - virObjectUnref(driver->caps); - driver->caps =3D caps; + ret =3D virObjectRef(driver->caps); } =20 - ret =3D virObjectRef(driver->caps); - chDriverUnlock(driver); - return ret; } =20 @@ -159,11 +158,8 @@ virCHDriverConfigNew(bool privileged) =20 virCHDriverConfig *virCHDriverGetConfig(virCHDriver *driver) { - virCHDriverConfig *cfg; - chDriverLock(driver); - cfg =3D virObjectRef(driver->config); - chDriverUnlock(driver); - return cfg; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + return virObjectRef(driver->config); } =20 static void diff --git a/src/ch/ch_conf.h b/src/ch/ch_conf.h index c56caa3f5f..b927621a97 100644 --- a/src/ch/ch_conf.h +++ b/src/ch/ch_conf.h @@ -78,13 +78,3 @@ virDomainXMLOption *chDomainXMLConfInit(virCHDriver *dri= ver); virCHDriverConfig *virCHDriverConfigNew(bool privileged); virCHDriverConfig *virCHDriverGetConfig(virCHDriver *driver); int chExtractVersion(virCHDriver *driver); - -static inline void chDriverLock(virCHDriver *driver) -{ - virMutexLock(&driver->lock); -} - -static inline void chDriverUnlock(virCHDriver *driver) -{ - virMutexUnlock(&driver->lock); -} diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c index 3223f31367..945a1aa225 100644 --- a/src/ch/ch_driver.c +++ b/src/ch/ch_driver.c @@ -106,9 +106,10 @@ static int chConnectGetVersion(virConnectPtr conn, if (virConnectGetVersionEnsureACL(conn) < 0) return -1; =20 - chDriverLock(driver); - *version =3D driver->version; - chDriverUnlock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + *version =3D driver->version; + } + return 0; } =20 @@ -241,7 +242,7 @@ chDomainCreateXML(virConnectPtr conn, virDomainObjListRemove(driver->domains, vm); } virDomainObjEndAPI(&vm); - chDriverUnlock(driver); + virMutexUnlock(&driver->lock); return dom; } =20 @@ -368,8 +369,8 @@ static int chDomainIsActive(virDomainPtr dom) virCHDriver *driver =3D dom->conn->privateData; virDomainObj *vm; int ret =3D -1; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); =20 - chDriverLock(driver); if (!(vm =3D virCHDomainObjFromDomain(dom))) goto cleanup; =20 @@ -380,7 +381,6 @@ static int chDomainIsActive(virDomainPtr dom) =20 cleanup: virDomainObjEndAPI(&vm); - chDriverUnlock(driver); return ret; } =20 @@ -638,9 +638,9 @@ static virDomainPtr chDomainLookupByID(virConnectPtr co= nn, virDomainObj *vm; virDomainPtr dom =3D NULL; =20 - chDriverLock(driver); - vm =3D virDomainObjListFindByID(driver->domains, id); - chDriverUnlock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + vm =3D virDomainObjListFindByID(driver->domains, id); + } =20 if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, @@ -665,9 +665,9 @@ static virDomainPtr chDomainLookupByName(virConnectPtr = conn, virDomainObj *vm; virDomainPtr dom =3D NULL; =20 - chDriverLock(driver); - vm =3D virDomainObjListFindByName(driver->domains, name); - chDriverUnlock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + vm =3D virDomainObjListFindByName(driver->domains, name); + } =20 if (!vm) { virReportError(VIR_ERR_NO_DOMAIN, @@ -692,9 +692,9 @@ static virDomainPtr chDomainLookupByUUID(virConnectPtr = conn, virDomainObj *vm; virDomainPtr dom =3D NULL; =20 - chDriverLock(driver); - vm =3D virDomainObjListFindByUUID(driver->domains, uuid); - chDriverUnlock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + vm =3D virDomainObjListFindByUUID(driver->domains, uuid); + } =20 if (!vm) { char uuidstr[VIR_UUID_STRING_BUFLEN]; --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359652; cv=none; d=zohomail.com; s=zohoarc; b=PFCJvz7vZTjd8rJ5bFVKK9fOSPehWWypbnutQlFYRkM3ZQOM3a2VqOhUWvzMMeFSinbF+NGDzBaX1m54yznAs8kMDgDxQVxvskgNLJ4iOlp0mzyORbvjTaYXMTqbJcVMkTNIHIHh9p7ex7o6wEni1ztZsPkgMdkV70UVr169rIw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359652; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WsNRqwb8By9fDWPztO/w5fDB9A1NIKlpUXAjiaByWp4=; b=Bwttd81MR79svLWyjVnOZJYm2PfrzbIYg2zGIh5MxxzHE7GXcq1CLbcOr2++43MzULA3B4DeZ2KnlEkXbsrhbApTGk49qM9mbuQHT9mWxvNOCo9T+imD06jpf9WZ8MuyN5IdbRsxgpDYoHIxNDkLk9ccLOBbrBZfKTnD9dpjPDY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1644359652791811.3861176779437; Tue, 8 Feb 2022 14:34:12 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-228-P4buW8dSN2OnKqasjrdZvQ-1; Tue, 08 Feb 2022 17:34:10 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 53F8E1054FAF; Tue, 8 Feb 2022 22:34:05 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B9415519A5; Tue, 8 Feb 2022 22:34:04 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8A62A1832B61; Tue, 8 Feb 2022 22:34:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCOga006362 for ; Mon, 7 Feb 2022 08:12:24 -0500 Received: by smtp.corp.redhat.com (Postfix) id CDE8A1079DC2; Mon, 7 Feb 2022 13:12:24 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id E6E4B1077D24; Mon, 7 Feb 2022 13:12:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359651; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=WsNRqwb8By9fDWPztO/w5fDB9A1NIKlpUXAjiaByWp4=; b=YDajwZ7r8AHU5m5CtLM3bRu37bUAr7zPrWyPIS7ozDgg2zvN0MyHIsShq7Qf2aJtgJwX8J 6dDdpJBNPN1NUqQ3x7rDNqVHdSE4XFdtrdU6t8/se5K0sUJIM6S9WJzMa7YJUuYUQGyeTr 8VU8nMXaaOH0JoGunDx2ppgUfs1/NeY= X-MC-Unique: P4buW8dSN2OnKqasjrdZvQ-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 08/11] ch: Remove solitary virMutexUnlock Date: Mon, 7 Feb 2022 14:12:11 +0100 Message-Id: <20220207131214.54855-9-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359654910100011 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/ch/ch_driver.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c index 945a1aa225..4c1a9bae77 100644 --- a/src/ch/ch_driver.c +++ b/src/ch/ch_driver.c @@ -242,7 +242,6 @@ chDomainCreateXML(virConnectPtr conn, virDomainObjListRemove(driver->domains, vm); } virDomainObjEndAPI(&vm); - virMutexUnlock(&driver->lock); return dom; } =20 --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359604; cv=none; d=zohomail.com; s=zohoarc; b=Zl2D3urbCRq+vA/c7nKtAGGU9k8ktnCzqHmXSlA+qx32mmfGgHb9AarIj24KAy094kbUewI5UO+NPR5bW0sSQpzhBvuugBjZcYkXW6PzsTYHaIvWeKB1ni6CF15rXaplpvn5OnqK9H6iforikJUo93wQCA5DsMPSKdP4RdI8/Co= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359604; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=98AvDDqt5r6KCUNrc4nNjFq4xQ/68Ot+PRZHom6I1ek=; b=C/1wICLiy4uuiRgeqCgI8xdEb2MrIZlQpyyLJBdlli1xOUFSyY3ncBf3t4Xay/AhFN4735ybe6C7dkvSNF/IZnVNeu2hlez+ZWYWAI7P/CD0/kelyey48ZBYI5BZkHAwvkKUKUCcfNeiujD2AMIloVUL4zhL9Z4eU0rUSR8qQAw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644359604186266.6004232182212; Tue, 8 Feb 2022 14:33:24 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-611-NjpwOkKkOnO7oT_GWudLXw-1; Tue, 08 Feb 2022 17:33:19 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7E52A1091DA6; Tue, 8 Feb 2022 22:33:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5F7B74CEF8; Tue, 8 Feb 2022 22:33:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 307684A700; Tue, 8 Feb 2022 22:33:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCPSH006371 for ; Mon, 7 Feb 2022 08:12:25 -0500 Received: by smtp.corp.redhat.com (Postfix) id D9ED41038AC9; Mon, 7 Feb 2022 13:12:25 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2EB321079DC2; Mon, 7 Feb 2022 13:12:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359603; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=98AvDDqt5r6KCUNrc4nNjFq4xQ/68Ot+PRZHom6I1ek=; b=Lrv1OMwWVGaALOIim0Pg1N0FImFfkhp5OgYlGA9S4KeLISy3XD+jF+B/NysV0ZBSVHhFD8 2SWS8rVOiY4QTP5z99qj5tGP6o6lTPLKFVqtwjkdm2bA9FM4VKwXHKwbwLzC7aK3TEtqKW GaRGd3X7KF76dUKYFMf45G939KHNRro= X-MC-Unique: NjpwOkKkOnO7oT_GWudLXw-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 09/11] network: Use automatic mutex management Date: Mon, 7 Feb 2022 14:12:12 +0100 Message-Id: <20220207131214.54855-10-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359604976100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/network/bridge_driver.c | 41 +++++++++---------------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 23d9ed4226..3750da7962 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -100,28 +100,11 @@ networkGetDriver(void) } =20 =20 -static void -networkDriverLock(virNetworkDriverState *driver) -{ - virMutexLock(&driver->lock); -} - - -static void -networkDriverUnlock(virNetworkDriverState *driver) -{ - virMutexUnlock(&driver->lock); -} - - static dnsmasqCaps * networkGetDnsmasqCaps(virNetworkDriverState *driver) { - dnsmasqCaps *ret; - networkDriverLock(driver); - ret =3D virObjectRef(driver->dnsmasqCaps); - networkDriverUnlock(driver); - return ret; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + return virObjectRef(driver->dnsmasqCaps); } =20 =20 @@ -133,10 +116,11 @@ networkDnsmasqCapsRefresh(virNetworkDriverState *driv= er) if (!(caps =3D dnsmasqCapsNewFromBinary())) return -1; =20 - networkDriverLock(driver); - virObjectUnref(driver->dnsmasqCaps); - driver->dnsmasqCaps =3D caps; - networkDriverUnlock(driver); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + virObjectUnref(driver->dnsmasqCaps); + driver->dnsmasqCaps =3D caps; + } + return 0; } =20 @@ -2725,27 +2709,22 @@ static int networkBridgeNameValidate(virNetworkObjList *nets, virNetworkDef *def) { - virMutexLock(&bridgeNameValidateMutex); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&bridgeNameValidateMutex); =20 if (def->bridge && !strstr(def->bridge, "%d")) { if (virNetworkObjBridgeInUse(nets, def->bridge, def->name)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge name '%s' already in use."), def->bridge); - goto error; + return -1; } } else { /* Allocate a bridge name */ if (networkFindUnusedBridgeName(nets, def) < 0) - goto error; + return -1; } =20 - virMutexUnlock(&bridgeNameValidateMutex); return 0; - - error: - virMutexUnlock(&bridgeNameValidateMutex); - return -1; } =20 =20 --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359620; cv=none; d=zohomail.com; s=zohoarc; b=XUBypdZvrLbIl9/+5BIGYi4KIjEI0jDTJIyVU0LaL/KFFB9LuZ0+ay8vnlVzIldsMoJ7Y0VtwavQeIcy9Hee8Q6ytTyZdbCTgb6dvmclaPIXbi6IAVV145BpJHLu1faute7byEHJdBDTMFNGP/O1UrQgSTVcAZZ9UwPGhvsM2zQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359620; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mR81FlwEJjxasMjvHuyMVlxuk0fdu8Gt6OucGVtIxqA=; b=GnF878mcVDsw8CUuT7Q8AgcV5qnSpJcfca3UcKWVJREHl0q2gUMtXlhgiGiBWoqzrkzecS87WYqS8tTQa7D59Oq6gr/vYC6HuSlQCkMpM5/INdsVr7MvWWy3rIDLHxgSo6YNFSm+Yc44sfT/I2Odt0oPMmbXCq/kZK6KJAJPd6c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644359620227824.2458914145822; Tue, 8 Feb 2022 14:33:40 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-475-Teh_CpDeMzS2I9BVJIXQNA-1; Tue, 08 Feb 2022 17:33:37 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3630E5AB8; Tue, 8 Feb 2022 22:33:32 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1454955F4C; Tue, 8 Feb 2022 22:33:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D7C83473A0; Tue, 8 Feb 2022 22:33:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCQVH006380 for ; Mon, 7 Feb 2022 08:12:26 -0500 Received: by smtp.corp.redhat.com (Postfix) id EBB8E1038AC4; Mon, 7 Feb 2022 13:12:26 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3FFA21038AC9; Mon, 7 Feb 2022 13:12:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359619; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=mR81FlwEJjxasMjvHuyMVlxuk0fdu8Gt6OucGVtIxqA=; b=Wh8SJDx/WEZtcHcwA2G1RQQS49C2e5sSNYDMFDgolPLU6KEj+Vj1IGLMXEi5P5OwKbUzE2 rtFmg3TRU5V22H3XQmJJGWqZ/K7OiKPiO5eAjPU+QYJsGdvk3Jr56eUbRiI8TfFO53gZ8F 4ZGkaVm7omoNmynwntQzT2TifgiNp+Y= X-MC-Unique: Teh_CpDeMzS2I9BVJIXQNA-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 10/11] bhyve_driver: Use automatic mutex management Date: Mon, 7 Feb 2022 14:12:13 +0100 Message-Id: <20220207131214.54855-11-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359620791100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/bhyve/bhyve_conf.c | 7 ++----- src/bhyve/bhyve_driver.c | 12 ------------ src/bhyve/bhyve_utils.h | 3 --- 3 files changed, 2 insertions(+), 20 deletions(-) diff --git a/src/bhyve/bhyve_conf.c b/src/bhyve/bhyve_conf.c index 5eca0855f0..28981c90b7 100644 --- a/src/bhyve/bhyve_conf.c +++ b/src/bhyve/bhyve_conf.c @@ -85,11 +85,8 @@ virBhyveLoadDriverConfig(struct _virBhyveDriverConfig *c= fg, struct _virBhyveDriverConfig * virBhyveDriverGetConfig(struct _bhyveConn *driver) { - struct _virBhyveDriverConfig *cfg; - bhyveDriverLock(driver); - cfg =3D virObjectRef(driver->config); - bhyveDriverUnlock(driver); - return cfg; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + return virObjectRef(driver->config); } =20 static void diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 47ee98e650..f580e87419 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -70,18 +70,6 @@ VIR_LOG_INIT("bhyve.bhyve_driver"); =20 struct _bhyveConn *bhyve_driver =3D NULL; =20 -void -bhyveDriverLock(struct _bhyveConn *driver) -{ - virMutexLock(&driver->lock); -} - -void -bhyveDriverUnlock(struct _bhyveConn *driver) -{ - virMutexUnlock(&driver->lock); -} - static int bhyveAutostartDomain(virDomainObj *vm, void *opaque) { diff --git a/src/bhyve/bhyve_utils.h b/src/bhyve/bhyve_utils.h index af7b15486a..5d6e198b09 100644 --- a/src/bhyve/bhyve_utils.h +++ b/src/bhyve/bhyve_utils.h @@ -73,6 +73,3 @@ struct bhyveAutostartData { struct _bhyveConn *driver; virConnectPtr conn; }; - -void bhyveDriverLock(struct _bhyveConn *driver); -void bhyveDriverUnlock(struct _bhyveConn *driver); --=20 2.31.1 From nobody Thu May 16 01:16:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1644359658; cv=none; d=zohomail.com; s=zohoarc; b=cCl6bIHDZYYkO5I03EcLAh3MLia3CIoJfpyOqgKfEa/Y5IUC11H5GZF4HPKxpoICF41my4ORGdBYT61MmRe+Uv6ZzqXy3C7UqL33zQW4fLdNvc+xpmQFAoRjTbXcUxcR5nomwW0BkPDdx+PFtU2Sg5IwOJLhyhUbpKQ+Q9YP5os= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1644359658; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xmi6zvi4U2Q0Cxcw/qS++ZPanG5ZEx4N6rXCkjqHu74=; b=CJPSLWxxZaLDqPDA513/mKn34VRx+QbIeDq+sCjLlqPnY9vrPuw98LunDonHYH/jCG7n8Pam4CvtMvgP7DO7AS4Nll/8JU4AM8Uyi/xuK862ycinBiVUUkJ5dwVYgj6bn7V+TJxPYKNsAxIcRq6UqHr4OVl2ZZC92YTe9f8W8YU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1644359658463234.94013692838212; Tue, 8 Feb 2022 14:34:18 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-340-93dBNi-NP4WjZibhspi-XQ-1; Tue, 08 Feb 2022 17:34:13 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E6B1A1853033; Tue, 8 Feb 2022 22:34:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C460456F9D; Tue, 8 Feb 2022 22:34:07 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 96DAF59CB4; Tue, 8 Feb 2022 22:34:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 217DCSx8006397 for ; Mon, 7 Feb 2022 08:12:28 -0500 Received: by smtp.corp.redhat.com (Postfix) id 007331038AC9; Mon, 7 Feb 2022 13:12:28 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.192.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4BF531038AC4; Mon, 7 Feb 2022 13:12:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644359657; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=xmi6zvi4U2Q0Cxcw/qS++ZPanG5ZEx4N6rXCkjqHu74=; b=bFzdEB6hW6xd4sX1iEuHF2+tWnG/ftkmp6c7c+o6I1bHwSjEMSuMAzHb6Ctzkek4sfat14 cvVhqI2txy2oQ2uJWLmZGywf4kQDuhwWmriRvBjtFV3oRsRP8t3MRfoS5pxFu2BrkVbfLq 0XERDMBhCJii72/sMvXn3MAT1tQAh88= X-MC-Unique: 93dBNi-NP4WjZibhspi-XQ-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 11/11] node_device: Use automatic mutex management Date: Mon, 7 Feb 2022 14:12:14 +0100 Message-Id: <20220207131214.54855-12-twiederh@redhat.com> In-Reply-To: <20220207131214.54855-1-twiederh@redhat.com> References: <20220207131214.54855-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1644359659553100037 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/node_device/node_device_driver.c | 23 +++--------- src/node_device/node_device_udev.c | 52 ++++++++++++---------------- 2 files changed, 26 insertions(+), 49 deletions(-) diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_de= vice_driver.c index d19ed7d948..7b2fb3d953 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -156,33 +156,18 @@ nodeDeviceUpdateDriverName(virNodeDeviceDef *def G_GN= UC_UNUSED) #endif =20 =20 -void -nodeDeviceLock(void) -{ - virMutexLock(&driver->lock); -} - - -void -nodeDeviceUnlock(void) -{ - virMutexUnlock(&driver->lock); -} - - static int nodeDeviceInitWait(void) { - nodeDeviceLock(); + VIR_LOCK_GUARD lock =3D virLockGuardLock(&driver->lock); + while (!driver->initialized) { if (virCondWait(&driver->initCond, &driver->lock) < 0) { - virReportSystemError(errno, "%s", - _("failed to wait on condition")); - nodeDeviceUnlock(); + virReportSystemError(errno, "%s", _("failed to wait on conditi= on")); return -1; } } - nodeDeviceUnlock(); + return 0; } =20 diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_devi= ce_udev.c index a9e8bf10da..3d5e25424a 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -93,9 +93,9 @@ udevEventDataDispose(void *obj) udev_monitor_unref(priv->udev_monitor); udev_unref(udev); =20 - virMutexLock(&priv->mdevctlLock); - g_list_free_full(priv->mdevctlMonitors, g_object_unref); - virMutexUnlock(&priv->mdevctlLock); + VIR_WITH_MUTEX_LOCK_GUARD(&priv->mdevctlLock) { + g_list_free_full(priv->mdevctlMonitors, g_object_unref); + } virMutexDestroy(&priv->mdevctlLock); =20 virCondDestroy(&priv->threadCond); @@ -348,13 +348,9 @@ udevTranslatePCIIds(unsigned int vendor, m.match_data =3D 0; =20 /* pci_get_strings returns void and unfortunately is not thread safe. = */ - virMutexLock(&pciaccessMutex); - pci_get_strings(&m, - &device_name, - &vendor_name, - NULL, - NULL); - virMutexUnlock(&pciaccessMutex); + VIR_WITH_MUTEX_LOCK_GUARD(&pciaccessMutex) { + pci_get_strings(&m, &device_name, &vendor_name, NULL, NULL); + } =20 *vendor_string =3D g_strdup(vendor_name); *product_string =3D g_strdup(device_name); @@ -373,11 +369,11 @@ udevProcessPCI(struct udev_device *device, virPCIDeviceAddress devAddr; int ret =3D -1; char *p; - bool privileged; + bool privileged =3D false; =20 - nodeDeviceLock(); - privileged =3D driver->privileged; - nodeDeviceUnlock(); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + privileged =3D driver->privileged; + } =20 pci_dev->klass =3D -1; if (udevGetIntProperty(device, "PCI_CLASS", &pci_dev->klass, 16) < 0) @@ -1989,10 +1985,10 @@ nodeStateInitializeEnumerate(void *opaque) goto error; =20 cleanup: - nodeDeviceLock(); - driver->initialized =3D true; - virCondBroadcast(&driver->initCond); - nodeDeviceUnlock(); + VIR_WITH_MUTEX_LOCK_GUARD(&driver->lock) { + driver->initialized =3D true; + virCondBroadcast(&driver->initCond); + } =20 return; =20 @@ -2036,12 +2032,10 @@ static void mdevctlHandlerThread(void *opaque G_GNUC_UNUSED) { udevEventData *priv =3D driver->privateData; + VIR_LOCK_GUARD lock =3D virLockGuardLock(&priv->mdevctlLock); =20 - /* ensure only a single thread can query mdevctl at a time */ - virMutexLock(&priv->mdevctlLock); if (nodeDeviceUpdateMediatedDevices() < 0) VIR_WARN("mdevctl failed to updated mediated devices"); - virMutexUnlock(&priv->mdevctlLock); } =20 =20 @@ -2143,13 +2137,10 @@ mdevctlEnableMonitor(udevEventData *priv) * mdevctl configuration is stored in a directory tree within * /etc/mdevctl.d/. There is a directory for each parent device, which * contains a file defining each mediated device */ - virMutexLock(&priv->mdevctlLock); - if (!(priv->mdevctlMonitors =3D monitorFileRecursively(priv, - mdevctlConfigDir)= )) { - virMutexUnlock(&priv->mdevctlLock); - return -1; + VIR_WITH_MUTEX_LOCK_GUARD(&priv->mdevctlLock) { + if (!(priv->mdevctlMonitors =3D monitorFileRecursively(priv, mdevc= tlConfigDir))) + return -1; } - virMutexUnlock(&priv->mdevctlLock); =20 return 0; } @@ -2171,9 +2162,10 @@ mdevctlEventHandleCallback(GFileMonitor *monitor G_G= NUC_UNUSED, if (file_type =3D=3D G_FILE_TYPE_DIRECTORY) { GList *newmonitors =3D monitorFileRecursively(priv, file); =20 - virMutexLock(&priv->mdevctlLock); - priv->mdevctlMonitors =3D g_list_concat(priv->mdevctlMonitors,= newmonitors); - virMutexUnlock(&priv->mdevctlLock); + VIR_WITH_MUTEX_LOCK_GUARD(&priv->mdevctlLock) { + priv->mdevctlMonitors =3D g_list_concat(priv->mdevctlMonit= ors, + newmonitors); + } } } =20 --=20 2.31.1