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 A1EA9C4828F for ; Sat, 3 Feb 2024 04:29:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CC406B007D; Fri, 2 Feb 2024 23:29:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 27C426B007E; Fri, 2 Feb 2024 23:29:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 11CE26B0080; Fri, 2 Feb 2024 23:29:29 -0500 (EST) 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 027AF6B007D for ; Fri, 2 Feb 2024 23:29:28 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 128CCC074A for ; Sat, 3 Feb 2024 04:29:28 +0000 (UTC) X-FDA: 81749213616.26.EB7C46D Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) by imf03.hostedemail.com (Postfix) with ESMTP id 238AD20002 for ; Sat, 3 Feb 2024 04:29:24 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Ailh55sS; spf=pass (imf03.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.215.174 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706934566; 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=1OOpEywyK6PX3KS+rQWL+L2zrjo4/gGzpSvMxyFSqgc=; b=J0o95+Gv6EIw5bzqUFjn5wuaoGz80w8Ub2ZITIc6pGeEPadLgpfrtufOxKvy5aC5cqm7iH u9yH5BsPmlSFwRSOpq4y+5WrbcDehRvzi8zD5QOQoUoO8q4xpt9hmRHFt6gaXcojY2ecgW stJx09vFLJ1Cl24Q867BiERAF3B7gAY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706934566; a=rsa-sha256; cv=none; b=ujy/5bfBQ7lGYESftA4hbUB9OtdKzZ2jlpL3JLCvl4ePz6NW8sn1NtZNkt4gpJpNnUzezy hnl85i4Q/lUPtupud9DFIQR3/Dbizk4C+GUuLdVJiuo3z/QAAj1DF58UsBHqNV3vb31ib/ QUCMRoDWP+0tPMzWqNO9gNHSl1u2HtI= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Ailh55sS; spf=pass (imf03.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.215.174 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-5c66b093b86so2902551a12.0 for ; Fri, 02 Feb 2024 20:29:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1706934564; x=1707539364; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=1OOpEywyK6PX3KS+rQWL+L2zrjo4/gGzpSvMxyFSqgc=; b=Ailh55sScPjXR25Kqt3XtwFt7y98PKg+GvYvrRXc8VFux4F5cz68F8lQk31NpvdW5p JqO51SfS79919SvQKJwyNZbXXtQZvY10WEenGMCJUMu9vuiByPMW/SUrP6cZxVGZ0oaA XT25CPM9SrvJfqiAN61q4mfTVAGhMquZpwK8yx7illycImcSBwpSij42liyX4VB5lyx9 Pm/1YGk0RYj29EN7fznga+v638Kqz/dQ4wjKyxUIR7t2Zu+sSwEEZMhCHpV+T+0tQGsE uv59F9oJgKFwEjG3qSdn685eG5+NTFThPxsRewHQZ0v0KlW1aVZDRR/v36v42UvTXx5A 99Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706934564; x=1707539364; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1OOpEywyK6PX3KS+rQWL+L2zrjo4/gGzpSvMxyFSqgc=; b=H/ochLVgJKfSvOi0cnEvAba9bm69XOptaYScmPv0m5ux8K9JStHBm4HstUEvvuGbDp a1HaVyyVlgFmC13C3eCcDhkht/yTzHfqDkhjDbhNm6CJN9VrHnh4selJNXGg538sVjMG IcTqwcVQ8t5i7SMKt/cjWWBW0FwpTb3YoZ7VbEysy04wDZ8X0u5bhb1b++opyQdWFqzw th2QmwxiE5voAcmR4w4W1YCMyC7YG4UE7OjZftVT0UpjZK23hySkcK16ZNBpCzB8MbZZ 1loxAH8VWbVXDnojGhE3oERfgbj32kUJ1z4zhNlKaEmp0EDm/qdunIpolCfOhRjBqHij VPcg== X-Gm-Message-State: AOJu0Yx4ti//J7Lcev4di8muWs53xVQORh9z/HDfYsLjgs7MeEbf+I8y AxkFCK3+TKA24JovbCHkdPngExssf5PqCKXAUsW/qah+Zb89oLJnZXBXcJ6okfE= X-Google-Smtp-Source: AGHT+IGn4oPkO71WxukoX1CXReQti9d0soaDxuC8RLqOG10MY5XTB2tF6jUoHIozJFeEIXLwehIMOw== X-Received: by 2002:a05:6a21:328e:b0:19e:3839:4fc2 with SMTP id yt14-20020a056a21328e00b0019e38394fc2mr903713pzb.26.1706934563683; Fri, 02 Feb 2024 20:29:23 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCWsy5iHsgi0/7lWONXylSavwzjl3LXlbzwKWLoT4phVm66hn6dRJIu0Zsk73Zn+KR5t3KlfTlJJT9dwl8sNedyLikih3mUjodRzQQYkUzgJnGHEjfAzt5Ne5WfzEtQKW09m6YORcudd2qMHpjyd42WTZ2JkdhIWOrA48gSWhqmCAEFR/zu0Lu06oVMuGLHGAtPtaw== Received: from [10.4.12.121] ([139.177.225.224]) by smtp.gmail.com with ESMTPSA id u27-20020a63471b000000b005c259cef481sm2601789pga.59.2024.02.02.20.29.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 02 Feb 2024 20:29:23 -0800 (PST) Message-ID: <80460fe5-baec-4e56-9e10-a233e5a3c8d3@bytedance.com> Date: Sat, 3 Feb 2024 12:29:16 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/6] mm/zswap: remove duplicate_entry debug value Content-Language: en-US To: Nhat Pham Cc: Johannes Weiner , Andrew Morton , Yosry Ahmed , linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20240201-b4-zswap-invalidate-entry-v1-0-56ed496b6e55@bytedance.com> <20240201-b4-zswap-invalidate-entry-v1-4-56ed496b6e55@bytedance.com> From: Chengming Zhou In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 238AD20002 X-Rspam-User: X-Stat-Signature: 4ukd9a4jppeu4s6eze6aisk6kkqoek7f X-Rspamd-Server: rspam03 X-HE-Tag: 1706934564-881330 X-HE-Meta: U2FsdGVkX1+AF+l1LBdgIUxqWVOZ1p8bnhUckRtE/R6z2/MK6lOJO7zE+nD2I6MFEtaol1PKEWpRse7xxROSZ1owdPdJ03uYyMjJDe7P58BZUhDGXDYzxl8JvIOT8hbTGi9OzSXvMikMlHtZ6TUjigglFwI+sAMDryySrANpDlKcazyXKnfG4WkH87kx2B0Wv9hEii2G+vwUDucxn0mUsZiEUt821a7V/fZSUCWzmrScUw5rpnIbFFQkI8lkXYVMqReHY2JhIUWfTEsI+sQ0+gsD/SYjHHWiNG1lvY//QPRTFpsYybBmx3mFL4QkR30BYOeW6B6wEaOanzU1Ex+WDX9UrCT7GkgEr2xrvB+hqwW1lV+W6Im1I3C6+1vVnw8e+vA3WcE5GIaJHosAT/AAL3DLCu2HTG/NFsGiqzH/cNC+mh5EH91Dwq3lQ9UHWnww4EepeYUA5oh23cXMuywviHQYDYlz6MCChvKS1sB9+dw9X2BtIkPX//C7/fVR6zOmB25uCFmTexqPWKMYyipYxSb+Ra48QX6hY40JBCEp7HNEPmT65wTrXoet9NsEDS+geqbyfzrLdLeGFgI0FNTe6ur7M5wuSMkyo4pSj/8r2u/obX9zMcpwGtQdGL0k3O4Y+dV+SgHumbofeHXIe8B2dlomqoVBB0Ob6z6DwM0QEwz7ILaq5/VEv3ddF1mR3EqkU9Zwr2ofBdqek8jQy/Bu0mBzKUI2wyEWBkbQ+NakZ1dpYxhigUe0gnzmbjGmuLDZMqbaQJD+HW2C8OAENcavx5NUSP6hPt6KEh4CEoVL2WlXEuHitE9C7PMtWVcbj7Ra/6kWTApilM8a8g+gGAwOyNlm9zQ7GKdQlpY5/BAH2dUkAf18E7PiZRoSozM4mTQZsIru0FrAV3xG5ZkxJGG0Wo1QrfduZellHACeYzZOR6hxXQEvCIOYKVtLTDru34l2xSfbhb3js8xNRv8utJO VfzmgBzB 1MkYy0OBjI8XYmZ1UavlCBcpFqpgFA8jCwJ9VveUx5/KHxrlnl5Mbm65tga/mkQKaJLBHSQXzIR685Is6sjgXu6dDr2vV4oADk94cL4tb70Neuglk0Ql95AXFohy0/lmMYiWESNrV1oCmVE0cbEnWE5E6a/qtcRdsalCaTLGPU+9jnkkhGzqvkUQ7rcgODDYyRAYqs4O8p6P6pabYYEdMUi6fKphQHIylmhmvRYwxOwLM0wQWlb2ZbQwFW/TH2k4YdRrablWGlPaazh168UETLMhYaZZPNDq7JH0aHRS5qchKQDF50Bmq+nUDCc0TXz2sbBRuo0x4FuQ3L3TPOtvRgzgBnoWVe7eBcxoZK8G/JPFjoQD3qh9JkBOKSA5G7l2q9UlPlhv+KmLZPBRQxIgMcsQ31CRoWxB6efDWqvDfYeTcNnj7SDn5WB/mEgVForWJk3IDD0davseW3G2lfSziGaz9yB75hrbgSTtgG7QIYhhkiSgMA/Nyf+21P4KIMDMyqRB1/MXJtqzveo0zfN3QeKOc1RFUWfPGVT7JZPWF9QYNmeKBd3vODcYBmg== 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 2024/2/3 06:28, Nhat Pham wrote: > On Thu, Feb 1, 2024 at 7:50 AM Chengming Zhou > wrote: >> >> cat /sys/kernel/debug/zswap/duplicate_entry >> 2086447 >> >> When testing, the duplicate_entry value is very high, but no warning >> message in the kernel log. From the comment of duplicate_entry >> "Duplicate store was encountered (rare)", it seems something goes wrong. >> >> Actually it's incremented in the beginning of zswap_store(), which found >> its zswap entry has already on the tree. And this is a normal case, >> since the folio could leave zswap entry on the tree after swapin, >> later it's dirtied and swapout/zswap_store again, found its original >> zswap entry. (Maybe we can reuse it instead of invalidating it?) > > Interesting. So if we make invalidate load the only mode, this oddity > is gone as well? Good point! This oddity is why we need to invalidate it first at the beginning. But there is another oddity that a stored folio maybe dirtied again, so that folio needs to be writeback/stored for the second time, in which case, we still need to invalidate it first to avoid WARN_ON later. Thanks. >> >> So duplicate_entry should be only incremented in the real bug case, >> which already have "WARN_ON(1)", it looks redundant to count bug case, >> so this patch just remove it. > > But yeah, I have literally never checked this value (maybe I should > ha). I'm fine with removing it, unless someone has a strong case for > this counter? > > For now: > Reviewed-by: Nhat Pham > >> >> Signed-off-by: Chengming Zhou >> --- >> mm/zswap.c | 9 +-------- >> 1 file changed, 1 insertion(+), 8 deletions(-) >> >> diff --git a/mm/zswap.c b/mm/zswap.c >> index 4381b7a2d4d6..3fbb7e2c8b8d 100644 >> --- a/mm/zswap.c >> +++ b/mm/zswap.c >> @@ -71,8 +71,6 @@ static u64 zswap_reject_compress_poor; >> static u64 zswap_reject_alloc_fail; >> /* Store failed because the entry metadata could not be allocated (rare) */ >> static u64 zswap_reject_kmemcache_fail; >> -/* Duplicate store was encountered (rare) */ >> -static u64 zswap_duplicate_entry; >> >> /* Shrinker work queue */ >> static struct workqueue_struct *shrink_wq; >> @@ -1571,10 +1569,8 @@ bool zswap_store(struct folio *folio) >> */ >> spin_lock(&tree->lock); >> entry = zswap_rb_search(&tree->rbroot, offset); >> - if (entry) { >> + if (entry) >> zswap_invalidate_entry(tree, entry); >> - zswap_duplicate_entry++; >> - } >> spin_unlock(&tree->lock); >> objcg = get_obj_cgroup_from_folio(folio); >> if (objcg && !obj_cgroup_may_zswap(objcg)) { >> @@ -1661,7 +1657,6 @@ bool zswap_store(struct folio *folio) >> */ >> while (zswap_rb_insert(&tree->rbroot, entry, &dupentry) == -EEXIST) { >> WARN_ON(1); >> - zswap_duplicate_entry++; >> zswap_invalidate_entry(tree, dupentry); >> } >> if (entry->length) { >> @@ -1822,8 +1817,6 @@ static int zswap_debugfs_init(void) >> zswap_debugfs_root, &zswap_reject_compress_poor); >> debugfs_create_u64("written_back_pages", 0444, >> zswap_debugfs_root, &zswap_written_back_pages); >> - debugfs_create_u64("duplicate_entry", 0444, >> - zswap_debugfs_root, &zswap_duplicate_entry); >> debugfs_create_u64("pool_total_size", 0444, >> zswap_debugfs_root, &zswap_pool_total_size); >> debugfs_create_atomic_t("stored_pages", 0444, >> >> -- >> b4 0.10.1