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 77EFBC3064D for ; Thu, 27 Jun 2024 18:45:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 109086B008C; Thu, 27 Jun 2024 14:45:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0920B6B0092; Thu, 27 Jun 2024 14:45:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E4DAC6B0095; Thu, 27 Jun 2024 14:45:27 -0400 (EDT) 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 BF7BE6B008C for ; Thu, 27 Jun 2024 14:45:27 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3997D1203FD for ; Thu, 27 Jun 2024 18:45:27 +0000 (UTC) X-FDA: 82277546694.28.58FC3D1 Received: from out-185.mta0.migadu.com (out-185.mta0.migadu.com [91.218.175.185]) by imf28.hostedemail.com (Postfix) with ESMTP id B7552C0013 for ; Thu, 27 Jun 2024 18:45:24 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=et2V3hO5; spf=pass (imf28.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.185 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719513915; 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=dgmx3yNno1fsFcSCb4lnzQMpdWaPdOGLHAqvKqTAmUQ=; b=tnsfpcWp59PMhojxXHM97yt7pamYetroeL1nxaqxGBfhF6cS570a/fBy8F2alh47c7wL1e c/ii5cWWeRm/uipjRGW0YArC+vwNI+4ElWpnyE2VzwAz4fUiyextpycrAIyjzkKQ7aXZqW ghVWHI94v7l538+w3GFVrGzewVimU5M= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=et2V3hO5; spf=pass (imf28.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.185 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719513915; a=rsa-sha256; cv=none; b=L1dLeCe0NYBdAbDqF81jqwoG+4EXeWrmSA4FaNsbBafAJpWZszNopFD0gPvszxQoIPFEA3 TheYpDMafDHbh3nqYH0lAOC7xr49jZ7CG2bD3D1kaWkS0MOoJ6JTk55+8hzFZzCg0ox6K2 sJidoClA4Ndnsp/pljmMBAGoISb1QCE= X-Envelope-To: yosryahmed@google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1719513922; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dgmx3yNno1fsFcSCb4lnzQMpdWaPdOGLHAqvKqTAmUQ=; b=et2V3hO5MdtXYQFgY/laYemN0Gwn3cG/qxWzxlDrlShaeVGMQPv7ynMBQdDUx47z+b95mg FocWpUYAd0a1mEp6asE1oU2klKTNDPj7cVfSn99M24bnUSjxMufA6HrgXhRr9qXTe3UAwD ymYIJAb5Qfv/BhbuBhvGkSVRzEqhsyw= X-Envelope-To: hawk@kernel.org X-Envelope-To: tj@kernel.org X-Envelope-To: cgroups@vger.kernel.org X-Envelope-To: hannes@cmpxchg.org X-Envelope-To: lizefan.x@bytedance.com X-Envelope-To: longman@redhat.com X-Envelope-To: kernel-team@cloudflare.com X-Envelope-To: linux-mm@kvack.org X-Envelope-To: linux-kernel@vger.kernel.org Date: Thu, 27 Jun 2024 11:45:17 -0700 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Yosry Ahmed Cc: Jesper Dangaard Brouer , tj@kernel.org, cgroups@vger.kernel.org, hannes@cmpxchg.org, lizefan.x@bytedance.com, longman@redhat.com, kernel-team@cloudflare.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V3 2/2] cgroup/rstat: Avoid thundering herd problem by kswapd across NUMA nodes Message-ID: References: <171943667611.1638606.4158229160024621051.stgit@firesoul> <171943668946.1638606.1320095353103578332.stgit@firesoul> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: B7552C0013 X-Stat-Signature: cqhwh8s8sa4mhigm5qy3gipnhbcmffgg X-Rspam-User: X-HE-Tag: 1719513924-728278 X-HE-Meta: U2FsdGVkX19N3WAQxyLeIRpwf/fnL0WfvrsxbUgwP+2xCG8OtD8+Trs6HU9Gzf+/vEFilD/3342YRNd9RCTxjdQm6PfVUuVUb+mkNth0zaJIlm5TpNjeTezL3S7em5wSONUBdCL0qZOid849VUyashrViDRvPVIj4iJ4oqM7OvHmyeL/ctj8A4IT5geNnPH4fCq4gyXduKO6wRRWx43macGPwdEm7mPqyuNshm5wedTPYql5e/zA9Xr6/i0ALDn2y4/quNKEdENxM429gT7/XmlMz4R+IdWvBH8MTN2whXQB5wIdaqdT2S9JdY29DF0SFmNiKTeXYC5ulu7aXE2CBPUMaDRW1gsdCbHaCY32lhcISaTiAI0os90i7atuy+KfZU2dlD0ci49mZR2KZgz7Tx0y/qFzRciaxJUXNkx2CwgJjwHphK2AAWzYaXl2g19x3dPl83aWjnkoELMVDA7boa8BuMCA1oYM7aOW4lBriL0YULQJX2LtKX1tMEOA/iXmGl0xgID8PgiwEe6s6QspMjLcCP2u5Q3Zb5le1s2yO2P1+0dIBqHh5jomw8NmHyj5I94cTHf57Eu13eoYswQEAy3YuFBRSIp1Y728zkC9Eo7CmLf5w0KTm6LVA4PP1oWvhd/951YvrrZ+AE6iJWNzBq8RjPmD5ZWohg4Adt69Tu5ztcEerj7sJuqmoVq2I4n6ZzzIdAQ7rmXQ+9UQiDgFqUq5nfzM7JYxgv8p/eRpez/jDGkkhST/H4Ivon55Yqa6ROwR7vET/mKjoQdoX4Ths33d98m0S/X2oc+tB60xCdJRDUqk1jcH9CTGKhWoECx8THtTZHhmyQ8NX+lVOKbYyW2rczFCMdJVpvijR6ceg6a7x5v3ardbIKjnS4wz+UOYxn3vVf9+YKSxDJdgtSxIJ4o96rDsIhTMFhSW8h7SFr/mR8s1pObAb/z98gtZdvcaPP8eqQqMuLyJ9M5DqXp D903qcTO nZq/WATNlux1SnKbSfDFHbh1iOV9v1YiTCWmo1bpXnb8NFFKmIifGfp0GuZBWFr0sxFfjIsUhJBuryaHeAeEAushi/T2aIcpveqYyTAgXFO3fkIP1xJfiHOZKtzgPo3TaMjXAHq9Cis7WKAvNfh5+unbH9bcQtAHMFiwis6q77fsieQw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.008650, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Jun 27, 2024 at 04:32:03AM GMT, Yosry Ahmed wrote: > On Thu, Jun 27, 2024 at 3:33 AM Yosry Ahmed wrote: [...] > > > > The reason why I suggested that the completion live in struct cgroup > > is because there is a chance here that the flush completes and another > > irrelevant flush starts between reading cgrp_rstat_ongoing_flusher and > > calling wait_for_completion_interruptible_timeout(). Yes this can happen if flusher for irrelevant cgroup calls reinit_completion() while the initial flusher was just about to call wait_for_completion_interruptible_timeout(). > > > > This will cause the caller to wait for an irrelevant flush, which may > > be fine because today the caller would wait for the lock anyway. Just > > mentioning this in case you think this may happen enough to be a > > problem. > > Actually, I think this can happen beyond the window I described above. > I think it's possible that a thread waits for the flush, then gets > woken up when complete_all() is called, but another flusher calls > reinit_completion() immediately. The woken up thread will observe > completion->done == 0 and go to sleep again. I don't think it will go to sleep again as there is no retry. > > I think most of these cases can be avoided if we make the completion > per cgroup. It is still possible to wait for more flushes than > necessary, but only if they are for the same cgroup. Yeah, per-cgroup completion would avoid the problem of waiting for irrelevant flush.