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 A6A2FEB64D9 for ; Thu, 15 Jun 2023 09:35:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 24E986B0072; Thu, 15 Jun 2023 05:35:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FE636B0074; Thu, 15 Jun 2023 05:35:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C6AE8E0002; Thu, 15 Jun 2023 05:35:43 -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 F1ABA6B0072 for ; Thu, 15 Jun 2023 05:35:42 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BE651140AA6 for ; Thu, 15 Jun 2023 09:35:42 +0000 (UTC) X-FDA: 80904474924.28.1761101 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf18.hostedemail.com (Postfix) with ESMTP id D68151C0018 for ; Thu, 15 Jun 2023 09:35:40 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=Tb1o1o3W; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf18.hostedemail.com: domain of mhocko@suse.com designates 195.135.220.28 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686821741; 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=d39ZQ9SlNHEIcbFBtB4BFJzLZO0sDtDQiB2wLC4guso=; b=hPfjsYGD08CpZ7G7uR+3P2m1SAZWe2/n9j2E9ddDD98wk963WHHdpmF3uRU9op7QaFZ6jN IMIZPHXg39KsvKRTB0pxyzWVgEZzl5sCEvy7XU8e3vIcBWRjjO8X0Au171z8e5+dnrLilc GjVfsrQxQl5rKNeIu7mI16gdZg4a9kU= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b=Tb1o1o3W; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf18.hostedemail.com: domain of mhocko@suse.com designates 195.135.220.28 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686821741; a=rsa-sha256; cv=none; b=76Lv2UV1B8r8FiQ5be5/RhvoBZnwjBxGePYrdPH3zLiYbbvux0LBbG9z0/uVi88hsQH8TP GwSw1N3X0B5cecvmbzxxsvaW1wupu57uzmIhnD4vWPEeS3oa/VQ7HXgCJHh25UqpFDAJfe lVw5v6SfXeY+auu1eiKtfi8qc5i6i8Q= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3384B21A9A; Thu, 15 Jun 2023 09:35:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1686821739; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=d39ZQ9SlNHEIcbFBtB4BFJzLZO0sDtDQiB2wLC4guso=; b=Tb1o1o3WzqXIn8H3JgDLPA64csrHcqDrGlZvuMhBscIz8cM/Vm3dSlsN51nkm+Vkw3gG1z 9K7KWiB8tSHrL/bo3camWIqnhUS8uzlAcSsI+gyehBOh69ev4ycxfEzqoYa1VpR3vtTuHw svpjLLUrX5iNcrcDccoocJggOKyRPWA= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2637513A47; Thu, 15 Jun 2023 09:35:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id FkdMCWvbimTMVQAAMHmgww (envelope-from ); Thu, 15 Jun 2023 09:35:39 +0000 Date: Thu, 15 Jun 2023 11:35:38 +0200 From: Michal Hocko To: Zhongkun He Cc: minchan@kernel.org, senozhatsky@chromium.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 1/3] zram: charge the compressed RAM to the page's memcgroup Message-ID: References: <20230615034830.1361853-1-hezhongkun.hzk@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230615034830.1361853-1-hezhongkun.hzk@bytedance.com> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: D68151C0018 X-Stat-Signature: 5wuiby9zcxxwcxkabc694mwcnawmry9q X-Rspam-User: X-HE-Tag: 1686821740-978157 X-HE-Meta: U2FsdGVkX19MKcgdh6NXJPhvqsKCtbNZ1n9a0r6nHIk2kzZ3CZrneT3r8D3bBUrstlFm5/oB9sAw6JBSdmbSEHKYkW4TSJ7iOsTjiu10C3lBHitUCJNY1dlhuTwpj3mZDlXQN6N1gdQn1SB0JR9ILIzuOWUIHV3e6qqNJk7JJAv0EZxYSMBq2WXtT/AVQl4ja9jMciL7S1Pwr9PSiFHDskvMq3/lg6FiVK+iSGobSpyC5RD/xkhKwj+dv3pzp84jMFdGqFWAe496n42VaPVgNr5DE5K4Qc0gS9xwzreA8/42KAhrx5qFyuqxktp2mBwL4llKyzK3dqL2mnqaLHLlPdh2S4VEY/TLtMewgjaEdIdu26IkiaPL/ayWgwxZjM/2SmyMBx5iDRJdmDBr2/wPNgXEQzALfp+k3xI5hXGgZnfLhjnKKNz8gU8n6XV1zUg52m+To8Fv5ev7d0CnZY9kbNeYINna3XHYfgpm+tSM0vf/bKxETEN6MVbjVpuPBJxS0E7Wub59xgVikebQ1SYTSttX/8wrDPDH6Ojg5TPG+4u1Z/ep6etov7oapaCYf5hW8vPVKt/OdxUndl7udf1m/SkcjfM3EmxedSxIxJIbJ5a5AS62O3/KnE/lx56Kz33/wjIrcO+nPuOsswYUJb2ye+joiPjDaSJntXrzI3WMbZEZmNe1Wof6rCJcRY3uNiDA7Bf9SWOuD68vbWl+T8qJf+q/xjPwAmjHKBfb1ZzT07+UgSPQA2gca5gUgwQLox4D8uwkDy9DsVZApaz7t2SaHeEbqIEisTvwXCN0kVqVds80+DxEt7VsxNqJTJIIKgNxkn27b9EAw/sGCfV0fg4mV/Lg6hnl31UUuo8Y0uqda7srQuteIz7L74bYH8b2K7odhJbfEo8gKarWseK4/h0LE9yOP4oBzhc3odwrakq6MTSXRjdZwOGdxR2qFkbDAeCbT/MINN0V69OjHlyMxJE IgUDETp0 OzPVnX8mIaq8ZIGR0yTQvSDlVhMusl3l/ZHlhLAgv5601xS/JLtJiTULd1fx7PofbKHq11jZVRpqhvicpUXxByIVVtdlNb4Geao0H2ju1EFG0L8VjiDItaKLNy7Rc0JiOwfwPv+fptjuqvvSTJauurXLYSw== 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: On Thu 15-06-23 11:48:30, Zhongkun He wrote: [...] > @@ -1419,6 +1420,10 @@ static int zram_write_page(struct zram *zram, struct page *page, u32 index) > struct zcomp_strm *zstrm; > unsigned long element = 0; > enum zram_pageflags flags = 0; > + struct mem_cgroup *memcg, *old_memcg; > + > + memcg = page_memcg(page); > + old_memcg = set_active_memcg(memcg); > > mem = kmap_atomic(page); > if (page_same_filled(mem, &element)) { [...] > @@ -1470,8 +1475,10 @@ static int zram_write_page(struct zram *zram, struct page *page, u32 index) > handle = zs_malloc(zram->mem_pool, comp_len, > GFP_NOIO | __GFP_HIGHMEM | > __GFP_MOVABLE); > - if (IS_ERR_VALUE(handle)) > - return PTR_ERR((void *)handle); > + if (IS_ERR_VALUE(handle)) { > + ret = PTR_ERR((void *)handle); > + goto out; > + } > > if (comp_len != PAGE_SIZE) > goto compress_again; I am not really deeply familiar with zram implementation nor usage but how is the above allocation going to be charged without __GFP_ACCOUNT in the gfp mask? Also what exactly is going to happen for the swap backed by the zram device? Your memcg might be hitting the hard limit and therefore swapping out. Wouldn't zs_malloc fail very likely under that condition making the swap effectively unusable? -- Michal Hocko SUSE Labs