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 83677C761A6 for ; Thu, 30 Mar 2023 16:24:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1DA5C6B009C; Thu, 30 Mar 2023 12:24:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 18B096B00A3; Thu, 30 Mar 2023 12:24:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02BE7900002; Thu, 30 Mar 2023 12:24:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E68BE6B009C for ; Thu, 30 Mar 2023 12:24:17 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A2613AC7AF for ; Thu, 30 Mar 2023 16:24:17 +0000 (UTC) X-FDA: 80626086954.08.5519715 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by imf26.hostedemail.com (Postfix) with ESMTP id 984B914000C for ; Thu, 30 Mar 2023 16:24:14 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=Vt1jJXWH; spf=pass (imf26.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.47 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680193454; 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=dGpUIuNkSWwlblo4NAnZsLgXHjXX1OX/SqTfrwIswRg=; b=O4OS2joCHUnBeS7MMZsE3Tlhdxj0Bls9Zf26diUsPULTnOtJKx2P8nWQXX+77eliAgAFs4 XzK/lmyrZu/iloyOCYZYTkYKz9mVb28s9M/LBk9FxeNGPLGw0dmpynga2tuSMiPCbusSXB 5lC6DqX4F+kndQ+wXSKQkl7EA9WF66A= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=Vt1jJXWH; spf=pass (imf26.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.47 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680193454; a=rsa-sha256; cv=none; b=jv7ThfTsIF4rwTeeGsSrjjksmWzbUOd6PpPU9UK0GtNYLJdz84cdMWD0oDI+jZ/zcPi8Gi Ct5mAXQ/y6JzO4+J9XRMbaAOxOzxP4vEGKj3coSeungbpVUuPrBiRPi+uPeVJJ9C4GIBlf Dwp2tGJWc8J1EPoOl7bX8JIxGRK9ZgA= Received: by mail-ed1-f47.google.com with SMTP id ek18so78728683edb.6 for ; Thu, 30 Mar 2023 09:24:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1680193452; x=1682785452; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dGpUIuNkSWwlblo4NAnZsLgXHjXX1OX/SqTfrwIswRg=; b=Vt1jJXWHVCXspZt4UBd0at0O6A0NFdKZNHpURG50seAAUVmBpgqXWJ56Y5P1PT3pWY Or+YQK6FskI7TrePqBwBz9kXW/lEpy51ig3chB/4dsgT9vzyOJe4Y4SQJcb69BsWIlef AYKfFVfzRKE1zkJvLVb7b+MJaz/HE9E2XXxyk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680193452; x=1682785452; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dGpUIuNkSWwlblo4NAnZsLgXHjXX1OX/SqTfrwIswRg=; b=f85oOt6j9Z4oVkB1TVuOkkhd3ElH4GtxwQj0VBEf6uWVFJ3OEKT18VXJcAElqqVbHg m5KVFrx7QcIoUzut59REp2uUwvWwyunppBgsZPdZmAOZMo9qNYdeJfJHXfdRi+H9Ju1p h/ATakMOdHLLIrpCbddH44x4Aqd6705rN2Pdzrys7sCwn9avjqqaeywReqGHKM0esTTT 79d8JtcE33GmmHNM2wqPPo0DvRzERccjZGiK7bUrCEbcGN34Im/zruFQW1UhozaTIy2y NgOyVU3glH+Wf5EwYQ6XACld0z1ZIcKReuPOtb+p6q6X680pcB2qRWQA9Hy9gya6oXdp 5DBg== X-Gm-Message-State: AAQBX9cuFx1mx4ldjEH4mKY+UH8PRvptCL1EnmSRkh1OKm7O4xmUGGkS PS/zC0Ao84qh3FhGcIuZRuUDom65F/SK2xGuFOjLLQRt X-Google-Smtp-Source: AKy350bSK34yLQTWkhZjFXP7ufAwCx2zneYSnsqv7yFfUf/dOc5rDkRqtrx/i4zJdtGhPg16Jaa5bA== X-Received: by 2002:aa7:d8cf:0:b0:502:2b1:c939 with SMTP id k15-20020aa7d8cf000000b0050202b1c939mr25153318eds.26.1680193452512; Thu, 30 Mar 2023 09:24:12 -0700 (PDT) Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com. [209.85.208.43]) by smtp.gmail.com with ESMTPSA id 23-20020a508757000000b004fc856b208asm99107edv.51.2023.03.30.09.24.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Mar 2023 09:24:11 -0700 (PDT) Received: by mail-ed1-f43.google.com with SMTP id eh3so78614158edb.11 for ; Thu, 30 Mar 2023 09:24:11 -0700 (PDT) X-Received: by 2002:a05:6402:4306:b0:4af:6e95:85e9 with SMTP id m6-20020a056402430600b004af6e9585e9mr4039473edc.4.1680193450898; Thu, 30 Mar 2023 09:24:10 -0700 (PDT) MIME-Version: 1.0 References: <20230329053149.3976378-1-mcgrof@kernel.org> <20230329053149.3976378-5-mcgrof@kernel.org> <20230329072112.GG4253@hirez.programming.kicks-ass.net> <20230329091935.GP4253@hirez.programming.kicks-ass.net> <20230330115626.GA124812@hirez.programming.kicks-ass.net> In-Reply-To: <20230330115626.GA124812@hirez.programming.kicks-ass.net> From: Linus Torvalds Date: Thu, 30 Mar 2023 09:23:54 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 4/7] sempahore: add a helper for a concurrency limiter To: Peter Zijlstra , Petr Mladek , Sergey Senozhatsky Cc: Luis Chamberlain , david@redhat.com, patches@lists.linux.dev, linux-modules@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, petr.pavlu@suse.com, prarit@redhat.com, gregkh@linuxfoundation.org, rafael@kernel.org, christophe.leroy@csgroup.eu, tglx@linutronix.de, song@kernel.org, rppt@kernel.org, willy@infradead.org, vbabka@suse.cz, mhocko@suse.com, dave.hansen@linux.intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 984B914000C X-Stat-Signature: yfuo8cfhzkfghjyy8a8wt7edaayxp9zb X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1680193454-647695 X-HE-Meta: U2FsdGVkX18dXekEzFE+uUFlVtMOWrldyASaPUXFRdCA6Tq0ghy2zul9HkKitKwnjckjUxrVdAnsFSAMsnfiu5BPKq/CaKWmGzlX23ZycfGpOhnNszyGX1CIQsziGIHtQe4aE39Z8K5ft9U2f+wMQgI4NC4ZoR8b+3c0Rru9Eny2Y4JhznahfQplZYI4az9WrBzZx5g9/V0La0Q0CXGqiKdsCK2vnwmUE5NaSo6eKTCQ/diznOokhH7SSgZomD2L7BczklOpW9VT8G8QHxu7gxWeYPaUS4ZS+OVu4ufiKX21Py3AFqWjl7cwrTJ20q3QYsFHBy0sLI0AzFni4G70zfsDTBLDgU94Oke5M9SfEzLqNiK0AKsi+4pT6rCyij4M2xeswwu4m+q+MxqHxG767RcJwWp4jgrSuTKj9Nycw/+Q4Kj3+Xk8IxoYA6N5LRhgJBkARvjiIpqs8E+Afwlcjup39eGT5wjkOJFMXUREn2j3yN4Q9+R4ePE+7YAOHrsizCSiLnIH5WH/i/PLm3Yd3VvRRZhMZn987spxmLJ40rDYy5NNe8dRmuKIin4wAQrHebD91iGOJfOyiYp/sR/MYZs8BE+tml0GK0Phq0cHEkFeTxRXVzKBL1JjGpQ9r1agKbFfNbX90HGkgYYTt4edEiSH96vdybCqdxk9xpkQZx/xWtFL46U4j5iP8jqfXBj5Fg8zM8aobYdZMi3JN6VDu2CJxc1FT5Hq6ja++lp59r3IEd77k9UsQcBlxTG3ez/hujxpyPSkan2aIYc8K6znI/bWJU12skXsyeehOWDR6WCLjALZSrasYHVH/kZvt0jkl8VrQEnNgHRQsbiZLI52jkZZLvQ+jTnSWmYLJT3jPoJsmsXTKJvo36ILAUA+v8blV3+Y3iD51Z8A9YBWjsrgieQbkmJ1Ah1EwAZfy4DlLvokLPKF1guJxNls9APRygT3HxlOYYA9g9wVFzg5ZQs iwGCQMmK 9GAWmYCPXNVIw7v28SvCkkBDPbrYQy+s1OwrozPFdupqvS486SFEiukR9PxcDdjV+XvctVwju1O9KJPr3vl8jUkAI07hRBjfzVOUFIVpAlO8tCtJIlFP341QuewnnBgqVcx3f7x+eWJw6cpnD0DVN8OtOlCA9mPEtQkAzgMbCo+Ez3ZjYKR9FVm7bE4yGWhfE6Ome2clHlFlnadTu1AN4eoL6/kBOY0BvbWyzZxoqqIJ5Ly8r7citoT3TMzTxyMGoviLvHqvIpKc4nuwpFP939FC+GD2Sd+7+P2LtFHUUcFfVEBIcYoZ9O3UspDgsbD8QrlCk0m6+n6MqrywHAWMifeKx36m+FzfINrBjVAWELIxiooerk3QqecSj+4HfnSFu0YRcRb9lV0zeN2bmkPqWxxTdjG070UM5xP1xaa1AqEaD1a86W37vMxQUkGO6gJsEhzGXfbUL0cUUuwZKNug/hfl7w3KbbfvIQf0pmodW/owaZCz2OMFVZ3XZPDqmNR18XIqAq08uSz3qfo+Fus+BRe1ekNMRMQixK33af0IzphFV+HnB1FP4b8USZF8fKyvStApJnWxMY/5Zhnw= 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: On Thu, Mar 30, 2023 at 4:56=E2=80=AFAM Peter Zijlstra wrote: > > Sure thing; still completely untested... Seems obvious enough. Looking at the people who use a semaphore as a mutex, one core user stands = out: > kernel/printk/printk.c | 2 +- .. and I'm not entirely sure why that uses a semaphore. It may be *entirely* legacy, and should just be changed to be a mutex. But it may also be that the 'console_sem' has some subtle reason why it wants to be a semaphore, and why it then plays games with lockdep (which doesn't support counting semaphores) and does things like #define down_console_sem() do { \ down(&console_sem);\ mutex_acquire(&console_lock_dep_map, 0, 0, _RET_IP_);\ } while (0) Anyway, I think your patch is obviously safe as-is, and I think it's long overdue to make it clear that the only real reason to use semaphores rather than mutexes is if you do need the counting thing. Of course, there is the thing about lockdep, and also about how semaphores these days have no architecture-specific parts, so if anybody wants to play deep games with their locking, that may be a reason for using them. Although we also do have some other issues - I think down_trylock() is ok in irq contexts, but mutex_trylock() is not. Maybe that's why printk uses semaphores? I forget. Linus