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 65CBFEE49B2 for ; Wed, 23 Aug 2023 13:15:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 01D4E90002D; Wed, 23 Aug 2023 09:15:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F0FFE90002C; Wed, 23 Aug 2023 09:15:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DFF5190002D; Wed, 23 Aug 2023 09:15:24 -0400 (EDT) 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 D1D4290002C for ; Wed, 23 Aug 2023 09:15:24 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id B8E761A006F for ; Wed, 23 Aug 2023 13:15:24 +0000 (UTC) X-FDA: 81155415768.11.5E614BF Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf28.hostedemail.com (Postfix) with ESMTP id CC6E6C0029 for ; Wed, 23 Aug 2023 13:15:22 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=h7vhpCA5; spf=pass (imf28.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692796522; 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=KBGw22QTqdivPvM/1fcda5tl/5/dztY6mop6v4TrAgM=; b=3WnxdOL/I0N9ERVaob2XAXsBNgmeTpOlKHCqQxsKVIzj1gvDwc24BjkTKNl1/MWA/nahct Nnyw5ADORe8K7Nh8PJCZENs1UQIYr4Zj5CX8mYD9PMwBo15sbSckL7h/fT5fKc5XFFEdNX Oe0c8wsrlXdZz/4UJVzx8NPfMlpMP74= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692796522; a=rsa-sha256; cv=none; b=MfgTE18CP4bsVre2LXb6huOJxo086E2UP81ELeDpTRmU1eEzm9xrLTmJw9KxIZj/Ku/Am7 bF05BykEo70QhRt7O48gtSLolRMqcZteZxQxnZHn8X7DAaJClxW3TGabrD7CyBxUTvEvWB gmTe0eMVEEP0iW/tS+HjAk2GHjWxuVM= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=h7vhpCA5; spf=pass (imf28.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D763B66220 for ; Wed, 23 Aug 2023 13:15:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3DEEC433CA for ; Wed, 23 Aug 2023 13:15:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692796521; bh=ITiJW3pew9ske5WY6kVIe2IstP+LoVkUUlpTWStaXq0=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=h7vhpCA5AFJLhJRvAyKHmUbxcT9PcThTSGwi6zf2AbLwEoFjb08jOgSa0YxL/29I0 x2cn9lVPkteBoSiVwY/KMP4IJ1PMVWP/Nbsi/vOi2GLyfnvrvDUuwGmwIjgJgGuXSK PG+JTS0qVvRsrv3KZo3QSSuv7c2u3umaZZmbVIl/uylPbBDHuvB+CRc7xprL27+pMt 0r1o1FMqnGTOfrESAGGsJrmwpX9Nckojm1OFX8yjEpM7FQSZqf2QQDguOLEoNZMe/C 0rq3XJyAut25FrOTMOOP0K+HPYuM7tMBxPxU8RP2WzB539XsWlVNxUgApwzKVNGM7b dP/tcWvijHmoQ== Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-26fb8225268so276831a91.1 for ; Wed, 23 Aug 2023 06:15:21 -0700 (PDT) X-Gm-Message-State: AOJu0YypT+bVPzelEbgKlHLzOYFJxlXreLIKkerjyR6ga3iEuUoikVqb d97ojmLJe7bSLA2IjisorHxwkR5pwEAIofC39PzDTw== X-Google-Smtp-Source: AGHT+IG/2lCn3UCoPUMzbblVb6t98DntYQj2ckCtGDHkgKfGgOYcfr9y25dpVx3OcXP1WI8Nmon6ksgJboKH2pjL29g= X-Received: by 2002:a17:90b:108d:b0:267:fc61:5a37 with SMTP id gj13-20020a17090b108d00b00267fc615a37mr9367966pjb.39.1692796520714; Wed, 23 Aug 2023 06:15:20 -0700 (PDT) MIME-Version: 1.0 References: <20230821160849.531668-1-david@redhat.com> <20230821160849.531668-3-david@redhat.com> In-Reply-To: <20230821160849.531668-3-david@redhat.com> From: Chris Li Date: Wed, 23 Aug 2023 06:15:08 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH mm-unstable v1 2/4] mm/swap: use dedicated entry for swap in folio To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, Andrew Morton , Matthew Wilcox , Peter Xu , Catalin Marinas , Will Deacon , Hugh Dickins , Seth Jennings , Dan Streetman , Vitaly Wool Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: CC6E6C0029 X-Rspam-User: X-Stat-Signature: mk99uwdezyrjnsn3yi3cnszb1srkf939 X-Rspamd-Server: rspam03 X-HE-Tag: 1692796522-8630 X-HE-Meta: U2FsdGVkX1/CC8tJ5SUgcwJNwXtSK5j5gQDwRsh6hlG/Y+yQJMPDeKg/i33QzwjxOtJPybZF7BfMk4JzzOAPzwKoq6mGwBGJHv1qV7G1itRcy9VEraDrpvIiCW/sHO3pgoDjs4vawUw7c7R7i91whtU3DKoEiriQG9M5yyhA3IUSMGbowTf1Egh+T7r7ByRe2kjBZn5fJRHKwbBv8qVjC87rHQ3/SGLorrZ5eKfF4c4W8LoJS30zo4BqVWPiyV9X3b5ZOC9Fl1QHmuSNEPYMVA+6v/2tUa4OZCLquWr4L0BOEhmUzOzPUzgZCJesXPOAflZ3FCVp6NcSNj57U4FdV0VpA0Jp03Y27otn7YqbBPrRq1WFDcYw7F1+kd/MgvKEaaoie5zH2iJqNCanfL+AJi42VTT3Qo0esPupXIqm6vbJZ5rvGIWeGDCDAax7ccOgdJ5LWeioNVT7mOu/b/YxmfG7jikvtOtfCfG7Lbrh4fwgB1TNjRKi9AYAGJ0j+5+JWp5PJrLfCxn8tXbKXTki1y4KsswsptWjemUsoSQzGkhkQtggJ2wd5t/XoYvdYHenQ40ELB/IbuHdnSeCbEaeAVeg2f+KOc5P1VR/j8uV8aZeKnfKTmaT3yGScOzjE1QUTqX2p4xEoXbnWrBMlp6M3N6O3I8TfZwMK7SncGZg57o2BuoSJ1HOkJend6GUVlQ3kIa7joIciQu8RU4PSAfTO9g947X7ByRhtR9i55VVcPZNFYSKTRoVyBSvq0u300dVn95OvQPZAaFYkDSGQfpAjY73QMTvgWzpkGveYKzbBpaoqBoRP7h5JeX1hyANlMesDWA7EmfuxlAx/2lOZ39bbEvvqUMK0SGlIVIMmsp6lhey19ULmJOl9i/AQxbuvL1uV3DfZ+7pK3LDT5rqftLf9Q1fAIdgwjGpD3dDE9SXOP1gQgv+F+qJpt/6NtYf1K2WWKeSuFz2Ue+2BhfrAEC CU0GtEIh kuBffLXf1F2M0ejYR/rvLKxOtxfGhpoLz+3jaNpgLmxTSI6ACn8oaqUXit1/BS3xV04ZNcV3u1/A194R+v2AlGTLOuYn73F1++N6aMWBgQQi9nqrFhJKRP0Il1rlDTh2L2lYq8glmjceu4XaCYjDspFojePkxGs2MRcFkNrZCpM2kX+QM7oe7P6yFWbXlXm9wg0Q7uo2M3nVHtpcWBie7FUr3XWW1LjuBtuKAiSyL4kSczW9Wvqy30qcWISGi4cIBnZfVgv+IAKkMz0aY0U+BiaM8ja5SxO/blJL3NubK+KnPf9+ZgJQePvSwoxysXp4HADFu49eGByACBzJ5fD0PeqzWPDSxbOS5OtRphxzmgLXvW22AM6iU80N19x4I78QVCvIe5HwGpYuOQ+3JavtWUpMPsO2Uq/emKUuSOk+t4btzqN+J3kFryElBCagnD8V5ONnK0nRrzXbUTb0= 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: Reviewed-by: Chris Li Chris On Mon, Aug 21, 2023 at 9:09=E2=80=AFAM David Hildenbrand wrote: > > From: Matthew Wilcox > > Let's stop working on the private field and use an explicit swap field. > We have to move the swp_entry_t typedef. > > Signed-off-by: Matthew Wilcox > Signed-off-by: David Hildenbrand > --- > include/linux/mm_types.h | 23 +++++++++++++---------- > include/linux/swap.h | 5 ++--- > 2 files changed, 15 insertions(+), 13 deletions(-) > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 61361f1750c3..438a07854f8c 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -259,6 +259,14 @@ static inline struct page *encoded_page_ptr(struct e= ncoded_page *page) > */ > #define TAIL_MAPPING_REUSED_MAX (2) > > +/* > + * A swap entry has to fit into a "unsigned long", as the entry is hidde= n > + * in the "index" field of the swapper address space. > + */ > +typedef struct { > + unsigned long val; > +} swp_entry_t; > + > /** > * struct folio - Represents a contiguous set of bytes. > * @flags: Identical to the page flags. > @@ -269,7 +277,7 @@ static inline struct page *encoded_page_ptr(struct en= coded_page *page) > * @index: Offset within the file, in units of pages. For anonymous mem= ory, > * this is the index from the beginning of the mmap. > * @private: Filesystem per-folio data (see folio_attach_private()). > - * Used for swp_entry_t if folio_test_swapcache(). > + * @swap: Used for swp_entry_t if folio_test_swapcache(). > * @_mapcount: Do not access this member directly. Use folio_mapcount()= to > * find out how many times this folio is mapped by userspace. > * @_refcount: Do not access this member directly. Use folio_ref_count(= ) > @@ -312,7 +320,10 @@ struct folio { > }; > struct address_space *mapping; > pgoff_t index; > - void *private; > + union { > + void *private; > + swp_entry_t swap; > + }; > atomic_t _mapcount; > atomic_t _refcount; > #ifdef CONFIG_MEMCG > @@ -1220,14 +1231,6 @@ enum tlb_flush_reason { > NR_TLB_FLUSH_REASONS, > }; > > - /* > - * A swap entry has to fit into a "unsigned long", as the entry is hidd= en > - * in the "index" field of the swapper address space. > - */ > -typedef struct { > - unsigned long val; > -} swp_entry_t; > - > /** > * enum fault_flag - Fault flag definitions. > * @FAULT_FLAG_WRITE: Fault was a write fault. > diff --git a/include/linux/swap.h b/include/linux/swap.h > index 84fe0e94f5cd..82859a1944f5 100644 > --- a/include/linux/swap.h > +++ b/include/linux/swap.h > @@ -335,8 +335,7 @@ struct swap_info_struct { > > static inline swp_entry_t folio_swap_entry(struct folio *folio) > { > - swp_entry_t entry =3D { .val =3D page_private(&folio->page) }; > - return entry; > + return folio->swap; > } > > static inline swp_entry_t page_swap_entry(struct page *page) > @@ -350,7 +349,7 @@ static inline swp_entry_t page_swap_entry(struct page= *page) > > static inline void folio_set_swap_entry(struct folio *folio, swp_entry_t= entry) > { > - folio->private =3D (void *)entry.val; > + folio->swap =3D entry; > } > > /* linux/mm/workingset.c */ > -- > 2.41.0 > >