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 8141EC2D0CD for ; Mon, 19 May 2025 11:10:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 95CF36B0083; Mon, 19 May 2025 07:10:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 90A846B00C6; Mon, 19 May 2025 07:10:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75FA46B00CD; Mon, 19 May 2025 07:10:17 -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 4FB386B0083 for ; Mon, 19 May 2025 07:10:17 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 30EEBBFCDE for ; Mon, 19 May 2025 11:10:20 +0000 (UTC) X-FDA: 83459388600.13.EF05FF7 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf18.hostedemail.com (Postfix) with ESMTP id 334401C000F for ; Mon, 19 May 2025 11:10:17 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i0j9KPDZ; spf=pass (imf18.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@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=1747653018; 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=d2AvfjeQ3YfmsLFEpdAcg+rkwn/b2OgTHJg9Jk5co+M=; b=7IGK0RJdq/f/+COWhCo4lkZ5lXVYba6YKte61TDYOESeocCcWq53OVRfApxB0EjHBHXQYW fQp6aVIu9NbpWE4S+fZM+iapi7RxpNu1BKm4MgFbdJCssbiPNFbmIAGz6W24oAToMRnBHS SCitJbspfKCeSB5nsnUorSpIDcTcIzA= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i0j9KPDZ; spf=pass (imf18.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747653018; a=rsa-sha256; cv=none; b=J7HAeKqUK8wynlIPRKLgbGkknNdfMMlMD9y/4P90vkyUbUCsNjzYuktTwm17aDyUJQkbOW hc1PBrBvxEGAn21jfFIYw+ECgM/d9zNdXxxpCm466zo3s6o8QMWjPb8VxbnqfTv2qXmdUJ oVY8J/1A23zyvTPbsPHHVjpvNRYAC/w= Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-30c416cdcc0so41925521fa.2 for ; Mon, 19 May 2025 04:10:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747653016; x=1748257816; 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=d2AvfjeQ3YfmsLFEpdAcg+rkwn/b2OgTHJg9Jk5co+M=; b=i0j9KPDZaRer6xD2Hd1qmNIrk8b5D4cLsQbtt/6bSEp6G7LyVYcfkq1y3T/CVXQ+gX XQfTNa3xJEJWtn/2cBwpYJZDWGUa1sf8IHlXWfj/tEeFDdwkVghabdEMfnJpiO5PdDQR 0WVJIxTUOhhiuFLkBpO9077wxXT4vNjmV7kT+aabfa3lMJTuvlnkwVSSwgJyc2xzgtFB TudDuPuZS+xPU+n66uknind2GXSjeOLgRJzOzTY10Nv6UgU7jptmgdguA51n+hvbIoAK tP1x1vEnVu8XdLnwq8Na2FrDGC4tGBAX8w0RA9V+IE5BPC1d3Cb31Gf0IuofHDnrFksc 8m3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747653016; x=1748257816; 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=d2AvfjeQ3YfmsLFEpdAcg+rkwn/b2OgTHJg9Jk5co+M=; b=h1AAF7wL/284znnTLTPhcBWKaAXU6HBuqQAMqKYDGS3U2iKPTxNhLvnFRfDVsrmz2r v4Xkyp8s2Y2W57IvSkwyTz5kVXilq7GPmK4UEQNAk6xCScHSHNMtt9/a0CgHgz1I/ldX 5WhbM7E9AtsmX+PyI7XebhiMlnFDce7kd2sloUY6sCRmDgnh+wI5HjczXg86NLVGZc2q ggJzPWdCha0ZVfEcddAPMWNRUUEyYbzTt43zufsn1ElDV1py4PVpVxmW484yiz+RCHDZ +xPcAGeVZgqnDUNj05Flk9xRT9OORCeqrcIuowEFnBR8V/5p2HriOdmrUTTuBQpo0uyU Fo3g== X-Forwarded-Encrypted: i=1; AJvYcCUBTx6VnU40mVGQV5tHGg7vPFQXkNtDRJJRo7o+5UYui6aCF31+q9J2i8F070mDgbIrQh+YxgfbTA==@kvack.org X-Gm-Message-State: AOJu0YyhKIL7Jxd3995UiOUDgknQ+1hKriAgeOJWQ/Dtd1CHmIyHaLre oweVLJc7SSSYipUt2zHdxKcwyo+DG0NF0B4QVcazO0CCTumzfIJKl3WzUnEVFqjierWTjiwnYyw k/cT/Jh1oEoIXkBqs909MO0j2ArJ2W3c= X-Gm-Gg: ASbGncue1i1IpUSuRr6gO1613lHp1UKp5JHvgJVzMcAqkuG/GUo0QEsRgc6zXxyITMR qjmIoJLupnpo5lBmFj4fGVg/AcBaOwfg40jYCkxqu0ZEjqLO7PhQ8B4k0TaczFJRqls4cUs/Hfl xSEGDtFXVQ50DlCCkuPvgk1qxV5CvgFU2D X-Google-Smtp-Source: AGHT+IFc36PK0gwzyRW3jvTzPP8Ia4hzGVk+PX8Wa2IpeeDgsDuGiSrx9fPUqLrrQga13EdImwRtcMJ+Mm6/uMty4ZE= X-Received: by 2002:a05:651c:304f:b0:30d:b216:ef0e with SMTP id 38308e7fff4ca-328096d1c98mr28929491fa.17.1747653016018; Mon, 19 May 2025 04:10:16 -0700 (PDT) MIME-Version: 1.0 References: <20250514201729.48420-12-ryncsn@gmail.com> <20250519070801.2588-1-21cnbao@gmail.com> In-Reply-To: <20250519070801.2588-1-21cnbao@gmail.com> From: Kairui Song Date: Mon, 19 May 2025 19:09:58 +0800 X-Gm-Features: AX0GCFtxHH5fnd6DYr57VR2wQe4QhvHj2zdkruqQEm3hvGo78Izs-oKQBNQi6x0 Message-ID: Subject: Re: [PATCH 11/28] mm, swap: clean up and consolidate helper for mTHP swapin check To: Barry Song <21cnbao@gmail.com> Cc: akpm@linux-foundation.org, baohua@kernel.org, baolin.wang@linux.alibaba.com, bhe@redhat.com, chrisl@kernel.org, david@redhat.com, hannes@cmpxchg.org, hughd@google.com, kaleshsingh@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, nphamcs@gmail.com, ryan.roberts@arm.com, shikemeng@huaweicloud.com, tim.c.chen@linux.intel.com, willy@infradead.org, ying.huang@linux.alibaba.com, yosryahmed@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 334401C000F X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 3zzmsy71d18irtu3yubsk6kuoiki5wsq X-HE-Tag: 1747653017-701537 X-HE-Meta: U2FsdGVkX18VdNgYYtwLKdnLIBJUtv1UPM9vGSDWcyOPfu1BykvOqCBhvZAEAx1jow+N/sly+BlbblSDehZNVRdZkQHVHcNC10M4w4tQ3ku/QYm1HMCDhBXvJOuSRnbhJuMqLFGtTc3UZ4Itl+hxmxtBAjjW23my3mlK4bZMlQdqGUhmRox15qa660RcJS2YEy/DCAYtgx00lDmTHd2fvf3mqX7VqB1uQQN/QhQBYU5gmnwrMd6X0TEXVpB4GzBzwdiHipRUaEHR1FudV2bIjEtuWlQ8JfslPMI748HiNw272tuXgVttV8e+fGnw9vVP9TliztBw+R3Mnx8WVQMOLC42a9tsz3bfJ5faPaoP1BooYVkSdIwV5v1uKkU/xk2CI8iK6ONaVXdHDQnRpoQi12WCOdFkbAH4v4wBVDnUbm+aJCLbZtQa44dNnGNAHc+xA7AlPK5v3YjV2VurwwmhvD72aHDn5TdYSltzj9079itDpyN1GOF6W2Jyp3zmgIOveLmrKilCVpEAft2R0A1F6Uo6tF0oKfuSZSSKgWJJAV5aDXf5/r/e9EaCnEhqK9/xulAh0L6stVTittdLJkp+rpfYkXc31QaNRPc26zao1cUnIoTs/iZZwq9LLHvBiS/M7htngp1s5OrgWaz4xpMEIf9vNNyuxkqnse528Ryo7SdfStsmRrUkL1pwZW5J8gb82UwxH7xJfbBucqGYH8AbR+Okl4E3DtYBxNnfsirx7ZEe/Ko+kb1FnPMSGXuIR7CERuisKQ4ypYfmWOuIwRn8wwCITti5gfr57GqCxOvZMn03Jl6KwrMlFkZNHLNphIEvrafLCTy7eXaAARy0EtpgyqHIBbTY6G5bXhA5Jp29WJkPNogB9zDMHWIIOhdAgSNGVqAHfJpkiUX8UmoaidmFQEXJOSfkKWBWmOX+58IzWOsABFKPubcuDT9vXKCQd7UWD2G6MGKM8wgFDgYqrBh Dps8pp8V gxL/rd5Fnk8RCoXDI/+0/sjN9yfFznztobmJ2iUVK3t9AmOpLTfGPVdHGAejkR5KZZQd3yLXB9atD8xK81x3VU1G6LdfJArW8cVw5Os1j9PmmidRS6z4XoiygnKEVVsiaJskDziIQOhz1Z546sa8oG9QnG1g9wtveiC3EG7kHfcH9WRsvucDNKYhTgt137DUxe1DqEEVGHr/VBkUsvgXNFMkq+5gZjXG+zIeE4IOjiNhpjPBLm0ArfGViqvoQxH0R7szxop/E2eBsZPOdIQEO1MPpSB1OIgKsRhzYlCo1Pcf8hptXIq+LKZ0vEXuJNPmo7dvxvvSgWBikU3lHmVzqYysIXpBn5edFB1qixHHNQ4cAIYqMWmo2uJJptw== 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 Mon, May 19, 2025 at 3:08=E2=80=AFPM Barry Song <21cnbao@gmail.com> wrot= e: > > > From: Kairui Song > > > > -static bool can_swapin_thp(struct vm_fault *vmf, pte_t *ptep, int nr_p= ages) > > +static bool can_swapin_thp(struct vm_fault *vmf, pte_t *ptep, > > + unsigned long addr, unsigned int nr_pages) > > > + if (unlikely(addr < max(addr & PMD_MASK, vmf->vma->vm_start) || > > + addr_end > pmd_addr_end(addr, vmf->vma->vm_end))) > > > > @@ -4731,27 +4732,18 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > page_idx =3D 0; > > address =3D vmf->address; > > ptep =3D vmf->pte; > > + > > if (folio_test_large(folio) && folio_test_swapcache(folio)) { > > - int nr =3D folio_nr_pages(folio); > > + unsigned long nr =3D folio_nr_pages(folio); > > unsigned long idx =3D folio_page_idx(folio, page); > > - unsigned long folio_start =3D address - idx * PAGE_SIZE; > > - unsigned long folio_end =3D folio_start + nr * PAGE_SIZE; > > - pte_t *folio_ptep; > > - pte_t folio_pte; > > + unsigned long folio_address =3D address - idx * PAGE_SIZE= ; > > + pte_t *folio_ptep =3D vmf->pte - idx; > > > > - if (unlikely(folio_start < max(address & PMD_MASK, vma->v= m_start))) > > - goto check_folio; > > We are handling a corner case a large folio is remapped to an unaligned a= ddress. > For example, > > A 64KiB mTHP at address: XGB + 2MB +4KB, > > Its start address will be XGB + 2MB - 60KB which is another PMD. > > The previous code will return false; now your can_swapin_thp() will retur= n true > as you are using XGB + 2MB - 60KB as the argument "addr" in can_swapin_th= p(). Thanks very much for the info and explanation. You are right, I need to keep using vmf->address in can_swapin_thp: if (unlikely(addr < max(vmf->address & PMD_MASK, vmf->vma->vm_start) || addr_end > pmd_addr_end(vmf->address, vmf->vma->vm_end))) return false; But one thing I'm not so sure is how that happens? And there isn't an address checking in the direct swapin mTHP check above?