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 73E9FC27C53 for ; Wed, 12 Jun 2024 10:42:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A4F36B008C; Wed, 12 Jun 2024 06:42:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7541F6B0092; Wed, 12 Jun 2024 06:42:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5F4996B0093; Wed, 12 Jun 2024 06:42:53 -0400 (EDT) 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 396C86B008C for ; Wed, 12 Jun 2024 06:42:53 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9AD368163F for ; Wed, 12 Jun 2024 10:42:52 +0000 (UTC) X-FDA: 82221898584.09.9359AE4 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by imf05.hostedemail.com (Postfix) with ESMTP id A6FC410001D for ; Wed, 12 Jun 2024 10:42:50 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Yaw5Br+z; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718188970; 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=ejgIXmzvvComY08Yy5gfeDMSrRGMGtcObAMX3owmvqw=; b=tVw5FC2GNiFhyvWJGrmriwAZm5iawiuV+01dXjwGu13fP9wITxocCpjsdqakURu8qqEumk fe69FqW9NfzWp3WSL0E/vos1tT2+gl9lKETuU64QphZ5oawrcxo6KJoC2e+X+Txp2JlxAw 9zdh9qkXLAny1sMIaWw8RLBj3+VxqH4= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Yaw5Br+z; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718188970; a=rsa-sha256; cv=none; b=Fi8zBnPWxLXYGhxmOBOYIu6vALi+VYegzXoYU/oNYdz/AqoNa2eR1ptqkHhhF+UZWtpg1d Czo12ku9c/u/AnpwlF/Df/JdWxpYbmRZI9Ji1QP9SS2v/rVxNpWhMZ89C9906FrDqXtRjj EQ7oBOny/CG25Az0EeG98mk68R0+ay8= Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a6ef46d25efso575563266b.0 for ; Wed, 12 Jun 2024 03:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718188969; x=1718793769; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ejgIXmzvvComY08Yy5gfeDMSrRGMGtcObAMX3owmvqw=; b=Yaw5Br+zM43DHgd7FwfrxBwxiT6A1BZAJdKsxMpoiR/Mw4/QymT0Fnodx6SF/icSgZ L6/AgNCyJeOCcQE6wI4UI6ZaXII7X8rID4lYxY7ZfFSvF70wg+Nu+wdFe2X1Ksp73k5Y fcDXKFMI15cGHhqOcZs9YN1/+ZLW1g9Sk+EKV5mJSZ5W8Mcqkmpl3KzZvcYRYB8pCDUJ qt9bzqpSY9i07GWpgK9M766NtW1yFz87SDeMcRuVdKAjEr+nIuepuTaJtHOnpHIHiz+5 IttivBpX7882W2ms9iGZqYiC/wuZOezNEyVvtRzK9KJjVTny6LFnuD+rxkKesg3PKRJ5 Guow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718188969; x=1718793769; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ejgIXmzvvComY08Yy5gfeDMSrRGMGtcObAMX3owmvqw=; b=U9U951oMIH0kDUY74LZj3c1UM2TdjVNG5vv1dCqgNDTIQj2c5ZQrVVTnzAFFUTGCty Q3R7fEQCyPuTxvsM6sSFgjyddO92b2M9SqBkvKl+9TzPvXC5Y0s9EzUOM4RrhPaiy1MB Nwz5rZ6yxz3zSMH6fCPXQgn2GMRV1wgAeQYxGbJTpxTnM9Ol4ZVaHvPwEmOygH4o2601 xXr35vTb+Pzpdx3cmWsVGqzJgo/WgoOtledxNjR6e2IKhokR8nIXgHerx2iiNPyFSYF8 4dkzeoHL58q8ZDZTF6lVnZlGRx+HbLKdLKljXUPZMyqlwT5CcTlHAjUcCsMGle/C/i2A xGPg== X-Forwarded-Encrypted: i=1; AJvYcCX294HPsW4vsTw0TxzjePPYWZh/dlvZ5wk1Pmk9kv9QxyuvJh9QPQckHQwr2IrhStPtRZ+yDmalEePi3+q1yjCvShQ= X-Gm-Message-State: AOJu0YwJ3KCBut5gln0rOi6qP6OpblnKhMEkMG7JENhQn5GRb73oCrt/ kIQk200aFxvI+aqbAi0fM4QpR7ailwysrkqqZk+sIMTxMH3jd/DN X-Google-Smtp-Source: AGHT+IEZcovSaBqgCkdTE1FGjX91iscrvkVPJZmnAYq/r4gf/teWPLTxnzQ/LiTENoQ5H/yqTyJ1Wg== X-Received: by 2002:a17:907:9724:b0:a6d:b66f:7b21 with SMTP id a640c23a62f3a-a6f4800b17dmr117532166b.54.1718188968801; Wed, 12 Jun 2024 03:42:48 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1126:4:eb:d0d0:c7fd:c82c? ([2620:10d:c092:500::4:e76f]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6c8072ac1fsm872200666b.222.2024.06.12.03.42.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Jun 2024 03:42:48 -0700 (PDT) Message-ID: Date: Wed, 12 Jun 2024 11:42:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/2] mm: store zero pages to be swapped out in a bitmap To: Nhat Pham Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, david@redhat.com, ying.huang@intel.com, hughd@google.com, willy@infradead.org, yosryahmed@google.com, chengming.zhou@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, Shakeel Butt References: <20240610121820.328876-1-usamaarif642@gmail.com> <20240610121820.328876-2-usamaarif642@gmail.com> Content-Language: en-US From: Usama Arif In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A6FC410001D X-Stat-Signature: w1x17wp1s5dtmqnuf19hje4b1sa44w91 X-Rspam-User: X-HE-Tag: 1718188970-42361 X-HE-Meta: U2FsdGVkX18O/dG24INlyJEsxMkUoW2VYuG2XHvxvfdGSbLshendrozIroGQonJ6Ol7odQdtM0iWgOOVWkBy6OXV7JXYE4FCMB/ISLeXewm2ar8hxOdkXEsBUeG/ZJA5I5Tq3REF1IhezzLRGepRaRxfCfGgKe1NU0SInb0cjaoQ01pl4USJmnJgF9G8Al1JUNUrjrIA+0eMTqQ5OdCBaxbT3TQ2kq4EYcchuJF9vQKUiq2KeST755JGSMV92xbW/Uqxn45FFuVJsIn1J303Ez6FaIDVl1UHE7rOjBe65ykCQgIOVRYsuXjzHfGxCDIQruU/+u//4EU/XpsbIzkBqNpWZl1yq4LyVXOJFd+HCJ/Vy61PbvmTH9jA9fSlu9rEl0jMzorlOFKigfXMECM3nRCjbLIHfV6zn/5gIfNr1EL3FmfiqZeOrmX1jt+V4oosZYnCYDoQNpMFBC+rxIsuktNPLgeeBTFC8oB+Xid4ileas3NboPGsrtS/2aVBO8917ffehXXf9J4ayALun4LQV3ueRzoHbIH+TJqIj6rXR/cCefHAGY5w3CJxtrCSpkmZN8WDT9AvvOkxZ2xtwO/JrPAdmGu49bnE5ZtBYSQ9Ub8lZBrQ8pbeqUZpgG4vxamVggJFYnPtLnAw7+zJXYf10/io/W5bzp8NaOewo33DEZo/4Oqb8lmpPjqnmuJS7pB+flYlcAnS5Z/ozGlQYp3IzdMG7RjICGNQALP7qLabXnqo1Vjs2LQ4FnysDSF512Abb8mEJ+/EMkjoHPz3rZDFTua2KrYPsci3rvzqPc9EkzVairrFRo9lpG5Q4/zmwZSRZNbaA9gkpMKx8ZflSSPHQ8J0SlILg52P/SkQWytUzyFdjV5SVan0w/xg9TntdcJeAj1LWwd1q926mugbcquW/NrtmPEYSH1zGwxaUgvKcMJwpHqlFM7fQN94dLcPaem104ktIsWkljogFMiPMmB q4+I9NIk dxKtAlkfpaXi06gW4aV/HBtw2HsS8Nua40aWFX5g9/QyG7hcFLXGKYETzQ5IlK9ZjKHWcLy++C5sNHCgVfNyRNuxV3mqFspTt9ZM5D7QhH8MikeCNwVOekq3zlhdcHMyltGfb6HBoSPWjBhtPDFXTH+pReGsBzOFgs4/oCOptbVqDEyC0/lbJ7UybX0PwwYUDgavY1vWHvJL0CVpCCfCz7MdW35K4aNmb4fOJUCcOTJAqsXLV8CIn9IEtD3aWD1Q485W9jojHCKXwblWybeW4X8GboooUgjpwjlWYTnVUQQ3GsQVN5BTdmHCLBbaGP7Hhd4TJjQPaOb3c1x9gX/yHLVOdy4oCgEdxmxVV4yUI7Fkz7g4zXmvfWldI5ZWr68ZYDjrAirS3ThYpp+AgRxD4nsWPg+KBSlYP9ItkrgfF2IfX7CNAH6nKA5GVeg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.001660, 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 11/06/2024 20:33, Nhat Pham wrote: > On Tue, Jun 11, 2024 at 11:50 AM Usama Arif wrote: >> In swap_writepage, with this patch you have: >> >> if (is_folio_zero_filled(folio)) { >> swap_zeromap_folio_set(folio); >> folio_unlock(folio); >> return 0; >> } >> swap_zeromap_folio_clear(folio); >> > I was concerned with the swap slot being freed and reused, without > ever being read :) But looks like it has to be properly reset before > being reused, so all is well on that front. > > What about the put_swap_folio() -> swap_free_cluster() case - do we > need to handle zeromap bit clearing here too? Looks like it's clearing > the swap_map (i.e returning it directly to the swapfile, allowing > those slots to be reused) here, and I notice that you clear the > zeromap bitmap wherever the swap_map is cleared as well :) > > I jumped around the code a bit - in free_cluster() (called by > swap_free_cluster()), there's this chunk: > > if ((si->flags & (SWP_WRITEOK | SWP_PAGE_DISCARD)) == > (SWP_WRITEOK | SWP_PAGE_DISCARD)) { > swap_cluster_schedule_discard(si, idx); > return; > } > > swap_cluster_schedule_discard() does clear_bit() on the zeromap on the > entire cluster. We also clear_bit() in the work function > swap_do_scheduled_discard() (is this redundant?). > > But what if this check is false, i.e the swap device does not have the > SWP_PAGE_DISCARD flag set? Are we not clearing the bits in the zeromap > here? Yes, should add in swap_free_cluster as well, will do in next revision. Thanks!