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 D4E95D13570 for ; Mon, 28 Oct 2024 09:46:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 46D946B007B; Mon, 28 Oct 2024 05:46:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 41D816B0083; Mon, 28 Oct 2024 05:46:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CB956B0085; Mon, 28 Oct 2024 05:46:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0B06E6B007B for ; Mon, 28 Oct 2024 05:46:28 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 23AD1121CC9 for ; Mon, 28 Oct 2024 09:46:07 +0000 (UTC) X-FDA: 82722530352.18.2533287 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf29.hostedemail.com (Postfix) with ESMTP id 5534B120015 for ; Mon, 28 Oct 2024 09:45:54 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aq8Fvakk; spf=none (imf29.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730108627; 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=UbI+/ogxnnmJVf8b6VYUNswwOQdnM/YKmug7VOUyJ6c=; b=J3hB14yV2K2FjlcBXxeEHCL4wG/7v2abdXoE4WB6frZN+ZNrWAnksueizDkfxAzn73kK2w +kmtcAQn/g9ERrB1qUPOX7ltZXk4RKBBLLzGV08mbF+ug9URJgHVlmr9KJLoqtH1dAGlwY ZTB18GO56WOWN9WapKWY17UFz8NUn4c= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730108627; a=rsa-sha256; cv=none; b=0SHe/oGnalpFjEzIh7tlVkYgm08+V/oPZ5ui/dI5QP1eXllkUsU0B2nEeF5MiFmwfIcx5l zqQVYvNEHuD74738ptOJw1FoinICd6yYa/ZRGCdj1hXoo+aSjW1XF0MZUmIScst51xODV/ RQMqjMzpVsk599poWLYjQaOceuWxZyw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aq8Fvakk; spf=none (imf29.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; 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=UbI+/ogxnnmJVf8b6VYUNswwOQdnM/YKmug7VOUyJ6c=; b=aq8Fvakkqpjxs2zD/df1RE0Qg4 Ci8cLKq9nuRrz/gOgaaVeuxr/XA8yA9OIn4i0JxA/Q6bZm45rHuwJtNAUZXece+Noykfyq0jlOd3F 8phv5acod4K66A1fxVHA9x9u2iY0UmHvrA/R2VoJzGtzkX0xOf9S8uNRSOdEP+sIac1t8QpmtDcPb ByRT9ekQQqt5jstorDk0mSrOEZKJaKCkNVnLf59/etxTpNFLVJBtlK7N37coZIdDla2rMBeQKP93X 4EERZXH4+yvEdaeoOW9pqrwtYROVevkXNonvG9OV6nrpiuAQcmMLzmY2+8A6Bt7rY+unrkn6Heu56 Nl8OP37g==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1t5MKJ-00000008Dln-0Eck; Mon, 28 Oct 2024 09:46:19 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 0606B30083E; Mon, 28 Oct 2024 10:46:19 +0100 (CET) Date: Mon, 28 Oct 2024 10:46:18 +0100 From: Peter Zijlstra To: "Christoph Lameter (Ampere)" Cc: tglx@linutronix.de, linux-kernel@vger.kernel.org, mingo@redhat.com, dvhart@infradead.org, dave@stgolabs.net, andrealmeid@igalia.com, Andrew Morton , urezki@gmail.com, hch@infradead.org, lstoakes@gmail.com, Arnd Bergmann , linux-api@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, malteskarupke@web.de, llong@redhat.com Subject: Re: [PATCH 2/6] futex: Implement FUTEX2_NUMA Message-ID: <20241028094618.GL9767@noisy.programming.kicks-ass.net> References: <20241025090347.244183920@infradead.org> <20241025093944.485691531@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 5534B120015 X-Stat-Signature: px8kmjhn7x9aepddzcmyk8t7ehxwjjp3 X-HE-Tag: 1730108754-504820 X-HE-Meta: U2FsdGVkX198stgrjSqRMIb2QWk0YtV6pgI4LxE/oULZd/0HVX6VZJOzcjdIS4TINqLS0NOubWEwxuYAg5vElwmpNgNjWXj9rpvWpulF3LMpB0tg8E7P6ICoQFy/mLASYKO77OtXO3vIP7+2ljmKSfAqJ/zXyQHul+y/w9ER8lAF7FAWGQJn909lLBWy72krxi2O9ICrsLlaYJXyX0SPUJTL6S2w8GEyomjnUOO5c1xoBiYuMHJHahM65kfCDcoobuCH+uqCua9q13VRNNv95x+O7k0vUbZs6dzRXZXghAcGQlfyj3DcjJmrHkNHsACnfKdZuHEorxCXsShOwFj81ykOxgM4sJQ/sKTRRfMX64l0EW7uwfhi2CFUcugcrJ88LVK0S9XM6OU6FDgbBl/Vnlq1ArIl1df8qo2ioDr8Yf0W9xiRqc3dGSOs30z4L8MxOqHZjqQfYWl9fmiA7uWj4sFbdm4BH+DeryapoZ+CjmXU3tj1Lxv4eWKiTI09tud2/SbXwL22p1JXKZWRXGnz48uLEOj5xd53yEor/nbCrmpBBg9wzTSCBl8Yfk99gRS4CDbCRdxxjoh5lR13/w8Esb5lKpwp4Dg0ba3InP21kiJrFrd41cqe6OqNEHb9QY8OoS760xtN9u2SBNE84Fi8T1cAgcUtbj86aIXUzP3TZQr7Z7O5Poaq9d0s0vbQMXKmXSjSRfsIUGx3TXqchUq3vh5LGciJ1FyLQPil3QlJm3Ev1vRGHucSVEpZ6J1h0CnTL1frjWUrnR6JqNZlFyKD5DYe/JSHKy6iQSgTXNJIYlPdsoIAg2uwdt1qJQiCHZ41PtJl2WXLdtQ8eCw5DBy+KGYuSd8kDdWm5n4eFdLIGXDC+ODIRQjFfkoxAvWcdJInkIKgs8K4sKRcqn8QW6MXkl5Mpu/mRBFr/wvN1O1P/l8JngNr9HmKepnClRsbi91lD1qVQpWlzH78eJ0g3pW cEWmxvUl A7sbcVm3yKDZ3ssbxwvD8cRxwNoI5FcSMH5PEDsyuRU6bt55RhUVPtbxgqTq9A/dElOqhsB9QuU4fpE197NmkS5ERJUzok2S33rAPPvm0BuW/YQPLFLn+cWNNj+anrQH5OIHOr79ISkg8pk1X8lKbMliGt+glKCCbyJawh2HdVZ6hH6fxABDkavRejfvMcPRB5LJQATVlWlrsL/kZDjBllru3ntF7oyb3U+IyFT42MZQgba8= 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 Fri, Oct 25, 2024 at 12:28:54PM -0700, Christoph Lameter (Ampere) wrote: > On Fri, 25 Oct 2024, Peter Zijlstra wrote: > > > Extend the futex2 interface to be numa aware. > > > > When FUTEX2_NUMA is specified for a futex, the user value is extended > > to two words (of the same size). The first is the user value we all > > know, the second one will be the node to place this futex on. > > > > struct futex_numa_32 { > > u32 val; > > u32 node; > > }; > > > > When node is set to ~0, WAIT will set it to the current node_id such > > that WAKE knows where to find it. If userspace corrupts the node value > > between WAIT and WAKE, the futex will not be found and no wakeup will > > happen. > > > > When FUTEX2_NUMA is not set, the node is simply an extention of the > > hash, such that traditional futexes are still interleaved over the > > nodes. > > > Would it be possible to follow the NUMA memory policy set up for a task > when making these decisions? We may not need a separate FUTEX2_NUMA > option. There are supportive functions in mm/mempolicy.c that will yield > a node for the futex logic to use. Using get_task_policy() seems very dangerous to me. It is explicitly possible for different tasks in a process to have different policies, which means (private) futexes would fail to work correctly. We need something that is process wide consistent -- like the vma policies. Except at current, those are to expensive to readily access.