From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 96A06CEBF67 for ; Fri, 27 Sep 2024 01:32:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E11236B00A4; Thu, 26 Sep 2024 21:32:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D970A6B00A6; Thu, 26 Sep 2024 21:32:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE7FE6B00A7; Thu, 26 Sep 2024 21:32:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 999426B00A4 for ; Thu, 26 Sep 2024 21:32:23 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1B79F16055A for ; Fri, 27 Sep 2024 01:32:23 +0000 (UTC) X-FDA: 82608792966.15.AFE6D66 Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) by imf12.hostedemail.com (Postfix) with ESMTP id 7162840005 for ; Fri, 27 Sep 2024 01:32:21 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=QT8QNKm+; dmarc=pass (policy=none) header.from=efficios.com; spf=pass (imf12.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 167.114.26.122 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727400704; a=rsa-sha256; cv=none; b=38/LtS0IQUEmnSjSj6FsyjA2l8kd3gqbWVosMNSIo9C5NCa4/5WpGSKI3Tiw8R6+LQlPa1 Fr0f0k8VPoOtJT/bjP62pOzfjggSycJcgTnNOuiEc87j0G8y28nGvTptACs80CqfvJ2goM nfNlnBP6xiPWp72+gBP9RXijzc7VlSk= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=efficios.com header.s=smtpout1 header.b=QT8QNKm+; dmarc=pass (policy=none) header.from=efficios.com; spf=pass (imf12.hostedemail.com: domain of mathieu.desnoyers@efficios.com designates 167.114.26.122 as permitted sender) smtp.mailfrom=mathieu.desnoyers@efficios.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727400704; h=from:from: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:dkim-signature; bh=qVK3HiIDeJWMMVN3XoEvz51kMn82Ihe7n9uP8tN2fHo=; b=ke8QpQyA7X01XUXmPrN+FET2eeNqzD/uf/dPJ+luXDbY94PHxhSnlW0h2dHX/jF6iMFz2g siIOEMR7oOZD2eapffjnc6v3TPTVjqFHbvy/pRx3ka1MMXyA/30Y/L55fiBgbI3RrYQni3 4rwTVG4to7GgTp1Kb9vHvqmfOS9nO5E= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1727400740; bh=4DYv5PRySQeJ142c8DOzea7v9PzCCPllUBYrWz5mU+8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=QT8QNKm+w/wsXL27WqVFMjYByBNGKqWIGAbTWNusEfmQTWjXTu2B8H8XQwn1/aku0 LhZcIuqfQpXYm1+yD8NaWjTmD4fXpePAecZzGJ6pDiuI81XcW+OaGE+4w+SU1CRzGy HgrQWjV5//zSJuL9zj/bQw7dKc//eKj3NMzRsCzqmpYndmN6nZ2eMCh/DEQetstm/C 9Qx6gPZh1qdt835YBtdoe7JQF5pi240kbEEIphI7H+tIljwztRLdEasSLdVEUq+l3D aYf2mRuSyEZMfi24t1rEaRtFaEyat0Hn8NeXHke1msK/QZGPDQs+Rz3TOS0rUSsE/C vv377Zu1Qrd/Q== Received: from [IPV6:2606:6d00:100:4000:cacb:9855:de1f:ded2] (unknown [IPv6:2606:6d00:100:4000:cacb:9855:de1f:ded2]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4XFCd01hTTz1Mlx; Thu, 26 Sep 2024 21:32:20 -0400 (EDT) Message-ID: <0b262fe5-2fc5-478d-bf66-f208723238d5@efficios.com> Date: Fri, 27 Sep 2024 03:30:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH 1/4] hazptr: Add initial implementation of hazard pointers To: Boqun Feng , Linus Torvalds Cc: Jonas Oberhauser , linux-kernel@vger.kernel.org, rcu@vger.kernel.org, linux-mm@kvack.org, lkmm@lists.linux.dev, "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Lai Jiangshan , Zqiang , Peter Zijlstra , Ingo Molnar , Will Deacon , Waiman Long , Mark Rutland , Thomas Gleixner , Kent Overstreet , Vlastimil Babka , maged.michael@gmail.com, Neeraj Upadhyay References: <4167e6f5-4ff9-4aaa-915e-c1e692ac785a@efficios.com> <48992c9f-6c61-4716-977c-66e946adb399@efficios.com> <2b2aea37-06fe-40cb-8458-9408406ebda6@efficios.com> <55633835-242c-4d7f-875b-24b16f17939c@huaweicloud.com> <54487a36-f74c-46c3-aed7-fc86eaaa9ca2@huaweicloud.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 7162840005 X-Rspamd-Server: rspam01 X-Stat-Signature: 7rasjg8dc8hgd3st7n31dxb8ai86uajb X-HE-Tag: 1727400741-611524 X-HE-Meta: U2FsdGVkX1/RyPOckhglmhaCyqIqcT1DGqruDhwSryvi+FxixVVJ8ZzEqX26BCs1Y2EXksZF3TQcbiZcCRJkr/HUB/DkXdqHfpIbdgZoPHV3qPCznyH4ERJ6KqDqHj+6RqUJ3b0V7rzC8DiW5Bur8Uxw22UTka8N7OjS8QOlramX6qHOC286eMJ8ZKKMJVuUO33tSxi6RHZzAToPGaCx4gDLHatTFMR4Y/lR5QkcgxaCImFEeMUqAPsZk0vg4qmFo/MJ+we4Rnyc87S+6ayw7z8DMVP9Y+md54+BM9r8JWMCzfPACHeR6zHNPM5FncsG530iApxZEWNF7jsxKJqbXHywWXe2azI+JIuCzFn3jY0OtXTyybBQ7zEy8lBs6vDDCI+FlcQG/UUjOmyZujndL8K86jS8f2c0tt6wFdrEwY1os+Wk0fXmBLrh4Q3ZHh/ajT0A/rnfokTV17PGlf3T/CqWFGKZiDcgOdLBAvCI5eaIrp1V4nl75uyxr4R9+5fwBzw2p0BgfBh0pDLjYWxf6XxwbPjPvFO10nUaEaSQECBwbwJw0+xc/IJX2mADh2nrtesfVk8OQkf1NMoq0ZTiIdk2J75grKIIGNDDFVxubtsdc4jCXru8pz0Ldz7cU2XiXjwOW1kTgwjmFRB5rMl/gr/z7ttQKYRFisXEBG6Arqw3rrA0hYWpUGR+uEGGN+HT+59gxy7RTmnEJv/hlBVHhUJU7PEmmFmPpTj/QbsvCL9102Gg/icDjatB0zHXNvDGrCymp3KumLMBDpS8sUiSOygW57lx5XPVvf2u4BUNey6mFJJ71gaSG4fo1ETHBtc9/UdqzIhrtFJj/BN5aNVf18JigVH5Jq27xDWQSQeuWp9ZsVz9Oz6GpxVgMnaXsXr3wjw51jUUDRWW2/v2HDKaW0MDX2bLVsi9UxI6qZxmBHwfym6jMxLZZr64/XUYAGPP5A7IqT6trDY8aJwBsua +9UXClfk powH91YOihvRNqmWd0XitWVMJYSPaFAMXhAR9J9PHTVJH6asugeCVUBL9j0MbQNimpetI/IZjL59ZJuRVPMef1qypNtOOwYawpCFj+H2vnlMXmfJVjBfhOsrM6BADj7Wjg2RD1269aF/KieKwgMlSuLE+Ydxgo25CSEBN+6KWYZ1lhDZ4U9XJLdV64huURM+x6MGFdzUH2gCLxerq1PbXXnPXs22EGuDACwVsymViZT6SDhD+zWklgMhPpW+SFXFWthv99o9TMXzax+96ulLZrQk4vJ3eY5kg7rtzPK139kpSsjabRqmmMXcduR1A0lacSUkzZnVrq2FI7whahFDZZ2OtBD2XDRgJ3G3MzqrKLp7dzKoDDMblzNmB3mlrmZ4KdV3aRR0yt1ZHHtA7A43xL9a+ylQU+nEFpmkLeoJWEe25BM9K/OFF4lTPKZqXmxxtcYkcBoPapIuVJWs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2024-09-27 02:01, Boqun Feng wrote: > #define ADDRESS_EQ(var, expr) \ > ({ \ > bool _____cmp_res = (unsigned long)(var) == (unsigned long)(expr); \ > \ > OPTIMIZER_HIDE_VAR(var); \ > _____cmp_res; \ > }) If the goal is to ensure gcc uses the register populated by the second, I'm afraid it does not work. AFAIU, "hiding" the dependency chain does not prevent the SSA GVN optimization from combining the registers as being one and choosing one arbitrary source. "hiding" the dependency chain before or after the comparison won't help here. int fct_hide_var_compare(void) { int *a, *b; do { a = READ_ONCE(p); asm volatile ("" : : : "memory"); b = READ_ONCE(p); } while (!ADDRESS_EQ(a, b)); return *b; } gcc 14.2 x86-64: fct_hide_var_compare: mov rax,QWORD PTR [rip+0x0] # 67 mov rdx,QWORD PTR [rip+0x0] # 6e cmp rax,rdx jne 60 mov eax,DWORD PTR [rax] ret main: xor eax,eax ret gcc 14.2.0 ARM64: fct_hide_var_compare: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 .L12: ldr x1, [x0] ldr x2, [x0] cmp x1, x2 bne .L12 ldr w0, [x1] ret p: .zero 8 -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com