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 CA763C021B2 for ; Tue, 25 Feb 2025 06:32:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4268F6B0082; Tue, 25 Feb 2025 01:32:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3D6096B0085; Tue, 25 Feb 2025 01:32:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 29D4C6B0088; Tue, 25 Feb 2025 01:32:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0DA7D6B0082 for ; Tue, 25 Feb 2025 01:32:57 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id AC8B04FE72 for ; Tue, 25 Feb 2025 06:32:56 +0000 (UTC) X-FDA: 83157499152.06.B47DDCA Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id DE5FC40007 for ; Tue, 25 Feb 2025 06:32:54 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g+5B7LMo; spf=pass (imf27.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740465175; 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=GAHGRiVe6gULuxxP81ZlSf4CThjS+6BqPeeqGS0Icyk=; b=GcUxPQ6hyOiKiOCC2r6XFGNAtqJkoduIGuK2vJuPEHhnX3z4YZaeVui8qlG3NxwOpZ8EYS D1zvm9Zpknbs0jilsIHTGIFN1S+52aBIkmde/WwsIaqgesBw1B/i5KxQpVYkpP5zBMhtX6 x8gADuPN+V5zG2TU6utegRQ7ktqFpPY= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g+5B7LMo; spf=pass (imf27.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740465175; a=rsa-sha256; cv=none; b=hMui9te8WIjAWepIt6e+O7F2KQ2PDn1gCyQITTq+29rMs2xRFOdq6OHos4U//ZA7HnWO8n AwwrYZ/QfeRK0lVKFuS/z/NnEr2V+pIBn0cqiPqsx56sPstPXzWJb7ctleYuBBhBDVeWm1 pNuF65ww+w6DKOvJsPDT0lr2RDyqhlU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740465174; h=from:from:reply-to:subject:subject: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=GAHGRiVe6gULuxxP81ZlSf4CThjS+6BqPeeqGS0Icyk=; b=g+5B7LMoUVPHBe/G5Odpbehgn3JrFJXlUFZkaO/wQv1HHkp2/HgbxAfP09F1xbkiUAI5cv vmr/i271/W/gFNqwXkhGv9unacQpq7R29o529GNXYtn+tTQgIkOCMwxwBUDFE4X7B7k76l 6lEfCRpjSnTPZNst52rrmc5UWRmakes= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-496--Ue5qIGBMlW6w7bKR0nvlA-1; Tue, 25 Feb 2025 01:32:49 -0500 X-MC-Unique: -Ue5qIGBMlW6w7bKR0nvlA-1 X-Mimecast-MFC-AGG-ID: -Ue5qIGBMlW6w7bKR0nvlA_1740465167 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 8D82619560B5; Tue, 25 Feb 2025 06:32:46 +0000 (UTC) Received: from localhost (unknown [10.72.112.127]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 61F8D1800352; Tue, 25 Feb 2025 06:32:43 +0000 (UTC) Date: Tue, 25 Feb 2025 14:32:39 +0800 From: Baoquan He To: Kairui Song Cc: linux-mm@kvack.org, Andrew Morton , Chris Li , Barry Song , Hugh Dickins , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , Baolin Wang , Kalesh Singh , Matthew Wilcox , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 4/7] mm, swap: don't update the counter up-front Message-ID: References: <20250224180212.22802-1-ryncsn@gmail.com> <20250224180212.22802-5-ryncsn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250224180212.22802-5-ryncsn@gmail.com> X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Rspamd-Queue-Id: DE5FC40007 X-Stat-Signature: yqgzcs94stdak6gmxih9jqeyb8xcdwfo X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1740465174-385813 X-HE-Meta: U2FsdGVkX1/s7NQAu8Bs5DaPQFHjmzaDNffzX0KRJB+iilD1Nw2aDt1SjN2ak6WFcorcNm9na1W9bznRUmoNwzTUKQC8Hec4AzQS3+KFqTYL5IFJzbzZlCH4XiOP3B/ynuXhn1earslIOm37B0Ypsh1FYX1XPcNsC6M37aV4gmLMUzCDaJk3uy/jKf0jKuRP3jjGpUu0ybrBsnLCCkvk0ZneYV+gwXmt3aqqsrWIE0mxdhN7oHHf2h3U8Gyi+3t9mpmeKo+Gwi0/i9yKvNXZurIm01/KHR4JoqzTIgowIWEdfPO905uRIJjXKbwkD/nNM5oCRQQ26vBzPpC4rzA6c61rmGr/rFhUp17JQY4qH+TlCVGSYzeMhC/8qtAPXUit76vXxEbLIzIo6VP/vcgvSsn4NIXGG9G0Rf7hFttaqcL3zPDlpJolhktV1rT+9gvVRMKgaHCYksjxphZT6CER/MMZJ2efhuBrgsOT3TIZpYZXU6OE9eomQ8qqhN2BCPH76sC5kuK9dSadR6AHlKo0vC5UpPZmeHNVrS2xhk36exDrNmsmarKc3/RPtbKetzvcaDNpB+F61oZHw572bTB571un+nx+bRjm2mGSqV+xGLcAakVdFumxe3JlJ8KaCCVjPbZeCJgvsJWO7+jAa+imHzbNRWWYigqLEZMoI745FDoalcbVuFUifD10VPmE0oDqV9bToWW/OI/v9NC0IIZqmmqPBKbCyON/cvJP6OK8OBVLvzHzimAZmYHEE+en7qVEXEUpr54hEhT38IAO7mpLRagVRQKfvlh86iOBy9QJfK+FEiQgwzKVl+OUyUQgFC2+8zti9tFvmyEMD1BMWFAOO7jpQnOoZPsrfgtQfkdJm89g8Rwq64lUxNT5t7JJs1JBt4BMq90YCf4WCVvlwINVe3fv0weoAR7Kw38dGDKASrYEQzIAKSUHLliRTtLgWFZ1zpjtXCahbI98rAaR0De yPDyCoIR /9i/aHqBbEbQ//xU0Ggkz0hiopyuSOh+BLgjzQj2jKeGCLFX4XF59VPyMxPf6AehegvIgu5i80dIGwMVl9BDNuTXZ9USfpWzayLK4+InoLIcebGg8tZx29LvUJbegmIwZRpQdq9W2E/TFFGNh1aWuTm2w5VJTZkApHkz8oBjTrEP5jFXwSagsPTwrYxXDVELPKmtntb7HkCm/G085piz+3xJzoF+O4LIcNb52dFYeMwHLghXee3/2PeYfDE6rB6sYBQpxzi8flr1Ar4zOzORfhQMFnTfYVM7ori4W52DX1QBD7hdodM56gtUoSmtRZAIafQg1LMpL965zCZdGKYAisyx1zd0Q33dToZ8XcPJ05wMbK9LpOP5SdmO95gsSjBO9HTc/OJBkkKUGaRPCRlM8+4hYiWh4rc0I7AP6yIxsS7rj5NvWgXvd5DGOEcCjCEBGv5J4 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 02/25/25 at 02:02am, Kairui Song wrote: > From: Kairui Song > > The counter update before allocation design was useful to avoid > unnecessary scan when device is full, so it will abort early if the > counter indicates the device is full. But that is an uncommon case, > and now scanning of a full device is very fast, so the up-front update > is not helpful any more. > > Remove it and simplify the slot allocation logic. > > Signed-off-by: Kairui Song > --- > mm/swapfile.c | 18 ++---------------- > 1 file changed, 2 insertions(+), 16 deletions(-) Reviewed-by: Baoquan He > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index 6f2de59c6355..db836670c334 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1201,22 +1201,10 @@ int get_swap_pages(int n_goal, swp_entry_t swp_entries[], int entry_order) > int order = swap_entry_order(entry_order); > unsigned long size = 1 << order; > struct swap_info_struct *si, *next; > - long avail_pgs; > int n_ret = 0; > int node; > > spin_lock(&swap_avail_lock); > - > - avail_pgs = atomic_long_read(&nr_swap_pages) / size; > - if (avail_pgs <= 0) { > - spin_unlock(&swap_avail_lock); > - goto noswap; > - } > - > - n_goal = min3((long)n_goal, (long)SWAP_BATCH, avail_pgs); > - > - atomic_long_sub(n_goal * size, &nr_swap_pages); > - > start_over: > node = numa_node_id(); > plist_for_each_entry_safe(si, next, &swap_avail_heads[node], avail_lists[node]) { > @@ -1250,10 +1238,8 @@ int get_swap_pages(int n_goal, swp_entry_t swp_entries[], int entry_order) > spin_unlock(&swap_avail_lock); > > check_out: > - if (n_ret < n_goal) > - atomic_long_add((long)(n_goal - n_ret) * size, > - &nr_swap_pages); > -noswap: > + atomic_long_sub(n_ret * size, &nr_swap_pages); > + > return n_ret; > } > > -- > 2.48.1 >