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 4DAF0C02198 for ; Mon, 10 Feb 2025 11:19:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA83B280002; Mon, 10 Feb 2025 06:19:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D5814280001; Mon, 10 Feb 2025 06:19:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2037280002; Mon, 10 Feb 2025 06:19:10 -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 A478E280001 for ; Mon, 10 Feb 2025 06:19:10 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1B2E7120795 for ; Mon, 10 Feb 2025 11:19:10 +0000 (UTC) X-FDA: 83103788460.15.65637A5 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf04.hostedemail.com (Postfix) with ESMTP id 255F040011 for ; Mon, 10 Feb 2025 11:19:07 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=W8ktbqP0; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.41 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=1739186348; 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=AOZLct+qV3pNzK/kYdO49CmGouhIq9bQC2J2rxm7uS0=; b=DGlAV1wITYY3j2gqmQK931DWqbXenlRASnMm91hpq165qodSl6escyXFewnTZ+5GG90N+L AoTtobhYn/A0jEhfFrZaEQ/X4g8y5czyIjZru2ScwxfBNayG0dPIn63+1PuSHWVv9OFMno TIHtN5QZujDcCk3j6jRTAmJnVtA03as= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=W8ktbqP0; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.41 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=1739186348; a=rsa-sha256; cv=none; b=bV9R3SN/nA4Y1QKaTo407jyuJBGVNmevntpm9lDwj8sSfgGM0u4RwTuVeYK6OEFFOfHoaA Pz0hPTSR4vsmsVuzH56bp3IUJ3//C4WVGnNJFlLR0GfskI0KvpqhJaIWG696xL9mqWGgCH XUMo3JLVr/dFM720xPddJ7dO7Dgt4lI= Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-ab7c501bbecso117138566b.2 for ; Mon, 10 Feb 2025 03:19:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1739186346; x=1739791146; 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=AOZLct+qV3pNzK/kYdO49CmGouhIq9bQC2J2rxm7uS0=; b=W8ktbqP0magx4jfQ40A3MZ72u1rCxYt4Ej08xpgvtWzsv3m6XWHJ4spPe9jt2FciM/ 6kvsnlnS9WdWpbFw0lz4am3oKQxGK0uVt+8Cu3/RomJm6TLQneM+lA4ZcqLMA8/mD/Of En72zoTZA02IycIuBwmFTCowptCPnJnoUVrxsNqT/tmjsdl7Mianpw4FR0gRk4hjYYq6 XV8Y+JVqBMDDzKv1M5G6gkgqqk54RUUqtcAT1lGwUc992nLyfyf5SjI4iW2EK65WbdRb FjEkEKyQ0iYkY6cAQOwvE/dtoVjWYHEUFtxiuKXOzhNFak1ZdSs402RbAv6lrldDMeVD PKOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739186346; x=1739791146; 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=AOZLct+qV3pNzK/kYdO49CmGouhIq9bQC2J2rxm7uS0=; b=b+zsU+dNgpaxDooFFCwE4bDQ0qSLWVFYUcHohdzqPvaplMKJyoXryYtzi9pOxJVWXm Aauy2XVJCxt7era1WjT+u0ufqx2gf2+8DgVATrGGhH0gZ8E9yl9SUpPsUL/bdasmZ6UL Bbu8jE7GrmRJ8rblwZvExuEo7+VEXph/bb2+t6Zc7odxOrLOHQMwMtJo3Y7qJ6VBktrz 1zo7GoVmCM2c9QECjUnsMNv1JA4g9u7IlaQmlTbn4fHZoAyND2Xjzc1ZhXXyYrsKHnfY +2CAuljsYtc0M4Sw4XESYrg4lVGY1LrVW3wcvG9thh14o4z2aZVDVk4ZpShn6cbIeOnb A1HQ== X-Forwarded-Encrypted: i=1; AJvYcCW7tS7VEXyOyKPN7ApAzZpHRYFav7qqNI6fLW113uJkdxKmkNOoA6AI2dyk2PuuilO0ENkvrQro5g==@kvack.org X-Gm-Message-State: AOJu0YzNwiP0ErfVyHrYnJgO+xz1UpQAadFa/4PepFLTT7rDiE/HktXb LBFLb9CGvwEeqW7J3tLjPQ1Jv1XXgpbXdwWR9lrOwrepz/mJFKyqXmcceVdth8E= X-Gm-Gg: ASbGnctVwTQYc6uWs6T4UkVBg7ONDrMpqL7aIPfL0SovmRAltDwmyrf9GVUH0rfgfeN 61pdllHWl2WP+KBj7PKm1RtdYhEUtDeGdPcXDhSQjYuT9DhH3xlnAmktt4U6tZo1RpcVq/7ck0t 91cEXMVQb/+9cwL9qOCBGUXiJnXcEjIJXTKONaqjmpmlstppAUELngCVhIwO+gUphrb+dfDHcnS FgMDW+x7Ll4O8hZEAQyXY2YW41oNv2r1+gQ1QGT6iB54+UPOs9B2hV9cgD3AODpKs6wbFdATNQr 6NjflBSYaztZxocAdd1CAalqTAdF X-Google-Smtp-Source: AGHT+IFAz153X5vcICG8zzXj6wcDOOnjP9Zg1pwaZ/blrVka419ZdJB++ySz04hKJ+rtzkgtRskeAA== X-Received: by 2002:a17:907:3e17:b0:ab6:f4e7:52f9 with SMTP id a640c23a62f3a-ab789aed845mr1525011766b.25.1739186346349; Mon, 10 Feb 2025 03:19:06 -0800 (PST) Received: from localhost (109-81-84-135.rct.o2.cz. [109.81.84.135]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-ab773331db7sm844842566b.127.2025.02.10.03.19.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 03:19:06 -0800 (PST) Date: Mon, 10 Feb 2025 12:19:05 +0100 From: Michal Hocko To: Hillf Danton Cc: Frederic Weisbecker , Marcelo Tosatti , Andrew Morton , linux-mm@kvack.org, LKML Subject: Re: [PATCH 6/6 v2] mm: Drain LRUs upon resume to userspace on nohz_full CPUs Message-ID: References: <20250209223005.11519-1-frederic@kernel.org> <20250210105028.2134-1-hdanton@sina.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250210105028.2134-1-hdanton@sina.com> X-Rspamd-Queue-Id: 255F040011 X-Stat-Signature: jqfbw5x3jwyx6r6ffjifhu4jxdxay8zm X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1739186347-101123 X-HE-Meta: U2FsdGVkX1+uTzWtMHvsjUlZswx8qCE/tln8NwCHykTekdnD2TFrYNxQcCvFI7EvapX5TrNxirSb9ioDHNssyZBKjG9kX6MGREfTIuGa9l3JScc+/mq1kRxhCkacmwXfZ4rprmfBXaF3gsblHJH9/cuDBr/2I64a7MKcfO9S2LZbU0ygEIdglYEyZsaGp3QhnIjz/KQi8sqlhlAdrgDoWV63uO6qseLCcZAHENYS5GKTw3YpHUys37AfHNV/H5MlsPwLAuSeH7T1Ca/CXJhCblXQey/7mr/wQhkvrHoqnLdXZ+c1QfeNmKV3CQUihG/d19/eEK/xoy2rIpox1GCUAOGS5bu/lo/VPBk1YvIIscvmYkFL7VI8viBBZ/ztyik1h8qhjNeg9cxhartU8RZ/vp8trOpS4EsjsfAL5ZVF6l6Bdlpwj/kFAnU6bpelcX4iTrgqcqbuyun8lGYm3GTn5wWjzkTRX748D2EnWhfn7v62JNO4r1J6itXMYEz21FP8XzkYgg9b/r9y0XqCFAyexs3RHM6ebvhi97Xsur2dZYi8hX84ta0h7vQD8pfzLt8gHc2ePTdTbUm1EZP/+B6Njgaix1GUmht4a4RuQuPFmSyQyV/MTqLcAs9PlSgS5qBMnzr/ZiAscqQ66W+shi4XYYvf12L0Y/wHfbnl0z+bwFiw0zwoeu4cze6HVZKOyg821zWX8UltvnmzQriKwiFYnDR1yxDJ+/X3MISyXeEQhEaOQ3hOes40MteUzmRaYmAEF3DJDHiVcj6dHBz5ogfYAhZfz1B4mFbLmJvpcnf4vPzjUZV4wWexpaqqqYREy5UTBPqqjfCALJAKzYoc1H7loeHY3xZao+OJKKOoswhrUsIG3MJGVFfTPwSVLQSRVFZV3vFnx96RX7qrIGopZ+et2/np21rasrnXAFK4Yx12/6/YlXRcUlglXYDlaCEsR8pCMFkmWTc+jRPV8U7YcjA z024SIHc 5HfWgGv7EwTc4iGQLBiAFo+m7rhTTl4iT8M6tzB7SMPF1DCOdlr+nghOzER/LtiSsOOcV7PzlL3TwHAA5pp+DVVBD9kLrOmENf1gIyWgTRMZRgQZLqA1YAo2S9q4UgL6H3okhqA+8zY6LNDFKbwFMPGrskzUXXCgEqiLJ2wEPQUvPikaNONHNpq1BGYvrZAQUpUlOyT6siTK3hUu9OAMkfJhyma4yQd+q1O0Z8Ct8A74WrAI6PSHqvrMLB9PNKPe6wIelOO+pFjjIi/+f0XP7d240P/dIKw985fTHXZ3YYYGVZGL5/1EvfP9B+14eOZ+/NqXpb4i4AQ6DvfDOMy6ZTzlQ9CwEhoe6S9aQPX8N6ZtM/bNpApodhe+Git1r5zrNA8JU 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 Mon 10-02-25 18:50:26, Hillf Danton wrote: > On Sun, 9 Feb 2025 23:30:04 +0100 Frederic Weisbecker > > @@ -769,6 +772,9 @@ static bool cpu_needs_drain(unsigned int cpu) > > { > > struct cpu_fbatches *fbatches = &per_cpu(cpu_fbatches, cpu); > > > > + if (!housekeeping_cpu(cpu, HK_TYPE_KERNEL_NOISE)) > > + return false; > > + > > /* Check these in order of likelihood that they're not zero */ > > return folio_batch_count(&fbatches->lru_add) || > > folio_batch_count(&fbatches->lru_move_tail) || > > -- > > 2.46.0 > > Nit, I'd like to add a debug line to test your assumption that > isolated tasks are pinned to a single nohz_full CPU. Why? And why would you like to add a trivial VM_BUG_ON vector to the kernel? > --- x/mm/swap.c > +++ y/mm/swap.c > @@ -767,9 +767,10 @@ static void lru_add_drain_per_cpu(struct > static bool cpu_needs_drain(unsigned int cpu) > { > struct cpu_fbatches *fbatches = &per_cpu(cpu_fbatches, cpu); > + bool yes; > > /* Check these in order of likelihood that they're not zero */ > - return folio_batch_count(&fbatches->lru_add) || > + yes = folio_batch_count(&fbatches->lru_add) || > folio_batch_count(&fbatches->lru_move_tail) || > folio_batch_count(&fbatches->lru_deactivate_file) || > folio_batch_count(&fbatches->lru_deactivate) || > @@ -777,6 +778,12 @@ static bool cpu_needs_drain(unsigned int > folio_batch_count(&fbatches->lru_activate) || > need_mlock_drain(cpu) || > has_bh_in_lru(cpu, NULL); > + > + if (!housekeeping_cpu(cpu, HK_TYPE_KERNEL_NOISE)) { > + VM_BUG_ON(yes); > + return false; > + } > + return yes; > } > > /* -- Michal Hocko SUSE Labs