From nobody Sun Feb 8 18:29:50 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557296576; cv=none; d=zoho.com; s=zohoarc; b=PZJHvnZ27hSZQI1aAy5OZpQNTbF6+o3iG1m96gQVGXThu9glSuPus47Xk0ozJXV/wmljuB0W7uzKPr8+FarTv2r7Lqb0QdDLqQK/aX0HQdTReOgIlQGWE2HNwzuep4r/Aj4mAE50Fp4wCSK/hHe55KDqSfeBdWFn9R4jdCudLg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557296576; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=RcXbFT/dfCP3DfiCrlNsaW1MdKyoEXHk8Nro2r+58gY=; b=oglToAKhgiX0nH3RfSlmUZzoJ2tWKoU/0uIXFx+KPJA/0/Ca3w+VivS5NoajJFIdDmjAF4Cqc67xsas5a+RG1m0LM/fHzbpC1qYMZjiVzELIR5RJc7RBE1V7r9Iq2lKVZo8yz5eZj4etgbhRSBsQOPqkG5wjZ7hGdhG/XBmvXdA= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557296576355360.9119172139766; Tue, 7 May 2019 23:22:56 -0700 (PDT) Received: from localhost ([127.0.0.1]:60146 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOFyd-0007MD-Ab for importer@patchew.org; Wed, 08 May 2019 02:22:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39841) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hOFrb-0000Va-6v for qemu-devel@nongnu.org; Wed, 08 May 2019 02:15:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hOFra-0003ol-Bz for qemu-devel@nongnu.org; Wed, 08 May 2019 02:15:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52210) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hOFra-0003o5-6g for qemu-devel@nongnu.org; Wed, 08 May 2019 02:15:34 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 827DC30842A0 for ; Wed, 8 May 2019 06:15:33 +0000 (UTC) Received: from xz-x1.nay.redhat.com (dhcp-15-205.nay.redhat.com [10.66.15.205]) by smtp.corp.redhat.com (Postfix) with ESMTP id EADCE1A267; Wed, 8 May 2019 06:15:29 +0000 (UTC) From: Peter Xu To: qemu-devel@nongnu.org Date: Wed, 8 May 2019 14:15:13 +0800 Message-Id: <20190508061523.17666-2-peterx@redhat.com> In-Reply-To: <20190508061523.17666-1-peterx@redhat.com> References: <20190508061523.17666-1-peterx@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Wed, 08 May 2019 06:15:33 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 01/11] migration: No need to take rcu during sync_dirty_bitmap X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Paolo Bonzini , "Dr . David Alan Gilbert" , peterx@redhat.com, Juan Quintela Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" cpu_physical_memory_sync_dirty_bitmap() has one RAMBlock* as parameter, which means that it must be with RCU read lock held already. Taking it again inside seems redundant. Removing it. Instead comment on the functions about the RCU read lock. Signed-off-by: Peter Xu Reviewed-by: Paolo Bonzini --- include/exec/ram_addr.h | 5 +---- migration/ram.c | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index 139ad79390..993fb760f3 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -408,6 +408,7 @@ static inline void cpu_physical_memory_clear_dirty_rang= e(ram_addr_t start, } =20 =20 +/* Must be with rcu read lock held */ static inline uint64_t cpu_physical_memory_sync_dirty_bitmap(RAMBlock *rb, ram_addr_t start, @@ -431,8 +432,6 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(RAMBlock= *rb, DIRTY_MEMORY_BLOCK_SIZE); unsigned long page =3D BIT_WORD(start >> TARGET_PAGE_BITS); =20 - rcu_read_lock(); - src =3D atomic_rcu_read( &ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION])->blocks; =20 @@ -452,8 +451,6 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(RAMBlock= *rb, idx++; } } - - rcu_read_unlock(); } else { ram_addr_t offset =3D rb->offset; =20 diff --git a/migration/ram.c b/migration/ram.c index 1ca9ba77b6..3e11806ccd 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1680,6 +1680,7 @@ static inline bool migration_bitmap_clear_dirty(RAMSt= ate *rs, return ret; } =20 +/* Must be with rcu read lock held */ static void migration_bitmap_sync_range(RAMState *rs, RAMBlock *rb, ram_addr_t start, ram_addr_t lengt= h) { --=20 2.17.1