From patchwork Wed Mar 6 08:55:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Byungchul Park X-Patchwork-Id: 13583556 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 8BD7CC5475B for ; Wed, 6 Mar 2024 08:56:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D9A8A6B00A4; Wed, 6 Mar 2024 03:55:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CFBA96B00A5; Wed, 6 Mar 2024 03:55:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B4DB16B00A6; Wed, 6 Mar 2024 03:55:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 9EF606B00A4 for ; Wed, 6 Mar 2024 03:55:47 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 48C49404C6 for ; Wed, 6 Mar 2024 08:55:47 +0000 (UTC) X-FDA: 81866006334.11.16F3E58 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf24.hostedemail.com (Postfix) with ESMTP id 8B731180020 for ; Wed, 6 Mar 2024 08:55:45 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709715345; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=BFhoBMbkm4fdpwbPCyHPgkLbc5d+gjfBeXoXgdor0OY=; b=yQL9FkQS7TXBJaphCFweIPLNTgqh+InPCAOzydQKGL1LgV3wvTqBqnv3/EpVpi0Cs2lfQm ZCDEkDpPynGk0nWaoq4a3eAlpffUs3NE7nC1BrjhaFG0EdU22GoyqmgRiPFXnLsklbBSVQ PDW7vekvewYJp6TmXcFE5gYBebhrUpE= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf24.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709715345; a=rsa-sha256; cv=none; b=YhWulKH8tSYkhOcVLhOo5lTtpJxM8rywD0i6rr5wEbECUejjxwnYwj82j2iW6ABiuOPpZa H1p+4ZKO96m7JKRC+iEzGk4qpK/h6IoFcy1jlEV6k9EWuC4VvVcoycs7REjqrfUDHe4aj1 mlFx4GR3bxXHQR6KUxS6i8L3Vf4oP7I= X-AuditID: a67dfc5b-d85ff70000001748-8a-65e82f7feb03 From: Byungchul Park To: linux-kernel@vger.kernel.org Cc: kernel_team@skhynix.com, torvalds@linux-foundation.org, damien.lemoal@opensource.wdc.com, linux-ide@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, will@kernel.org, tglx@linutronix.de, rostedt@goodmis.org, joel@joelfernandes.org, sashal@kernel.org, daniel.vetter@ffwll.ch, duyuyang@gmail.com, johannes.berg@intel.com, tj@kernel.org, tytso@mit.edu, willy@infradead.org, david@fromorbit.com, amir73il@gmail.com, gregkh@linuxfoundation.org, kernel-team@lge.com, linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@kernel.org, minchan@kernel.org, hannes@cmpxchg.org, vdavydov.dev@gmail.com, sj@kernel.org, jglisse@redhat.com, dennis@kernel.org, cl@linux.com, penberg@kernel.org, rientjes@google.com, vbabka@suse.cz, ngupta@vflare.org, linux-block@vger.kernel.org, josef@toxicpanda.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, jlayton@kernel.org, dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org, dri-devel@lists.freedesktop.org, rodrigosiqueiramelo@gmail.com, melissa.srw@gmail.com, hamohammed.sa@gmail.com, 42.hyeyoo@gmail.com, chris.p.wilson@intel.com, gwan-gyeong.mun@intel.com, max.byungchul.park@gmail.com, boqun.feng@gmail.com, longman@redhat.com, hdanton@sina.com, her0gyugyu@gmail.com Subject: [PATCH v13 22/27] dept: Record the latest one out of consecutive waits of the same class Date: Wed, 6 Mar 2024 17:55:08 +0900 Message-Id: <20240306085513.41482-23-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240306085513.41482-1-byungchul@sk.com> References: <20240306085513.41482-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSaUxTaRSG/b67tlpzp0PiFU00dUskoEyEnIlL0Bj9TNwSxj+aqDdwR8oU NK2iqAQUUERB0UBRcGSzNsC4tDIwDji1bMUFGSWKBogQFCotKNrOFIjaavxz8uQ973l+HZ5S W5lgXpu4X9YnSjoNq6SV7mmloalLhuSlPW/mQd6ZpeD5mEVD8Y1qFjquVyGovn0Mg7N5PTz3 uhBMPHpMgTG/A0FpXw8Ft1t6ETSYj7PwdGA6dHpGWWjLP81CevkNFv4dnsTQXXAeQ5VlEzw4 V4bB5hukwehkociYjv1jCIPPVMmBKW0B9JsvcTDZFw5tvc8YaHgZAhd/72ahvqGNhpa6fgxP 7xSz0Fv9mYEHLQ4aOvJyGPhjpIyFYa+JApNnlIMnthIMNzP8ohMfPjHQmmPDcKLiFobOF38j uJv1CoOl+hkLjR4XBqsln4Lxa80I+nPdHGSe8XFQdCwXwenMAhoyuiNg4v9iNupn0ugapUiG 9SBp8JbQ5H6ZSP661MORjLsvOVJiOUCs5sWkvN6JSemYhyGWylMssYyd50i2uxOTkfZ2jjgK J2gy0GnEW4O3K1fEyjptkqxfsmq3Mu5xzQdmn3Pqodz+AZSGWhXZSMGLwjLxlb2c+s6Nta+5 ALPCIrGry/c1DxLmitacN0yAKcGlFCva12Ujnv9RkES3d34AaWGBWPt+TaChEiLFwquF3Dfj HLHqpu2rReHPz46cZQOsFiLER+mlflb6O5958cX1JvztYKZ4z9xFn0OqEjSlEqm1iUkJkla3 LCwuOVF7KCxmb4IF+V/JlDK5ow6NdUTbkcAjzTRVlGJQVjNSkiE5wY5EntIEqY6OD8hqVayU fFjW792lP6CTDXY0i6c1M1Q/eQ/GqoU90n75N1neJ+u/bzGvCE5D5ui89453yyPjY/45/Eum fWX9tcjNs1fvCabeeULX7Lgc3lzQ9MORq6eGyrIGK2pD+tZxRVLtmKU5h9nZchTZ3Lf+nOXb snH3f16H4Z7DScA1ak2Nj7njStHtCqmIOp56Misl6f6vw89rtkXrV8YXXnh7ZZG89kqE8cm4 6+HrhU0b2jW0IU4KX0zpDdIXRHFUWkYDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAAzWSa0hTcRjG+5/7lqvDkjwkUYy0MCqFjJduRFT+CQr7UFIfylMecuSltjIX XaytME1N8ZaaeJlLdGZNu6uYo5VFZil2m5ZjlSMvpW61tIsr+vLy43kefp9ejlTm0XM4dcJh SZMgxqkYOSXfukq/5NSyASm0/74fZF8IBfd4KgUl9WYGOq/WIjA3nibA9SACXnoGEUw8fUZC QV4ngvL+XhIabX0ImqvPMNDlnAHd7hEG2vPSGdBX1jPw/PMkAfb8HAJqLVvgycUKAlq9nygo cDFQXKAnps4AAV5TDQumlCBwVBexMNkfBu19PTRYL7fT0PxmMVwqtTPQ1NxOge22g4CuuyUM 9Jl/0/DE9oiCzuwMGuqGKxj47DGRYHKPsPCitYyAa4Yp27mxXzQ8zGgl4JzxOgHdr+8haEl9 T4DF3MOA1T1IQIMlj4QfVx4gcGQOsXD2gpeF4tOZCNLP5lNgsIfDxPcSZt1KbB0cIbGh4Shu 9pRR+HGFgO8U9bLY0PKGxWWWI7ihOgRXNrkIXD7qprGl5jyDLaM5LE4b6ibwcEcHix8VTlDY 2V1ARAbukq+OkeLUSZJm2dpoeeyzG2P0Qdf05EyHE6Wgh7I0JOMEfrlgvfWB9THDLxRevfKS Pvbn5wsNGR9pH5P8oFwwdmxKQxw3ixeFIc8CH1J8kHDr63rfQsGvEAqrCtl/xnlC7bXWvxbZ VJ41nMX4WMmHC0/15cxFJC9D02qQvzohKV5Ux4Uv1R6I1SWok5fuS4y3oKlnMZ2YzL6Nxrsi 2hDPIZWfYp3sk6SkxSStLr4NCRyp8lcc/+GUlIoYUXdM0iTu0RyJk7RtKJCjVAGKzVFStJLf Lx6WDkjSQUnzvyU42ZwUFDpsOmnrP/FuZUvptun6HmHvjp6Za7zW/AD5uCXg5KINxvVVWeK3 XkXupaiwnwO7364w1xW9Tr5cj0McpPGQxz5tH2XfODt100CJ/9xvvcGRjvlIt7P6uGZPYC7X kp1eZUyZ1Wj4Ul4Z4Ay0BY/eXBKxOCPGPOZqKhV3Jm6/qXuporSxYlgIqdGKfwD78fKUKAMA AA== X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 8B731180020 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 4ahpwb9assz5qrhbj14e1541sonacckb X-HE-Tag: 1709715345-102006 X-HE-Meta: U2FsdGVkX1+bqGJyqo/qfL6zgBSYiQ+/dxVcJAPzyVjWVYC9QZkF6bWOiGYbEYyQr5PrH7+lrRbiJxH9Nf941rL2uQZUbHJFGhR7X7yB+u2MFLZiJt1I5ch9JQvVbBHusX3WGGrKNhF7Q0VF7si7HcSyJ9Xb076MHRUiV55ZZJ4NZtuOsWy0M6dGuQAXN5svj6J/YHbdFD1V4c9WQ7P5fJbFAjaO7jyuS6qUVcgDsnqKOG8M1HZuF9P79buXq7RsEVF2MRSRsBC6Qw0AXINDDNx2pUCsft4sT9Nq6aPj2Ocs6lv3J3Jc7N1Qv10fMZtY3yAQ5aRflJf7HmEwd7A2FZ1kP5LjxynVcg8YVjqaNXxlGCGkwe69rer+h0K88NT5cpQQMwCIJet/EoUwdDygLfYIxr4n9P1TP6hNr/kwqkEVL21Yt8PIhnfYAUrpkr68lbyu0TSpELbapUn5rS3BqUwBqgm+zi1zA+oMT9BwGCRYeCKScVw/YqZJL3gTiZdFJiqf+EbQKAmbHLWsUDq9GWSWpewNQadRHv5149nXxOp5AE/IL/iVTHG11KTBjexWVHGhncysUNF9rtFV3z9llqOST3ins7cfdc4iCqm/KPsDiXaT7nm9k0TigrcXb8NxwbwSP6dcpF/Fq1iCROX9e1r3KB9KUkkzSlYvGinAiICYlJ1+b1zjpO210Th3yEvxGUY+UpPITscdL9w+ErhcL1gUs8D/h0nIRQ2lobrFlD62uoXsyFXMPgepcfSWy2ReiPWdkZVKOI7obpUr9oDoaA== 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: The current code records all the waits for later use to track relation between waits and events in each context. However, since the same class is handled the same way, it'd be okay to record only one on behalf of the others if they all have the same class. Even though it's the ideal to search the whole history buffer for that, since it'd cost too high, alternatively, let's keep the latest one at least when the same class'ed waits consecutively appear. Signed-off-by: Byungchul Park --- kernel/dependency/dept.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/kernel/dependency/dept.c b/kernel/dependency/dept.c index 1b8fa9f69d73..5c996f11abd5 100644 --- a/kernel/dependency/dept.c +++ b/kernel/dependency/dept.c @@ -1521,9 +1521,28 @@ static struct dept_wait_hist *new_hist(void) return wh; } +static struct dept_wait_hist *last_hist(void) +{ + int pos_n = hist_pos_next(); + struct dept_wait_hist *wh_n = hist(pos_n); + + /* + * This is the first try. + */ + if (!pos_n && !wh_n->wait) + return NULL; + + return hist(pos_n + DEPT_MAX_WAIT_HIST - 1); +} + static void add_hist(struct dept_wait *w, unsigned int wg, unsigned int ctxt_id) { - struct dept_wait_hist *wh = new_hist(); + struct dept_wait_hist *wh; + + wh = last_hist(); + + if (!wh || wh->wait->class != w->class || wh->ctxt_id != ctxt_id) + wh = new_hist(); if (likely(wh->wait)) put_wait(wh->wait);