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 4A263C2BD09 for ; Fri, 28 Jun 2024 22:15:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 717C36B0088; Fri, 28 Jun 2024 18:15:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6C6D66B0089; Fri, 28 Jun 2024 18:15:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5B5A86B008A; Fri, 28 Jun 2024 18:15:41 -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 3E3366B0088 for ; Fri, 28 Jun 2024 18:15:41 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B3663A21EC for ; Fri, 28 Jun 2024 22:15:40 +0000 (UTC) X-FDA: 82281705240.29.F7F8979 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf29.hostedemail.com (Postfix) with ESMTP id E7D70120008 for ; Fri, 28 Jun 2024 22:15:38 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JJS+uDzT; spf=pass (imf29.hostedemail.com: domain of yosryahmed@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719612924; 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=EnG8rg72r8ffPCSx11YhZAxAKEur5ua59dSNQgnuQfA=; b=rBnnvyRlQCKekfbrMAXi1SNeITb2r2dsVHdIW1B7TmYb1/RdNw96VWUX+oOUiuL4M3NKGZ bbEhMBgxclu4my3ZHzv8oXFR07qEQeOvSiWfemMQlZLTm/ROeBD0nQKA7BQLtQgy9mDRF9 S3fZEPmCk7ah0Sq7SlXN+BOSRH8qxQw= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JJS+uDzT; spf=pass (imf29.hostedemail.com: domain of yosryahmed@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719612924; a=rsa-sha256; cv=none; b=nVne4dg3F56ZaO3PduwOdCeShN/Aal6EVrEhlVTrMowocNzmtA8xXln0Fn6P131L3svsos GLAzzb8p4sXQ/tyg28QSkZ/+ig3I6UtBrx47xx1McZgIcAz36S3bVOIsE1TW3IfdHxNGgu Sk7EtpBeXcl9ZzinUtFvBvjsaFk7L2s= Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-362bc731810so893698f8f.1 for ; Fri, 28 Jun 2024 15:15:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719612937; x=1720217737; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=EnG8rg72r8ffPCSx11YhZAxAKEur5ua59dSNQgnuQfA=; b=JJS+uDzTQHiqN9qCDdvydF1EU+lsrLk+lykq7k0bWhIxRyxdye053K60cC0cFgXxMt axidHLbs7re0s21rU5aWGhwy6jjqj0MYO9I32OOaZvgTEZ536S1QZTZY8Qjn/t1zgCpQ 0nX6xv2znEKrBXTjwGpJGWDisN4n8k94GIJxbYBOcZaAbmf50MankfydtbD2jTNGZeVS z7usjb+WvC2Q6QlJG64xc+/z98caHwyOHHITqfTYba/OnF4VIFdROKuHHkLK8a640YLx OZ+dHTsUVv9VJbVMzWog3Z24ONLj6cNSZP/a9iyS1VHrnongTSdFJEYY5/ODvDpJ209e +zzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719612937; x=1720217737; h=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=EnG8rg72r8ffPCSx11YhZAxAKEur5ua59dSNQgnuQfA=; b=CyZ9geufYgvR6ZrKQLEsMi45bo/93Qtfp5gSMggFjoki4GXFfVCHae3N8/VVpswV8N NrJEbYjr4QfVB1l9+0NK+8VeopuQ8hc4L1Ch1eNOgVDQADyxnhYFshVt7UZ6lcNUTBdr TdgrKFw7qVqGwLAS/htKyU3MsAw9HJtlkV+X3iuiFCo1Oa2zuwwlUU/sPu263Ex/ngUY JnlbdoHWpyiv6UfID3O1Srqia5EBTzLClSw4zaobW/bO5qApBLH4tOnGxH7dzVSQ50MS y9BvifV7WO1mxNsV88rBKgVHZVIBEfeyEqt39TUc+2m32ANGp5ZIMbux4w6tbMk0csgb gpRQ== X-Forwarded-Encrypted: i=1; AJvYcCWdGUubzk2AiMa1Omi362kXL4cYhzSvA6ShMRXsmn0HFIjql4Jh6IJtUIDLGzj8xSej84+W7zA4xx3M9JbSgzLqg7s= X-Gm-Message-State: AOJu0Yy+w0RgXzN11ZVoy7Fjf4cyyQcIiWboqUNm8Nr9wjAjLrHAGaqf nZ4ZDM5VtHdQD8xrgG1WuHD45LnmPWW/wDD1gcCTN3UxyrBYr1b3/kLG5dfkcdP2vD7gpxhhQW9 zF5qkHOwPo/kxjfyL9K7inTCB5P7AlExyg9fm X-Google-Smtp-Source: AGHT+IECZerCUyDd0NywEbdAnhdWpLjgakOOtsegyVbF35KWlN7IkS8C++spqmKiKCk2AqXQhz4EyJIPc8mgKKGXDw8= X-Received: by 2002:adf:b1d1:0:b0:362:ff67:272f with SMTP id ffacd0b85a97d-366e94db3e5mr14589349f8f.41.1719612936743; Fri, 28 Jun 2024 15:15:36 -0700 (PDT) MIME-Version: 1.0 References: <171952310959.1810550.17003659816794335660.stgit@firesoul> <171952312320.1810550.13209360603489797077.stgit@firesoul> <4n3qu75efpznkomxytm7irwfiq44hhi4hb5igjbd55ooxgmvwa@tbgmwvcqsy75> <7ecdd625-37a0-49f1-92fc-eef9791fbe5b@kernel.org> In-Reply-To: <7ecdd625-37a0-49f1-92fc-eef9791fbe5b@kernel.org> From: Yosry Ahmed Date: Fri, 28 Jun 2024 15:15:00 -0700 Message-ID: Subject: Re: [PATCH V4 2/2] cgroup/rstat: Avoid thundering herd problem by kswapd across NUMA nodes To: Jesper Dangaard Brouer Cc: Shakeel Butt , 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 Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: cptk5ehawnt7djj9k3gm64xdutnuz68j X-Rspam-User: X-Rspamd-Queue-Id: E7D70120008 X-Rspamd-Server: rspam02 X-HE-Tag: 1719612938-686315 X-HE-Meta: U2FsdGVkX181hQsTGSbaRAk3JFr0SuHhnTtJbT+ESYRgC9koAm9mq+Fl1/lfWWr88tdlFWkczGtkwdB1er2edGWVcpR7SPWVEf0e5rZoWri+WDEng8RtgWCO65muGt5MBQqIhNfPvBaTZ1juBXrX96YpWPYPnq9QjTbRgXynswNDAaRRYRujScqSp82NgEodF0M1W1A5FdaSqQ5FEtHwahOhkzNZbgZEdWIouH4CjhrV+fgAhQnNN+kcLkwBjLUUOqm4LOe6m020klKzeSeI5FZ15rT6nTbMoFcp7/mcEzZuM6+oN1Dh107lnj24Kjdth05/yT/COc90/UCbe8PdEbArS1Hck9kISF1Hzq47yswc5ZdloMf6agKP1/g47CsVtecf/UfNejV0r6ugCx6EBEqOWcSsaDkdZDD01FLS/8LRQYX4Ht63UhpUI5dkux0OMijXQfbD9KjdxIlMsdgWVcOZ+7AhIEvTFNq2wMe959t4BetD2JcsggVBvItq4qDPz30mJOeN8tvnGwNwQqm/xQtH9yiL6U14BzIeVDgliooBCvuotl7EpU4ZRYrteZ+qlRp9G9nYG531sCPP5fcyDCQmbqCXNjODDWKSsG55ldJE1PzsWzh6/zqSlgPRj25nT0Qe9gt1WUX2lv4YPOC5Fq1ZOdpvnCR6+awbWS9WCsYGfBR8ftO0TVq7ieoL4/cHPX5lAwZYm3VqWprEnLpsiEZ7FTCfUzStlbMBMiTbOk1XR+joEZIlHV74j+AEIKQ6kVRfr74WoqQMU9asACzetIAU6FeCKgJzIEWPFa05Vf8MzQuAD+BfmSS4a2VCkvaChvLac4ZOSBlnTueX/w+2Az42pdDqiX5DG10j0BAbHhz429oRGZ6fKxG5qOcgZ8o0Cf/ylU9+i2MQBhDEsZNsRKSFKzo9IwSWGDIWMbltDCxVWV22xnlxIHFEDSugmWvVNw6eCvfto9+BsUgWb93 0nnJIGy9 P5EU5//YKZVllfug9nFvv3YRpYCuCrfYlM2mKJzsF+8zV2wym/Pu/+FL12WxV8ZlMV91k1fbbzvQu7gupk3m8vE+iPLRWZV36bBpom1fO2YYiBAzPDsFpJGSaEBPpFAYC+k28r1BgjrKoNbdKKBHy2YEqpwMlDfMrZrpSBemegamETRyPRHCDrQtwQf+BhB7gazSyZI/K/3WF0gon2wMta9DDojjRC1kRkxf174QsMsuZiFm/qC4o2TpjnrXt3IsJi2f2 X-Bogosity: Ham, tests=bogofilter, spamicity=0.433628, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: [..] > >> + /* Obtained lock, record this cgrp as the ongoing flusher */ > >> + if (!READ_ONCE(cgrp_rstat_ongoing_flusher)) { > > > > Can the above condition will ever be false? > > > > Yes, I think so, because I realized that cgroup_rstat_flush_locked() can > release/"yield" the lock. Thus, other CPUs/threads have a chance to > call cgroup_rstat_flush, and try to become the "ongoing-flusher". Right, there may actually be multiple ongoing flushers. I am now wondering if it would be better if we drop cgrp_rstat_ongoing_flusher completely, add a per-cgroup under_flush boolean/flag, and have the cgroup iterate its parents here to check if any of them is under_flush and wait for it instead. Yes, we have to add parent iteration here, but I think it may be fine because the flush path is already expensive. This will allow us to detect if any ongoing flush is overlapping with us, not just the one that happened to update cgrp_rstat_ongoing_flusher first. WDYT?