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 EA7C0C77B7C for ; Thu, 3 Jul 2025 16:12:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 709A1280003; Thu, 3 Jul 2025 12:12:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E12394000D; Thu, 3 Jul 2025 12:12:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61E26280003; Thu, 3 Jul 2025 12:12:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 51D0094000D for ; Thu, 3 Jul 2025 12:12:40 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EA25B124248 for ; Thu, 3 Jul 2025 16:12:39 +0000 (UTC) X-FDA: 83623446438.06.B85830F Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by imf06.hostedemail.com (Postfix) with ESMTP id C0113180016 for ; Thu, 3 Jul 2025 16:12:37 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=cnAPUMdF; spf=pass (imf06.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751559158; 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=ZRB8cNtcn8RLP7IQzOSY6cpc7Y2dAMINvt3eWvfnG7w=; b=yvhs2JJAy6SEjTzaVSjARTWV34EMhhdoJ87ppDL2QlXE/cg6zSsrLpV/Dwxi/u42UXckf+ qQ369uuXLd93335B6gn8O21dKZckL/EG/1JvFsU5hj8ph6QPuLRglWyrOxPLdwk407y23U ItRMwkmILA22LWEBqHqRKPlBukdi3Jo= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=cnAPUMdF; spf=pass (imf06.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751559158; a=rsa-sha256; cv=none; b=wUv/YssK1OSmla/TNulU/h+j1kZkEBt1zNXWG3fQD4fIYUAyEQ04LjJG7zqsPBWnPNRTAt k49eymoEXvlaPUHau01pzrDvX93CLs3Roa80vCtCLQbJP61LzAx6n6Z5+ScifMUm4VsIb3 NPviI/vDy/5GuHj9YG03qRm5zenre88= Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-3a575a988f9so5365018f8f.0 for ; Thu, 03 Jul 2025 09:12:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1751559156; x=1752163956; darn=kvack.org; 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=ZRB8cNtcn8RLP7IQzOSY6cpc7Y2dAMINvt3eWvfnG7w=; b=cnAPUMdFkC1Uztmg/jSwFtWE8260vqXvexp+qivsQD01/w5CrRf1KYezZjwfmZPhU3 evxzgJ416LHuPD8j8zCC6QTaES5W82AGShz/tTOVGRZCHO3KxYrCL3vtteDRYLKXOIA7 HAAzL5C1ISOR8QZN0pXY1wacFrDGzi898HjtndxGE+bxdt//Yx8ZWpJ+dAMcmsqFNqex UBVcvYxoa37J5AjFHi79WqsDwLOVNLS60SYAhwwPOOXM1wowy8GGsJqUYEB6i+D7Rb5/ Bt7fb8/mjg0kWgGaEcJED3IwL1J/Wqq1U3sLpYde7KUzb2L/uflKjl0+uHZEQQPbGpJ4 gYOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751559156; x=1752163956; 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=ZRB8cNtcn8RLP7IQzOSY6cpc7Y2dAMINvt3eWvfnG7w=; b=AwBQFG9rz+hL3A5IGnWDJwODqxt/yfYt/actiQDCPIaY4RSts7vXGy/U5enHAqGc6V QJi8ISZr6BusupCoZDb3orW/QxfWsjarXKSs6hVtEUqbSZBSTnUaKZrS6YWuX0WAmj6b RwmHBOsevHU1CQz2N6tiqDMJ2/zdy3zwYrulaJ3nJp3bpuxlv91DlX+iEXyrsqOHTk3j +y6euI6X1LkhdlEnM1TEi1P4FRSM4AWkTf6nh/YIZOiKmcvAowTb/KX+PX59QrbCvJ+i XhOLIeYS8aBo8turXvlHqavER9JdNhp9sTRwUA5TBh6V4y7dw5MHs0Cr3KvofbjCFQhK Skmg== X-Forwarded-Encrypted: i=1; AJvYcCVEiAoR6dfNRJoZUvUQ2uF8zbZG5ucOYGnAAzpjBWkWm6q9l+7z38kJcp+1KkjYAwX9yT+PaJab/g==@kvack.org X-Gm-Message-State: AOJu0Yz+/l0A0Dr8aut3tAt2HJH1kdvmXO6wnptZLN6ko/J7lhgRi12s J271Tk0lGW3fnrIcH6zN2d9134OiyIxyLKvtG1Fn576QGVV9oscb/bcSmX2ZOGMr9y4= X-Gm-Gg: ASbGnctmfNx6uM7pxBJtSugx6P7tkGVUn1KYeoXAdwxR7Bn2M3PjIfVsG8NsQkDUdu2 K0RY0NdsbhGL8VhkyPi49p3pAAJYIRNCibHm2Nzu7adN8IbaAcc5VNeCE+BKkGrF7QMO+zplakg +uSaEhfWVRNM+DI39jU5HzcEjqCjjC3BNjmZ34dONC30I+m5y1J9oWuM+V3EAdrdxZXY13msWvu 6TLAtol9wYgSNm2zzqAsI8vXnXI87dKyy4mJ5vTZRYsNivdgMJ6qyBC7RBSiFEFjdOrMKSvlSlV tvjKKgm3+iml+GAoe5ms5BHyfLqQipZAxqIvFRqkW4EBVO5C7aVxqLOlc0DxFLkzGbQFoUCbd3A = X-Google-Smtp-Source: AGHT+IF66L38+HmOz2ovVCrxO+c5A5ux5zGs3pbYaXErSsgtIrGHfyp/jTIgRymoB9CUfdibRFXWPw== X-Received: by 2002:a05:6000:1881:b0:3a4:eecd:f4d2 with SMTP id ffacd0b85a97d-3b32ebd7907mr3741093f8f.38.1751559156117; Thu, 03 Jul 2025 09:12:36 -0700 (PDT) Received: from localhost (109-81-23-161.rct.o2.cz. [109.81.23.161]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-454b16871a1sm1703325e9.24.2025.07.03.09.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Jul 2025 09:12:35 -0700 (PDT) Date: Thu, 3 Jul 2025 18:12:34 +0200 From: Michal Hocko To: Matthew Wilcox Cc: Frederic Weisbecker , LKML , Andrew Morton , Ingo Molnar , Marcelo Tosatti , Oleg Nesterov , Peter Zijlstra , Thomas Gleixner , Valentin Schneider , Vlastimil Babka , linux-mm@kvack.org Subject: Re: [PATCH 6/6] mm: Drain LRUs upon resume to userspace on nohz_full CPUs Message-ID: References: <20250703140717.25703-1-frederic@kernel.org> <20250703140717.25703-7-frederic@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Stat-Signature: yycxeeky94cuc55amac3xp6s9kcayxo4 X-Rspamd-Queue-Id: C0113180016 X-Rspamd-Server: rspam11 X-Rspam-User: X-HE-Tag: 1751559157-897563 X-HE-Meta: U2FsdGVkX1+ffP7uv9LS3E3Sp3qvBr185t0APzVxAv141OdXXOn2Rn5V8z2PjIsqQTyjUln7WWTMs7+ZgV9xwc1DOJ0qxW9QJCB+q8gH1g1NOSuLWD0LgYvgwyzig1h1HNeeVE8k9rJsf2+7TH+2Pk9U67Vo5J6gFzaAAWlQLoUzOYyAdFEbOb0ofBak7lcVpt/DhL96L04MUPMz8+smzAjDPjhoNRbutoWSodp4IfvDvBy3GkqT4Sq6QfCSRYnfQDvHNTPYwyK2T0BY/2tmTccuHCqZmelcPObJgdJJvED66HJ0TQ9zzdzY3csylCqzZxlxTQ96WX4X/etDccDqd3KxkosjpbrC1r8Qiqarasp409rAFah29Qq3nJfQJCvfPE+vIUeAIEthEWjd3aOvdUAnh3sxkMf7LUjv2a2U6jZfrUw6qrNfRvaslWY9pvWIv/H4tPG5nX0peRvDH54bBhvsEapB42vbKuuk1cEftBTyjNGN6LiFSkA3iYwJbXIEIiyDUUCNOEaq9RkZc6DRynGZWJkhznf/tmRa9/IRNc5kEzup3Jt0l2KZoZwGfbqzNq/TJzCXE8RPLcibzbLFy6bt3fVmW4MnbcTyLLmWQYDkAZ8f6oeaJHIaQD7t8SPO/qsTJ0jt0b+EKQz5OlqtMaXoyKMrixIgD+gSSSXNFMKrrMkojbpl2JmGLsHSYWzAnN+15mlevt4u+l0IP9kVnbSVtOxrllLClNMUti7DXyYG/wJQaSNEGqs1VqUk0+jx/WKnmpW+DO5KxR7EO5XEENfbjVc6/bEwK3nIAHRfQFcqbBW+sWxztC9TElhszhK8+T0RhMtqii8nYqVxjIwKLBu1sYliKctsuOQsdUS52uBhGCaCPOh0BVG5v6hkl4R7548Iv+ZAf5Ii6i0O0W4Us1gTpbEBxcPtiGs3x0RrKwfXdtoZDXW4aNuyB0S8hfkPzxucGUeJRD9FZJTqkGC 46RMR/Do hcg2eMiGiakqH5DR+2U+HVrayj9xSbnj+zOKiuFE1dYVXDs76+rSKVvaa9fmsTfTo+w4eEdecqI1XhEDL0GHXzdborq0D10p3yOlwPrKo0OuNHvcmDsVxAwfxGmK1xWhM/YzIGIJyHP3telYDbVY9YiopEaTC4mc6euxSzHBZYCfuaMTAPamSvi0NhMmE0EHW6INRqPFuVmB0e1i3zt2nnWrGBZvlY85RGMoEdXouqr8LqPekbNEIY2C+lCT+VqAc0+fw//F9S+yQuyjlFuFS2eizLRh+BAKmQEy/zVf6BOIfaT2wAqFfZiqDv/R8R5oBMU2AazcJTQYUyVXT/gJXzLeLg2g/k1xvv4SxhVpAOwqq4H0= 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: On Thu 03-07-25 15:28:23, Matthew Wilcox wrote: > On Thu, Jul 03, 2025 at 04:07:17PM +0200, Frederic Weisbecker wrote: > > +unsigned int folio_batch_add(struct folio_batch *fbatch, > > + struct folio *folio) > > +{ > > + unsigned int ret; > > + > > + fbatch->folios[fbatch->nr++] = folio; > > + ret = folio_batch_space(fbatch); > > + isolated_task_work_queue(); > > Umm. LRUs use folio_batches, but they are definitely not the only user > of folio_batches. Maybe you want to add a new lru_batch_add() > abstraction, because this call is definitely being done at the wrong > level. You have answered one of my question in other response. My initial thought was that __lru_add_drain_all seems to be a better fit. But then we have a problem that draining will become an unbounded operation which will become a problem for lru_cache_disable which will never converge until isolated workload does the draining. So it indeed seems like we need to queue draining when a page is added. Are there other places where we put folios into teh folio_batch than folio_batch_add? I cannot seem to see any... -- Michal Hocko SUSE Labs