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 39D16C76196 for ; Fri, 31 Mar 2023 04:12:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B5E106B0071; Fri, 31 Mar 2023 00:12:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B344A6B0072; Fri, 31 Mar 2023 00:12:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FC1C6B0078; Fri, 31 Mar 2023 00:12:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8CCA76B0071 for ; Fri, 31 Mar 2023 00:12:04 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 60922140236 for ; Fri, 31 Mar 2023 04:12:04 +0000 (UTC) X-FDA: 80627870568.05.41FAADA Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf09.hostedemail.com (Postfix) with ESMTP id 8C55B140010 for ; Fri, 31 Mar 2023 04:12:02 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=e4BTX608; spf=pass (imf09.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.44 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680235922; a=rsa-sha256; cv=none; b=7PA3/EnGfT/BSvSwLZvWfyfAZJNQKVwjT4g/lJnGWdsrvDmN0Ly07BWC5uNeEPjxHNrvMI RoOX2o+d/LJWwJ9qPHRUHBMJd3ZH8bOO3Q796Uqoxz2SLHmPLo/hmr2cUj7ZSPEr2ILbbe gBVzldpD6qDjI1HYdPS7YiQQYImo7m8= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=e4BTX608; spf=pass (imf09.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.44 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680235922; 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=/fL6uYJqAJu4UWRofGL+uAKGAJCdSLBsLiJ3MZGh5jk=; b=oOdiWxOqWdLaU9dkAfWRz9FNxo0aki1jy8QYIQo6nP5MpgW8H4pCLT6f7PgGHiUYMiU3OE dhjNuFMybHGIRO07epTnXpeZQE714Om5RWaPDuvdvdfecZzG/Om61Z0CZhCdeYtZVY+P37 8lMdLYCAP0d5jzGhBhjvqYghtgQZhsI= Received: by mail-pj1-f44.google.com with SMTP id x15so19257860pjk.2 for ; Thu, 30 Mar 2023 21:12:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1680235921; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=/fL6uYJqAJu4UWRofGL+uAKGAJCdSLBsLiJ3MZGh5jk=; b=e4BTX608wtZj4jZHDmB/1T4Gq8gzXBUP6DMAygN96mFzBhJbH8TFT2/VfRMayOo63G lTCJQFkxdohuSxvSyi7wtdj2gzFs7VUaboL5Yk1trxL9GdyiC7tFJelssEv8eqjpqdQG YLkdiqsWKS6TtftuVgzjuJki5n6e12uuDQlDw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680235921; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/fL6uYJqAJu4UWRofGL+uAKGAJCdSLBsLiJ3MZGh5jk=; b=JVYWRBPYSpF8XfC2ElkhwbveE8jPcextYlPIwiqTsx4Enl1OiMXpWUwfZOvZ2buaIY y1SzUWby7SIimjql3vQ36T/0eYKaOJA0XfDBhczgGn2uP0rwsTtaiHoSXrpnuFPrmnFY ZV+IDc7V7+BlqtaXOA5tW0I6fC90B6AHqscRu82gDiJZHGl+tcLThQ6hYuIVNtRn3eY9 3xol6HtH7G4UhNd5woIpZA7XGo6QTMupL1t5XAPDBjiVO1Cu1maYBsqd/KfpoItP7HI2 sNMiOiZNcKkwEBBp4t+EHOxWTDZmBqAJtXEmcDgwWxkQjFNr9xq3kE3Fq7xzbmiffCju NTsw== X-Gm-Message-State: AAQBX9ejSle+YuELr9OKJTHXD9uVd/pjIDOOmWkyA6qyfOhZTLgG3s2l Gyeq9GQNfWVsrGMU8f+1Smf/Hw== X-Google-Smtp-Source: AKy350Z3RDbX1XH78O/Mn6Z/g1q+VldEMG0p2DTAFVaet1gIF+cSHwqqrndzG46RRYMeO2Fqm8seLQ== X-Received: by 2002:a17:90b:3b83:b0:236:a3c2:168a with SMTP id pc3-20020a17090b3b8300b00236a3c2168amr28524828pjb.33.1680235921307; Thu, 30 Mar 2023 21:12:01 -0700 (PDT) Received: from google.com (KD124209188001.ppp-bb.dion.ne.jp. [124.209.188.1]) by smtp.gmail.com with ESMTPSA id c3-20020a170902aa4300b0019f2a7f4d16sm506889plr.39.2023.03.30.21.11.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 21:12:00 -0700 (PDT) Date: Fri, 31 Mar 2023 13:11:54 +0900 From: Sergey Senozhatsky To: Luis Chamberlain Cc: Linus Torvalds , Peter Zijlstra , Petr Mladek , Sergey Senozhatsky , 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 Subject: Re: [PATCH 4/7] sempahore: add a helper for a concurrency limiter Message-ID: <20230331041154.GC12892@google.com> 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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Queue-Id: 8C55B140010 X-Rspamd-Server: rspam01 X-Stat-Signature: 7oopsre9rbc8xz9s7phkdu6wuswc1ems X-HE-Tag: 1680235922-445499 X-HE-Meta: U2FsdGVkX1+KUT4hIs4WG2gtNaaszAQSII15WMh/n6I2EtAhGH0xBuZNucVi2045+feuXKDBWIRy4H4Vw5KIZhK4Iq9fqqwBiQ2WBHe56fxn/IOJaj7S2FsuQcvp0ozDurU9VN7LalCoQyNGKqYsHxhvDjdJGOR8t3R/hniIlaYlJiC+QeWwOIKL5N2M1PsuvMqvrus3KHRuO2kj0D+HG4MX2Cem2LXdvrr68HKrYBNksml07jSBqhMD6mgt5BZPCO6dc4THZFdq/dfSFgQofaTDBQSyAycuJRCf/ny1hwkAskipSJHCEwEU6r2EBiVUypmbIbWBWlt1pDn33YD+sB+X97mMVcwVcBriI7PeKQQH3j7BBb2iYfe85BfOb0n+6oS/EK7tZ2koUTeWUIKcDKxtWZcZf0P8qXNYqqATCkVUZRj0/erbp7Qy/1MpTaM84R1/BAAiIn2UpYc5rm8w/vlDMqLl+A5yfCFKLf3xybSUPNM1AyLOulHr+9Hm5u56vuZFPt0qVlODOEF7zvnTx4kZbctOlLWqPcZuEKHPQxgAOjSTKFTvfwM73l0BBx7ULCJZ9CnMk/aMTh9VOitBsdqvRd3HojyVJSkIqvxWGl70hYQn+1/AnUmetuv/y5h17+0kme5rzmoGxsdyyRhUKjnAIrCzrJ61tgeFOJmtTUrpWvPY5xZP8HUxLWEMOhtn9VtApF0967j4gvchRAPJoElm4qXhh1l9aQl+jknwXbto+dGfq6dzaPrlZiOt5lYWHDLNj4j07R+bUEMQ/ZFUyQb3xzRM7nifEjVVr0Spb+7CsHr95ToCYdLZyiyKwU+NS+mKgTVdP3N0hpTwBknxq7n4QiYJ5ScZ6kTmrfdeQg2eYSh/ER6D7osqJAW0O23bQKgPaRRQjIOm7iACiJIsGUXdFmJmkEGsdz1HmOo/MRNY4ORg46G48J78Dthb+9L/XNsHfgSrtsbPA44vdwN gnKKNuJ4 WBgTFMARX/rKKVZkvzIpB76bGwTpcLgj4CBX/Qi6NNpzzeqCEDuAoAViDXHu68YtglaVtImesFIvP1lIKBt1MApN95w0Tw7nGLXkopbHq/ZUrEDHX5umPF5pNNeuOinJie7eCQnYQmKIjyccOXBzgGJHWmyycH03jdjZPhpLje0y7h/U15IOpnQfbxYh0ASg9K+0UAx7Z0sOSrxAt1ronFybYmFXeiRxIGdnSZ48z/hfJiR1LeAsTENb3bdNQ7maLhxWzVQg+AvNcwdIChilsNdXT6FLuGUVEr7OcrbZqsVWYWksN6xvLb76fFV+CN3n5V6+kjJmgDaXiMi4= 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 (23/03/30 20:45), Luis Chamberlain wrote: [..] > -static DEFINE_SEMAPHORE(console_sem); > +static DEFINE_MUTEX(console_sem); > HLIST_HEAD(console_list); > EXPORT_SYMBOL_GPL(console_list); > DEFINE_STATIC_SRCU(console_srcu); > @@ -309,7 +309,7 @@ EXPORT_SYMBOL(console_srcu_read_unlock); > * macros instead of functions so that _RET_IP_ contains useful information. > */ > #define down_console_sem() do { \ > - down(&console_sem);\ > + mutex_lock(&console_sem);\ > mutex_acquire(&console_lock_dep_map, 0, 0, _RET_IP_);\ > } while (0) > > @@ -324,7 +324,7 @@ static int __down_trylock_console_sem(unsigned long ip) > * deadlock in printk()->down_trylock_console_sem() otherwise. > */ > printk_safe_enter_irqsave(flags); > - lock_failed = down_trylock(&console_sem); > + lock_failed = !mutex_trylock(&console_sem); > printk_safe_exit_irqrestore(flags); > > if (lock_failed) > @@ -341,7 +341,7 @@ static void __up_console_sem(unsigned long ip) > mutex_release(&console_lock_dep_map, ip); > > printk_safe_enter_irqsave(flags); > - up(&console_sem); > + mutex_unlock(&console_sem); mutex_unlock() does not like when its called from IRQ, so this is not going to work very well.