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 72818CF9C6B for ; Wed, 25 Sep 2024 14:25:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B8546B00AB; Wed, 25 Sep 2024 10:25:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 09B486B00AC; Wed, 25 Sep 2024 10:25:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E99AA6B00AD; Wed, 25 Sep 2024 10:25:13 -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 C71536B00AB for ; Wed, 25 Sep 2024 10:25:13 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 482F4A0EE6 for ; Wed, 25 Sep 2024 14:25:13 +0000 (UTC) X-FDA: 82603482906.11.BE80B8D Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by imf11.hostedemail.com (Postfix) with ESMTP id 6648C40005 for ; Wed, 25 Sep 2024 14:25:11 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GMl7U2a4; spf=pass (imf11.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.46 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727274151; 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=WKHSbKmh/OWvf7D+QnPJyajvAk99sQW7fmf5zk+OZak=; b=d+5nnw2LqWU2xo9odSv1GsxNmadHq448UEgyc0BEl8/rOHQaWr0hrIHdZ0sH3bgSSGOx9O juhr7f17mOqchghF7PbWmueMQ3pNCTZdXg4b1fI1+q/AwX+rkGeGv+HpW15HqG3M/PSKE3 z+F9L6wi1PxB16AAd56INBLAbi56pIw= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GMl7U2a4; spf=pass (imf11.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.46 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727274151; a=rsa-sha256; cv=none; b=YhVjPhmKZMOOHeDG87Dtmz4Qdxe2QySEYhR2lZGuwQHGFiECm3hEQscDhbofM1SHkaoI4B 6ZCriJsJiUI7QBc2aq3lVLDLvPnIzlvHBGb3LboVmeYSJrAASvusKCmx4NR0wo85ZhEFuP YfRiDja24n3+99XdogbxRLxSzzdS2hQ= Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-6c548eb3354so53946856d6.2 for ; Wed, 25 Sep 2024 07:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727274310; x=1727879110; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WKHSbKmh/OWvf7D+QnPJyajvAk99sQW7fmf5zk+OZak=; b=GMl7U2a4GosS8Aaire8U43KcVDEEOgsjA8+kFpqALKT1Rt4zqk/FwIjvVn220Xl8x5 9JceLZLDwqAB/g/JxVrUZQVWWDrZK5oBjS9E39HZYUnoawe5EMsRnmKM/5Kf7surG+OS sM2lfklhx9zmo60VO0CsyhRCjyv5r4ocX8/9OWJL+1UNWVNKDjX7m9qvLDLiUpwFzaPD kl0eYyWoH4jFvoK/pJ58FPcWMIFm1dipWTht7zYRdiSqvokPI5jKRWkfC2kUbZBumS3V pSHOxJJrM0igjxxiNy67GaQk+9xyp8K5pl8ot7GqcJqEzGrXRPGNhlThvba9rCi+BTEq rmkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727274310; x=1727879110; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WKHSbKmh/OWvf7D+QnPJyajvAk99sQW7fmf5zk+OZak=; b=AnPOU+QBrnES1vQNEVQ0wYEEu6ljdx/Q313aTdZLBvsJkTSQ9gTKvYoNtklExDmM8T +i9ev6+NpIvZ6MFy2TmQoXjukS4p6xhqF9Q6aPoAIFRX38WkuPyOVJ/qi8wheOHDweuO Ntuj0lTL+CLh2a3GufvyNi2OLInLEZjls2rGdumRrE0OFyLJGlasRIgYDuPImaP91HO0 HqIMNBgL//KPSEdIIOsUECIJDTwom877c93jlYkuo6LDiGxFq7Cm9npE0JakysvDPPN4 8QcvqjIC6nEIHTYpj13DFtAz5nGa9T0wdluav6gPCS4IVKYXea26YxkQH1vT4ogRhkY+ vQrA== X-Forwarded-Encrypted: i=1; AJvYcCW77K/P+nECailLGU71yUhAQ0hWB3PBWCzpU6Xo7HWX6zYIdkliMw3vqIPVNK5GJPTHaLbHWwu7IQ==@kvack.org X-Gm-Message-State: AOJu0YxWFhaS2dWV5fFdOj+WSuttlTlMA7yDYdF9njaXMOSelI85MhgK Uho3SdkoMmFVJ6AN1B/fIK7Fl00YcvRC+H+aM3GjZ1LZKWpFA9P7MswDjBGd+av7NXVoJxIfML4 5XJMHHESRoqHb/f+9bolSslb6Icg= X-Google-Smtp-Source: AGHT+IFLa0kzxCW1URmiLzO2BzTPqeUkWkh3YRKUbIonFy99BzaY1ai262Y2O72SZlbEfK/b6Tcu6tImrSFgVdwX1Jg= X-Received: by 2002:a05:6214:469b:b0:6c7:c645:e0d3 with SMTP id 6a1803df08f44-6cb1de0b169mr43734736d6.49.1727274310268; Wed, 25 Sep 2024 07:25:10 -0700 (PDT) MIME-Version: 1.0 References: <20240923231142.4155415-1-nphamcs@gmail.com> <4d38c65d-760c-43a5-bb47-8e0235c13a51@linux.alibaba.com> <9a110f20-42ad-468b-96c6-683e162452a9@linux.alibaba.com> <87o74cryhu.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: From: Nhat Pham Date: Wed, 25 Sep 2024 07:24:59 -0700 Message-ID: Subject: Re: [RFC PATCH 0/2] remove SWAP_MAP_SHMEM To: Barry Song Cc: "Huang, Ying" , Yosry Ahmed , Baolin Wang , akpm@linux-foundation.org, hannes@cmpxchg.org, hughd@google.com, shakeel.butt@linux.dev, ryan.roberts@arm.com, chrisl@kernel.org, david@redhat.com, kasong@tencent.com, willy@infradead.org, viro@zeniv.linux.org.uk, chengming.zhou@linux.dev, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6648C40005 X-Stat-Signature: jepz1bgn7nnx373j9tqp4nuptjmqntsi X-Rspam-User: X-HE-Tag: 1727274311-873343 X-HE-Meta: U2FsdGVkX182uey2Ci03p9H81H4iWT84vVKKbQrADSpTbpPWyO8fxRxoSe4t1Ka0sQ0yoBh+hy5LqvbpkjHdZXHLOUc95c3vhld9kMahMbhYGH7wb77eCWizTDfD+Cv82i/AbuoEuckV5Y8V+thX7cEXh7rjCYiJTETZNVjdKr7QQkXKmlcPPUPLnE8d+nEiauOShoBDaaRzXF3+mDD9dzf3iCU5Gn9Q0v9KOEBM7PD+pHPxcOjvKhFRpa9/o8QWLtXaIpZqQvfm1NjBtjHBmXLG526bp2bAy/usDxcPLXUGq/UMFghXqBY59et9JX+qq8Z8KCPUh7zx1IiBk3V07xNgXf0jGUKKBb7H1B0W1yyuS9ikVG89Oula6zdQPTpH1JtUaqQD9rS6jPVHtXmiGoPsW9BipsshIyIXl5LEOeQl/hPUx/wlF/UG8KCh5sVSjahlpmx9i8FaL2JqZKqn6OefG88T4mIaasU6HsYnjoC1B32WbqnHpbuSahhpjlqjrs9wBaF9VBSNGzX1v6txkcox2jfdKP2tzIAqP/w5HDEPaapj/1S+j2uKrgSe/Ni1wnBEJIusD2B7YynjkzspGlXG63wJW0DTwq/r2Tx1Jk+vwZ1ptEvQsgkh9D2Jgvn0bGqwgc2jiee0lJM3tcssPz0FbV+4i3G+VpjjDMnyuam9Z/kQC6k5sSoz9J6jU663Jq4JSdtv8grTSZh9xV22A3aJbIDwawp/s9v9/+34JCgkOXG6F4okMo4bsZB8Nvn7BvC7JklPj8sIM1Iy8ECzF9zkTW/ct8GrqrYYPUFkWAo4oAYFFUdYdb8y9I71hgyaWP9RLP8h775/d3D96EfpdcifdHoC0h39AzSJxELlwFJ2fvAUGI4DzzffwcuSIsRDwSOLpOph0KUZWLWPkno72MnliFjV++wKB6rrE7ERMf7mvngqaeTPrg3MaXUQlk/YpAyGJrSNSmVTUfx/qwS P8drYQeS Ba1eZlsdMBAgTg5VwI4D652qHB/lS+H0qxRhQUk4J5jdIoPMioqSOiKJG8BjQ7Yx4zhewLT8TlUrdhDzCQXRzo0WbVPSMbpuYgFLRr+Eipu8jnRkUB8M3pnUE43ntkEyWpBpV3azvn1LyCsFAFfAqpt0xx0OTwHHW0nTfxRliXHE8FBcs8Plx/Sv/eme0hY+ZNGYmDDUGYLEGU5mjFkgMMXnve5uRl/dp4CqjNpxpc3guNVRKpEKF0FlxtUNXhfX/VXD/Xqh+3d/Z3RZYUfrMQUlJmhsDZSfOJaJUqun/Uc8ZYOF+k7hF1mAwEMXe0gOAJGw5f8XKG+b07ESdYgRyva8swXjHsnP6Wo4p+Q3sjd+T3PJIkJuqQiRBWw3Mar8DVSGtHUW4+K+xl1g= 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 Wed, Sep 25, 2024 at 7:21=E2=80=AFAM Nhat Pham wrote= : > > > I'm only supporting the case nr > 1, when there is no need to add swap > continuations :) That's the only current use case right now (shmem) :) Sorry, I forgot to say - but to fully support a batched variant, we can do something like this: > > 1. Keep the non-batched variant: > > int swap_duplicate(swp_entry_t entry) > { > int err =3D 0; > > while (!err && __swap_duplicate(entry, 1, 1) =3D=3D -ENOMEM) > err =3D add_swap_count_continuation(entry, GFP_ATOMIC); > return err; > } > > 2. Implement the batched variant: > > int swap_duplicate_nr(swp_entry_t entry, int nr) > { > swp_entry_t cur_entry; > int i, err; > > if (nr =3D=3D 1) > return swap_duplicate(entry); > > err =3D __swap_duplicate(entry, 1, nr); > if (err =3D=3D -ENOMEM) { > /* fallback to non-batched version */ > for (i =3D 0; i < nr; i++) { > cur_entry =3D (swp_entry_t){entry.val + i}; > if (swap_duplicate(cur_entry)) { > /* rollback */ > while (--i >=3D 0) { > cur_entry =3D (swp_entry_t){entry.val + i}; > swap_free(cur_entry); > } missing a "return err;" here. Not my best idea to write (pseudo) code before caffeine in the morning :) > } > } > } > return err; > } > > How does this look? My concern is that there is not really a use for > the fallback logic. Basically dead code. > > I can keep it in if you guys have a use for it soon, but otherwise I > lean towards just adding a WARN etc. there, or return -ENOMEM, and > WARN at shmem's callsite (because it cannot get -ENOMEM).