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 728C0D13570 for ; Mon, 28 Oct 2024 09:38:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 83B506B0083; Mon, 28 Oct 2024 05:38:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7ECCF6B0085; Mon, 28 Oct 2024 05:38:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B2826B0088; Mon, 28 Oct 2024 05:38:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4CCAB6B0083 for ; Mon, 28 Oct 2024 05:38:38 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 184BF806BF for ; Mon, 28 Oct 2024 09:38:18 +0000 (UTC) X-FDA: 82722510654.11.173688F Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf14.hostedemail.com (Postfix) with ESMTP id 7B26D100014 for ; Mon, 28 Oct 2024 09:38:08 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=ipnchwCv; spf=none (imf14.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) 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=1730108158; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YsVgrVYidjdLoY8ut0hhSwdO11cYdvJtoCYBOkZVwdg=; b=PPSUFWd0Ctz0qfEpfBpzxFohj8ZpNFbNM/+53Xt+BnantuRkyq7nxc/mS7O+zknBPwA6bv mHV06uVbzuJgHIOK2Kn2WUNyEKD3NBcGaeCOueirVnnyEjY/46R6pWuLDMWiYWUv7J0PTP MvTR7ewkoU8BgPGN0W9yoRd+oNJxmIA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730108158; a=rsa-sha256; cv=none; b=Hs0isMuFtykz0qSPX41b7LJTjtxzE/LEOS/McQ2mAcX0J6Qwy/N61l8nIRo6UdlH7eWW/X 99uxxrYduUO8jekLLoArXbEfMahDCRcTKe0UgVDehrLlEZfHRDKKQlra+Bdj8yi0ToJoUB oHHXy2Qnx8DWa8/KC/YMo2iQRhLVTZ4= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=ipnchwCv; spf=none (imf14.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org; dmarc=none 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:To:From:Date:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description; bh=YsVgrVYidjdLoY8ut0hhSwdO11cYdvJtoCYBOkZVwdg=; b=ipnchwCv5ZZNCwBnChIKjpeyvx vBsJv+AtNzZD8IfYJtizz1JKY1PKdJNtwFD2On5M3DNe7h2Kb6LRGzJ6AY2LnAoAiVKHUmQA+gbQv Ka53ZcHVJOM852ZIv4ejGsgeDDSCwY/fbiY5A/6CSU1BALECS0v7aWTmoNlyE0+PAZI7HNa+KFYMd 7LsjSD8atHwTeflrl7SeQgPtW6mKEQNHdvzpM4hqebiloT7D0YGMwphCQsufdwMxgJZoK2CIg+j2y wOckw6B6Ig5Vr1XL2Mu/k4v2+0NRwu0I07Bckb+WS7IJn7Q34eSpbUTnTG/IeOKODrVN9NJq7lJ5o dRVGTlHA==; 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 1t5MCj-00000009cRx-2S76; Mon, 28 Oct 2024 09:38:29 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 3EB4930083E; Mon, 28 Oct 2024 10:38:29 +0100 (CET) Date: Mon, 28 Oct 2024 10:38:29 +0100 From: Peter Zijlstra To: tglx@linutronix.de, linux-kernel@vger.kernel.org, mingo@redhat.com, dvhart@infradead.org, 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, cl@linux.com, llong@redhat.com Subject: Re: [PATCH 2/6] futex: Implement FUTEX2_NUMA Message-ID: <20241028093829.GK9767@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: 7B26D100014 X-Stat-Signature: z9iytjbpwhjwow96ba3jh79bagabjjpd X-HE-Tag: 1730108288-61476 X-HE-Meta: U2FsdGVkX1/Ff9WFIJARlXC0fdx+QtJTdQbOMELjxBrv8TkX+TeOXhUkX/UFVZIsuzZR4uzAmycjr6kkniyKmC5GqRywaatCKrxPqeq3a3DJgff5tXH6G+dpkLqf8rNpysn9157mBkXGHm2A/KMUt8rXw66dOk4piOSvoUMUwgw0DKtc4qn65CvgCTsbnZY3en3ooOdj0iBqd92/UjnklvHdcstPzGUQhhviUxFLBSEtG/oZkSc/49HgSuohozsZYcpROvDSLPHgL9hMg6Dg8d8ZWgglBuXampddf0B41raDJvwVLTzX75+V8510LhwDMG+v1hXbGcP+cE+jeo1x0wLlhXpJTmWZy1s+t482ddlsQByxZjcoNlqdWfAxFHOW7Fqb80dU1SVTGdexS7xwO6xtJCA+91p+O7JZAGYplvs6SEgKwQlQXN6dVcTaZw4rFl4rBfA09GRYbYhDMOLHtsa+YFfbFlo44biTjv+zP8SUxjO99Zf6uSooO+EjwflgxTINt52qx0kaUgxgR06zN5DAb/sY7PFWhMCzU94Bpa/5qzsZfTjIK8HSF4cSB5QAfqret00j8p/eRkXvZDKnaz+ZebmxyMeRKbycapb4+Z6bVBV1RQRTE6eu6npMbYZtG9fYvV+fU0rSAbPF8D2upag7k7lgkzDFigBvSVxkC/Bl0DHT2eEqR/OM0BjsB9eXWDQjyvfJXJCfH1/mMt+PiBC3+tSmBOoDlAyd6qvcEoC2bTHh9Oew0LH1N32jJUtgGKGXHgFz9y/mjC8LxSY8uAQY/3tOYVeO4vBUd1v8BvprEzRoDjZXImDTj1ax+G4R0NG4G+qKhDQo09s/1xF75P3sT+GNaQL3lGVLoOTy37lVk7Uq3Jfu2XBggle0FbwT0k0374utwJaYMP1pikbf4jGvOmt04yYkBMzm5GjQTHTp/mXzsP6m/CW6qeFK6Odfz3Zatn+DQDHR13EGXhQ yVuCClZv boMGGdODbUnFFUBNNj0v7ZNIR9jQHrOvkYFYLQl/jfHFGCFoPMulUWTlDbV90bwsU/D8BpXs5un1lvt2sYZbMLA5bfGU0ONo48m9UQk3C1PG5s5gtdeCw2l5ZvGj7iJoVUtn0Fh0Y5zP+3HWzUM6wftjedOJg6Uo81HiBuftOtjVj45jT4adMrKch+0L3uOhzJC8nKj59ajTFWku4zt8QpVNWgpoln0NbF2CiG+5qJwPycq9an5J1ia9Kbg== 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 11:30:26AM -0700, Davidlohr Bueso wrote: > On Fri, 25 Oct 2024, Peter Zijlstra wrote:\n > > > static int __init futex_init(void) > > { > > - unsigned int futex_shift; > > - unsigned long i; > > + unsigned int order, n; > > + unsigned long size, i; > > > > #ifdef CONFIG_BASE_SMALL > > futex_hashsize = 16; > > #else > > - futex_hashsize = roundup_pow_of_two(256 * num_possible_cpus()); > > + futex_hashsize = 256 * num_possible_cpus(); > > + futex_hashsize /= num_possible_nodes(); > > + futex_hashsize = roundup_pow_of_two(futex_hashsize); > > #endif > > + futex_hashshift = ilog2(futex_hashsize); > > + size = sizeof(struct futex_hash_bucket) * futex_hashsize; > > + order = get_order(size); > > + > > + for_each_node(n) { > > Probably want to skip nodes that don't have CPUs, those will never > have the remote for .node value. What if the CPU-less node is placed equidistant between two (or more) regular nodes and it is the best location for a futex that is spanning those nodes? That is to say, just because it doesn't have CPUs, doesn't mean it is never the right node. Hmm?