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 241B1C7EE2D for ; Sat, 25 Feb 2023 10:15:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 74C676B0071; Sat, 25 Feb 2023 05:15:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6DFC46B0073; Sat, 25 Feb 2023 05:15:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C4FF6B0074; Sat, 25 Feb 2023 05:15:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 48A816B0071 for ; Sat, 25 Feb 2023 05:15:38 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1006C80EA6 for ; Sat, 25 Feb 2023 10:15:38 +0000 (UTC) X-FDA: 80505407556.07.1BA4324 Received: from mail3-165.sinamail.sina.com.cn (mail3-165.sinamail.sina.com.cn [202.108.3.165]) by imf25.hostedemail.com (Postfix) with ESMTP id C0B59A001F for ; Sat, 25 Feb 2023 10:15:34 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf25.hostedemail.com: domain of hdanton@sina.com designates 202.108.3.165 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677320136; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hRSNwRd/nY6n197iUIsPQ9/8dIwchFlcgS6txDay1dA=; b=Ux0TfmP9fPbgKCCuR4ABsPU+w0ut+C87XS5VUCZQQUa2QXjOQgEygElnp8i+JsqmdbDEMp 5xqSf7dc7gYoQBsGxmRFAhrj/KDFbWJfCLn+ANIkHJyXgeXrN6DeWFfCpfCTxB+HqvGQni xGHfwT4+zdwoinXbtg4hLLR6y3LQvog= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf25.hostedemail.com: domain of hdanton@sina.com designates 202.108.3.165 as permitted sender) smtp.mailfrom=hdanton@sina.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677320136; a=rsa-sha256; cv=none; b=jNWlbBi6xkpmoaEQLaxkJcA9J4vq+/caJEnGyEfybZveCPrl8bQZIsr0qTzsm/jsjTmCHi rZwi6wcAFHtZvrz7JvAWs2PTwqeXud4RGJ/GaxcEmtzkaI6OpX5u8bSFMc00SAIaOfwXW2 /zOQRvQ+0zR/Aqud/d4MKqXFRpK6KGw= Received: from unknown (HELO localhost.localdomain)([114.249.61.130]) by sina.com (172.16.97.32) with ESMTP id 63F9DFB300030AFC; Sat, 25 Feb 2023 18:15:17 +0800 (CST) X-Sender: hdanton@sina.com X-Auth-ID: hdanton@sina.com X-SMAIL-MID: 311735628975 From: Hillf Danton To: Peter Zijlstra Cc: longman@redhat.com, mingo@redhat.com, will@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, boqun.feng@gmail.com Subject: Re: [PATCH 4/6] locking/rwsem: Split out rwsem_reader_wake() Date: Sat, 25 Feb 2023 18:15:17 +0800 Message-Id: <20230225101517.3227-1-hdanton@sina.com> In-Reply-To: <20230223123319.548254615@infradead.org> References: <20230223122642.491637862@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C0B59A001F X-Stat-Signature: xdf7bu5dgm3en53b8e3ub1choh1degxo X-HE-Tag: 1677320134-630785 X-HE-Meta: U2FsdGVkX184HdrlcyJOvSp//Qep6NJdnuPCIS+zfOjQ+Opok62vF4ke91FmqKlPnucg2KgAbTyHXihKcT8+5GUNuZf8eswRx3Tn4Q7N363yy05paxrh6Pk0muBI+mQli5TCLHaFZ6IuU1xMGKRcQBOhBxq+Obwwv+ucAxlumXWKyXfiX9IecKeVCffTeD5RnSo8uvGuFlFBj7pV0sedDQwm754XdSQNXAsj64tKOlPXJUyqy+viG1wnko3FcZQg7TP7PTsMgJ5QiHr05RA6Oj8UTyvDKP8OYbh+I/ijo722Vm7Wv5cd6kFJM8Szz7C4kAU4Gv4nWP7V684DQABS38LH/EZoCdJ50Ivocqu6PRSMsXMrGXhL/u9aOXM4nOrNwSKxLiyvA9e0dk7hoHy7TZbEubjaPnfqvRN9mlkwMGy1vCEAJLiqtE5lAm5Kj1RX0tQCkCNz14BIfg4xeYro5Hz7/o60ktYUhbPrXJmkzc8Z1W7ELLkNmfGJh62ariVSpFzRFgLhFyjes91lQ5rCStGElYJ9UcnCyKpA4y//EUJanpu2eJcErlbvC4H8qtD0EpD+F1or5INqUxXbjqw+jNrg5zjG/wmRIcd3KSb3jgVZnFCB8m5hc/dW5Rm/snbi5RpRKiLzbY22l7uaawh0iFpcnxWAtvqxFmNNBLXcIFNxe3134tpQGNyWGJkHb1vr0XObMkvm1BGv42Hw5cTL3bxwaqUNzHvBDFwaAH2J2/BaLSijRzMwx1Fp1BV0ppD2cJaTvnke9VKf5B+KQIg/A35CqkfxitWSwQaYrsxQZ7YI4uTs+c/ItTmE0Z0e0uZ09nSzflM6G+q57Uhvp9OE+N+G3wMoZKiGckJ+zk+kedYfPy4FH7jq1HLVPuvP3jDDBp5gcUh/4Hx6X39t1LePTrLYVpdliQPwDRBJslz66OJE29/D5WIvqLasKQ4ZGAQ39ccn8SBYpFKXm5rf80C mUXc8izV FskJ/bh3EpqvHrbhPVVBKRRFUxrp7Q6uE9bvtNf77ApVLGMGwWgf1VM3pFv61TsggCYLYHtuTX7tttRC/Xki4bDnYQuPYi1SUG+wIhhmKKaIK5BulDQA14dTFyOL/qiaBeq4VfLdMkK50Z5SBl5Lq2+zLP5S332Q6O3JkjrLX07US6Slzfi7vIY0kyMdHm5LdALzwf+bk9RUUUlnKg4J50+/bAo91hITL/60boKXxcPOsUsR/kwlrQI25tM4ooVuxUphd9TT098Gf2y6cvS54yTTpjg== 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, 23 Feb 2023 13:26:46 +0100 Peter Zijlstra (Intel) > +static void rwsem_mark_wake(struct rw_semaphore *sem, > + enum rwsem_wake_type wake_type, > + struct wake_q_head *wake_q) > +{ > + struct rwsem_waiter *waiter; > + > + lockdep_assert_held(&sem->wait_lock); > + > + /* > + * Take a peek at the queue head waiter such that we can determine > + * the wakeup(s) to perform. > + */ > + waiter = rwsem_first_waiter(sem); > + > + if (waiter->type == RWSEM_WAITING_FOR_WRITE) { > + if (wake_type == RWSEM_WAKE_ANY) > + rwsem_writer_wake(sem, waiter, wake_q); > + } else { > + rwsem_reader_wake(sem, wake_type, waiter, wake_q); > + } > +} Hm... missing wakeup, and feel free to pick up the diff below if it makes sense to you. +++ b/kernel/locking/rwsem.c @@ -661,12 +661,13 @@ static void rwsem_mark_wake(struct rw_se */ waiter = rwsem_first_waiter(sem); - if (waiter->type == RWSEM_WAITING_FOR_WRITE) { - if (wake_type == RWSEM_WAKE_ANY) + if (waiter->type == RWSEM_WAITING_FOR_WRITE) + if (wake_type == RWSEM_WAKE_ANY) { rwsem_writer_wake(sem, waiter, wake_q); - } else { - rwsem_reader_wake(sem, wake_type, waiter, wake_q); - } + return; + } + + rwsem_reader_wake(sem, wake_type, waiter, wake_q); } /*