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 CF467CFB43F for ; Mon, 7 Oct 2024 10:42:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 690B46B00ED; Mon, 7 Oct 2024 06:42:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 640CC6B00EE; Mon, 7 Oct 2024 06:42:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 508CA6B00EF; Mon, 7 Oct 2024 06:42:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 32CC46B00ED for ; Mon, 7 Oct 2024 06:42:58 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A14B61C6D81 for ; Mon, 7 Oct 2024 10:42:57 +0000 (UTC) X-FDA: 82646468394.02.92D5646 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf13.hostedemail.com (Postfix) with ESMTP id F159520016 for ; Mon, 7 Oct 2024 10:42:55 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b="p0EXI4/V"; dmarc=none; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728297677; a=rsa-sha256; cv=none; b=bVlcyXA7kC84VEePMHw89mvScQ6xqb1KuC6UkHjtJXQWREBbNxF6PE5+vCL8npwQw2yc7e o7NngpylIPpnvRQkSIzan5oCipiCTRQv+0pIwjMNxi+3Fan1XwwrHHpEj6wFK8gAfEa7Sl Dm43C6oI6Gfs8/JF9N8QUVtMzryHicQ= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b="p0EXI4/V"; dmarc=none; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728297677; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=g05qBTGyZVIxUFe0rYd3vtXtUIDafbc2+oZifH/Yg1U=; b=zcpUVsPlW42h2jKBKcvaRt2HYEDsvTSUD+vYz7ClaUVp7cmw5wupTW1lKuLX9HZgmHP8BJ pTTKkojLqFus+9FQuxz9znME2k511g2ac2JazJfzF/JPVMoZp9RNmr0xQzhQo8ZcmduNCT q3S6TTyccIYPD0nz6S38GfQ9KdsiMJg= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=g05qBTGyZVIxUFe0rYd3vtXtUIDafbc2+oZifH/Yg1U=; b=p0EXI4/VR/FUuQlAhWY7U3wu3R j0FqzCaS3DEniv+Xlz17Jn51ZiLfkAtmT11uvD0kwI8X0WFjDHPnWBjmSAkA6b52hWwXIN17JVVai xxgi8zLJajVhHl7gz6SefugIyurIgy1l7F8+0pdz9CYt0pUQZLFk2umVs7H6qw4qi9PApPv8+Y2hJ h1TrH3d3nVs5VrAjVrpemvtU686M+gUuk3vjzhA7v3Jal+Ani56lHEcVvvpA9h+ZUL9soyQW4dctY bU1Zxvr/VxmwbTCgvwg+mUegta88eIpMAmbbxeSD/JzsV08hU37nnE+RWiYIVwil54v6/MWPKderG vi/QoL8Q==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1sxlCO-00000004PBu-49TU; Mon, 07 Oct 2024 10:42:45 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 9E7AE30088D; Mon, 7 Oct 2024 12:42:44 +0200 (CEST) Date: Mon, 7 Oct 2024 12:42:44 +0200 From: Peter Zijlstra To: Mathieu Desnoyers Cc: Boqun Feng , linux-kernel@vger.kernel.org, Linus Torvalds , Andrew Morton , Nicholas Piggin , Michael Ellerman , Greg Kroah-Hartman , Sebastian Andrzej Siewior , "Paul E. McKenney" , Will Deacon , Alan Stern , John Stultz , Neeraj Upadhyay , Frederic Weisbecker , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Lai Jiangshan , Zqiang , Ingo Molnar , Waiman Long , Mark Rutland , Thomas Gleixner , Vlastimil Babka , maged.michael@gmail.com, Mateusz Guzik , Jonas Oberhauser , rcu@vger.kernel.org, linux-mm@kvack.org, lkmm@lists.linux.dev Subject: Re: [RFC PATCH v2 3/4] hp: Implement Hazard Pointers Message-ID: <20241007104244.GC4879@noisy.programming.kicks-ass.net> References: <20241004182734.1761555-1-mathieu.desnoyers@efficios.com> <20241004182734.1761555-4-mathieu.desnoyers@efficios.com> <20241005160444.GA18071@noisy.programming.kicks-ass.net> <20241005160723.GI33184@noisy.programming.kicks-ass.net> <6e7812f7-c94a-46ba-ba4d-cf4b7b1f60c9@efficios.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6e7812f7-c94a-46ba-ba4d-cf4b7b1f60c9@efficios.com> X-Rspamd-Queue-Id: F159520016 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5tr58dky5jyrdt8aquqphfnarddouhjm X-HE-Tag: 1728297775-223755 X-HE-Meta: U2FsdGVkX1+tRvZIP3cl8LAF1Pu9mWIUoNphfXB47gQdx4UYFdi9Peq337crLd+2vOgBSzOdcWN8k3HnhnuoulYhby0hqycFSjCJQn7/GGCtadAsKNmF8qgBmf6zC8ROFLuGHEzoWiU9oLDrPqOpr1q3YcIG5O7DK0MhnqGh5yqcAl74Ssrq87kdRT4e/3GFkVP9SKTgmEDBt0eNM9hGwE1qWjByFTjjIiqUBGvUGbzdM7rq8ZK8hJDhil5KAXDFFztl2jX+G3kE5pHXVwz7/lQHFoYfBQLeW5Y0Ds4UnmKNnesjDsZcvDm/qfYYGv+tQd3GCjftfBosN9mYzYGCsXVxaaJvf6iLrzDuWMzh2G5keRmAQtlbJ0ZJVOM6X9q8U7WdBULhhy7+RMjuBZB6FgAs1kgGtykkmD1AcxdGI4zAyjaH9dMrQa5k9ykw1w5uWmYD2R96M2FtjEEkXApyt7lWhHgQUQEjnAOJIuot6Rd6O9Hvav3YQRih6RtRI8+tLYulVTVcr/Ax5c1WCLQP+9x6XyJQDt0v8S3SiUANuf/BKS+rokpBsny/IcX65HQ3YT2SvoFr0XaK1RKahqx3ufEQCTBg6DGxjAVP4C6Fkf0Bpnt8hPqQ1XO9x0/TbJcBu0HkDONf2uMGrThWS4wRA7/hdWioLXFvSrje0CereBp7FhcV4et6rITfAMcAuwIcAyMB4E3iD5TyO8lUGkrtay4r0HpGwPY29NSbSm25Ny7qHWm4GugrXDoXvc+zMbLGU7lbb8Ub5mIJckZZHOTymHTAuC38ithF2OBFfOPRbGPVEX3sefENCFiefDFHuPlMF85t+ASr+rb6fn8kUwjIHI+jzq96JPNP1TINyTGcyYxW8p8brfaxU5w/oGBuu0RPt5exJrrh92ZiX2KL9eRh7wpw4+Q+iIZw294jNDkSWm9R/yEmdhUsVIJzGI+n2WQho/rbqw8+QkGZBEDhBxQ Q4G4JJ/U 44+A99vLKYD93OSlHeN4dRHac+tpNHqQO8oB46aM5v6tIyprTOO621sQu4I3qLWCWuo7at8O1gNhDilBZQpZCByOKXGeZMlBU/pmAxw2hhdTTEPX03TlWnBG7cAD0A1N1ArGNnL6XRQEdx+f3sB9qvpjhuH8jZaUpaWpxCO6p3+ZbTCTczkI1Tv1u4aj3nks0FWe3zDCrpNAqAtT5QCGrMsgqZ5J5UlyCwH7Kc58cbJ0WpAjKjWqQqQUJmczqtr9c8YC3NQNkBWK1V3I= 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 Sat, Oct 05, 2024 at 02:56:26PM -0400, Mathieu Desnoyers wrote: > On 2024-10-05 18:07, Peter Zijlstra wrote: > > On Sat, Oct 05, 2024 at 06:04:44PM +0200, Peter Zijlstra wrote: > > > On Fri, Oct 04, 2024 at 02:27:33PM -0400, Mathieu Desnoyers wrote: > > > > > > +void hp_scan(struct hp_slot __percpu *percpu_slots, void *addr, > > > > + void (*retire_cb)(int cpu, struct hp_slot *slot, void *addr)) > > > > +{ > > > > + int cpu; > > > > + > > > > + /* > > > > + * Store A precedes hp_scan(): it unpublishes addr (sets it to > > > > + * NULL or to a different value), and thus hides it from hazard > > > > + * pointer readers. > > > > + */ > > > > This should probably assert we're in a preemptible context. Otherwise > > people will start using this in non-preemptible context and then we get > > to unfuck things later. > > Something like this ? > > + /* Should only be called from preemptible context. */ > + WARN_ON_ONCE(in_atomic()); lockdep_assert_preemption_enabled(); that also checks local IRQ state IIRC.