From nobody Mon Nov 10 19:08:41 2025 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=1558321862; cv=none; d=zoho.com; s=zohoarc; b=oB1h5xKtP87d82g9iWoFilqxG5GFwdMu9Mt1SVG1BMnbzt7oClEwR7mOxHNP4gfo5EahAXGsZFT3x2NtMak+LXkIoVyDfra6cJ2JunxD0xZmWddPgPQ2S5tMy0viAF44m9T1GQevwCyn6Fsx0NXeHIMesWIt3yDjDFzrStENiS0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558321862; 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=wnNhpVteDJeWX40hvut5CwU5psyOxvVvOebio5jqZCk=; b=gtBFNPc/mYIQ2cqxzbIdOtVw4zjEAeB5s3ws9NHVeM6Grv3QOzXbZEQIw2TZe/SVYqqMWgTcCVwvSOQAA8YlSOF2nhLHYXmFPNFL+X7JW8AkVg/tWykLwgRxJVz4oZQB765+5xFSbYPUAyn7yiHXSbaOax5zzA75T3HDZb7ANYk= 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 (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558321862578792.7502329869704; Sun, 19 May 2019 20:11:02 -0700 (PDT) Received: from localhost ([127.0.0.1]:57000 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSYhP-00032I-6V for importer@patchew.org; Sun, 19 May 2019 23:10:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSYfZ-0001qO-5B for qemu-devel@nongnu.org; Sun, 19 May 2019 23:08:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSYfY-0001Tj-9L for qemu-devel@nongnu.org; Sun, 19 May 2019 23:08:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36686) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hSYfY-0001TO-4R for qemu-devel@nongnu.org; Sun, 19 May 2019 23:08:56 -0400 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 mx1.redhat.com (Postfix) with ESMTPS id 7CD57883A2 for ; Mon, 20 May 2019 03:08:55 +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 080E2100200A; Mon, 20 May 2019 03:08:51 +0000 (UTC) From: Peter Xu To: qemu-devel@nongnu.org Date: Mon, 20 May 2019 11:08:27 +0800 Message-Id: <20190520030839.6795-4-peterx@redhat.com> In-Reply-To: <20190520030839.6795-1-peterx@redhat.com> References: <20190520030839.6795-1-peterx@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 20 May 2019 03:08:55 +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 v2 03/15] 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. Reviewed-by: Paolo Bonzini Signed-off-by: Peter Xu --- 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 4c60869226..05f9f36c7c 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -1678,6 +1678,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 length) { --=20 2.17.1