Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp8745674rwr; Thu, 11 May 2023 05:50:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6177/vcMO0OUu8AzWqLq1QB6aeK3pZMPh2Fu7H2jsqiOLoSbqtq7V4mY4qlEvPDTDuAlvZ X-Received: by 2002:a17:90b:3ec2:b0:250:ca6c:d7a8 with SMTP id rm2-20020a17090b3ec200b00250ca6cd7a8mr6890999pjb.29.1683809449348; Thu, 11 May 2023 05:50:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683809449; cv=none; d=google.com; s=arc-20160816; b=YD2+FIfC3LZPkgmGnvyAeLX1lG2JnHuiXahSXuggF9w79B2F7fvKWyix7xZ174DZ00 u9Qqo9VI5xu3+DydUZWMsp2/qfxGDWXyfDm4nHBhkOCPuQPtNTi8GLJKAxlXdWr5Z75M 6KNqw+fAKoee64Z5ifkaVzbLxKMYClN5Fpo7TiwClncyjUo1EZTsvxdUi//dYlwn2e5d TXaUdjqPWGEJk9dXozgrta7Wjml1TCUoWiT/TI/00ovaCPuku3TECpSsEmqYUaBx9Tci rVbI1UlHBYxlurNOxHHPCZIvL1XYYpekFzHm+lpCj6dhlEwUOUfKlQt+sYc3GhDqvZ7A aw7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=1wTzQu0YX5Gtk6CXkcoP5eA8yZZ7HmVRR0JdGtJ+b7Q=; b=n3ZZKLP2XzS1MK2uKdAoZ69CY7zHO/Ql/uDEy/RvrFpnJ/cxdWahtekitKcNnMqL42 /TAMd38wZRehT4iL+RR1ufXrA44WYgv5JxU5Ef+u9gEfUDC5RGcBfBHhb3vDI92N/aY3 onAbuc2hOzVgc5bxUcLSKQK/gb1s5wf7bMXQMyAEqAh8UY7qWnP7EexIYEPmvXiIQvKU 2gqY314OgVmb9MLQ3eJsjB2tiCnjrgEEHnLKoEM10/6F2gC3l6x1LBUf3gNcOSNDcVQv 8tWyDvjqM+7d6vUw85BwHWeA/W9ZQeC4TcHQ0u3u4GL6UEbzz5+LwPhPWn496Zt3U5lh DSwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=qccYScfL; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=9Sz+YsKX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b13-20020a17090a6e0d00b0024696759991si19661483pjk.47.2023.05.11.05.50.34; Thu, 11 May 2023 05:50:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=qccYScfL; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=9Sz+YsKX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237687AbjEKMrR (ORCPT + 99 others); Thu, 11 May 2023 08:47:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237587AbjEKMrL (ORCPT ); Thu, 11 May 2023 08:47:11 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 397B95BA5 for ; Thu, 11 May 2023 05:47:10 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1683809228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=1wTzQu0YX5Gtk6CXkcoP5eA8yZZ7HmVRR0JdGtJ+b7Q=; b=qccYScfLX/ZIg8Z0fMoeAQqcS5GFQTGJRfUywt/XLbRRJk6jft/qCZf8Wz962AdZJQ56fI GXDy9omQd4196C6ii5XT71ge5q9k3fb4OMiGPXdxo71bzxPRQgiV0/Z356KabMpyQy6NuZ 1pnQK/nuV2hIEv5se+0eKBzxz/yoMog0MjIrZUeHwnFHL85phfqf4IlScyUoiG1MbLdsrG sEDMnMHpIE1u7huWu7RYUYkIeDG+Ql9jKEwjggauLXVAx5JBO6JtWtyS8FjP03zt1a+1bJ FI8mBmJVf3AQLx9PMBLCNSFL327W+VPYzn58+bHi93WGSWs7t+ovqTqGyFDKoQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1683809228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=1wTzQu0YX5Gtk6CXkcoP5eA8yZZ7HmVRR0JdGtJ+b7Q=; b=9Sz+YsKXl9nQdMQci1sF7zmRpECbyas0zVZWWjcRK9bKQTeCNmLwcY1ByY0cVGMkifPlA6 cw5gZkmqpMLueLAA== To: Peter Zijlstra , Jann Horn Cc: Ingo Molnar , Andrew Morton , Darren Hart , linux-kernel@vger.kernel.org Subject: Re: [PATCH] threads: Update PID limit comment according to futex UAPI change In-Reply-To: <8736apede7.fsf@nanos.tec.linutronix.de> References: <20200302112939.8068-1-jannh@google.com> <20200303102540.GC2579@hirez.programming.kicks-ass.net> <8736apede7.fsf@nanos.tec.linutronix.de> Date: Thu, 11 May 2023 14:47:08 +0200 Message-ID: <87mt2bc9wz.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Reviving this old thread. On Tue, Mar 03 2020 at 15:12, Thomas Gleixner wrote: > Peter Zijlstra writes: >> On Mon, Mar 02, 2020 at 12:29:39PM +0100, Jann Horn wrote: >>> /* >>> * A maximum of 4 million PIDs should be enough for a while. >>> - * [NOTE: PID/TIDs are limited to 2^29 ~= 500+ million, see futex.h.] >>> + * [NOTE: PID/TIDs are limited to 2^30 ~= 1 billion, see FUTEX_TID_MASK.] >>> */ >>> #define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \ >>> (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT)) >> >> I just noticed another mention of this in Documentation/robust-futex-ABI.txt >> There it states that bit-29 is reserved for future use. >> >> Thomas, do we want to release that bit and update all this? > > In fact we've released it long ago: > > include/uapi/linux/futex.h: > > #define FUTEX_TID_MASK 0x3fffffff That futex mask is irrelevant because there is another limitiation for the PID space namely posix CPU timers: static inline clockid_t make_process_cpuclock(const unsigned int pid, const clockid_t clock) { return ((~pid) << 3) | clock; } That existed even before we fiddled with robust futexes and puts a hard limit of 29 bits on the PID space. So we want something like the below. Thanks, tglx --- --- a/include/linux/threads.h +++ b/include/linux/threads.h @@ -29,7 +29,9 @@ /* * A maximum of 4 million PIDs should be enough for a while. - * [NOTE: PID/TIDs are limited to 2^30 ~= 1 billion, see FUTEX_TID_MASK.] + * + * PID/TIDs are limited to 2^29 due to POSIX CPU timers. See + * make_process_cpuclock(). */ #define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \ (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))