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 60E36C369DC for ; Thu, 1 May 2025 15:50:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B5F216B0089; Thu, 1 May 2025 11:50:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B0BD86B008C; Thu, 1 May 2025 11:50:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FB5D6B0092; Thu, 1 May 2025 11:50:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 84ABF6B0089 for ; Thu, 1 May 2025 11:50:37 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 139BF1A0F8F for ; Thu, 1 May 2025 15:50:38 +0000 (UTC) X-FDA: 83394776556.03.E192388 Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) by imf17.hostedemail.com (Postfix) with ESMTP id 2398840003 for ; Thu, 1 May 2025 15:50:35 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="WkwN/HFX"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.47 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746114636; 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=e/gkyM3oFDnDmiC4diCmIxvY145pRyMQi2rIkFSJT9c=; b=RfdnK3acLCyZr0pZNk99jM+ELfOp9UJWexOJ2dkmBlot+YrBiuEXH27KjpPK92WZrfQMXX 2gK7phlj2Znlpt1A8El703FLPvRWRK9qnd277wti80TGabk+5yWRStBjskhkvbabHzi7KJ HlN5vxrL4uVPcS81gl5VWm95A6CviSs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746114636; a=rsa-sha256; cv=none; b=EERBs14MozWPGr8/Cz1SUKEXQS/lZSuWwjSU89ibZJ4hhovq+GN3Hp1Ee5wnV+9Yj/ovTY sYFkOkq4klKWRfRrVVodjFAb/d+WGza8/a4dDJM0tCb8cP4bdtVRjZcR91BjAFfs+EL5qY 76MRDoUksbJFZ2lWtv0FPd8ROkiqIcU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="WkwN/HFX"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.47 as permitted sender) smtp.mailfrom=nphamcs@gmail.com Received: by mail-qv1-f47.google.com with SMTP id 6a1803df08f44-6ecf99dd567so16715846d6.0 for ; Thu, 01 May 2025 08:50:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746114635; x=1746719435; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=e/gkyM3oFDnDmiC4diCmIxvY145pRyMQi2rIkFSJT9c=; b=WkwN/HFXtQh3+HI5IXK6YQLBlUClUm6V7yW8JYnv1bMhraMePZC9jjmeq5b9JpKyFs CxUgIXD9kzUSnaCraEx7Vt8jtMWgmDmngGoEn8XFWsV7MMCwdDBPoiElKw4IMSjfe1Qt 1NaPZgbEPZzsK/Ep3ChooXbT0uVVMXlb6ENibRrMoDomIWiQ4XXAGqKd+Gp/VGk7g0Ft HEntlBWHygf3eJD6tmnCkpv+LFKyVRjKGtGGO9La5foh/Xxz98UiqQiKnqo2VLDZ635F djD7mrpn9evscgaQBnBhBByeu5hjBBat1ULWNiIGPhLSuVrxPOyjM1Hz8gqNTCRhnhr5 efXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746114635; x=1746719435; h=content-transfer-encoding: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=e/gkyM3oFDnDmiC4diCmIxvY145pRyMQi2rIkFSJT9c=; b=YxukDlhTT6SCi5h1zmmxk7zdFugYaqUpiPXD40rzwJUbUSsaXMyTCPGZr4Vj204v79 666E592uzKgKtyllMnvqmAtS+BOZpUJn7PShm+B6xBeesgZxyaCeM5/hAA8OB3LY4X9w iqDyvpHN1M4ODUw7W99Yo5+g88ez6QBHaAa5o5KUP9qg5emDE2NraM2Etqx4RloKul9l zjutZjRcDDdX21IRwrTOGOHkWwezq7yn0Rq5qfMt/oRPXjt5ImYVmhTwe5TPyiZdvSRJ CubYyg18DTCurRL1QU3qjZvyAwVh89pNWWBnNxBWAc0mpHdiAEPVo5jPawFVvkaeE06w Lg5g== X-Forwarded-Encrypted: i=1; AJvYcCW+K5DXfykvMjOOFCtxR7SvEwjqqiYs7ONJlEgNpc012+9CSgwwI8a1FLRIegPC0Riu4eKVoY/Ccw==@kvack.org X-Gm-Message-State: AOJu0YxShRNn5Mkz2OWcS3ONou8kQp2XjBcW/uaTy1DSZ/quOveNv9Vr sL7VJMcucZXmeyUF+yqtN+7KX7rf97XFDVfy3HuE34JROVPuEgQ9YIDYJ/nXKWlgFxB8f7Wubju Ysott+vglxUtoh4JCm7tFQT9getY= X-Gm-Gg: ASbGncvWPq/1d63CcyWKOh9/sgUZXlgy1BaI08ZpajVI4s5XWcokTGygRX5Md3HpT5h Mhw2Iwk7vaAIhqO7Vg6dpbzCESTMsIMcu1m18svluQqNal4aJjdqFjXg9Ago35+xy7OoYBGf8d2 PSbr1acsh1O/DsijT6eWp8D90= X-Google-Smtp-Source: AGHT+IHO/1JjpQlA3vZ2eRSDQvhzoweYMhYgCYf17uHdH7Vil20W5pGnhp9djE4FSIg3al8nnvRqCoV7aBjmQR5yuEs= X-Received: by 2002:a05:6214:d85:b0:6ed:122c:7da7 with SMTP id 6a1803df08f44-6f50a8fa520mr51081636d6.5.1746114635123; Thu, 01 May 2025 08:50:35 -0700 (PDT) MIME-Version: 1.0 References: <20250430082651.3152444-1-qun-wei.lin@mediatek.com> In-Reply-To: <20250430082651.3152444-1-qun-wei.lin@mediatek.com> From: Nhat Pham Date: Thu, 1 May 2025 08:50:24 -0700 X-Gm-Features: ATxdqUGn8eYuPIj4I1IzzOIEq-VCYnYbbowQLijhdEqfyu9by8KrA7NerQXniyA Message-ID: Subject: Re: [PATCH] mm: Add Kcompressd for accelerated memory compression To: Qun-Wei Lin Cc: Andrew Morton , Mike Rapoport , Matthias Brugger , AngeloGioacchino Del Regno , Sergey Senozhatsky , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Casper Li , Chinwen Chang , Andrew Yang , James Hsu , Barry Song <21cnbao@gmail.com>, Johannes Weiner , Yosry Ahmed , Chengming Zhou , Shakeel Butt , Kairui Song , Joshua Hahn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2398840003 X-Rspam-User: X-Stat-Signature: 18j14pspew7igqyf6rowtwqpsf55gek3 X-HE-Tag: 1746114635-287261 X-HE-Meta: U2FsdGVkX19MpHMopiuEjbnPe5wqtQMlH92CKy63HZAnn4z7ni2v6ZAtXFleS4WqmqiMn/FY4QlZz8dhfU1Kw0A5g3NAB+PgvoqdDYOMBx6z8FcSVn2VMkoljUfGd8w9sULjDSTJSLKUpRDvNTMAzgdO48AdUV+Q5yQ66uzN1eORZ6+dQDwKH8UjFmPryATiWESdZ4WQ76hjGHG4BJfthyCOmByT524Wsnqi4DiLBosPNMhNkXnN56i3J7Sg1yh5UoLtNxKFjDb9b4gaDIjybP04R0ycStQuW/5Dn6xWaQQCX//pzAQyGmx1oTXQvUVirMN9Rz/x0+ZUGzWBuGNiwpur/930d146rGbu2kk8A18f0OiPimQKQO1v3TEZXJx+rgW8qSAvd2BJB99A+tDXwQD0S4DIPTU7Z97JljJgsgFZfdn11F4j3X1g9rOwcUwex/a5DdYcI5OO+tzI3mC4F4shV+geQZ+NX9CRZHzE+AvcEnS6CSbpmRJrFoRnO0JhWHDVAcW+rqdzJybJP83mJZpe+J7wF7Cc98DCVStYdukvWxlNzC3mckRy9voBTOYwTuxyHq78oe380k/cJWC/T6hNK+T37vYFa99pKzpA15NBDhIQiVNYlh267nV9Ekuult9cIqAmRvceFLsEOjS7qIR39Cf2TOxEK+yqGLxeJw1qrZeT5TEaPYdPYLj//94yowgSNAgOtl69SY4vSo/CmIqpDknd5ES7G1tn8XOOkUJJIsNbvfZN8seZRH0jmZuUsnBZCSlntqfDkL39zhmuM1bx5/oDkIxsHxyY8ozBSD1qPxOgkJ18v3aAAr6owq8GHq3spIt/8F9DdHHFqYpDEilKPrDe9h3GO74cKnJKjFW1XWvTiniLcRyxJ8zCCYJTVswbrzXAJstHTIVNAPXza7VYfMLWxIW+rALalMOYen1dqkT6fwT18Uf5k+53P0MJgB4k5UswtitiWnnDqec bw3ZTCzK tIpd2D2TN8/0ZmR5DcocUKUO9pThp5+HpmKCEhXZmsf6cDLbD8Nn4sWoZ4E/sLlSHEZQAAsLrZo/2noiCxliBn7nYFxxN7j4dJtAxu8UO7TWZyRGxadEKcqTBUHMSX7tZeM6NwudU5sPrRE7EVq3iN82A0Eb9iy20ptLW1l1aGIco9pVluf/svaSiyyKahWqBmxyLE7/SuVprfK6tWBg9arucG/vaOX/ux87Eh2VrmLrLvTJ4FrK7OOIW7yyJgRFQteqdVNhKJOclIHEzEpNzatjYjz5WdbiVxdPtplGTbKwmlnky4HuENqvklmC8jegUwzgigPqSu8Cz6u5CaptYFl1oWzmU3c9IOePAnL6UKhe+ajojYThJ9ndLUt1CXK1IVqEeWbmkpM/rl5h1F4CCCdU+k0mNNYDeD6ncPLlJi3v+GPiwp1iT92eFe5mffcE60C6WRcTbtxz7+a3uV3aKqk4ZZ9i45ATOEKlp 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 Wed, Apr 30, 2025 at 1:27=E2=80=AFAM Qun-Wei Lin wrote: > > This patch series introduces a new mechanism called kcompressd to > improve the efficiency of memory reclaiming in the operating system. > > Problem: > In the current system, the kswapd thread is responsible for both scanni= ng > the LRU pages and handling memory compression tasks (such as those > involving ZSWAP/ZRAM, if enabled). This combined responsibility can lea= d > to significant performance bottlenecks, especially under high memory > pressure. The kswapd thread becomes a single point of contention, causi= ng > delays in memory reclaiming and overall system performance degradation. > > Solution: > Introduced kcompressd to handle asynchronous compression during memory > reclaim, improving efficiency by offloading compression tasks from > kswapd. This allows kswapd to focus on its primary task of page reclaim > without being burdened by the additional overhead of compression. > > In our handheld devices, we found that applying this mechanism under high > memory pressure scenarios can increase the rate of pgsteal_anon per secon= d > by over 260% compared to the situation with only kswapd. Additionally, we > observed a reduction of over 50% in page allocation stall occurrences, > further demonstrating the effectiveness of kcompressd in alleviating memo= ry > pressure and improving system responsiveness. > Oh btw, testing this on a simple kernel building task triggers this: [ 133.349908] WARNING: CPU: 0 PID: 50 at mm/memcontrol.c:5330 obj_cgroup_charge_zswap+0x22e/0x250 [ 133.350505] Modules linked in: virtio_net pata_acpi net_failover failover virtio_rng rng_core ata_piix libata scsi_mod scsi_common [ 133.351366] CPU: 0 UID: 0 PID: 50 Comm: kcompressd0 Not tainted 6.14.0-ge65b549702a5 #218 [ 133.351940] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014 [ 133.352717] RIP: 0010:obj_cgroup_charge_zswap+0x22e/0x250 [ 133.353118] Code: d2 ff 85 c0 0f 85 7a fe ff ff be ff ff ff ff 48 c7 c7 88 da f1 91 e8 a1 b4 a3 00 85 c0 0f 85 61 fe ff ff 0f 0b e9 5a fe ff ff <0f> 0b e9 f5 fd ff ff e8 36 ae a3 00 e9 78 fe ff ff e8 2c ae a3 00 [ 133.354372] RSP: 0018:ffff9f99803bbc00 EFLAGS: 00010246 [ 133.354782] RAX: ffff970f42a9a900 RBX: 000000000000013e RCX: 00000000000= 00002 [ 133.355269] RDX: 0000000000000000 RSI: 000000000000013e RDI: ffff970f475= eab40 [ 133.355774] RBP: ffff970f475eab40 R08: 0000000000000000 R09: 00000000000= 00000 [ 133.356269] R10: ffffffff90a21205 R11: ffffffff90a211ab R12: ffffffff90a= 21205 [ 133.356782] R13: ffffc4984041ff40 R14: ffff970f42e66000 R15: 00000000000= 0013e [ 133.357279] FS: 0000000000000000(0000) GS:ffff970fbdc00000(0000) knlGS:0000000000000000 [ 133.357807] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 133.358186] CR2: 00007f33950c5030 CR3: 00000000038ea000 CR4: 00000000000= 006f0 [ 133.358656] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000= 00000 [ 133.359121] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 00000000000= 00400 [ 133.359597] Call Trace: [ 133.359767] [ 133.359914] ? __warn+0x94/0x190 [ 133.360136] ? obj_cgroup_charge_zswap+0x22e/0x250 [ 133.360476] ? report_bug+0x168/0x170 [ 133.360742] ? handle_bug+0x53/0x90 [ 133.360982] ? exc_invalid_op+0x18/0x70 [ 133.361240] ? asm_exc_invalid_op+0x1a/0x20 [ 133.361536] ? zswap_store+0x755/0xf80 [ 133.361798] ? zswap_store+0x6fb/0xf80 [ 133.362071] ? zswap_store+0x755/0xf80 [ 133.362338] ? obj_cgroup_charge_zswap+0x22e/0x250 [ 133.362661] ? zswap_store+0x755/0xf80 [ 133.362943] zswap_store+0x7e7/0xf80 [ 133.363203] ? __pfx_kcompressd+0x10/0x10 [ 133.363472] kcompressd+0xb1/0x180 [ 133.363724] ? __pfx_autoremove_wake_function+0x10/0x10 [ 133.364082] kthread+0xef/0x230 [ 133.364298] ? __pfx_kthread+0x10/0x10 [ 133.364548] ret_from_fork+0x34/0x50 [ 133.364810] ? __pfx_kthread+0x10/0x10 [ 133.365063] ret_from_fork_asm+0x1a/0x30 [ 133.365321] [ 133.365471] irq event stamp: 18 [ 133.365680] hardirqs last enabled at (17): [] _raw_spin_unlock_irqrestore+0x4f/0x60 [ 133.366289] hardirqs last disabled at (18): [] __schedule+0x6b1/0xe80 [ 133.366824] softirqs last enabled at (0): [] copy_process+0x9af/0x2b50 [ 133.367366] softirqs last disabled at (0): [<0000000000000000>] 0x0 [ 133.367844] ---[ end trace 0000000000000000 ]--- Seems like we're trigger this warning in the zswap cgroup check (see obj_cgroup_may_zswap() in mm/memcontrol.c for more details): VM_WARN_ON_ONCE(!(current->flags & PF_MEMALLOC)); Might wanna fix this...