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 04ED0C27C4F for ; Thu, 13 Jun 2024 19:38:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 697416B00D2; Thu, 13 Jun 2024 15:38:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 650396B00D3; Thu, 13 Jun 2024 15:38:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4BE6E6B00D4; Thu, 13 Jun 2024 15:38:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2B84B6B00D2 for ; Thu, 13 Jun 2024 15:38:25 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id DE0241402FF for ; Thu, 13 Jun 2024 19:38:24 +0000 (UTC) X-FDA: 82226876928.03.13DCD60 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf30.hostedemail.com (Postfix) with ESMTP id DF7B280007 for ; Thu, 13 Jun 2024 19:38:22 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LKK9eoOW; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718307501; a=rsa-sha256; cv=none; b=6tVjC+FRC6IgIbWF6QLWBEFVBcT8CximQ3lZYiQziNv65ONM3/s/B31/iFBHRdcv1cYjWj iLkASgHBpQJHzK2sBxSBV7/XC8VRmn7Lmu5xU1oZ6zjjxUgGeH+agz6sJW+uzFkSehHTJm SLk6U8DvqkGnG7DnChDHaoje8z1rlAk= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LKK9eoOW; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.128.42 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=1718307501; 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=gkVryrNJA6CiSEHBBoY/tn5Xtb/QS0Aw+i138p1q7mg=; b=Br5nZ3ikXdLsPRom5vmtktiaAkUrKCEG0NlC97JrGh4hUE8evX4eRLYjK5GndxYhmZv3Cz E59+UnQ4+ElusH5KTkGrDzfTCnobPb09WKEOriEvSrFb8zD3z/1beEGfwCmv5w7xqYC1UT w0CePZxLd8zBPjzju2eomumsuLYTb/k= Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-421bb51d81aso11268975e9.3 for ; Thu, 13 Jun 2024 12:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718307501; x=1718912301; 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=gkVryrNJA6CiSEHBBoY/tn5Xtb/QS0Aw+i138p1q7mg=; b=LKK9eoOWR3YNx/8brcULuTIZmxDLJzSEoDaoHIMO6qn7nxddfPHJP5KpEV1Y3zTErC ZwSVjYJh5A44cWCrABBtdaGD7XfHfr0mC3nU/GjnWw6YzS5fhZ4u7I4996yeFCSR+HFq lx+ImDMqY2db7L53djB9tT/8XY9w0u8qYML77aVRUwSFP8Enk98bfyWkOq0sr1Ygzavy YH0qck04NnvJrLSn/6sGPT8sG3TEiPF6gsEKWrgeXm69xSzdAmM6UbV0AbLCQXjqMkoc bvDRH5fEmB4cHGsHg4yd8VcrRJ1O85RrJFtuiBSZ4PwihRWFUe/wWy9CNxLiSuM0ohL5 FEfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718307501; x=1718912301; 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=gkVryrNJA6CiSEHBBoY/tn5Xtb/QS0Aw+i138p1q7mg=; b=rqyAEiFAbo1agNro2fCpkLvho4Rr3bO1qTS8zieUr+9u1j8tJiw9AY1+UhCqEUCSmQ rsb1XpI49gwzsz2SLsWXaoFwqidL54feRo1DPgzY9I114x4jelTQvpFdVix2qYPCvBJe pKRglnXutU+QfyUnaLG2E5Wj7HLuE+O+HIICK4AGtffEDJvACEmwWDMGZTWr2atWBn5b WUvrNEWLWDsn3+jvcEemrshKa43R+IymkTjFAdlgOSolhogf9XXESkf2ImrkPkcoBR9m PSlS0H5aqAXre0KSqd58LowPdbaNrBEfiGcUoIBgbSwMrm6C9thJVLUO0YsCy9R3PS5x u8IQ== X-Forwarded-Encrypted: i=1; AJvYcCXI8QCp0gc43rRRJ9XsW0deg8SPe9phJuA2XLC0Trlaxsj+yfRfhYujaQHSf6sikJGPBjx2/RsWkBrWw15Dq/e+LEo= X-Gm-Message-State: AOJu0YzTXR203DdKsBvDN9Y1uUcvKrRUD/o5xwMozju6v1BCcWxKxieZ B5YdoHktS2KPEl0xWF2IfIXLLLredOBHMkVNYOhdQ1U6usPHmbGu X-Google-Smtp-Source: AGHT+IEnEqeoMG/JJxTOMZkZ/oBkHUfBTCamWig8WosWNOft6m9a3oO84QR7RMYwtkq2b2NIi81fxA== X-Received: by 2002:a05:600c:4f84:b0:422:683b:df34 with SMTP id 5b1f17b1804b1-4230484eed9mr6166685e9.28.1718307501137; Thu, 13 Jun 2024 12:38:21 -0700 (PDT) Received: from ?IPV6:2a02:6b6a:b75d:0:64:3301:4710:ec21? ([2a02:6b6a:b75d:0:64:3301:4710:ec21]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-422f61280f6sm35170855e9.27.2024.06.13.12.38.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 Jun 2024 12:38:20 -0700 (PDT) Message-ID: <8b155ba8-ff53-4202-b2eb-afe73db77d7e@gmail.com> Date: Thu, 13 Jun 2024 20:38:20 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 1/2] mm: store zero pages to be swapped out in a bitmap To: Yosry Ahmed Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, shakeel.butt@linux.dev, david@redhat.com, ying.huang@intel.com, hughd@google.com, willy@infradead.org, nphamcs@gmail.com, chengming.zhou@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com References: <20240612124750.2220726-1-usamaarif642@gmail.com> <20240612124750.2220726-2-usamaarif642@gmail.com> <85804484-9973-41a1-a05d-000833285f39@gmail.com> <0572d8b1-3b17-45a8-bf75-f66e19216d38@gmail.com> Content-Language: en-US From: Usama Arif In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: DF7B280007 X-Stat-Signature: b1qhjqo4exumdknmf156sr7xpyy58jdy X-Rspam-User: X-HE-Tag: 1718307502-544444 X-HE-Meta: U2FsdGVkX1/IiXM5kUsoGhgsnnO+JSUl+IJ4WsYH0Aqbu2MmR1QXl7eaggsZJm2WPWXQFTPDAzhxpTOejtMErKEXxSaMOZ3wcJ+wV9SughjIvpC0S5+/GNsdlPjaAwK5VO54fC05Q9NVchp7jmhtrIOiv74R596X9c7nWG0yGSUwvZYW/A1cQ85emE69n/dP0YAHoUb9j8EqWBTk9jn4SNaQoVvigqAuX4UspZ5pqXt5h4w+O23zQNxWmRlUe8kaIXWcQ+8EdEsQ8IFdLMfwRUnv5mR84PEMEB7cZKNp/Hr/aaJj5kj4yXEyIpDlxpg/nZzG8HPr0VBt+Ukri1cUWHQhW/Vs6GBRA/ly/j3GAl/bqukznqjEVZVAN896KPdHk6rZKddARM8NHtTAXkBHWTJ04KOFXi0RkH0MiQfJl5AQUc2e+T9i5S2JczXUbWbQfl5bsK5+8RUIcOzZmGFQ7pufpoSf7f8gMypKimso3imfPta9KWHwusD7NmHoqm/mcNbJ+wMTXtnkU6W9/lg38iKT6g7wLJXqgyNfcrsBRTCD3MTQJMln/UEdGS0NqVLX3hczKccCJiug8sKgxs8Z7pGHRszDRbWfCNUg8MAC1PW5Ub9DIRfA06QaPnV32QAoDUGF4Ex6ksSAppLRIit2EOag9aTayqBX7znK0NG8VoMqJKiLfQt95GSwFBUGzraOKixqWc7bgpsiPcp9XZnW1EQbp6Jo5u2NEAcXqsuLtlQoMu3B/UQTXd3bxLLKH3O5/VgDJoo0axQcR7jAoxcCBLbuOo+yKmXsBM9aBeqePtLLx5d7mURA5D5wZ1C5G3GEiHJI5zqi3VtW/3vd3fA/PeoXdBVSJlu+E8Wu0RID3l6YMn3bAISJIiyQ7JjfAw3WAAy2455+KZlFEasgGJg+DvugGxLlTIU+4lzMT/sFykNS7GXZ4fK1s1qt/wEiVv00r0vQS7KLI5hcwrzUdWB 5NCVqBFv 8EvNqZk4xyEhrO8TxtfBp4dwM8STXAfb4Yu85sZxwz2TNdzDe3jKA7sdpt8MKZ+DuKH74+adTRlsDyUa2dOX9T78dMuZFC5tuILxXtYcbjkp54nwXiRJ+kflg5usqniDk5g01xzv60vJ2eup0EeIgWq27q6rEvBFCm5M56PM1ZdK4sNec8HAJQGmt0NYwKTXREyGrpCvd3OzdRc+y3UWasPq3V7u7o//o+O0f+CukJh/tU89x+PnjENuVzkCZ4mArfstta5CobH2hxfJiCTZtmsvP5EE9zsEbRLlJCiLImMtvakmuAryDTyooH32i88gH6wH2dGFDMMNxNcf/H/18c2AjOD7kLkpEzQiyy0G2TEiD83JR5AgIOFrCHhyIZhWjj+jfJbRWLDJqXv3yY9WB/dFZ16pPL/zYnhAy/JnMcu/Db6Y= 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 13/06/2024 20:26, Yosry Ahmed wrote: > [..] >>>>>> @@ -498,6 +507,8 @@ static void swap_do_scheduled_discard(struct swap_info_struct *si) >>>>>> __free_cluster(si, idx); >>>>>> memset(si->swap_map + idx * SWAPFILE_CLUSTER, >>>>>> 0, SWAPFILE_CLUSTER); >>>>>> + for (i = 0; i < SWAPFILE_CLUSTER; i++) >>>>>> + clear_bit(idx * SWAPFILE_CLUSTER + i, si->zeromap); >>>>> Same here. I didn't look into the specific code paths, but shouldn't the >>>>> cluster be unused (and hence its zeromap bits already cleared?). >>>>> >>>> I think this one is needed (or atleast very good to have). There are 2 >>>> paths: >>>> >>>> 1) swap_cluster_schedule_discard (clears zeromap) -> swap_discard_work >>>> -> swap_do_scheduled_discard (clears zeromap) >>>> >>>> Path 1 doesnt need it as swap_cluster_schedule_discard already clears it. >>>> >>>> 2) scan_swap_map_slots -> scan_swap_map_try_ssd_cluster -> >>>> swap_do_scheduled_discard (clears zeromap) >>>> >>>> Path 2 might need it as zeromap isnt cleared earlier I believe >>>> (eventhough I think it might already be 0). >>> Aren't the clusters in the discard list free by definition? It seems >>> like we add a cluster there from swap_cluster_schedule_discard(), >>> which we establish above that it gets called on a free cluster, right? >> You mean for path 2? Its not from swap_cluster_schedule_discard. The >> whole call path is >> >> get_swap_pages -> scan_swap_map_slots -> scan_swap_map_try_ssd_cluster >> -> swap_do_scheduled_discard. Nowhere up until swap_do_scheduled_discard >> was the zeromap cleared, which is why I think we should add it here. > swap_do_scheduled_discard() iterates over clusters from > si->discard_clusters. Clusters are added to that list from > swap_cluster_schedule_discard(). > > IOW, swap_cluster_schedule_discard() schedules freed clusters to be > discarded, and swap_do_scheduled_discard() later does the actual > discarding, whether it's through si->discard_work scheduled by > swap_cluster_schedule_discard(), or when looking for a free cluster > through scan_swap_map_try_ssd_cluster(). > > Did I miss anything? Ah ok, and the schedule_discard in free_cluster wont be called scheduled before swap_range_free. Will only keep the one in swap_range_free. Thanks!